Inventory.
Every pattern the site actually uses, where it lives and how often, from an audit of the marketing site on October 9, 2026. Patterns with a page are documented; the rest are used in one place and live with it.
Actions
Links
Forms
Feedback
Overlays
Disclosure
Layout and sections
| Pattern | Lives in | Used | Docs |
|---|---|---|---|
| Sheet | ui/site/sheet-shell.tsx | 29 | Open |
| Band | ui/site/band.tsx | 97 | Open |
| Eyebrow | ui/site/eyebrow.tsx | 71 | Open |
| Title block | ui/site/title-block.tsx | 6 | Open |
| Sheet frame | ui/site/sheet-frame.tsx | 7 | Open |
| Containers one, two, three | ui/site/container.tsx | 48 on 13 pages | Open |
| Paired split | typed per page | 3 | Open |
| Closing band | ui/site/closing-band.tsx | every page | Open |
| Page running orders | app/(site)/ | 8 shapes | Open |
Imagery
| Pattern | Lives in | Used | Docs |
|---|---|---|---|
| Dithered prints | public/site/backgrounds/ | 6 prints, 9 files | Open |
| Showcase panel, backdrop | showcase-panel.tsx, backdrop.tsx | 5 and 3, plus every container one | Open |
| Masthead photograph and scrim | written per page | 5 | Open |
| Duotone and full color | scripts/prep-*.py | the shop, careers | Open |
| Figure plate | ui/site/figure.tsx | 101 in 16 posts | Open |
| Starfield | ui/site/starfield.tsx | 1 | Lives with its page |
Cards
| Pattern | Lives in | Used | Docs |
|---|---|---|---|
| Card, link or fact | ui/site/card.tsx | product family, capability grid | Open |
| Capability grid and chips | ui/site/capability-grid.tsx | 8 pages | Open |
| Product family | ui/site/product-family.tsx | 5 | Open |
| Post cards (lead, row, keep reading) | ui/site/post-cards.tsx | /blog, every post | Open |
| Release cards | the homepage | 1 | Lives with its page |
| Shop tiles | the shop | 1 | Lives with its page |
Proof
Tables, charts and voice
| Pattern | Lives in | Used | Docs |
|---|---|---|---|
| Drawing list | ui/site/drawing-package.tsx | 2 | Open |
| Comparison table | ui/site/compare-table.tsx | 1 | Open |
| Revision record | ui/site/revision-record.tsx | 1 | Open |
| Reference table | ui/site/tolerance-grade-table.tsx | 1 post | Open |
| Donut and key | savings-calculator/calculator.tsx | 1 | Open |
| Voice rules and check | lib/voice.ts, lib/voice.test.ts | every copy file | Open |
Marks
Windows and motion
Consolidated.
What the audit folded together on October 9, 2026, so each pattern has one source.
- Button gained a pending state (a spinner leads the label, which stays), a small size and onClick. Each form's own Sending... swap is gone.
- One disabled look: 60 percent and a not-allowed cursor. It was 60, 50 and 40 percent in different places.
- The field, label and chip recipes, the error box and the sent panel moved from three copies into ui/site/form.tsx.
- One focus mark for the whole site, a redline outline. Links, nav items and chips had the browser's default.
- The hard-coded green became the ok token in ten places.
- A status light component, now used by the rerun control, the boundary plate and the defense page's window.
- The cookie preferences save button is the site's Button, not a copy of its classes, and checkboxes take the redline accent like radios.
- A shared reduced-motion hook for new code.
- One Card for the site's boxes, as a link or a fact. The product family and the capability grid each typed it out; both use it now, measured identical.
- The blog's lead card, archive row and Keep reading card moved from two pages into ui/site/post-cards.tsx.
- The customer logo list was copied word for word on the homepage and /demo. It is one list in lib/customer-logos.ts.
- The calculators' Show the math card is one DisclosureCard, in a module a server page can import.
- A reversed plate for one element (.plate-reversed), since a bare .sheet-reversed anywhere on a page inverts all of it.
- The drawing list was copied on the aerospace and energy pages and had drifted; it is one DrawingPackage with both pages' data, measured identical.
- The comparison table moved off /product-features into its own module, unchanged.
- An audit of every page's copy for machine-written patterns: about 170 lines rewritten in plain engineering language, with a test (lib/voice.test.ts) that fails on hype words, stock phrases and em dashes.
Still open.
Where the site still builds one thing more than one way. Each is a working item, not a rule to copy. The one deliberate exception is the cookie banner, which copies Button’s look because it serves the Toolbox too, and the Toolbox may not import the site’s components.
- Window title bars are drawn by hand in about ten components, with dots at three sizes. Move them onto DraggableWindow's bar.
- Three status lights remain hand-drawn, two of them square (the integration round trip, the audit trail, the assembly demo).
- The reduced-motion check is still copied into twelve components. Move each to the shared hook.
- Quotes come in four treatments. Fold them into one Quote with variants.
- About nineteen pages type their title by hand while Hero sits unused. Make one page title component.
- Mono labels use seven different trackings. Settle one annotation scale.
- About five inline link recipes. Settle one.
- Offset shadows come at 6, 4 and 3px, and the window shadow at two strengths. Make them tokens.
- Some controls outside Button are rounded (the mobile menu toggle, the demo's restart, the hint bubble). Decide and square the rest.
- Unused components: Hero, LogoRow, CtaPlate, CrossGrid, PlaceholderVisual, DimDivider. Delete them, or revive Hero as the page title.
- Photo mastheads are built by hand on five pages (aerospace, energy, defense, the shop, philosophy). Each scrim is measured for its frame and stays with its page, but the band and its layers could be one Masthead.
- Two pages copy container two's 3:2 frame by hand: aerospace's THE MATH and energy's proof.
- The paired split is typed on /redliner, /product-features and the defense proof. Make it a component.
- The homepage's release cards tint on hover with nowhere to go, against the Card rule that a fact does not move. The hover was asked for; it waits for a changelog page to link to.
- The Redliner's CalloutExplainer reads its images from /reference/, the Toolbox's asset tree.
- Defense writes its own FAQ JSON-LD rather than FaqJsonLd.
- SITE.md §2 says grids carry crosshair corners; since the capability grid became separate cards no live page does. Settle it in the canon.
- The energy page's drawing list lacks the Drafted column aerospace gained on 2026-09-27. One prop turns it on.
- Ported meta titles and descriptions still carry AI-sounding wording on /demo, /solidworks-integration, /product-features, /about, /developer-application, /newsletter, /what-cad-do-you-use and the shop. Rewrites are drafted; changing a ported meta is a search decision.
- Ported headings kept for now: "Your CAD. Drafter. Integrated." (the homepage and /solidworks-integration; the NX page already changed), "Built for serious engineers." (/newsletter, echoed on the shop), the homepage security heading and "Trusted by hardware teams shipping real products".
- Lines from the 2026-09-27 feedback round were rewritten with the rest (the /mbd headline, the Blueprints and Assembly headings). Revert any that were chosen deliberately.
- The 16 ported blog posts read most machine-written of anything on the site (runout, profile, flatness, perpendicularity and the definitive guide worst). Each post's summary is also its meta description.