The brand judgement layer
your product lacks.

Your team knows your brand’s rules by heart. The AI tools they build with don’t. Divona writes the rules down and holds every tool to them.

ENFORCED IN
Claude Code Cursor Lovable Figma Make

How it works

Write the rules once. Every tool obeys them.

White-line interface cards and swatch chips converging on a solid lime diamond — many sources, one definition

Capture the rules

We read what you already have: guidelines, tokens, shipped screens. Out comes a written record of how your brand decides, including the parts nobody ever wrote down.

A lime diamond radiating into three different white-line surfaces — a phone, a dashboard, a dialog — each stamped with the diamond

Fit it to any screen

The rules cover screens they have never seen. Empty states, dense tables, error flows. Built up from the rules, not painted on afterwards.

Tilted white-line frames passing through a lime X gate and emerging upright on a baseline — drift caught, order held

Enforce it in every tool

Divona sits inside the tools your team builds with. Everything they generate is checked against your rules before it ships.

the difference

The same prompt. Twice.

Same model, same brief, same tokens. One side was handed your rules first. Drag the handle.

WITH DIVONA overnight · 4 generated · 18 mar

Three drafts came back clean.
One is waiting on your eye.

The fourth put two primary actions on one view. It is held, with the rule it broke named on it.

Review the three drift 0.00 · judged against 41 rules
  • Pricing pageclean
  • Welcome emailclean
  • Settings · empty stateclean
  • Upgrade promptheld · loudness budget
WITHOUT Dashboard

Welcome back!
Here’s your workspace overview.

Manage your drafts, view analytics, and explore everything your workspace has to offer.

Get Started Learn More
DraftsManage your items
AnalyticsView your metrics
SettingsUpdate preferences

drag · or focus the handle and use the arrow keys

the heading

Generic tells you that you exist. Yours says what happened while you were away, and carries the number.

the voice

No exclamation, no “explore everything”. Your voice rules are written down with a severity, so a tool cannot quietly drop them.

the actions

One loud object per view. The generic side offers two and ranks neither, which leaves the reader to work out what matters.

the facts

Four items with one status each is a list. Cards are what a tool reaches for when it does not know what matters.

the refusal

The fourth draft broke a rule and was stopped before you saw it. That is the part a palette cannot do.

same colours, same type, both sides. tokens are not a brand.

what you get

Rules, not a palette.

Five files your tools read. Every rule carries a weight, so a tool knows what it may bend and what it may not.

Five white-line sheets stacked in perspective, edges marked with measurement notches, one lime seal pressed into the top sheet
identity

What the brand is. And what it must never drift toward.

tokens

Colour, type, spacing, shape. Real values, measured.

composition

How a screen is built. What may be loud, and what stays quiet.

voice

How it sounds in buttons, errors and empty states.

never

What the brand refuses, with severity attached.

composition.md · [core]

The loudness budget

Each view gets exactly one loud object. Everything else stays quieter. If a view seems to need two, the view is wrong.

[core]

Never traded. A tool that cannot do the job without breaking one has to find another way.

[strong]

How this brand normally works. Bent only when a core rule forces it.

[default]

A preference. Change it when the screen genuinely needs something else.

the part most brand documents get wrong

Measured, not asserted.

Most brand documents claim a colour is accessible. Nobody downstream can check it. We compute the number from your real values, and fail anything that breaks it.

pairratiogradewhat it may carry
Abone on canvas 16.64:1AAA Body text, at any size.
Aaccent on canvas 12.64:1AAA Links, focus rings, key values.
Amuted on canvas 6.85:1AA Secondary text and captions.
Afaint on canvas 3.88:1AA large Annotations only. Never body copy.
Aghost on canvas 2.38:1fail Never text. Hairlines and disabled marks.
Abone on accent 1.32:1fail This is why text on lime is always ink, never bone.

computed from this page’s own tokens · wcag 2.2 · 4.5:1 normal text, 3:1 large and non-text

the refusals

A brand is also what it refuses.

Guidelines say what to do. The mess comes from what nobody wrote down. We write the refusals down and close the shortcut before a tool reaches for it.

Five empty white-line slots on a baseline, one struck through by a single lime diagonal
  • coreNever a second hue. One accent, everywhere. No gradients, no tinted panels.
  • coreNever round a card, never square a button.
  • coreNever two loud objects in one view.
  • strongNever the slop kit: gradient text, glassmorphism, icon-card grids, drop shadows, purple palettes.
  • coreNever hype copy. No exclamation marks, no supercharge, no unlock, no 10x.

the list above is divona’s own. this page obeys it.

Colours are the easy part.

Every AI builder already takes your colours and your components. The output still looks generated, because a colour file cannot say why your spacing feels calm, when your empty states stay quiet, or what your brand refuses under pressure.

Divona writes that layer down and carries it into every tool your team touches. Your judgement, shipping in places you never looked.

A white-line sheet lying flat in perspective, its near edge peeled back to reveal a solid lime underside — the layer beneath the surface

Change one rule. Watch the whole product move.

Divona is being built now. Join the beta and you’ll be told the day you’re let in.