R-Clinic design system
Every UI primitive in one page. Live previews of every component named in the R-Clinic User Manual — foundations, forms, display, feedback, navigation — grouped so you can scan or jump in via the right rail.
Color
Primary palette — match design.md §1.
Typography
Display · Noto Serif italic
Welcome back.
Heading · Inter 600
Today's clinic
Body · Inter 400/500
Twelve consultations await, one record is queued for sync.
Caption · Inter 500
FID :S015676 · 18 Mar 2017
Geist for UI; Noto Serif italic for emphasis.
Patient status edges
Right-edge stripe on Today's Patient List card. PHS pushed (pink) / PHS received (purple) / None / Red / Orange / Yellow / Green.
Icon buttons
Header (white circle, primary green icon)
Ghost (toolbar)
Solid / danger
Sizes
Header (white circle), ghost (toolbar), solid (primary action), danger (end call).
Text links
Underlined primary-green; ink and warn tones for inline links inside body copy.
Text fields
Underline-style label above, rounded input. Required marker, icon slot, password toggle, hint text.
Numeric · units · out-of-range
Vitals fields — `unit` slot for Cms / Kg / mmHg, `outOfRange` flips value to red and warns the hint.
Computed read-only
Soft cream surface, no focus ring — used for auto-calculated fields (BMI, BMI Category, Iron Suchrose Required, Trimester).
Date picker
Native date input with leading calendar icon. DOB / Visit Date / Expiry Date all share this primitive.
Age (Y / M / D)
Three-field composite for the manual's `Age (Y / M / D)` triplet — keeps each component aligned and labelled.
Select
Native select, styled to match Field. Placeholder option renders as disabled. Used by 'Search criteria ▾' on patient list.
Checkbox
Single primary-filled checkbox; supports any label content.
Radio
Inline radio rows — manual pattern: ( ) Yes ( ) No, ( ) Own ( ) Rented. Selected state is a filled green dot.
Toggle (Yes/No pill)
Used in Referral / Health Advice Required / Consult Type. Green track with white knob; state is conveyed by color + position — the field label tells the user what's being toggled.
Pain scale
Six face emoticons mapped to 0–10 — No Hurt → Hurts Worst. Active step gets a green ring + light fill.
Search bar
Search field + optional criteria dropdown — the manual's `Search Patient:` row paired with `Search criteria ▾` (Name / FID / Phone).
Eyebrow
Small uppercase label, with optional pulsing yellow dot.
Badges & pill labels
Soft (default)
Solid
Outline
Soft, solid, and outline variants across the seven status tones.
Chips
Tappable
Selected (with × dismiss)
Multi-select / dismissable chips — manual flow: tap an underlined symptom to append `× Excessive Bleeding` chip.
Avatar
Sizes (initials)
Fallback (no name)
Status ring (matches edge palette)
Circle avatar — image, initials fallback, silhouette fallback. Optional status ring color.
Tile (home grid)
Square white tile with line-art primary-green icon centered above its label. Locked variant for HE/Nurse subset.
Patient card
Ravi Kumar
Category : Cat : BWhite Peacock
Category : Cat : DAarav Kumar
Category : Cat : APriya Singh
Category : Cat : BBanyan Roots
Category : Cat : BMira Nair
Category : Cat : CAvatar + 4-field grid + right-edge status stripe. Each status drives a different stripe color (§foundations-status).
Family card
White Peacock
Category : D- FID :
- S015676
- Family Count :
- 4
Banyan Roots
Category : B- FID :
- S017802
- Family Count :
- 6
Family list variant — group icon + name (green), Family Count, Category letter, last visit.
Table
Billing (default density)
| S.No | Medicines / Services | Price | Disc% | Amount |
|---|---|---|---|---|
| 1 | Paracetamol 500mg | ₹5.00 | 0% | ₹5.00 |
| 2 | Iron Folic Acid | ₹12.00 | 50% | ₹6.00 |
| 3 | Tele consult | ₹50.00 | 0% | ₹50.00 |
Inventory lots (compact)
| Lot Number | Expiry Date | Cost | Count |
|---|---|---|---|
| PCM-2204 | 05 Aug 2026 | ₹4.20 | 240 |
| PCM-2301 | 12 May 2026 | ₹4.50 | 80 |
Default density — Billing layout. Compact density — Inventory list. Cell tones support `warn` for out-of-range and `numeric` for tabular numbers.
Tabs
Underline (consultation list)
Selected: today
Pill (filter row)
Status pill (queue counts, tone-coded)
Selected: vitals — count colors map to the patient-status edge palette (§Foundations · Status edges).
Underline tab strip (default), compact pill variant, and tone-coded status pills. Underline = top-of-page section switches; pill = inline filter rows; status-pill = queue / status filters where each option carries a count and a status color.
Accordion
BP : 99/88 Pulse (bpm) : 58 Temp (°F) : 99.0
R-Clinic green band header with chevron (§4.3 — Vitals, Social, Clinical History…). Optional summary line under header on expand.
Accordion — section icons & status
Empty draft — every section shows the empty-circle status.
Partial draft — Vitals + Social complete, Score Card partial, others empty.
Full draft — every visible section reads complete.
Three drafts side-by-side — empty, partial (Vitals + Social complete; Score Card partial), full (every visible section complete). Demonstrates the duotone leading icon and the three-state right-side status badge.
Stepper
- Family
- Members
- 3Consult
- 4Summary
- 5Bill
Multi-step indicator for Registration → Family Members → Consultation → Summary → Bill.
Chart
Vitals over time
Scan all vitals · tap a tile to expand
Detail · 4 readings
Weight(Kg)
Latest
74.8 Kg
Reading range
74.8 – 76.4
Since first
-1.6
Flagged
0 / 4
Patient History trend chart — switch metric via the dropdown, healthy range drawn as a soft mint band, out-of-range points flip warn red.
Spinner
Used by the splash screen ('Initial Data Download is in progress…') and any pending sync state.
Toast
Inline notification — info / success / warn / error tones. Use for sync status and tele-consult prompts.
Alert dialog
Centered modal — `CANCEL OK` text-buttons. Used for logout, mandatory-fields error, range-violation error, tele-consult prompts.
Form sections (slice 1)
Social
Clinical History
Depression Screening
Screening
Each block below renders one of the new section components against a fresh draft. Editing here is throw-away — the showcase doesn't persist.