Mojo Stylesby Mojo Layers

StylesVigil

Style 12 of 14 · day clinic and night shift

Vigil

Telehealth with a lamp left on: the clinic's day as a clock, every free time lit, and a calm voice that says what happens next.

CalmAwakeKind

Best for

  • Telehealth GPs
  • After-hours clinics
  • Psychology by video
  • After-hours vets
  • Nurse lines
Outfit · Atkinson Hyperlegible Next and Mono
Vigil template home page: a calm round headline ending in amber, and a night dial showing the clinic's day with every free appointment time lit and a lamp needle on now
Vigil template on a phone

STYLE.md ·

How Vigil works. Every rule, written down.

Telehealth with a lamp left on: the clinic's day as a clock, every free time lit, and a calm voice that says what happens next.

Calm · awake · kind

Best for

  • Telehealth GP practices, after-hours and online-only clinics, video arms of existing practices
  • Any service people book by the quarter hour and join by video or phone: telehealth psychology and allied health, after-hours vets, nurse lines, specialist video clinics
  • Audiences: people at home in the evening, often unwell or worried, often on a phone, sometimes with low vision or a sick child on one arm

Less suited to: walk-in clinics with a front door to show (Pebble, Remedy), anything loud or sales-led, products rather than appointments.

Personality and voice

Calm and awake, like a good night nurse: says what happens next and when, never rushes, never sells. Short sentences; every time in mono.

  • Headlines: "A doctor on call, with the lamp still on." · "From booking to eScript, in under an hour." · "Wait on the couch, not in a chair." · "The fee, before you book."
  • Buttons: "Book a doctor" · "See fees" · "Join the waiting room" · "Add to calendar"
  • Microcopy: "If the video drops, the doctor rings your mobile." · "You won't pay for an appointment we can't finish." · "Template demo: no camera or microphone is used."
  • Words to avoid: "instant", "skip the GP", "no questions asked", "guaranteed script", "discreet", urgency ("only 2 left!") and any promise of a particular medicine.

Colour

Token Day clinic (light) Night shift (dark) Role
--paper #f2f4f8 #0b1222 Cool linen ground; deep navy at night
--card #ffffff #121b30 Cards, forms, the queue
--well #e8ecf3 #0f172a Alternate sections, segmented controls
--line #d3d9e4 #26314c Hairlines and borders
--ink / --ink-2 #121a2e / #33405a #eef2fa / #c4ccdd Text
--muted #5a6580 #919cb5 Times, notes, labels
--lamp #a34e00 #ffb35c The one warm accent: buttons, links, the lit phrase, the current step
--lamp-soft #fbead8 #2c2114 Chosen tiles, icon wells
--glow #ffb35c same The lamp glow behind the hero (never text)
--screen #2d55c8 #93b0ff Video and online: the call, notices, chips
--live #0d7f55 #4fd6a0 The small "doctors online" dot only
--alert #b42318 #ff8a7a Safety notices
--night / --night-2 / --night-line #0b1222 / #131d35 / #27324e same The night surfaces: dial, call, closing card, phone menu
--moon / --moon-2 / --moon-pale #ffb35c / #ffc788 / #ffe1b8 same The lamp on night surfaces: free ticks, the needle, the next time

Measured contrast (WCAG): ink on paper 15.7:1 · muted on paper 5.3:1 (on card 5.8:1, on well 4.9:1) · lamp on paper 5.2:1, on card 5.8:1 · white on lamp 5.8:1 · screen on card 6.5:1 · alert 6.6:1. Night shift: ink 16.7:1 · muted 6.8:1 (on card 6.2:1) · lamp 10.5:1 · text on lamp 9.9:1 · screen 8.1:1. On the night surfaces: moon-2 on night 12.3:1, night-muted 7.6:1.

Typography

  • Display: Outfit 500–600: round and calm, tight at large sizes.
  • Body: Atkinson Hyperlegible Next 400–700: drawn by the Braille Institute for low-vision readers, which is who is reading a clinic's site at 11pm.
  • Times: Atkinson Hyperlegible Mono 400–500: every time, fee figure and label, with slashed zeros so 8:00 never reads as 8:OO.
Token Size Use
--fs-h1 clamp(44px, 6.2vw, 88px), weight 600, −0.035em Page headline
--fs-h2 clamp(32px, 3.9vw, 54px), weight 600 Section headline
--fs-h3 21px, weight 600 Card and row titles
--fs-lead clamp(18px, 1.4vw, 21px) Intro paragraphs
--fs-body 17.5px Body: larger than usual on purpose
--fs-label 12.5px mono Eyebrows, times

The signature move: every headline ends in the phrase that matters, lit by the lamp: "A doctor on call, with the lamp still on." Eyebrows are a small lit dot and a mono label, green only when it means someone is online.

Layout

  • 1200px wrap, gutter max(20px, 4vw). Spacing --s-1…--s-8 (4 to 104px).
  • Hero: copy on the left, the night dial on the right, with the lamp glowing behind it.
  • Night surfaces (dial, call, closing card, phone menu) are always night, so the page reads as a lit room in Day clinic and a window in Night shift.
  • Features are soft rows (icon well, title, sentence), not icon-card grids. Fees are three cards with the figure first.

Shape

  • Soft and round: --r-s 10px inputs, --r-m 18px tiles and FAQ, --r-l 28px cards and night surfaces; pill buttons and segmented controls.
  • Shadows are long and low; the lamp button carries a warm glow under it.
  • The brand mark is a crescent lamp: a lit disc half covered by the night.

Motion language

  • The dial: free ticks fade in around the clock when it's seen; the lamp needle sits on now and moves every half minute; every few seconds someone takes a free time (the tick flashes and dims) and the next free time updates.
  • The queue: the person at the front goes in through the door and everyone moves up (a FLIP slide), then it starts again.
  • The visit log: steps light up one by one to the current one.
  • The call: light drifts behind the doctor; the timer counts.
  • The lamp breathes (9s), so nothing on the page is ever quite still while motion is on.
  • Reveals: 18px rise and fade, 700ms. The phone menu drops down as a night card.
  • Motion switch in the footer ([data-motion-toggle], html.calm, remembered as site-motion, default from prefers-reduced-motion). Calm keeps the dial's information (lit ticks, the needle, the next time) and stops everything else.
  • Night shift switch ([data-theme-toggle]), remembered as site-theme; theme-color follows.

Imagery and illustration

The service, not stock: the dial, the queue, the call card, the visit log. Line icons at 1.7px stroke in a --lamp-soft well. Photography only of real clinicians at a real desk at night, warm-lit. Never stethoscope-on-laptop stock, pills, syringes, or a patient looking unwell on a sofa.

Signature components

  • .dial[data-hours="7-24"][data-step="15"][data-href][data-online] › .dial-head ([data-dial-status]) › .dial-face (empty; the script draws the clock and the centre read-out) › .dial-next (empty; the next four free times as links) › .dial-note. data-href gets ?at=<ms> for pages, or stays as it is for a #hash.
  • .queue[data-ahead][data-mins][data-names][data-you][data-next] › .queue-read ([data-q-text], [data-q-time]) › .queue-line (empty).
  • figure.call[data-call=<seconds>] › .call-bg, .call-time [data-call-time], .call-self, .call-who (.av, b, small), .call-bar (button[aria-pressed], button.end).
  • ol.visit[data-at] › li › .time, b, p.
  • .rows › div › .ic, h3, p · .fees[style="--n:3"] › .fee(.lit) › .k, .h3, b, p · .lamp (inside .hero or .page-head) · .notice / .notice.safety · .faq details · .close-card · .foot-safe.

Multi-page kit

  • Phone menu: .menu-btn[aria-controls] opens .site-menu (a night card); Escape, outside click and links close it; Tab stays inside while open.
  • Current page: aria-current="page" (a soft lamp pill).
  • Inner pages: .page-head (with an optional .lamp) with .crumbs, a .tag and a smaller .h1.
  • Fields: .field, .fields, .field-wide, fieldset.field-set, .check, .form-card; [aria-invalid="true"] turns the border to alert; form[data-template] shows "This is a template" on submit.
  • Tiles: .choices › label.choice > input + span > b + small. Segmented control: .seg with button[aria-pressed] (with data-filter and data-value) or label > input + text.
  • Gate: [data-gate] with button[data-show="panel-id"].
  • Slider, switch, tables: input.range, .switch[role=switch], .table / .table.stack, .r for figures.
  • Helpers for templates: Vigil.slots(day, now, [open, close], step), Vigil.taken(date) (the shared "already booked" pattern), Vigil.time(date), Vigil.day(date), Vigil.refresh(root).

Health services in Australia

Vigil was written for clinics. A few rules shape the copy and the template (design guidance, not legal advice):

  • Medicare and telehealth. GP telehealth attracts a Medicare rebate only when the patient has had a face-to-face service with the practice in the past 12 months, or is registered with it through MyMedicare, unless an exemption applies (sexual and reproductive health, babies under 12 months, people experiencing homelessness and others). An online-only practice charges most appointments privately; say so plainly, and show the fee before booking.
  • No testimonials or reviews about the clinical service (Ahpra's advertising guidelines), no claims of outcomes, no urgency or scarcity.
  • Prescribing only after a real-time consultation, never from a form; say what isn't done by telehealth (emergencies, examinations, Schedule 8 medicines for new patients).
  • Every page carries "not for emergencies" with 000, healthdirect (1800 022 222) and Lifeline (13 11 14), or the right crisis lines for the service.

Do and don't

  • Do put a time on every promise, in mono.
  • Do keep the dial honest: sample times are labelled as samples, and "next free" means free.
  • Do keep the night surfaces night in both modes.
  • Don't use the lamp for more than one phrase per headline, or for anything that isn't the next action.
  • Don't use green except the online dot.
  • Don't add testimonials, urgency or "skip the GP" promises.

Accessibility

AA contrast throughout (measured above), a body face built for low vision at 17.5px, skip link, 3px focus ring in the screen blue. The dial is decorative SVG with a spoken read-out (aria-live) and its free times repeated as real links; the queue's text is live and its seats hidden; the call's buttons use aria-pressed; the visit log is an ordered list. Forms label every field and mark errors with aria-invalid. Tables stack on phones. Responsive to 360px; tested with motion on and off, in Day clinic and Night shift.

How to make it yours

Dial Range
Lamp Amber (default), sea-glass teal (Pawline), dusk violet (Tidewater), rose copper (Moonwell); set --lamp for both modes and --moon for the night surfaces
Clinic day data-hours and data-step on the dial: 7–24 by 15 minutes, 17–24 for evenings, 8–20 by the hour for sessions
Hero The dial (default), the call card, or the queue
Night shift On (default) or Day clinic only
Not negotiable Outfit and Atkinson Hyperlegible, mono times, the night dial or another real view of availability, night surfaces in both modes, one lamp accent, the safety line in every footer, and the Motion switch

Start with Vigil

Your business, in Vigil. Fixed price, your content.

We set your logo, palette and words within Vigil's rules and build the site. Prices in AUD, no GST added, 50% upfront and 50% on delivery.

Industry templates in Vigil

Pricing and FAQOpen the live templateWant something bespoke instead?

The other thirteen