Punch / Docs
v0.1 Figma Starter

Overview

Status update — v0.2 master cleanup (May 2026). The Figma master was simplified from 10 content pages to 5. Five legacy pages were removed: ▭ Showcase · Case Study, ▭ Showcase · Service Page, ▭ Showcase · About Page, ▭ Standard-Tier Wires, and 🗂 Copy Composition (the renamed Copy Layer Naming page). Showcase pages now compose in Cowork against the live design system; standard-tier pages are generated by the /website-design-amplifier:amplify Claude Code skill; the Copy Composition workflow has been retired entirely (no skill called punch-copy-sync exists). Figma is now a token repository, an exploration surface, and a handoff staging surface. See Figma-Master-Audit.md for the full cleanup record.

Punch's website workflow makes HTML/CSS the canonical design system — the sandbox/ folder is the source of truth. Figma is a token repository, a per-project visual exploration surface, and a handoff staging surface. The starter file is the scaffold that every per-client Figma file forks from.

Two files were built. A master starter with empty token slots, page-archetype wireframes, copy-naming conventions, and a handoff checklist. A sample client fork for a fictional architecture practice called Aldera, showing what the master looks like when populated.

Both files were saved to your Figma drafts. Move them into the Punch team when you're ready to share. Links are in the next section.

The two Figma files

Master Punch · Website Starter (Master) The scaffold. Fork this for every new client. 5 content pages (Cover + Foundations + Layout & Grid + Pattern Archetypes + Components + Handoff Checklist), 54 token variables, 45+ token-bound components.
Open ↗
Sample fork Punch · Aldera · Website (Sample Fork) Demonstrates a per-client file populated with brand tokens (emerald + cream + editorial type) and three hero explorations.
Open ↗

What's in the master

Every page exists for a specific reason. None are decoration.

01

✦ Cover & README

Purpose statement, fork instructions, ownership, what each page contains. Rewritten in v0.2 to drop the legacy framing.

02

◆ Foundations · Tokens

All 54 token swatches and specimens: color (19), type ramp (default H1–H6 + Body 22/16/14 + Eyebrow + Button, plus full Blog set), space scale (12 steps), radius (5 steps). Bound to the Punch Tokens variable collection.

03

⊟ Layout & Grid

Three breakpoint frames matching the QA gate spec: 1280 / 768 / 375. 12 / 8 / 4 cols. Containers 1120 / 720 / 327.

04

🪧 Brand Assets

The Brand Marks group, where designers drop the client's logo vectors on fork. Five canonical variants: Logo · Full Color (default — nav + footer use this), Logo · Reverse (mark branded, wordmark white — for dark sections), Logo · White (entire lockup white — for photo overlays / dark heroes), Mark · Full Color, Mark · White. Each exports to assets/logo-{slug}.svg via punch-component-export.

05

🧱 Components

The real component library: 45+ token-bound components. Primitives (Button set, Link, Input, Textarea, Tag, Avatar, Eyebrow, Icon), section pieces (Nav, Footer, SectionHeader, FeatureTile, Stat, Quote, ProjectCard, ProcessStep, MediaBlock), full patterns (Hero set, FeatureGrid, BentoGrid, StatStrip, Gallery, CTAStrip, IntroStatement, ServicesList, FeatureSplitRows, ProcessSteps, StickyLeadCards, StaggeredCards, ContentSplit, ManifestoBlock, EditorialDualImage), specialist sections (IntegrationGrid, ComplianceRow, ComparisonTable, FAQ, ResourceTeaser, NewsletterSignup, DemoForm, TeamGrid, TeamMember), and a complete mega-menu system (MenuLink, MenuColumn, MegaMenuFooter, MegaMenuPanel) — plus a MegaMenuPanel · Schema (for Claude Code) frame documenting the JSON data contract.

06

✅ Handoff Checklist

Tick boxes mapped to the workflow's six gates. Five sections: Before forking this master, ① Before Production runs amplifier, ② Before Dev starts the CMS pilot, ③ Before every gate (TDM QA against The Build), ④ Before Dev migrates to CMS. Rewritten in v0.2 to match the four real handoffs in the current process.

Removed in v0.2: Six legacy pages were deleted in the May 2026 cleanup — ▭ Showcase · Case Study, ▭ Showcase · Service Page, ▭ Showcase · About Page, ▭ Standard-Tier Wires, 🗂 Copy Composition (formerly Copy Layer Naming), and ⬚ Pattern Archetypes. The showcase scaffolds and standard-tier wires were superseded by Cowork composition + the Claude Code amplifier; Copy Composition was retired along with the never-built punch-copy-sync skill; Pattern Archetypes duplicated what Components already covers at higher fidelity. See Figma-Master-Audit.md for the full record.

The token schema

One Variables collection called Punch Tokens with 54 variables in a consistent dotted path: color/brand/primary, space/4, type/size/h1, etc. Master values are neutral placeholders (mostly grayscale, with a Punch red accent). Each client fork overrides values — never the structure.

What's in the Aldera fork

A fictional architecture practice in Portland called Aldera, with an emerald-and-cream editorial palette and a serif display font. Built to demonstrate four things every per-client fork does.

01

✦ Cover & Client Brief

Editorial cover in the client's brand. Project meta — tier mix, brand summary, dev target.

02

◆ Foundations · Tokens

Same schema as master, populated with Aldera's actual colors and type sizes.

03

🎨 Hero Explorations

Three stylistic options for the homepage hero. Art director picks one, designer codes it.

04

🗂 Copy Brief

The strategist's homepage.md with brief schema + notes on how the designer reads it.

Three pages were intentionally left empty as slots the project team fills during work: Homepage Composition, Showcase · Case Study (Aldera), Handoff to Dev. The fork's tokens collection (Aldera Tokens) carries 54 variables identical in schema to the master, with values for emerald primary, cream surfaces, ink text, and clay accents.

How copy flows in

The strategist owns content. The designer owns visual structure. They never edit the same surface — that's how you stop overwrites.

The contract

Strategists write each page as a structured Markdown brief in the project's content/ folder. The schema is fixed: every section type (hero, intro, feature_grid, cta, etc.) has named keys that map exactly to Figma text-layer names.

page: homepage
url:  /
tier: showcase

hero:
  eyebrow:    ARCHITECTURE · PORTLAND
  headline:   Buildings that plant.
  subhead:    Civic architecture for a warming Pacific Northwest.
  cta_label:  See our work
  cta_url:    /projects

intro:
  headline:   A studio that reads its site.
  body:       Aldera is a 12-person practice in Portland.

The designer's job with the brief

The designer reads the brief, then in Figma names every text layer to match the brief keys: hero.headline, feature_grid.0.title, cta.cta_label. The visible text in the Figma file is fill-in. The brief stays the source of truth.

Keeping them in sync

A Claude prompt called punch-copy-sync reads the Markdown brief and the Figma frame, returns a diff: missing sections, extra sections, mismatched copy. Run it before per-batch QA (gate 4). The creative-qa skill already does this kind of comparison for visual deliverables — copy sync is the same idea applied to text.

What this prevents. Strategists never touch Figma frames. Designers never edit the brief. If a designer needs a section that isn't in the brief, that's a content decision and pauses for the strategist. Scope creep gets surfaced, not absorbed.

Alignment with the Website Redesign Workflow

The Figma starter respects the workflow's first principle: HTML sandbox is canonical, Figma is exploration. A few specific alignments:

Workflow conceptWhere it lives in the starter
Sandbox spec (tokens.css, components.html, etc.) Lives outside Figma. Component Stubs page references it; tokens.css values mirror the Figma Variables.
Page tiering (80% standard / 20% showcase) Standard-tier pages are now generated by /website-design-amplifier:amplify directly from the homepage + sitemap — no Figma involvement. Showcase pages compose in Cowork against the live design system; Figma's role for showcase is exploration-only (early visual direction, optional structural staging).
Sitemap revisit gate (Gate 3, after homepage) Surfaced via the Handoff Checklist's "before Production runs amplifier" section.
Per-batch QA gate (Gate 5) Checklist includes brand, voice, all three breakpoints, copy diff, a11y, and "no hardcoded values." Run by TDM against amplified output, not against Figma frames.
Breakpoint spec (375 / 768 / 1280) Layout & Grid page hard-codes these three breakpoints with column counts and gutters.
"A human runs every step" Nothing in the starter implies autonomous generation. Claude is referenced only as a copy-sync and QA tool, never as a page-generator.

Handoff Checklist — replacement copy

The checklist page in the master Figma file (page 09) still reads against the old flow. Below is the replacement checklist, structured around the four moments where a real handoff happens in the new process. The art director (or whoever owns the Figma master) should paste this into the page on the next master pass.

Read this first. Handoffs in the new process are not "designer → dev." They are: (1) Lead designer → Production at the start of Phase 2 (run the amplifier). (2) Production → Dev at the start of Phase 2 (begin CMS pilot). (3) Production + Dev → TDM at every gate (QA The Build as it comes together). (4) Dev → Client at end of Phase 3 (final CMS migration). Most of what used to be "Figma handoff" is now amplifier input — the homepage + sitemap + tokens that the amplifier reads.

① Before Production runs /website-design-amplifier:amplify

Triggered: end of Phase 1, after Gate 3 (Sitemap Revisit). Owner: Lead Designer + PM verify together.

  • The homepage is built in code in sandbox/ and renders correctly at 1280 / 768 / 375.
  • site-llm (or equivalent compact site description) is current and includes voice, big idea, tone notes, and any blog/thought-leadership content the amplifier should fold in.
  • content/sitemap.yaml is final and matches what the client approved at Gate 3.
  • Design tokens are exported from Figma to tokens.css via punch-token-export and the homepage is bound to them — no hardcoded brand values anywhere in the homepage source.
  • The Punch Tokens collection in the Figma fork reflects the final brand values (the amplifier will read the exported tokens, not Figma directly, but they must match).
  • PM has confirmed Production has access to the project repo and Claude Code is configured.

② Before Dev starts the CMS pilot

Triggered: start of Phase 2, in parallel with Production amplification. Owner: TDM + Dev.

  • CMS target is confirmed (WordPress, HubSpot, Webflow, Sanity, etc.) and an empty instance is provisioned.
  • One page is selected as the CMS pilot — usually a standard-tier page so the harder cases come later. PM has flagged the choice in Asana.
  • The dev branch is set up, CI is green, and Production has a separate branch for amplified output so the two streams don't collide.
  • Blog/thought-leadership content source is identified (existing CMS export, archive scrape, or content doc) so blog migration can begin in Phase 2.
  • /website-to-static:convert has run on any reference material that needs to be ingested.

③ Before every gate (Phase 2 + Phase 3) — TDM QA against The Build

Triggered: every internal gate before showing the client. Owner: TDM, with Production support for amplified pages and Dev support for CMS-piloted pages.

  • All pages render at 1280 / 768 / 375 without layout breaks.
  • No hardcoded color, type, or space values — everything reads from tokens.css.
  • Copy matches the latest content briefs (run punch-copy-sync on any page that's been edited since last gate).
  • Brand voice is consistent — no boilerplate the amplifier may have invented that drifts from the client's tone.
  • WCAG 2.1 AA baseline: color contrast, focus states, semantic headings, alt text. (Run design:accessibility-review for any showcase page.)
  • Blog/thought-leadership pages are migrated and rendering with the new design system.
  • Internal links resolve to pages that exist in sitemap.yaml.

④ Before Dev migrates everything to the CMS for final client preview

Triggered: end of Phase 3, after The Build has been client-approved (Gate 6). Owner: Dev, with Production polishing CMS-format edits afterward.

  • Static preview is signed off — no outstanding visual or copy edits.
  • CMS content model is built and mirrors the page structure (page types, block components, taxonomy).
  • Dev has a rollback plan in case CMS migration introduces regressions vs The Build.
  • Production is queued to run CMS-format polish after Dev's migration (typography fine-tunes, image asset handling, any CMS-specific copy edits that the static format didn't constrain).
  • Forms, analytics, search, and any third-party integrations are configured and tested in the CMS.
  • 301 redirects from the old site are in place for any URL changes since the original sitemap.

Gaps and next steps

These are the holes in v0.1 — worth knowing about before the team starts using it.

No actual homepage scaffold. You de-prioritized this in the page-archetype list, but a v1.0 starter should probably have one. The case-study and service-page scaffolds are present. Add a homepage wireframe page to the master before rollout.
No real component library, by design. The Component Stubs page is intentionally empty. Per-client forks build their own. This is correct given "fully custom per client" — but it means designers have to build button/card/input variants for every project. Consider whether utility primitives (buttons, inputs, links) could safely be standardized in the master without hurting custom feel.
Tokens aren't yet bound to wireframe fills. The Foundations page shows the swatches and the Variables exist, but the placeholder wireframe blocks use static fills, not variable-bound fills. Bind variables to wireframe scaffolds so token overrides in a fork visibly cascade through pages. A 30-min cleanup pass.
No tokens.css export path. The Variables exist in Figma but there's no script to compile them to tokens.css for the dev sandbox. Either use Tokens Studio plugin for round-trip, or a small Figma API → Style Dictionary script. Lives outside Figma; design ops or dev owns it.
Skill files don't exist yet. The doc references punch-copy-sync, punch-token-audit, and punch-handoff-{webflow,nextjs,wordpress}. None of these are built. Build the four highest-impact skills first: copy-sync, token-audit, handoff-nextjs (since most projects), and one of webflow or wordpress depending on next project.
Hero Explorations in the Aldera fork is illustrative only. Real explorations would happen on a separate exploration page per project, with the chosen option moving into Homepage Composition. First real client project will refine this. Don't over-engineer it yet.

Onboarding course — parked

Designer onboarding is on the roadmap. The shape that fits Punch's culture is an interactive HTML walkthrough that mirrors the workflow doc's tone — a single self-contained file, not a PDF, with hands-on exercises rather than passive reading.

A working draft would include: a four-phase tour mapped to the workflow doc, a forking exercise where the designer duplicates the master and fills in Aldera-style tokens, a copy-naming drill matching Figma layer names to a sample brief, a per-batch QA simulation (designer is given a deliberately-broken design and has to find the issues), and a handoff exercise that produces a spec doc. The designer course lands first; strategist and dev courses share most of the workflow scaffolding with role-specific exercises swapped in.

This is a non-trivial build — probably a half-day to scaffold and another half-day to make it actually good. Pick this up after the v1.0 starter is in real use and you have a few real client projects to anchor the exercises against.