Style guide

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.

Foundations
Foundations

Color

rclinic-green
#3FB97D
primary
#1B7F54
primary-deep
#145E3F
rf-mint
#C2E5D0
rf-mint-soft
#DBEFE2
rf-cream
#F2EDE3
rf-cream-soft
#F9F5EC
rf-yellow
#F2D750
rf-navy
#0E3047
ink
#0E3047
ink-soft
#2A3845
warn
#D9534B
status-phs-pushed
#D26895
status-phs-received
#5E3F88

Primary palette — match design.md §1.

Foundations

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.

Foundations

Patient status edges

PHS consultation pushedvar(--color-status-phs-pushed)
PHS consultation receivedvar(--color-status-phs-received)
Registered onlynone
Vitals addedvar(--color-warn)
Consulted, not dispensed#F2A03A
Medicine dispensedvar(--color-rf-yellow)
All donevar(--color-rclinic-green)

Right-edge stripe on Today's Patient List card. PHS pushed (pink) / PHS received (purple) / None / Red / Orange / Yellow / Green.

Forms
Forms

Buttons

Variants (default size)

Sizes (primary)

Icon slots

States (primary)

Six semantic variants, three sizes, with leading/trailing icons and loading + disabled states. See design.md §4.5 for the action verb → variant map.

Forms

Icon buttons

Header (white circle, primary green icon)

Ghost (toolbar)

Solid / danger

Sizes

Header (white circle), ghost (toolbar), solid (primary action), danger (end call).

Forms

Text fields

We'll only use this for sync alerts.

Underline-style label above, rounded input. Required marker, icon slot, password toggle, hint text.

Forms

Numeric · units · out-of-range

Cms
Kg
bpm
g/dl
Range : 11–13 g/dl
bpm
Range : 10–18
g/dl
Range : 100–140 g/dl

Vitals fields — `unit` slot for Cms / Kg / mmHg, `outOfRange` flips value to red and warns the hint.

Forms

Computed read-only

kg/m²

Soft cream surface, no focus ring — used for auto-calculated fields (BMI, BMI Category, Iron Suchrose Required, Trimester).

Forms

Date picker

Optional — leave blank if no follow-up.

Native date input with leading calendar icon. DOB / Visit Date / Expiry Date all share this primitive.

Forms

Age (Y / M / D)

Age*
Y
M
D
Age (default)
Y
M
D

Three-field composite for the manual's `Age (Y / M / D)` triplet — keeps each component aligned and labelled.

Forms

Select

Defaults to your assigned Sub-Centre.

Native select, styled to match Field. Placeholder option renders as disabled. Used by 'Search criteria ▾' on patient list.

Forms

Checkbox

Single primary-filled checkbox; supports any label content.

Forms

Radio

Referral required*
House ownership
Drinking water

Inline radio rows — manual pattern: ( ) Yes ( ) No, ( ) Own ( ) Rented. Selected state is a filled green dot.

Forms

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.

Forms

Pain scale

Pain scale

Six face emoticons mapped to 0–10 — No Hurt → Hurts Worst. Active step gets a green ring + light fill.

Display
Display

Eyebrow

Sub-Centre · Test SC 3
Modules

Small uppercase label, with optional pulsing yellow dot.

Display

Badges & pill labels

Soft (default)

primarysuccesswarnamberyellowinfoneutral

Solid

primarysuccesswarnamberyellowinfoneutral

Outline

primarysuccesswarnamberyellowinfoneutral
BMI HIGHALL DONECONSULTEDDISPENSED1 NEW

Soft, solid, and outline variants across the seven status tones.

Display

Chips

Tappable

PallourBreathlessnessPremature labour painsExcessive bleedingFeverHeadache

Selected (with × dismiss)

Excessive bleedingFever

Multi-select / dismissable chips — manual flow: tap an underlined symptom to append `× Excessive Bleeding` chip.

Display

Avatar

Sizes (initials)

Fallback (no name)

Status ring (matches edge palette)

Circle avatar — image, initials fallback, silhouette fallback. Optional status ring color.

Display

Tile (home grid)

Square white tile with line-art primary-green icon centered above its label. Locked variant for HE/Nurse subset.

Display

Patient card

Anita Devi

Cat : C
FID :P030508201PH :987651234527 Apr 2026

Ravi Kumar

Cat : B
FID :P030508202PH :912341234527 Apr 2026

White Peacock

Cat : D
FID :S015676PH :987654321018 Mar 2017

Aarav Kumar

Cat : A
FID :S015690UID :UID2890PH :912345678022 Mar 2017

Priya Singh

Cat : B
FID :S015705UID :UID301501 Apr 2017

Banyan Roots

Cat : B
FID :S017802PH :998877665502 Apr 2017

Mira Nair

Cat : C
FID :S018111UID :UID4012PH :901234567812 Apr 2017

Avatar + 4-field grid + right-edge status stripe. Each status drives a different stripe color (§foundations-status).

Display

Family card

White Peacock

Category : D
FID :
S015676
Family Count :
4
18 Mar 2017

Banyan Roots

Category : B
FID :
S017802
Family Count :
6
02 Apr 2017

Family list variant — group icon + name (green), Family Count, Category letter, last visit.

Display

Table

Billing (default density)

S.NoMedicines / ServicesPriceDisc%Amount
1Paracetamol 500mg₹5.000%₹5.00
2Iron Folic Acid₹12.0050%₹6.00
3Tele consult₹50.000%₹50.00

Inventory lots (compact)

Lot NumberExpiry DateCostCount
PCM-220405 Aug 2026₹4.20240
PCM-230112 May 2026₹4.5080

Default density — Billing layout. Compact density — Inventory list. Cell tones support `warn` for out-of-range and `numeric` for tabular numbers.

Display

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.

Display

Accordion

BP : 99/88 Pulse (bpm) : 58 Temp (°F) : 99.0

mmHg
mmHg
bpm
°F

R-Clinic green band header with chevron (§4.3 — Vitals, Social, Clinical History…). Optional summary line under header on expand.

Display

Stepper

  1. Family
  2. Members
  3. 3
    Consult
  4. 4
    Summary
  5. 5
    Bill

Multi-step indicator for Registration → Family Members → Consultation → Summary → Bill.

Display

Chart

Vitals over time

Scan all vitals · tap a tile to expand

in range flagged

Detail · 4 readings

Weight(Kg)

Falling trendLatest in range
7575.57676.576.475.975.174.820 Feb04 Mar18 Mar05 AprFIRSTLATEST

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.

Feedback
Feedback

Spinner

Saving…Saving…Updating consultation completion status to tele doctor…Updating consultation completion status to tele doctor…Loading

Used by the splash screen ('Initial Data Download is in progress…') and any pending sync state.

Feedback

Error banner

Inline alert for forms; warn-tinted, hidden when `show` is false.

Feedback

Toast

Start Consultation
Patient White Peacock is in queue.
Consultation Success
Data pushed to tele doctor.
Connection failed with Doctor
Retrying in 5 seconds.
Sync error
You have F:0 -C:1 unsynced data.

Inline notification — info / success / warn / error tones. Use for sync status and tele-consult prompts.

Feedback

Alert dialog

Centered modal — `CANCEL OK` text-buttons. Used for logout, mandatory-fields error, range-violation error, tele-consult prompts.

Navigation