Documentation
Composition
How color, typography, and spacing work together. Individual foundations define each axis. Composition defines how they interact.
Purpose x Surface Matrix
Composition rules are organized by purpose (what the page does) and surface (what medium it’s on). The same surface can serve different purposes with different composition logic. A homepage (persuade) and a case study (inform) are both web pages, but they compose differently.
Surface Registers
Each web-page purpose type has a dominant emotional register that describes how it earns trust. Registers are not enforceable rules. They guide judgment calls when the coupling rules don’t prescribe an answer. Brand values are expressed through concrete guardrails (coupling rules, ceilings, floors), not declared as labels on composition cells.
With 60%+ of traffic arriving from LLMs with intent already shaped, each page must earn trust within its own scroll. The register describes the trust-earning sequence built into the page’s composition.
| Purpose | Register | Trust sequence |
|---|---|---|
| Persuade | Restraint earns trust | Conformity (hook) > credibility (evidence) > craft (turn) > conviction (close) |
| Inform | Clarity earns trust | Question (arrival) > answer (scannable) > depth (available, not forced) |
| Analyze | Competence earns trust | Status (KPI strip) > detail (drill into panels) > action (alerts) |
| Convert | Focus earns trust | Value (one sentence) > options (max 3) > reassurance > action (single CTA) |
| Narrate | Honesty earns trust | Curiosity (opening) > understanding (episodes) > respect (reflection) > thinking (closing) |
| Assist | Competence earns trust | Answer first > evidence (citations, data) > depth (interactive artifacts) |
| Identify | N/A (single moment, not a trust sequence) | Recognition in under 3 seconds. No narrative arc. |
| Instruct | N/A (machine-to-machine, structural) | Rule clarity > completeness > enforceability. No visual register. |
| Demonstrate | Revelation earns trust | Curiosity (hook) > comprehension (context) > revelation (evidence) > conviction (turn) > credibility (proof) > action (close) |
| Purpose | What it does | Color budget | Spacing | Rhythm |
|---|---|---|---|---|
| Persuade | Sell, convince, inspire | Trust + 1 earned accent | Generous (4-14rem; see coupling rules) | Narrative arc |
| Inform | Explain, document, teach | Teal only | Tight (3rem sections) | Steady, scannable |
| Analyze | Show data, monitor, compare | Full palette | Compact (1-3rem panels) | Dashboard grid |
| Convert | Drive a single action | 1 accent (CTA only) | Focused (4rem) | Linear funnel |
| Identify | Brand recognition in seconds | Teal only | Surface-constrained | Single moment |
| Narrate | Tell a story with depth | Illustrative (in figures) | Generous (5-8rem) | Episode + figure pairs |
| Assist | AI interaction (chat, embedded) | Monochrome + functional | Content-driven | Conversational |
| Instruct | Machine-to-machine | N/A (structural) | N/A | Rule clarity |
| Demonstrate | Show product capability through data | Trust + data_viz exception | Generous (4-14rem; see coupling) | Revelation arc |
Defined Cells
| Purpose x Surface | Status | Tracking |
|---|---|---|
| Persuade x Web page | Defined | Narrative roles, coupling rules, whitespace principle |
| Persuade x Ad banner | Defined | Z-pattern, max 4 elements, 30% whitespace |
| Persuade x Email | Defined | Single column 600px, system fonts, 1 CTA per section |
| Persuade x Slide deck | Defined | 10-15 slides, 24pt floor, dark bookends, single turn (investor pitch / general). Four sales-collateral genres add genre-conditional rules (encoded via the YAML modes: field): pilot kickoff (12-20pp, CUSTOMER-CONFIDENTIAL, full lockup), customer 101 (15-25pp, PUBLIC), partner enablement (20-30pp, PARTNER-CONFIDENTIAL), internal team (8-15pp, INTERNAL ONLY, wordmark only). See categories/slides/ and workflows/sales-collateral.md |
| Persuade x Whitepaper cover | Experimental | Three genres (lab_tradition, policy_brief, ceo_brief). Cover-only page 1, deck-to-byline 1.4-2.6in, genre determines author convention + CTA labeling + disclosure pattern. See categories/whitepapers/cover.md |
| Persuade x One-pager | Experimental | Single Letter page, scanned cold. Two genres: solution_overview (3 evidence callouts, metric-led) and comparative (5-12 numbered items + thesis block, argument-led). Required CTA strip. Inherits sales-collateral universals from slides cell. See categories/one-pagers/guide.md |
| Persuade x Case study | Experimental | Single genre. Dual render target (web canonical + PDF mirror, parity required). Six required sections: executive summary -> problem -> approach -> outcome (single bolded anchor metric) -> quote (named operator + role + organization or explicit redaction) -> replicate. See categories/case-studies/guide.md |
| Inform x Web page | Defined | Metronomic rhythm, 3rem padding, 65ch line length |
| Inform x Slide deck | Defined | One idea per slide, 60% whitespace, teal in diagrams |
| Analyze x Dashboard | Defined | 12-col grid, full palette, 13-14px body, tabular-nums |
| Convert x Web page | Defined | 4-role funnel, single CTA, max 3 tiers, micro-reassurance |
| Identify x Ad banner | Defined | Teal only, 3-8 word tagline, Z-pattern |
| Identify x Hardware | Defined | One teal accent, neutral housing, single wordmark |
| Narrate x Web page | Defined | Episode + figure pairs, 1.7 line-height, color in figures not backgrounds |
| Assist x Chat | Defined | Flat layout (no bubbles), 680-720px, competence over personality |
| Assist x Embedded | Defined | Visual marker for AI content, provenance metadata, EU AI Act compliance |
| Instruct x Machine | Defined | Floors AND ceilings, id paths, canonical tokens only |
| Demonstrate x Web page | Defined | Pretext + Canvas effects, revelation arc, max 2 animated per viewport, effects exclusive to this cell |
For implementation patterns (hero sections, stats rows, trust bars, CTA strips), see categories/web-components/page-sections.md.
Persuade x Web Page
For homepages, landing pages, and campaign pages. Narrative pacing with coupling rules.
Narrative Roles
Each section on a persuasive page serves a role in the story. The role determines its visual treatment.
| Role | Purpose | Color | Type | Padding |
|---|---|---|---|---|
| Hook | First impression, value prop | Full expression (dark bg, teal) | H1 (4rem) | 8rem |
| Context | Set up the problem | Breathing room (neutral.200) | H2 (3rem) | 4rem |
| Evidence | Show proof | Supporting (teal label, white bg) | H2 + cards | 4rem |
| Turn | Shift the feeling | Earned accent (tint + border + label) | H2 + stats | 5-10rem |
| Proof | Hard numbers, logos | Supporting (teal label) | H2 + body | 4rem |
| Close | Final CTA | Full expression (dark bg) | H2 | 8-14rem |
Arc Rules
- Every page needs a hook and a close
- At most one turn (the earned accent moment)
- Max 3 consecutive low-energy sections before a turn or visual break
- The turn should follow at least one evidence section
Minimal Arc (Short Pages)
Pages with 3-6 sections (product, solution, partner pages) use a reduced arc: Hook → Evidence(s) → Close. No turn required – the page is too short for the earned accent to land. Hook and close remain mandatory.
Coupling Rules
Color, type, and spacing aren’t independent on a persuasive page. They’re coupled. All spacing values are responsive – mobile gets less padding to avoid wasting screen real estate.
Color to spacing: Visual weight needs room.
| Background | Mobile (< 640px) | Tablet (640-767px) | Desktop (768px+) |
|---|---|---|---|
| Dark (L < 0.3) | 4-6rem | 6-10rem | 8-14rem |
| Tinted (chroma > 0.01) | 3-5rem | 4-7rem | 5-10rem |
| Neutral | 3-4rem | 3-5rem | 4-6rem |
Color to typography: Background changes how text reads.
- Tinted or dark backgrounds: body line-height 1.65-1.75 (looser than 1.6 default)
- Tinted or dark backgrounds: max line-length 65ch (tighter than 75ch default)
- Dark backgrounds: body letter-spacing +0.01em to +0.03em
Type to spacing: Larger headings need more room.
| Heading | Mobile | Tablet | Desktop |
|---|---|---|---|
| H1-led | 4rem+ | 6rem+ | 8rem+ |
| H2-led | 3rem+ | 4rem+ | 5rem+ |
| H3-led | 3rem+ | 3rem+ | 4rem+ |
Section Role Tokens
Pre-mixed CSS custom properties for narrative role backgrounds. Use these instead of hardcoding hex/HSL values.
| Token | Light mode | Dark mode | Use for |
|---|---|---|---|
--section-hook-bg |
neutral.950 | midnight-purple tinted dark | Hook, hero sections |
--section-hook-fg |
neutral.50 | neutral.50 | Text on hook/hero |
--section-context-bg |
neutral.100 | neutral.900 | Context sections |
--section-evidence-bg |
white | neutral.950 | Evidence, proof sections |
--section-turn-bg-from/to |
warm gradient (6%/4% opacity) | warm gradient (8%/5% opacity) | Turn section gradient |
--section-turn-border |
cyber-yellow/40% | cyber-yellow/40% | Turn left border |
--section-close-bg |
neutral.950 | deeper midnight-purple tint | Close/CTA sections |
--section-close-fg |
neutral.50 | neutral.50 | Text on close sections |
Dark-on-dark differentiation: hook uses hsl(262, 30%, 8%) and close uses hsl(262, 30%, 6%) – both midnight-purple tinted, subtly different from the page background (neutral.950 = hsl(240, 10%, 4%)).
Ghost vs Ghost-on-Dark Buttons
| Button variant | Use on | Why |
|---|---|---|
| Ghost (secondary) | Light backgrounds (context, evidence, proof sections) | Uses neutral.200 border – visible on light |
| Ghost-on-dark | Dark backgrounds (hook, close, hero sections) | Uses white/60 border – visible on dark |
Rule of thumb: if the section uses --section-hook-bg or --section-close-bg, use ghost-on-dark.
Logo Display Mode
| Logo count | Display | Why |
|---|---|---|
| ≤ 5 | Static grid | All visible at once, no motion needed |
| 6+ | Marquee scroll | Too many for a single row without overflow |
Whitespace Principle
Generous whitespace is the primary signal of quality on persuasive pages. Perceived luxury correlates with empty space (spatial color efficacy research). When in doubt, add more space, not more content.
See rules/visual-rules.yml -> composition.persuade-web-page for the machine-consumable version.
Narrate x Web Page
For long-form editorial essays, design retrospectives, case narratives. Not persuade (no funnel). Not inform (not flat). The reader follows a journey with depth.
This purpose type was created when the evolution essay needed composition rules and no existing type fit. The framework grew to accommodate a surface it couldn’t serve.
Structure
Narrate uses episodes, not narrative roles. Episodes are prose + figure pairs, repeatable in any order.
| Element | Purpose | Color | Padding |
|---|---|---|---|
| Opening | Set the scene | Full or supporting | 8rem |
| Episode | A chapter with prose + figure | Breathing or supporting | 5rem |
| Figure | Visual evidence within an episode | Varies (the figure itself may use any intensity) | 3rem margin |
| Reflection | Honest assessment of limits | Breathing | 5rem |
| Closing | Invitation, not CTA | Full or supporting | 8rem |
Key Differences from Persuade
- Color is illustrative, not atmospheric. Color appears inside figures (specimens, before/after comparisons), not as section background tints. Between figures, the page is neutral.
- No marketing patterns. No CTA buttons in prose. No gradient strips. No card grids as content. The page is an essay.
- Body text is 1.125rem at 1.7 line-height. Looser than the 1.6 base default.
- The closing is an invitation, not a conversion. The reader leaves thinking, not clicking.
When to Use Narrate
Design essays, retrospectives, case studies with depth, process documentation that tells a story. If the piece has a beginning, middle, and end and the reader should experience the journey (not just scan for information), it’s narrate.
See rules/visual-rules.yml -> composition.narrate-web-page for the machine-consumable version.
Site-Level Composition
Page-level composition governs sections within a page. Site-level composition governs how pages relate to each other across a visit. Individual pages are self-contained (each earns trust within its own scroll), but visitors who navigate between pages will notice if every page uses identical composition. The site needs an arc too.
Page Hierarchy
Not all pages have equal visual weight. Tier controls two things: hero scale (how loud) and color budget (how many accent moments a page can earn). A third axis, hero posture, is separate and is covered in Hero Posture below.
| Page tier | Hero scale | Default posture | Turn allowed | Color budget | Example |
|---|---|---|---|---|---|
| Primary (1 page) | Full (8rem padding, gradient strip, H1 at 4rem, 50rem max-height) | authoritative | Yes | Trust + 1 accent | Homepage |
| Secondary | Standard (5rem padding, H1 at 3rem) | authoritative | Only if 6+ sections | Trust only | Product, Platform, Hardware, Solutions |
| Tertiary | None. Section opens directly with H1. | No | Trust only | Docs, blog, legal | |
| Convert | Minimal (single heading + CTA) | authoritative | No | 1 accent (CTA) | Pricing, demo request, signup |
The homepage owns the full-scale hero with gradient strip. If secondary pages also use full-scale heroes, the homepage loses its primacy and the site feels like a collection of landing pages rather than a coherent product. Default posture is the tier’s baseline, not a requirement. Individual pages override posture when the visitor’s posture differs from the tier default (see Hero Posture).
Hero Posture
Posture controls how the hero reads, not how loud it is. The three postures map to three visitor jobs. Pick posture based on why the visitor is on the page, not what tier the page sits in.
| Posture | Background | Foreground | Stat cards | Signals | When to use |
|---|---|---|---|---|---|
| authoritative | color.semantic.hero-authoritative-bg (neutral.950) |
color.semantic.hero-authoritative-fg (neutral.50) |
frosted glass on dark | product authority; “pay attention” | Product evaluation pages. Visitor is in consideration stage: platform, hardware, solutions, homepage. |
| belonging | color.semantic.hero-belonging-bg (brand.verdigris) |
color.semantic.hero-belonging-fg (neutral.50) |
frosted glass on teal | identity; “who we are” | Identity pages where teal is warmth, not accent: About, mission, investors. Capped at 2 pages per site. |
| restrained | color.semantic.hero-restrained-bg (neutral.50) |
color.semantic.hero-restrained-fg (neutral.950) |
card bg with 1px border (neutral.200) | technical, understated; lower-intensity brand expression | Awareness-stage surfaces (industry landings from search), recruiting, and partner pages. |
All three postures are expressions of the same brand pillars (Precision, Masterful, Refined, Pioneering) at different intensities. Posture picks weight, not warmth. Verdigris does not soften its voice across surfaces; it just dials intensity.
Authoritative is the full-weight expression and the default for product-evaluation pages. The dark background creates visual weight and signals serious infrastructure. A data center VP clicking through /platform expects this.
Belonging is the brand pillar Refined expressed at identity level. Says “this is who we are,” not “this is what we sell.” Reserved for identity pages. More than two belonging heroes across a site dilutes the About page’s singular role and turns brand teal into wallpaper.
Restrained is the low-intensity expression for pages where full authoritative weight would over-sell. An industry landing arriving from search, a careers page, a partner page. Light background, dark text, teal still used as precise accent, typography still understated. Not warmth, not photography-forward, not “here is how we help your world.” Restrained means less weight, same pillars.
Posture is independent of scale. A secondary-scale hero can be authoritative (product page) or restrained (industry page). Don’t read the table left-to-right: tier picks scale, posture picks intensity, and the two decisions are made separately.
Cross-Page Turn Scarcity
The turn moment (earned accent) is powerful because it’s rare. At page level, the rule is “at most one turn per page.” At site level: at most one turn per 3-page navigation depth. In practice, this means the homepage gets the turn and secondary pages do not, unless the visitor is deep enough (3+ clicks from homepage) that the earlier turn has faded.
If every page has a turn, the accent becomes wallpaper. The scarcity rule preserves its emotional impact.
Accent Diversity
When multiple pages do use accent moments (homepage + a deep product page), they must use different palette regions. If the homepage turn uses midnight-purple (energy region), the product page turn should use cyber-yellow (results region) or skip the turn. Two identical accents in a session feels like a template, not a design.
Purpose De-Escalation
Visitors typically move from high-energy pages (persuade) toward low-energy pages (convert, inform). The visual intensity should de-escalate to match. Intensity is the combination of scale (full > standard > minimal > none) and posture (authoritative > belonging > restrained); reducing either axis de-escalates.
| Transition | Intensity shift | Why |
|---|---|---|
| Persuade → Persuade | Reduce: standard scale or restrained posture; no turn unless 6+ sections | Avoids pitch fatigue |
| Persuade → Inform | Reduce: no hero, metronomic rhythm | Visitor wants answers, not spectacle |
| Persuade → Convert | Reduce sharply: minimal scale, single CTA, no turn | Focus earns trust at decision point |
| Inform → Convert | Maintain: both are low-energy | Natural transition |
| Any → Narrate | Reset: narrate has its own register (honesty) | Editorial stands alone |
Navigation Continuity
Header and footer are the compositional spine, consistent across every page.
- Header: lightest element on every page. Breathing room. No per-page header styling. The header provides orientation; the page provides expression.
- Footer: always dark. Provides closure. Same structure across pages. The footer is the site’s consistent ending, not a per-page design surface.
- Breadcrumb / wayfinding: uses teal as functional color (trust region). Not decorative.
These invariants make page-level variation feel coherent. Without them, a dark homepage followed by a light product page feels like two different sites.
Entry Point Awareness
Not every visitor starts at the homepage. With 60%+ arriving from LLMs, many land on secondary or tertiary pages. Site-level composition must accommodate this:
- Every page works standalone (the self-contained rule from page-level composition)
- But pages also work in sequence (the de-escalation and scarcity rules above)
- When in conflict, standalone wins. A product page must earn its own trust even if the visitor skipped the homepage.
See rules/visual-rules.yml -> composition.site-level for the machine-consumable version.
Spoken Voice
How Verdigris sounds when content is spoken aloud. Extends the written voice rules from Assist x Chat to any surface with audio output: video narration, AI assistant speech, ad voiceovers, accessibility.
Voice Pillars
The same brand pillars that govern written voice govern spoken voice. Each maps to a concrete vocal quality.
| Pillar | Written rule (Assist x Chat) | Spoken equivalent | Floor | Ceiling |
|---|---|---|---|---|
| Precise | Exact values, no hedging, citation-forward | Measured pace, clear enunciation, no filler words | 140 wpm | 170 wpm |
| Masterful | AI as infrastructure, no personality theater | Calm authority, steady pitch, no vocal fry or uptalk | Pitch variance: 30Hz | Pitch variance: 80Hz |
| Refined | Interface disappears, content dominates | Unhurried delivery, natural pauses at clause boundaries | Pause at periods: 400ms | Pause at periods: 700ms |
| Pioneering | Active artifacts, response IS the tool | Confident forward momentum, no hedging qualifiers | N/A (behavioral) | N/A (behavioral) |
Single Voice, Purpose-Adapted
One primary voice builds brand recognition (like teal). Style parameters adapt by purpose.
| Purpose | Adaptation | Example |
|---|---|---|
| Persuade (video, ads) | Warmer, slightly slower. Earns trust through restraint. | Brand video narration, webinar intro |
| Inform (docs, tutorials) | Neutral, steady, scannable rhythm. Clarity over feeling. | Product walkthrough, help content |
| Analyze (dashboards) | Clipped, precise. Data-forward. Faster pace. | Alert readout, KPI summary |
| Narrate (case studies) | More spacious, natural. Room for reflection. | Case study video, retrospective |
| Assist (AI chat) | Direct, professional. Answer-first cadence. | AI assistant reading a response aloud |
Voice Brief Format
A voice brief is the spoken equivalent of a color token: a declarative description that a TTS pipeline resolves into audio. The brief should be specific enough to reproduce consistently.
voice.brand.primary:
age_range: [pending stakeholder decision]
gender: [pending stakeholder decision]
qualities:
- calm authority without coldness
- measured pace, unhurried but not slow
- clear enunciation, no mumbling or trailing off
- natural breath pauses at clause boundaries
- steady pitch with subtle emphasis on key data
anti-qualities:
- no vocal fry or uptalk
- no filler words (um, uh, like, you know)
- no breathy or ASMR quality
- no announcer energy or radio voice
- no synthetic flatness (must sound like a person)
reference_prompt: "The voice of a senior engineer presenting
findings to a board. They know the data cold. They respect
the audience's time. They are confident without performing
confidence."
Demographic Attributes
Gender, age, and accent carry cultural weight. These attributes require stakeholder input and cannot be decided by design-system logic alone.
Constraints
- Voice must pass the same “no personality theater” test as written Assist x Chat content
- Pace must stay within 140-170 wpm (floor: comprehension; ceiling: rushed feeling)
- No background music or sound design in voice-only content. Music is a separate design decision.
- Reduced-motion users who have opted out of animation should not receive auto-playing audio. Audio requires explicit user action.
- All spoken content must have a text transcript (accessibility, EU AI Act Article 50 for AI-generated speech)
Visual Signature
The Verdigris visual signature derives from the product: 8,000 samples per second of electrical data, made visible. The signature is not a logo treatment or an illustration style. It is a family of data-derived visual patterns that only an electrical intelligence company can produce.
Canonical Brand Visualizations
These are the official visual signature elements. They appear on marketing pages, in Remotion videos, and as design system specimens. Each is grounded in real electrical engineering concepts.
| Element | What it shows | Where to use | Priority |
|---|---|---|---|
| Phase Portrait (Lissajous) | V-I relationship as XY figure. Each load type produces a unique shape. | Card icons, hero illustrations, loading states, favicon candidate | Primary mark |
| Harmonic Spectrum | Frequency-domain bars showing harmonic content of a load. | Section dividers (2-4px), card top borders, dashboard headers | Texture system |
| Waveform Trace | Time-domain electrical signal showing 60Hz fundamental + harmonics. | Section separators, ambient background, resolution comparisons | Supporting |
| Resolution Comparison | Same data at different sample rates (1/min vs 8kHz). | Evidence sections, product demos, slide decks | Narrative device |
What Is NOT a Brand Visualization
- Generic sine waves with no harmonic content (could be any company)
- Particle systems or dot fields not derived from electrical data
- Abstract gradient meshes (the Stripe look)
- Network/node graphs that don’t represent actual circuit topology
- Waveforms used as pure decoration without connection to section content
Canvas-Rendered Text
Some brand effects require rendering text to Canvas rather than DOM. This is a significant architectural decision with accessibility, performance, and SEO implications.
When to use Canvas text:
- Character-level effects that CSS cannot achieve (per-character displacement, SDF morphing, text as clipping mask)
- Text that must interact with Canvas visualizations (labels positioned on waveform data points)
- Effects requiring sub-pixel character positioning (Pretext measurement)
When NOT to use Canvas text:
- Body copy, paragraphs, any text meant to be read at length
- Navigation, buttons, form labels, or any interactive text
- Text that needs to be selectable, translatable, or indexed by search engines
- Anything that can be achieved with CSS transforms, opacity, or clip-path
Mandatory requirements for Canvas text:
- Every Canvas text element must have an identical HTML fallback, hidden when Canvas is active
- The HTML fallback must use the same typography tokens (font family, weight, size, color)
prefers-reduced-motion: reducemust show the HTML fallback and hide the Canvas- The Canvas element must have
role="img"andaria-labelmatching the text content - No Canvas text in the critical rendering path. Fonts load first, Canvas initializes after.
Named Text Effects
Three named effects are part of the visual signature. Each has exact specifications for timing, color, and behavior. These effects are exclusive to the Demonstrate x Web Page composition cell (Technology/Signal page). They do not appear on the homepage, product pages, or any other page type. The homepage earns its impact through composition restraint, not Canvas effects.
Attention budget: At most 2 animated elements visible in any single viewport at any time. The ambient waveform counts as one if its opacity exceeds 10%. Named effects count when actively animating (not after completion). The resolution slider counts when the user is interacting with it.
Reading constraint: Heading text must reach full legibility (final color, complete letterforms) before expected reading completion. For headings under 40 characters, fully legible within 600ms. For longer headings, within 800ms. If the full effect duration exceeds the legibility deadline, text resolves first and ambient glow/color continues after.
1. Measurement Bar Reveal
Characters materialize from 1px vertical bars (oscilloscope cursor metaphor) that widen to reveal the full letterform.
| Property | Value | Token |
|---|---|---|
| Total duration | 800ms | Below duration.spin ceiling |
| Stagger per character | 35ms | N/A (custom) |
| Easing | ease-out (cubic) | easing.out |
| Bar color | brand teal at 40-80% opacity | color.brand.verdigris |
| Bar width | 1px, widening to character width | N/A |
| Final text color | neutral.50 (dark bg) or neutral.950 (light bg) | color.semantic.foreground |
| Glow | teal edge glow at 15% opacity, fades during reveal | color.brand.verdigris |
| Gate 1 purpose | Brand (measurement becomes meaning) | N/A |
| Reduced-motion fallback | Static text, no animation | HTML fallback |
| Use on | H1 headlines on dark hero sections | Hook and Close roles |
| Max frequency | Once per page (Hook), optionally reprised in Close | Scarcity principle |
2. Harmonic Typography
Large display text where digit shapes are clipping masks revealing live waveform data scrolling behind them.
| Property | Value | Token |
|---|---|---|
| Font | Lato 700 | font.display |
| Size | clamp(5rem, 15vw, 12rem) | Responsive |
| Waveform phases | Three, offset 120 degrees | Real three-phase power |
| Phase A color | teal (#0fc8c3) | color.brand.verdigris |
| Phase B color | purple (#9a2f85) | color.brand.mp-step-2 |
| Phase C color | yellow (#fecf00) | color.brand.cyber-yellow |
| Waveform speed | One 60Hz cycle per 500ms | Matches AC power frequency |
| Scroll behavior | Pins briefly (0.5 scroll-heights), waveforms freeze on scroll-past | N/A |
| Non-digit characters | Solid fill (commas, units are punctuation, not data) | N/A |
| Gate 1 purpose | Brand (text reveals the data the company measures) | N/A |
| Reduced-motion fallback | CSS background-clip: text with static teal-to-blue gradient |
HTML + CSS |
| Use on | Key stat numbers in Evidence sections | Once per page |
3. Waveform-to-Text Reveal
Section heading starts as a continuous oscilloscope trace spanning the full text width, then resolves into readable letterforms.
| Property | Value | Token |
|---|---|---|
| Total duration | 1200ms | Custom (below 1.5x duration.spin) |
| Easing | ease-out (cubic) | easing.out |
| Waveform structure | 60Hz fundamental + 3rd/5th/7th harmonics | Real electrical harmonic structure |
| Color during transition | Starts at teal, sweeps through palette, terminates at the Turn section’s designated accent region | Must end at section accent, not cycle freely |
| Final text color | neutral.50 (dark bg) or neutral.950 (light bg) | color.semantic.foreground |
| Gate 1 purpose | Brand + Orientation (signal becomes language, section entering) | N/A |
| Reduced-motion fallback | Static text with 3px teal left border + one static phase portrait or harmonic spectrum illustration | HTML + CSS + static brand viz |
| Use on | H2 headings at the Turn section on Demonstrate pages only | Once per page (the earned accent) |
| Constraint | The waveform phase must be a continuous trace across the full heading width, not per-character noise. The palette sweep must resolve to the section’s accent color, not cycle through all 16 stops independently. | Structural + accent alignment |
Ambient Waveform Layer
A persistent 60Hz sine wave that runs behind page content at low opacity. This is the page’s “heartbeat” – the AC power frequency made visible.
| Section role | Dark bg opacity | Light bg opacity | Harmonics | Color |
|---|---|---|---|---|
| Hook | 15% | N/A (Hook is always dark) | 1st only | teal |
| Context | Off | Off | None | N/A |
| Evidence | 10-15% | Off (use static illustration) | 1st + 3rd | teal |
| Turn | 15-20% | Off (accent tint handles it) | 1st + 3rd + 5th | section accent |
| Proof | Off | Off | None | N/A |
| Close | 12% | N/A (Close is always dark) | 1st + 3rd + 5th | teal |
The ambient layer appears only on dark-background sections. On light backgrounds (Context, Proof, light-mode Evidence), the waveform layer is hidden – the section’s neutral background does the work. This prevents a teal tint from contaminating neutral breathing-room sections.
Constraints:
- Rendered as a single Canvas layer behind all content
- Never more than 20% opacity (reduced from 25% – it’s ambient, not a feature)
- On dark sections: contrast ratio of foreground text vs (background + wave at peak opacity) must meet WCAG AA for large text (3.0:1)
prefers-reduced-motion: static thin line at 8% opacity, no animation- The waveform frequency (60Hz visual cycles per screen width) is a design constant, not adjustable per page
- The ambient layer counts toward the attention budget (see Named Text Effects) when its opacity exceeds 10%
Interactive Data Visualization
Data visualizations on marketing pages follow different rules than dashboards.
| Rule | Marketing page | Dashboard (Patina) |
|---|---|---|
| Interaction model | Scroll-driven + one interactive widget | Direct manipulation |
| Max interactive elements per page | 1 (the resolution slider or equivalent) | Unlimited |
| Sticky behavior | Max 1.5 scroll-heights per sticky section | N/A |
| Auto-play | Yes, with pause on user interaction | No |
| Data source | Synthetic (labeled as “representative”) or anonymized real data | Live customer data |
| Color budget | Trust region + data_visualization exception | Full palette |
| Labels | Pretext-measured, appear sequentially | Standard DOM |
| Performance budget | 60fps target, 30fps floor, single active Canvas | Application-level |
Technology Page Composition Cell
The Technology/Signal page is a new composition cell: Demonstrate x Web Page.
| Property | Value |
|---|---|
| Purpose | Show what the product sees – the data IS the content |
| Trust sequence | Curiosity (hook) > comprehension (context) > revelation (evidence) > conviction (turn) > credibility (proof) > action (close) |
| Page tier | Secondary |
| Hero treatment | Dark, compact (not full-expression – homepage owns that) |
| Turn allowed | Yes (the page has 8+ sections) |
| Color budget | Trust + data_visualization exception for viz sections |
| Canvas text effects | Up to 3 named effects (measurement bar reveal, harmonic typography, waveform-to-text reveal). Exclusive to this page type. |
| Ambient layer | Yes, dark sections only (per opacity table above) |
| Attention budget | Max 2 animated elements visible in any viewport simultaneously |
| Synthetic data | Must be labeled “Representative electrical data” or similar. Synthetic fault events acceptable but must not claim to be real measurements. |
| Reduced-motion minimum | Page must include at least one static phase portrait or harmonic spectrum illustration for visual signature even without animation. The CSS gradient-clip fallback on Harmonic Typography is the baseline. |
| Interactive elements | 1 primary (resolution slider), secondary interactions on viz elements |