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 cyan primary (#009bc1). 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 cyan)
--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: the official Rial sign (, CBO 2025) always on the LEFT in both LTR + RTL, never the generic &#xFDFC; ligature. 3-decimal precision. Use data-bhd-omr="1250.5" attribute or call BHDCurrency.formatOMR(value) in JS.

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

omr.svg

The official Omani Rial sign (CBO 2025) as a single-path SVG with fill="currentColor". currency.js inlines it for you; embed directly only when you render server-side without JS.

https://design.bhd.om/omr.svg

FontAwesome 7.2

Self-hosted icon set for every BHD-Group surface. Load core fontawesome.min.css first, then light / solid / brands as needed. Never all.css, never emojis.

https://design.bhd.om/fa/v7.2.0/css/fontawesome.min.css

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

The package is live and most of the portfolio is already ported. Remaining ports below.

Project Scope Status
Dardasha adminRTL pass · Cmd+K · tokenslive
BHD ChatRTL pass · tokens · dark modelive
Cardify adminTokens + Cmd+K portlive
fencing.om + MithaqPublic pages + shared admin shell, Topbar v2live
AlMaha MarbleCatalog + projects gallery patternslive
bhd.omLanding-page upgradelive
hosn.omLanding-page upgradelive
paperandpen.omLanding-page upgradelive
BHD-ERPAntD token alignment · Cmd+K · dark-mode scriptpending
arabian.ceoFull Bootstrap → Tailwind v4 + admin shellpending
book.bhd.om, reachscreens.com, rabab, tfb.omTokens + landing patterns, per-project sessionspending