Ship your component
A component is finished when the manifest describes it honestly, the CSS obeys the three rules, and a demo deck proves the numbers were found by rendering rather than guessed. This page is that list.
What ships
Section titled “What ships”lib/components/<bucket>/takeaway/ takeaway.manifest.json ← you write this takeaway.styles.css ← you write this takeaway.transform.js ← only if the DOM has to be rebuilt takeaway.docs.md ← GENERATED takeaway.gallery.md ← GENERATED takeaway.gallery.light.pdf ← rendered takeaway.gallery.dark.pdf ← renderedplus examples/takeaway.md ← the demo deck examples/takeaway.pdf ← its rendered PDFTwo files are yours. The build writes the rest from your manifest, so hand-editing any of them loses the edit on the next build.
The thirteen buckets
Section titled “The thirteen buckets”Every component lives in one:
anchor · statement · inventory · comparison · progression ·
evidence · imagery · chart · diagram · math · code · legal ·
connect
Seven mirror the Function axis; the rest are defined by what the author writes or by the domain.
The checklist
Section titled “The checklist”The contract
- The
function.formpair is one the system already sanctions. -
descriptionis a real sentence about when to reach for this. - Three to five
tags, each fromTAG_GROUPSinlib/components/index.jsand each shared with another component. -
slotsname every part, with a selector and a description each. -
skeletonis the smallest usable slide. -
sampleis real prose, not placeholder text. -
capacityanddensityare numbers you found by rendering. - A
stressDocat the hard limit. -
whenToUse— three or four entries. (Not gated. An empty one ships a docs page with a hole in it.) -
antiPatterns— three or four, each naming where to go instead. -
relatedcomponents, each with awhenclause. - Every declared variant has a
variantDocsentry.
The CSS
- Every color is
var(--token)or acolor-mix()of one. - Space is
paddingandgap. No margins beyond a baremargin: 0. - Every selector hangs off
> .cell-stage. - No
@layerwrapper. - Reflow rules, if any, match the manifest’s
adapt.mode.
Before you push
-
examples/takeaway.mdwritten, six to ten slides, PDF committed. -
npm run buildrun; nothing generated was hand-edited. -
npm run build:checkgreen. - The roster tests updated —
test/unit/forms/stage-catalog.test.jsat least. They are written to fail on a new component so the catalog cannot grow by accident. -
npm testgreen. - The light and dark gallery pages rendered — and looked at.
Do not list universal variants
Section titled “Do not list universal variants”Modifiers like dark, compact, accent and the state markers are added
to every component automatically, and listing them in your manifest’s
variants fails the build. That field is for variants specific to your
layout — numbered, four, three.
The commands
Section titled “The commands”npm run new:component -- takeaway --bucket statement \ --function statement --form canvas --substance structure
npm run preview -- examples/takeaway.md # fast visual loopnpm run lint:deck -- examples/takeaway.md # check against the catalognpm run build # regenerate docs + gallerynpm run build:check # the gatesnpm test # the unit suiteWhere to go next
Section titled “Where to go next”- Give it colors that are yours: Theme anatomy.
- Give the deck atmosphere: Finish anatomy.
- Browse what already exists before building more: the component reference.