Stop policing
production
Your design tokens, components and pages are data in your product repo. Every change ships as a contrast-checked pull request, so drift is structurally impossible.
Private beta. No spam. One email when I open access. Privacy
Tokens
This demo is live. Edits restyle this page, and the gate blocks the pale swatch because it fails contrast.
Canvas
{
"color": {
"accent": {
"$type": "color",
"$value": {
"colorSpace": "srgb",
"components": [0, 0.298, 0.875],
"hex": "#004cdf"
}
}
},
"radius": {
"base": {
"$type": "dimension",
"$value": { "value": 4, "unit": "px" }
}
}
}Plain DTCG. The value is the only thing your edit changes.
You made the decision in thirty seconds. You'll be enforcing it for a year
Approved, documented, handed off. Then the real job starts.
The DM asking for the exact hex
It arrives the week after handoff, and every week after that.
The QA pass that catches the wrong gray
Your file was right. Production drifted anyway, one hardcoded value at a time.
The audit that finds a contrast failure
A failure that was never in your file, found after it shipped.
Every tool in your stack exists to manage the gap between design and production.
Kampa removes the gap. There is nothing left to police.
Not another component library In pilot
Tokens were the first level. Components are the next: every project starts with twenty, each one bound to your tokens and graded by the same gate before anything can ship.
| Variant | rest | hover | active |
|---|---|---|---|
| primary | 6.8:1 | 8.1:1 | 9.6:1 |
| secondary | 6.8:1 | 6.2:1 | 5.6:1 |
| Variant | rest | hover | active |
|---|---|---|---|
| primary | 5.9:1 | 6.8:1 | 7.8:1 |
| secondary | 6.0:1 | 5.6:1 | 5.1:1 |
Live: pick a color in the demo above and every cell re-grades. The swatch you pick carries a light and a dark value, and both have to pass.
Twenty starters
- Button4 variants, 3 sizes
- Input3 sizes
- Checkboxnative states
- Cardtitle, body, footer
- Badgeinfo, success, warning, error
- Alerticon, title, body
Plus Link, Textarea, Select, Radio, Switch, Separator, Avatar, Field, Dialog, Accordion, Navigation, Breadcrumb, Table and Pagination.
Repoint any slot to another token, per variant, per state and per part. Every state the native element has, from hover and focus to disabled and invalid.
Bound, not copied
Every slot is an alias to one of your tokens, never a raw value. Change the token and every component follows.
Every permutation graded
Text on fill, in every variant, state and mode. A component that fails blocks the push.
Plain files in your repo
A DTCG document per component, next to your tokens, plus the CSS and an HTML snippet generated from it. You need neither Kampa nor its docs to read or use one.
Whole pages from your own components Beta
Assemble a page on a canvas from the components you already have. It is graded by the same gate and ships in the same pull request.
Layers
- boxlayout
- stacklayout
- FieldEmail
- FieldPassword
- CheckboxRemember me
- Buttonprimary
- Linkdefault
Two kinds of node: an instance of one of your components, or a layout node that places its children.
- Button label on fill6.8:1
- Link on surface6.8:1
- Button label on fill5.9:1
- Link on surface6.0:1
Live: the page reads the same tokens as everything above. Pick a color in the demo and both frames re-grade.
Only your components
A page is a tree of component instances and layout nodes. No free geometry, and every value is a token.
Graded where it sits
Every component is checked on the background it sits on, in every mode. A page that fails blocks the push.
Plain files in your repo
One document per page, next to your components, plus the HTML and CSS generated from it.
What no other tool in your stack does
Your taste, enforced on every agent, every dev, every future edit.
Made by the designer, not relayed
You change the values that ship on a visual surface, not through a prompt or a ticket. The edit you make is the edit that reaches production.
Blocked before the write
A failing pair never reaches your repository, and the gate names what stopped it. Low contrast ships only as an explicit exemption, never as an accident.
Delivered as a pull request
Every change is a branch and a pull request in your repository. You choose who merges it: a reviewer, or the check.
One decision underneath all three
Your tokens, components and pages live in your product repository, and your design tool, docs, production and AI tools all read them. There is no sync step, so nothing can fall out of sync.
A real pull request,
not a copy of one
Token sync tools borrow the language of engineering, but review happens in their app, on their audit trail. In Kampa, a change is a pull request in your repository.
Decide
Edit tokens, components and pages in Kampa, on the values that ship, not a picture of them.
Check
The gate grades every pair, every component permutation and every page before a commit exists.
Ship
Kampa opens a pull request in your repository: your reviewers, your branch protection, your merge button. The audit trail is your Git history, which outlives every vendor, including Kampa.
kampa wants to merge 1 commit into main
- Kampa contrast check14 of 14 pass · button 12 permutations
- Buildyour CI, unchanged
The model proposes. Kampa disposes
An agent ships whatever it happened to write, and someone still reads every line to be sure. A change from Kampa is one validated artifact, contrast-checked before the pull request exists, and any agent you connect goes through the same gate.
Tokens, components,
pages. Flows next
Every level of the product will live as production code, and every change will ship the way you made it. Three levels are in: tokens are live, components are in pilot, and Pages, with its canvas, is in beta.
Tokens
Color, type, spacing, radius. Live for pilot teams now.
Components
Twenty starters, from button to table. Every slot bound to a token, every permutation graded.
Pages
Whole pages assembled from your own components on a canvas. Graded by the same gate, shipped in the same pull request.
Flows
Journeys end to end. From a single token to a full front end.
Stop drawing pictures of your design system
Tokens, components and pages as production data. Every change a pull request, contrast-checked before it ships.
Free for solo use at launch. Paid plans for teams. Privacy
Who's building this
I'm Tonda Pospíšil, and I spent twenty years designing fintech and enterprise products, watching approved decisions degrade on their way to production. Kampa is the tool I needed on every one of those teams, and I'm building it solo with a small group of pilot testers.
Tonda on LinkedIn