Cheat Sheet
Quick reference for developers implementing Kaharagian government websites.
Typography
Font Family
| Use | Font | Variable |
|---|---|---|
| Headings | Noto Sans | --font-heading |
| Body | Noto Sans | --font-body |
| Code | SF Mono, Consolas | --font-mono |
Font Weights
| Weight | Value | Variable |
|---|---|---|
| Regular | 400 | --weight-regular |
| Medium | 500 | --weight-medium |
| Semibold | 600 | --weight-semibold |
| Bold | 700 | --weight-bold |
Letter Spacing
| Name | Value | Variable |
|---|---|---|
| Tight | -0.01em | --tracking-tight |
| Normal | 0 | --tracking-normal |
| Wide | 0.02em | --tracking-wide |
| Wider | 0.05em | --tracking-wider |
Heading Sizes
| Element | Mobile | Tablet (768px+) | Desktop (1280px+) | Line Height | Variable |
|---|---|---|---|---|---|
| H1 | 36px | 40px | 48px | 1.25 | --heading-xl |
| H2 | 28px | 32px | 36px | 1.25 | --heading-lg |
| H3 | 20px | 24px | 28px | 1.5 | --heading-md |
| H4 | 20px | 20px | 24px | 1.5 | --heading-sm |
| H5 | 18px | 18px | 18px | 1.5 | --heading-xs |
| H6 | 16px | 16px | 16px | 1.5 | --heading-2xs |
Note: Never use H1 tags. Page titles start at H2.
Body Text Sizes
| Type | Size | Variable |
|---|---|---|
| Extra Small | 14px | --text-xs |
| Small | 16px | --text-sm |
| Base | 18px | --text-base |
| Large / Lead | 20px | --text-lg |
| XL | 24px | --text-xl |
Line Heights
| Name | Value | Variable |
|---|---|---|
| None | 1 | --leading-none |
| Tight | 1.25 | --leading-tight |
| Snug | 1.35 | --leading-snug |
| Normal | 1.5 | --leading-normal |
| Relaxed | 1.6 | --leading-relaxed |
| Loose | 1.75 | --leading-loose |
Spacing Scale (4px base)
| Variable | rem | px |
|---|---|---|
--space-0 | 0 | 0 |
--space-px | - | 1px |
--space-0-5 | 0.125rem | 2px |
--space-1 | 0.25rem | 4px |
--space-1-5 | 0.375rem | 6px |
--space-2 | 0.5rem | 8px |
--space-2-5 | 0.625rem | 10px |
--space-3 | 0.75rem | 12px |
--space-3-5 | 0.875rem | 14px |
--space-4 | 1rem | 16px |
--space-5 | 1.25rem | 20px |
--space-6 | 1.5rem | 24px |
| Variable | rem | px |
|---|---|---|
--space-7 | 1.75rem | 28px |
--space-8 | 2rem | 32px |
--space-9 | 2.25rem | 36px |
--space-10 | 2.5rem | 40px |
--space-11 | 2.75rem | 44px |
--space-12 | 3rem | 48px |
--space-14 | 3.5rem | 56px |
--space-16 | 4rem | 64px |
--space-20 | 5rem | 80px |
--space-24 | 6rem | 96px |
Colors
Primary Brand (Kaharagian Red)
900
800
700
Primary
500
400
300
200
100
Secondary (Kaharagian Gold)
900
800
700
Gold
400
300
200
100
Gray Scale
950#0B0C0C
900#1D1D1B
800#2E2E2C
700#505A5F
600#626A6E
500#8B9196
400#B1B4B6
300#D1D3D4
200#E6E7E8
100#F3F4F5
50#F8F9FA
White#FFFFFF
Semantic Colors
| Purpose | Hex | Light Variant | Variable | Preview |
|---|---|---|---|---|
| Success | #00703C | #E6F4ED | --color-success | |
| Warning | #FEBC0A | #FFF8E0 | --color-warning | |
| Error | #D4351C | #FCEAEA | --color-error | |
| Info | #1D70B8 | #E8F1F8 | --color-info |
Form Elements
Input Fields
| Size | Padding | Class |
|---|---|---|
| Small | 4px 8px | .form-input-sm |
| Default | 8px 12px | .form-input |
| Large | 12px 16px | .form-input-lg |
Input Width Classes
| Class | Max Width |
|---|---|
.form-input-width-2 | 72px |
.form-input-width-3 | 88px |
.form-input-width-4 | 112px |
.form-input-width-5 | 128px |
.form-input-width-10 | 224px |
.form-input-width-20 | 384px |
.form-input-width-30 | 576px |
Form Group Spacing
- Form group margin bottom:
--space-6(24px) - Label margin bottom:
--space-2(8px) - Hint text margin bottom:
--space-2(8px) - Textarea min height: 10rem (160px)
Live Examples
This is helper text
Layout
Container Widths
| Type | Max Width | Variable |
|---|---|---|
| Narrow | 720px | --container-narrow |
| Default | 1200px | --container-max |
| Wide | 1400px | --container-wide |
| Content | 672px | --content-width |
| Content Wide | 992px | --content-wide |
Container Padding
| Breakpoint | Padding |
|---|---|
| Mobile | 16px (--space-4) |
| Tablet (768px+) | 24px (--space-6) |
| Desktop (1280px+) | 32px (--space-8) |
Focus States
| Property | Value | Variable |
|---|---|---|
| Focus color | Gold (#FEBC0A) | --focus-color |
| Focus width | 3px | --focus-width |
| Focus text color | #0B0C0C | --focus-text-color |
| Box shadow | 0 0 0 3px var(--focus-color) | |
This is how focus states look
Borders
Border Widths
| Variable | Value |
|---|---|
--border-width-1 | 1px |
--border-width-2 | 2px |
--border-width-3 | 3px |
--border-width-4 | 4px |
Border Colors
| Variable | Use |
|---|---|
--border-default | Standard borders |
--border-subtle | Light borders |
--border-strong | Emphasis |
--border-accent | Brand color |
Border Radius
All corners are sharp (0) for government authority style.
Exception: Use --radius-circle: 50% for circular elements (avatars, radio buttons).
Shadows
| Variable | Value | Use |
|---|---|---|
--shadow-xs | 0 1px 2px rgba(0,0,0,0.05) | Subtle elevation |
--shadow-sm | 0 1px 3px rgba(0,0,0,0.1) | Cards, buttons |
--shadow-md | 0 4px 6px -1px rgba(0,0,0,0.1) | Dropdowns |
--shadow-lg | 0 10px 15px -3px rgba(0,0,0,0.1) | Modals |
--shadow-xl | 0 20px 25px -5px rgba(0,0,0,0.1) | Dialogs |
xs
sm
md
lg
xl
Transitions
| Speed | Duration | Variable | Use |
|---|---|---|---|
| Fast | 100ms | --duration-fast | Micro-interactions |
| Normal | 200ms | --duration-normal | Standard transitions |
| Slow | 300ms | --duration-slow | Complex animations |
Easing: cubic-bezier(0.4, 0, 0.2, 1) (--ease-default)
Fast
Normal
Slow
Hover over the boxes to see different transition speeds
Z-Index Scale
| Layer | Value | Variable | Example Use |
|---|---|---|---|
| Base | 0 | --z-base | Normal content |
| Dropdown | 100 | --z-dropdown | Dropdown menus |
| Sticky | 200 | --z-sticky | Sticky headers |
| Fixed | 300 | --z-fixed | Fixed navigation |
| Modal | 500 | --z-modal | Modal dialogs |
| Tooltip | 700 | --z-tooltip | Tooltips, popovers |
Quick Reference CSS Classes
Typography
.lead /* 20px intro text */
small /* 16px small text */Layout
.container /* Centered max-width */
.content-container /* Narrow (42rem) */Buttons
.btn /* Base styles */
.btn-primary /* Red filled */
.btn-secondary /* Red outline */
.btn-tertiary /* Text link */
.btn-start /* Green start */
.btn-sm / .btn-lg /* Sizes */Forms
.form-group /* Container with 24px margin-bottom */
.form-label /* 18px bold label */
.form-label-lg /* 20px bold label */
.form-hint /* 16px gray hint text */
.form-input /* Standard text input */
.form-input-sm /* Small input */
.form-input-lg /* Large input */
.form-textarea /* Multi-line input */
.form-select /* Dropdown select */
.form-error-message /* Red error text */
.form-group-error /* Error state wrapper */Example Usage
<!-- Page Title (use H2, not H1) -->
<h2>Apply for a passport</h2>
<!-- Lead paragraph -->
<p class="lead">Use this service to apply for or renew your Kaharagian passport.</p>
<!-- Form field -->
<div class="form-group">
<label class="form-label" for="name">Full name</label>
<span class="form-hint">As shown on your birth certificate</span>
<input class="form-input" type="text" id="name" name="name">
</div>
<!-- Error state -->
<div class="form-group form-group-error">
<label class="form-label" for="email">Email address</label>
<span class="form-error-message">Enter a valid email address</span>
<input class="form-input" type="email" id="email" name="email">
</div>
<!-- Buttons -->
<button class="btn btn-primary">Continue</button>
<button class="btn btn-secondary">Save as draft</button>