Laws
AI now writes a growing share of what people read and act on in the browser. Four laws keep that work legible: who made it, whether it is still changing, what the AI may do next, and how to make it all stop.
Why laws
Guidelines get traded off against each other. Laws hold on every screen. Palette has four because an AI-rich interface has four new questions to answer at a glance, and each law answers one of them.
AI is not a law. It is the reason for the laws. A screen that mixes a person’s words, an interface’s controls and a model’s output needs clear rules for telling them apart, for showing what the model is doing right now, and for showing what it will and will not do on its own.
| Law | The question it answers | The rule |
|---|---|---|
| 1 · Colour | Who made this? | Ink is the person’s, lapis is the interface’s, pigment is the model’s. |
| 2 · Motion | Is it still changing? | Only the model’s live work moves. Settled content is still. |
| 3 · Reach | What may the AI do here? | Every control shows what the model may do there, before it does it. |
| 4 · Rest | How do I make it stop? | One shared beat. One Still switch stops everything. |
Law 1 · Colour
Ink is the person’s, lapis is the interface’s, pigment is the model’s.
Every screen has three authors, and each one gets its own layer of colour. Ink is everything a person wrote or chose. Lapis and the neutrals are the interface: controls, focus and structure. Pigment is everything the model wrote or proposed.
Pigment never turns into ink. When a person accepts what the model wrote, the pigment stops flowing and settles, but it stays pigment. The record of who wrote what survives acceptance, copying and saving.
Three state colours sit outside the layers: viridian for done, ochre for needs you, madder for errors. They mark outcomes, never decoration.
- Render model output in pigment from its first word. Don’t wait for it to finish.
- Keep accepted model text in still pigment. Acceptance changes motion, not authorship.
- Use solid tyrian where a gradient can’t be drawn: outlines, strokes, small marks and focus rings around model regions.
- Never use pigment for branding, headings or decoration. If it isn’t the model’s, it isn’t pigment.
Law 2 · Motion
Only the model’s live work moves. Settled content is still.
Motion is a signal, and a signal that never stops means nothing. In Palette, movement means the model is working: thinking, writing, or waiting for a person to review what it wrote. When the work settles, the motion stops.
The interface may respond to touch with brief motion: a sheet sliding up, a button settling back. Responses last one signal (280 ms) and play once. Nothing loops for decoration.
| What | Moves? | How |
|---|---|---|
| Model thinking | Yes | The model caret blinks; the model mark turns |
| Model writing | Yes | Words arrive behind a steady model caret |
| Model output awaiting review | Yes, slowly | Pigment flows once per beat |
| Accepted model output | No | Still pigment |
| Interface response | Briefly | One signal, 280 ms, once |
| Decoration | Never | — |
Law 3 · Reach
Every control shows what the model may do there, before it does it.
People need to know what the AI will and won’t do before it does it. Every control, field and region declares its reach with one of three marks, placed before its label.
| Mark | Reach | Meaning |
|---|---|---|
| Empty ring | Person only | Only a person may press or write here. The model can’t, even when asked. |
| Half ring | Model prepares | The model may fill it in or set it up. A person confirms. |
| Full ring | Model may act | The model may do this on its own, and says so when it has. |
Actions that can’t be undone are person only. They seal with a one-beat hold (Seal), and the largest need two different people (Quorum). Fields declare reach the same way, and each writer has a caret in its own colour (Caret).
Law 4 · Rest
One shared beat. One Still switch stops everything.
Every moving part keeps the same tempo: one beat of 2.4 seconds. A shared beat makes several live components read as one calm system instead of competing rhythms.
Motion has a cost. On an earlier Palette board with every component moving, the browser’s main thread stayed about 22% busy; with Still on, about 1.5%. So canvases share one clock, rest when their work is done, and sleep when they scroll off screen.
Still stops all motion in one switch, in the top bar and in Settings. It turns on by itself when a device asks for reduced motion. With Still on, every state must stay readable through colour, shape and words alone.
- Run every animation on the shared clock and let it rest. Return to stillness when the work is done.
- Keep three components or fewer in signal motion per screen.
- Pause anything off screen, including CSS animations on pseudo-elements.
- Test every component with Still on. If a state disappears without motion, give it a shape or a word.
Check a screen
Run these four checks on any screen before you ship it.
| Check | Law |
|---|---|
| Point at any piece of text. Can you tell whether a person or the model wrote it? | Colour |
| Does anything move that isn’t the model’s live work, or a brief response to touch? | Motion |
| Does every button and field show whether the model may use it? | Reach |
| Turn on Still. Does everything stop, and can you still read every state? | Rest |