TRN 100 4567 8912 3003 · +971 4 321 7788
Tax invoice
| Description | Amount (AED) |
|---|---|
| Work this period (IPA-02, to 55%) | 96,500.00 |
| VO-02 additional glass partition, Meeting Room 3 | 18,600.00 |
| Less advance recovery 10% | −9,650.00 |
| Less retention 5% | −5,755.00 |
The building blocks behind every LHP ERP screen. Each section shows the live component and the classes to use. All styles live in assets/css/ — one file, app.css, imports the rest.
:target and <details>. Inline style only for chart values and widths, e.g. style="--v:62".<body class="co-ts" data-nav="proc-requests" data-tab=""> — theme colour, active menu item and active bottom tab.<!-- @shell:… --> markers by the build script.alt on images, aria-label on icon-only buttons, sentence-case labels..split (2/3 + 1/3) · .split-even · .grid-2/3/4 · .kpis(.k3/.k5/.k6) · .stack · .section · .row--text--text-2--text-3--muted--faint--border-2--surface-3--surface-2--bg| Token | Swatches | Used for | Example |
|---|---|---|---|
--green | Approved, paid, on track, pass | Approved | |
--amber | At risk, due soon, expiring ≤ 30 days | Due soon | |
--red | Rejected, overdue, expired, delayed | Overdue | |
--blue | In progress, submitted, sent | Sent | |
--violet | Pending approval, waiting for someone | 1 of 2 approved | |
--teal | Inter-company, LHP Metals & Glass | Inter-company | |
--orange | Returned for changes | Returned | |
--slate | Draft, neutral, closed | Draft |
.company-pill + .brand-mark.ts/.mg/.group.num)AED 38,450 on screens, 38,450.00 on tax documents.4.mt-4 .gap-48.mt-8 .gap-812.mt-12 .p-1216.mt-16 .p-16 · card padding24.mt-24 · grid gap on desktop28–32.section · between blocks.hide-mobile · .show-mobile · .hide-desktop · .hide-tablet-down<i class="i i-truck"></i> · sizes .i-sm 16 · .i-md 20 · .i-lg 24 · .i-xl 32 · icon tiles .ic-badge(.green/.amber/…)(.sm/.lg)
On phones every button grows to 44 px high for thumbs; buttons in .ph-actions, .modal-foot and .form-actions stretch to full width.
.btn + .btn-primary|secondary|ghost|soft|success|danger|… · .btn-lg|sm|xs · .btn-block · .icon-btn(.sm .bordered) · details.dropdown| Status | Badge |
|---|---|
| Draft | Draft |
| Pending approval · waiting | Pending approval |
| Approved · paid · completed · active · pass | Paid |
| Partial · due soon · at risk · on hold | At risk |
| Rejected · overdue · expired · fail | Overdue 7 days |
| In progress · submitted · sent · scheduled | In progress |
| Inter-company · Metals & Glass | Inter-company |
| Returned for changes | Returned |
.badge.green.dot · .sm .lg .outline .brand .solid-green · .code · .ribbon · .delta.up/.down · .avatar.a1…a8 (.xs–.xl)The dashboard vocabulary: KPI row, alert strip for the one urgent thing, cards with a clear head
.ring = share billed · .progress-row = work done
Used for AI tips and “why it matters” explanations.
Empty state · .empty — always say what to do next.
Prefilled so a demo submits in one click · 16 px inputs on phones so iOS does not zoom
| Invoice | Client | Total (AED) | Due | Status | |
|---|---|---|---|---|---|
| INV-TS-26-0087TS-26-014 · IPA-02 | GH Gulf Horizon Properties Khalid Al Mansoori | 104,679.75 | 30 Oct | Certified | |
| INV-TS-26-0084TS-26-017 · IPA-01 · tr.hl-red | UT Urban Threads Trading Neha Kapoor | 40,446.00 | 25 Sep | Overdue 7 days | |
| INV-TS-26-0091TS-26-020 · advance 15% | SR Spice Route Hospitality Vikram Shetty | 46,935.00 | 15 Oct | PDC received | |
| Total · 3 invoices | 192,060.75 | ||||
td.primary = card title on phones · a.row-link makes the whole row clickable (hero records only) · tr.hl / .hl-red / .hl-green / .group-row · .num right-aligns amountsPure CSS and inline SVG — values set with CSS variables, no chart library
.bars[style=--max] › .bar-col › .bar-set › .bar[style=--v] (.c2–.c8, .neg, .ghost).l1 .l2 .l3 lines · .a1 .a3 areas · .dash · .band for a warning zone · .chart-x labels.hbar › .hb-label + .hb-track › .hb-fill[style=--v:PERCENT] + .hb-mark[style=--m] + .hb-valSchedules and stage boards — both scroll sideways on phones
.gantt[style=--days;--today] · .g-bar[style=--s;--d;--p] with .done .late .risk .sub .mg .future · .g-base baseline · .g-ms milestone.kanban › .kb-col(.won .lost) › .kb-head + .kb-sum + .kb-cards › a.kb-card(.hot .warm .intercompany)
Approval chains, document lifecycles and process diagrams
All work with plain HTML — try them
Panel 1 — personal details, job and emergency contact.
Panel 2 — passport, visa, Emirates ID and certificates with expiry badges.
Panel 3 — leave history with out and back dates; annual balance 24 days.
.rtab-list.pills-style — board view
List view
nav.tabs › a.tab(.active) · pills: .pills › a.pill(.active)A link to #m-name opens div.modal#m-name through :target. href="#close" closes it. A bottom sheet on phones, centred dialog on desktop.
Empty <i id="approved" class="st st-1"> before the page content. Visiting page.html#approved shows .on-1 elements and hides .off-1 ones (states 1–6).
A .toast inside an .on-N element appears in that state and fades after 6 seconds. Variants .info .warn .err.
action="list.html#submitted" lands on the list page in its “submitted” state. Never reuse a state id as a modal id on the same page.Tax invoices, LPOs, quotations, payslips and delivery notes — print with Ctrl/Cmd + P and the app shell disappears
| Description | Amount (AED) |
|---|---|
| Work this period (IPA-02, to 55%) | 96,500.00 |
| VO-02 additional glass partition, Meeting Room 3 | 18,600.00 |
| Less advance recovery 10% | −9,650.00 |
| Less retention 5% | −5,755.00 |
.doc-wrap › article.doc with .doc-head, .doc-meta, .doc-parties, table.doc-table, .doc-sum, .doc-words, .doc-notes, .doc-sign, .doc-stamp, .doc-foot · toolbar above: .doc-toolbar