Signature
The house personality layer — how an app made with shuttering feels unmistakably itself. It wears its domain, nods to the user, speaks in a warm domain voice, and moves with one restrained hand.
Wear the domain
Declare what an app is about once, and the system threads it everywhere. Switch the domain — the wordmark changes treatment (a network twinkles into a constellation, energy ripples, infrastructure decodes), and the palette, voice, and backdrop follow. In production, DomainProvider also applies the domain's palette.
- palette
- eucalyptus
- backdrop
- none
- wordmark
- particles
- tone
- warm
- counts in
- node / nodes
Voice
Copy that speaks the domain's language — an active greeting, counts that name what they count, an empty line that sounds like a person, and a confirmation that says exactly what happened. All flex with the selected domain.
| greeting() | Good morning |
| count() | 1 node · 42 nodes |
| empty() | No nodes yet — they'll show up here |
| past() | Published · Deployed |
Nod to the user
The constant acknowledgment. A contextual greeting, a button that lands its confirmation, a press-and-hold commit for the destructive action you want to be sure about, and a resume affordance for returning visitors.
Good evening, stx
Pick up where you left off — the pricing draft
The hand
The single motion character the whole system writes in — restraint as the signature. SETTLE is the house spring; SignatureUnderline is the tracking maker's mark; the delight budget keeps the nod rare.
A DelightBudget of one — only the first claimant lights up:
Backdrop
Each domain carries an optional ambient backdrop — an aurora for health, a pixel field for infrastructure, or nothing. Here is the health backdrop, contained.
<SignatureBackdrop domain="health" />