design.bhd.om
BHD-Group shared design system · v1

One palette, one shell, eleven sites.

Drop-in CSS tokens, dark-mode init, Cmd+K, RTL utilities, and an admin shell that the entire BHD-Group portfolio inherits from. Hosted at design.bhd.om.

Tokens

Semantic CSS variables, light + dark. Anchored on the BHD navy primary. Works with plain CSS, Tailwind v3 (arbitrary values), or Tailwind v4 (drop-in @theme inline block in the file).

Background
--background
Foreground
--foreground
Primary (BHD navy)
--primary
Muted
--muted
Accent
--accent
Destructive
--destructive
Border
--border
Ring
--ring

Radius

sm · 4px
md · 6px
lg · 8px
xl · 12px

Quick start

Add the foundation to any BHD-Group project in three lines.

<link rel="stylesheet" href="https://design.bhd.om/tokens.css">
<link rel="stylesheet" href="https://design.bhd.om/cmdk.css">
<script src="https://design.bhd.om/dark-mode.js"></script>

Then on your <html>:

<html lang="en" dir="ltr" data-bhd-theme-mode="light">

For Arabic sites, switch to:

<html lang="ar" dir="rtl" data-bhd-theme-mode="light">

Modules

Every BHD-Group project loads what it needs. Cache forever, version via query param.

tokens.css required

Semantic CSS variables, light/dark, BHD palette, radius scale, shadow scale, layout sizes. Includes a hard-coded rule that strips letter-spacing on Arabic.

https://design.bhd.om/tokens.css

dark-mode.js recommended

Pre-DOM theme init. localStorage + prefers-color-scheme. Exposes BHDTheme.set() · .toggle() · .current().

https://design.bhd.om/dark-mode.js

rtl.css

Logical-property utilities for non-Tailwind projects. Tailwind users prefer native ps-* / pe-* / ms-* / me-*.

https://design.bhd.om/rtl.css

cmdk.js + cmdk.css

Command palette, Cmd+K / Ctrl+K. Vanilla. Pair with cmdk.css. React variant at /cmdk.jsx.

https://design.bhd.om/cmdk.js

skeleton.css

Skeleton loaders + empty-state pattern. Drop <div class="bhd-skel"> for placeholders, <div class="bhd-empty"> for empty UIs.

https://design.bhd.om/skeleton.css

admin-shell.html

Clone-and-edit starter for any admin surface. Sidebar + topbar + content. Cmd+K wired. Dark mode wired. RTL-safe.

https://design.bhd.om/admin-shell.html

currency.css + .js

Canonical OMR display: symbol always on the LEFT in both LTR + RTL. 3-decimal precision. Use data-bhd-omr="1250.5" attribute or call BHDCurrency.formatOMR(value) in JS.

https://design.bhd.om/currency.js

Live demos

All powered by the same tokens this page uses. Toggle the theme above and watch everything follow.

Skeleton loader

Drop-in placeholder for any list or card. Animates while loading.

Empty state

Consistent empty pattern with icon, title, description, CTA.

No invoices yet

When you create your first invoice it will appear here.

RTL flip + OMR symbol

Same markup, two directions. Logical properties + bidi-isolated currency.

LTR: Total due 1,250.500
RTL: المستحق الكلي ١٬٢٥٠٫٥٠٠

OMR formatter API

Symbol always on the LEFT. 3-decimal precision. Bidi-safe. Declarative data-bhd-omr or imperative BHDCurrency.formatOMR().

Subtotal
VAT 5%
Total

Command palette

Cmd+K (macOS) / Ctrl+K (Win/Linux). Fuzzy match across label + hint + keywords.

Portfolio rollout

Phase 1 (this package) is live. Phase 2 ports projects on top.

Project Scope Status
arabian.ceoFull Bootstrap → Tailwind v4 + admin shellpending
Dardasha adminRTL pass · Cmd+K · tokenspending
BHD ChatRTL pass · tokens · dark modepending
Cardify adminTokens + Cmd+K portpending
BHD-ERPAntD token alignment · Cmd+K · dark-mode scriptpending
fencing.omLift SaaS landing patternspending
AlMaha MarbleCatalog + projects gallery patternspending
bhd.omAstro landing-page upgradepending
hosn.omLanding-page upgradepending
mithaq.om, paperandpen.omLanding-page upgradepending