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

PatternLives inUsedDocs
Buttonui/site/button.tsx52Open
Chips and radio tilesui/site/form.tsx3 formsOpen
Rerun controlui/site/rerun-button.tsx6Lives with its page
Text buttons (Back, Skip, Sign me up)in their forms5Lives with its page
Copy controlslogo-menu.tsx, the share row3Open

Links

PatternLives inUsedDocs
Text link, card link labelui/site/text-link.tsx18 and 3Open
Nav and footer linkssite-nav.tsx, site-footer.tsxevery pageOpen
Prose and citation linksprose.tsx, cite.tsxevery postOpen

Forms

PatternLives inUsedDocs
Field, label, error, sentui/site/form.tsx4 formsOpen
Calculator fieldsthe two calculators2 pagesOpen

Feedback

PatternLives inUsedDocs
Spinnerui/site/spinner.tsxButton, newsletterOpen
Status lightui/site/status-light.tsx3, 3 to moveOpen
Cookie bannerui/cookie-consent.tsxevery page, both surfacesLives with its page

Overlays

PatternLives inUsedDocs
Nav menusui/site/site-nav.tsxevery pageOpen
Logo menuui/site/logo-menu.tsxevery pageOpen
Definition tooltipdrawing-cost/pieces.tsx (Term)2 pagesOpen
Hint bubbleui/site/hint-bubble.tsx1Open
Dialogteam-pack/pick-up.tsx1Open

Disclosure

PatternLives inUsedDocs
Disclosure cardui/site/disclosure.tsx2Open
FAQ listui/site/faq.tsx7Open
Contents on a phoneui/site/post-toc.tsxposts, legal pagesLives with its page

Layout and sections

PatternLives inUsedDocs
Sheetui/site/sheet-shell.tsx29Open
Bandui/site/band.tsx97Open
Eyebrowui/site/eyebrow.tsx71Open
Title blockui/site/title-block.tsx6Open
Sheet frameui/site/sheet-frame.tsx7Open
Containers one, two, threeui/site/container.tsx48 on 13 pagesOpen
Paired splittyped per page3Open
Closing bandui/site/closing-band.tsxevery pageOpen
Page running ordersapp/(site)/8 shapesOpen

Imagery

PatternLives inUsedDocs
Dithered printspublic/site/backgrounds/6 prints, 9 filesOpen
Showcase panel, backdropshowcase-panel.tsx, backdrop.tsx5 and 3, plus every container oneOpen
Masthead photograph and scrimwritten per page5Open
Duotone and full colorscripts/prep-*.pythe shop, careersOpen
Figure plateui/site/figure.tsx101 in 16 postsOpen
Starfieldui/site/starfield.tsx1Lives with its page

Cards

PatternLives inUsedDocs
Card, link or factui/site/card.tsxproduct family, capability gridOpen
Capability grid and chipsui/site/capability-grid.tsx8 pagesOpen
Product familyui/site/product-family.tsx5Open
Post cards (lead, row, keep reading)ui/site/post-cards.tsx/blog, every postOpen
Release cardsthe homepage1Lives with its page
Shop tilesthe shop1Lives with its page

Proof

PatternLives inUsedDocs
Quoteui/site/quote.tsx2Open
Logo flip boardlogo-flip.tsx, lib/customer-logos.ts2Open
Stat stripui/site/stat-strip.tsx1Open
Case study setui/site/case-study.tsx2 pagesOpen
Post partspost-*.tsx, prose, cite, references, figureevery postLives with its page

Tables, charts and voice

PatternLives inUsedDocs
Drawing listui/site/drawing-package.tsx2Open
Comparison tableui/site/compare-table.tsx1Open
Revision recordui/site/revision-record.tsx1Open
Reference tableui/site/tolerance-grade-table.tsx1 postOpen
Donut and keysavings-calculator/calculator.tsx1Open
Voice rules and checklib/voice.ts, lib/voice.test.tsevery copy fileOpen

Marks

PatternLives inUsedDocs
Tolerance symbolsui/site/gdt-marks.tsx18Open
Feature glyphsui/site/feature-glyphs.tsx6Open
Revision flags, crosshaircapability-grid.tsx, cross.tsx3 and 9Open
Section numbersui/site/section-number.tsx148Open

Windows and motion

PatternLives inUsedDocs
Draggable windowui/site/draggable-window.tsx10Open
Self-drawn windows13 components13Lives with its page
Assembly demoui/site/assembly-demo/3Lives with its page
Reveal on scrollstyles/globals.css93Open
Dither groundui/dither-flow.tsx9Open
Marqueeui/site/marquee.tsx2Open

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.