# Hospitality Design Guidelines ## Color & theme Use CSS variables from `globals.css`: ```css --hospitality-accent: #ea580c; /* light */ --hospitality-accent-soft: rgba(234, 88, 12, 0.12); --hospitality-warm: #f97316; ``` Dark mode equivalents use `#fb923c` accent. **Do not** hardcode hex in components — reference `var(--hospitality-accent)`. ## Typography - Headings: inherit global `text-secondary`, semibold - Muted text: `text-[var(--muted)]` - Monospace for codes/tokens: `font-mono text-sm` ## Spacing - Page padding: `p-4 lg:p-6` - Card gaps: `gap-4` - Form fields: `space-y-3` - Nav items: `py-2.5 px-3`, rounded-xl ## Components | Pattern | Guideline | |---------|-----------| | Primary action | `Button` default variant, hospitality accent via active nav | | Destructive | `ConfirmDialog` with `danger` | | Status | `HospitalityStatusChip` or `Badge` tones | | Tables | Always wrap with search in `HospitalityTablePage` | | Empty states | Action button when create is available | ## Navigation - Groups collapse on mobile drawer - Hide nav items when capability flag is `false` - Hub link at sidebar footer ## Forms - react-hook-form + zod validation - Required fields marked in schema messages (Persian) - Select for enums; Input for text/number ## Icons Lucide icons in nav config (`constants/portals.ts`). ## Motion - Sidebar chevron: `transition-transform` - Nav hover: `transition-colors duration-200` - Avoid heavy animations on data tables ## RTL - Search icon: `right-3`, input `pr-10` - Sidebar border: `border-l` (RTL shell) - Breadcrumb chevron rotated for RTL flow