Quietly happy
Warm paper, a little sunshine, and space to breathe. Joy comes from the details.
The colours, type, shapes, and little moments that make Boring feel like Boring. A practical guide to building a calmer, happier kind of healthcare.
The idea behind the system
Be welcoming at the edges and precise where it matters. The smile opens the door. Clear information, readable type, and familiar interactions earn trust.
Warm paper, a little sunshine, and space to breathe. Joy comes from the details.
Plain language and predictable patterns help people feel at home, at any age.
Make the next step easy to see. Tell people who is helping and what happens next.
Use a role in your screen, so the base value can evolve in one place.
02 / Brand & little b
A rounded lowercase b with a quiet smile. Use it to welcome people, keep them company during short waits, and make everyday moments feel cared for.
Good health. More life.
Keep at least one stem-width of clear space. Use the full face at 24 px and above. Keep the wordmark lowercase in Nunito Sans 800.
Use the smile for welcomes and routine progress. Give results, errors, and difficult news plain language and a clear human next step.
03 / Colour
Ink blue gives the interface its structure. Cream makes room for it. Butter yellow belongs to the character and small brand moments.
Select a swatch to see its token, aliases, and CSS.
Use color.text.primary for text and color.action.primary for actions, even when they share the same blue.
Decorative yellow is not an attention state. Use the paired status backgrounds and foregrounds, with a clear label.
04 / Typography
Nunito Sans brings the personality. DM Sans handles the everyday details. Use the larger parent-facing style when comfort matters most.
Aa
Rounded, open, quietly confident.Aa
Clear words. Comfortable reading.More of the days that matter.
Body text starts at 17 px; supporting text at 15 px. The 13 px label style is for short labels. Mukta is the proposed Hindi/Marathi companion and still needs translated-layout validation.
05 / Space & shape
A 4 px spacing base keeps layouts consistent. Use 24 px inside cards, 12 px control corners, and larger curves for welcoming surfaces.
Clear content. Comfortable space.
24 pxEveryday cards stay flat. Reserve shadows for menus, dialogs, and sheets. The presentation shadow belongs to device mockups.
Use 24 px mobile gutters and 40 px desktop gutters. Keep reading columns within 720 px and standard content within 1120 px. Breakpoints: 720, 1050, and 1500 px.
06 / Components
Working examples of shared component decisions. Try their states, inspect the tokens, and copy a starting point for your own screen.
Use one primary action per decision. Targets are at least 48 px tall.
Tuesday, 22 September
7–9 am
Your care, all in one place.
One character moment is enough. Let the rest of the screen stay quiet.
Keep the decision short and the options clear. Try the dialog with a keyboard: Tab moves through controls and Escape closes it.
07 / Motion
Most interactions are short fades and colour changes. Little b gets one slow, settling rhythm while an operation is in progress.
Getting things ready for you
A small moment of company.Stop the animation when the actual operation finishes. A duration token is a motion rhythm, not a timer for pretending work is complete.
Your device’s reduced-motion preference is also respected.
08 / Accessibility
Readable contrast, larger touch targets, visible focus, and calm motion support a wider range of people. Check the complete experience as you build.
A little clarity goes a long way.
Normal text target: 4.5:1. Large text: 3:1. This checks the selected opaque colours, not a whole screen.
09 / All tokens
Search by name, value, or description. Select a token to inspect its reference chain and copy the CSS you need.
| Token | Value / reference | Type | Copy CSS |
|---|
Try “colour”, “radius”, “button”, or clear your filters.
10 / Use the library
Start with the same source whether you work in code or Figma. Change a token once, regenerate the exports, and keep the two in step.
The CSS contains namespaced variables. Load Nunito Sans and DM Sans separately, then add the token stylesheet. Paths below assume the library folder structure is preserved.
<link rel="stylesheet"
href="/tokens/happy-longevity/boring.css">
.page {
background: var(--boring-color-surface-page);
color: var(--boring-color-text-primary);
font: var(--boring-typography-body);
}
.heading {
font: var(--boring-typography-heading);
letter-spacing:
var(--boring-typography-heading-letter-spacing);
}Font shorthand does not include letter spacing. Breakpoint tokens are build-time values; CSS var() cannot go directly inside media-query conditions.
boring/happy-longevity.boring.tokens-studio.json, save, and enable the set.This is a token-set export, not a native .fig component file. Motion tokens remain handoff values; they do not create Figma animations. Follow the Tokens Studio export guide for supported mappings.
Edit boring.tokens.json, then run the build from the project root. This regenerates CSS, the Figma export, the validation report, and this library’s catalogue.
node tokens/happy-longevity/build.mjs
node tokens/happy-longevity/build.mjs --checkChecks catch missing references, circular aliases, stale exports, and low-contrast required pairings. The older Breath/petrol UI kits still need migration to these token roles.