Styleguide
All design tokens and components.
Color tokens
Typography
Inter (body + display, single-family) + JetBrains Mono. Cyrillic + Extended Cyrillic (Ү, Ө) дэмжинэ.
Сайн байна уу
₮ 248.5M
Heading 1 · Өрнөл
Heading 2 · Хэлэлцээр
Heading 3 · Харилцагчид
Heading 4 · Үлдэгдэл
Lead paragraph — muted tone. Интер дэлгэц дээр гайхалтай.
Body 16 — энэ бол default paragraph хэмжээ. Интерын geometric хэлбэр Латин + Кирилл хоёуланг нь нэгэн адил зөөлөн харагдуулдаг.
Body 15 — table + card-д ашиглагдах default. Нягтаршил сайн.
Caption 11 · uppercase · tracked
- 400 — body default, caption
- 500 — form label, sidebar active, emphasized body
- 600 — section heading, tab active, button label, KPI delta
- 700 — display font ONLY (hero, H1, KPI value)
Used only on emphasis, citations, and quoted
passages — never on UI labels or form fields.
const deal = { code: "Q-2026-0042", mnt: 24_800_000 }
Ү Ө ү ө — Монгол кирилл кодпоинт
Buttons
Badges & chips
Forms
Alerts
Table
| Name | Status | |
|---|---|---|
| Bat-Erdene | bat@buildry.mn | Active |
| Saruul | saruul@buildry.mn | Pending |
| Temuulen | tem@buildry.mn | Suspended |
KPI cards
Tabs
Avatars & progress
Kanban card
Timeline
-
Deal moved to ProposalBat-Erdene · 2h ago
-
New note addedSaruul · 5h ago
-
Contact createdSystem · Yesterday
Drawer (static preview)
Empty state
Try adjusting filters or create a new record to see it appear in this list.
Charts
Phase 3 components
Industry batch 1 building blocks — used across Support, Finance, E-commerce, HR and Project pages.
metric-tile
Single large KPI block. Trend is signalled by both icon and token color (never color alone). Variants: default + .metric-tile--sm; trend via data-trend="positive|neutral|negative".
progress-stack
Stacked planned vs actual track. Drive fills via the --planned and --actual custom properties; set data-overflow="true" when actual exceeds 100% to switch the actual segment to the danger token and reveal the end-edge chevron.
heatmap
Two variants share one CSS module: .heatmap--year (53×7, ~365 cells) and .heatmap--day-hour (24×7, 168 cells). Cells are <abbr> with data-tier="0..4" for the quintile scale and optional data-status for HR attendance overrides. Renderer: renderHeatmap(container, options).
- Less
- Low
- Mid
- High
- More
- Present
- Remote
- Leave
- Holiday
- Absent
gantt-bar
Timeline grid with sticky labels, scale toggle and milestones. Bars place themselves with --start and --span on a --cols grid; status via data-status="todo|in-progress|blocked|review|done"; milestones use .gantt__milestone diamonds. Renderer: renderGantt(container, options); helper gridUnit(scale).
Apollo platform (3)
- MDesign spec
- MFrontend scaffold
- LDocs polish
Customer portal (2)
- HAuth flow
- HProfile page
renderGantt()Phase 4 components
map-canvas + pin-marker variants
SVG/HTML composition with no real map tiles. Background is a palette-tinted grid plus an abstract terrain wash. Pins position by --x / --y percent. Routes draw as SVG polylines.
pin-marker (price + cluster + hub)
Three additional variants used by Real Estate listings + Logistics dispatch. Each variant respects palette tokens — no hardcoded colour, no shadow.
timeline-rail
Horizontal time rail with positioned event dots between a start and end ISO range. Severity ramps from info → warn → critical.
device-tile
IoT KPI tile distinct from .metric-tile: status dot in the head, primary metric, secondary line. Token-only colours; the dot tracks data-status.