Phase 5 of the concinnitas design process — apply brand expression, visual identity, typography, color, and motion to the structural foundation using design tokens. Produces branded design specifications and visual designs in Paper.design. Use when running /con:expression after the system is defined.
Now color feels intentional because it's tied to tokens. Typography feels cohesive because it follows a scale. Motion feels consistent because it uses shared timing values. Polish becomes refinement, not rescue.
.concinnitas/.active to find the active track..concinnitas/ (exclude .active)..concinnitas/.active). Inform the user: "Auto-selected track '[name]'."/con:track <name> to select one."/con:track <name> first."manifest.yaml.1-discover and 3-structure and 4-system must be .
completed3-structure is missing: "Structure (Phase 3) is required. Run /con:structure first."4-system is missing: "Design system (Phase 4) is required. Run /con:system first."5-expression is completed:
5-expression.status to in_progress.Read these artifacts:
.concinnitas/<track>/01-discover.md — for brand constraints and audience.concinnitas/<track>/03-structure.md — for the views and hierarchy to apply expression to.concinnitas/<track>/04-system.md — for the token system to use"What adjectives best describe the brand personality? Select all that apply."
"Do you have existing brand assets we should work with?"
"Based on the brand personality and the type scale from Phase 4, what typeface direction?"
"Looking at the color tokens from Phase 4, how should brand color map to the semantic system?"
04-system.md"What style of imagery and icons will this product use?"
"Based on the motion tokens from Phase 4, how should animation feel when used?"
"What's the one visual element that should make this product instantly recognizable? The thing someone remembers after seeing it once."
.concinnitas/<track>/05-expression.md.# Design Expression
## Brand Foundation
- **Personality:** [adjectives]
- **Visual signature:** [the memorable element]
- **Voice:** [how the brand communicates — confident, casual, precise, etc.]
## Typography Application
| Role | Typeface | Mapped Tokens | Usage |
|------|----------|--------------|-------|
| Primary / Headings | [font name] | `text-lg` through `text-display` | Headlines, section titles |
| Body / UI | [font name] | `text-xs` through `text-base` | Body copy, labels, inputs |
| Accent / Code | [font name] | [specific tokens] | [specific usage] |
### Font Loading
- **Hosting:** [Google Fonts / self-hosted / system fonts]
- **Weights needed:** [list]
- **Fallback stack:** [CSS font stack]
## Color Application
| Semantic Token | Token Value | Brand Intent |
|---------------|------------|--------------|
| `interactive-primary` | [hex from system] | [brand meaning — e.g., "trust, action"] |
| `background-primary` | [hex] | [meaning] |
| `text-default` | [hex] | [meaning] |
...
### Color Usage Rules
- **Primary brand color appears in:** [where — buttons, links, headers, etc.]
- **Secondary color is used for:** [where]
- **Neutral palette handles:** [where]
- **Status colors are strictly functional** — not used for brand expression
## Imagery & Iconography
| Element | Style | Source | Rules |
|---------|-------|--------|-------|
| Icons | [line/filled/custom] | [icon set name] | [size: 20px/24px, stroke: 1.5px, etc.] |
| Images | [photo/illustration] | [source] | [aspect ratios, treatments] |
## Motion Language
| Interaction | Token | Feel |
|-------------|-------|------|
| Button press | `duration-fast` | [snappy confirmation] |
| Page transition | `duration-normal` | [smooth slide] |
| Modal open | `duration-normal` | [scale + fade] |
| Loading state | `duration-slow` | [gentle pulse] |
### Easing Curves
- **Enter:** [curve] — elements appearing
- **Exit:** [curve] — elements leaving
- **Move:** [curve] — elements repositioning
## Applied Views
### [View Name] (from structure)
- **How it transforms:** [description of grayscale → branded]
- **Key brand moments:** [where the brand is most visible in this view]
- **Token mapping:** [which tokens are most important here]
### [Next View...]
...
Check for Paper MCP availability by attempting to call get_basic_info. If it responds, Paper is available.
This is the richest visual output phase. Transform the grayscale wireframes from Phase 3 into branded designs.
Read structure artboards: Call get_children on the root to find the "Structure — [View]" artboards from Phase 3. For each, call get_jsx to get the structural HTML.
Find placement: Call find_placement before each artboard to get coordinates that avoid overlapping existing artboards.
Create expression artboards: For each structured view, call create_artboard:
"Expression — [View Name]"Write branded HTML: Call write_html with the structural HTML transformed to use the design system:
font-familyRefine styling: Call update_styles to fine-tune after the initial write:
Show progress: Use start_working_on_nodes before creating artboards, finish_working_on_nodes after all are written.
Quality bar: The output should look like a designed product, not a wireframe with colors. The layout accuracy comes from Phase 3's structure. The visual refinement comes from the token system. Together, they produce something that represents the design intent — though manual polish in Paper may be needed for production-readiness.
Note: "Visual designs were not generated (Paper.design not connected). The expression specification above contains all brand application rules. Connect Paper.design MCP to generate branded visual designs."
manifest.yaml:
5-expression.status to completed5-expression.completed_at to current ISO timestampcurrent_phase to 6/con:validate to check the design against reality."