offplan · online
Workstream · brand-language

Brand language + logo + digital identity

Activeworkstreambrand-languagepriority P0
Owner
roman
Created
2026-05-09
Priority
P0
Tags
ux, architecture, domain

Goal

Drive the unsettled visual language, logo/wordmark, and digital-element decisions to a ratified state. Output is the locked visual register that sales-app-react modules from Phase 2 onwards consume — meaning every UI decision in the React build downstream rests on a brand foundation Roman has actually signed off on, not on the bundle-as-shipped which Roman has not fully bought into.

Status

Workstream stub — needs its own /plan session before /build runs. This file is a placeholder that captures scope + open questions, so sales-app-react-anchor knows what blocks it. The actual interview, approaches, and ratified plan will be produced by running /plan plans/brand-language-and-identity.md in a dedicated session.

Council Review (CONV-30) amendments apply — see plans/sales-app-react-module-sequence.md §Council Review. Brand-specific amendments: A-BRAND-1 (add tone-of-voice + copy register as scope item; tag Riviera fixture strings [copy:locked] factual vs [copy:provisional] voice-bearing), A-BRAND-3 (define minimum-viable-brief subset = palette + typography + status palette + accent system + density baseline as the gate that unblocks sales-app-react-anchor; mood/display/exclusions can land later as per-module conversations), A-BRAND-5 (decide cote/velvet sub-brand mark scope for v1 vs accent-only stubs with "project mark TBD" Wordmark fallback).

Scope (subject to /plan refinement)

  1. Visual language ratification or revision. Review the design system bundle (os/design-system/bundle/) in detail. What works, what doesn't. Where does Sergei's WIP atelier track inform or diverge. Lock or evolve: palette, accent system, typography (Helvetica Neue display + Inter body + JetBrains Mono mono — confirm or adjust), display-text register (Skeleton White marketing vs Warm Stone product), atmospheric treatments.
  2. Logo + wordmark. Bundle has a wordmark — ratify, refine, or replace. Consider: scope of mark system (wordmark only? wordmark + standalone monogram? full logo system with variants?). Sub-brand patterns for project-specific labels (Riviera, Cote, Velvet — does each get its own treatment, or is it parametric per project accent?). Use cases: top-bar, favicon, social cards, print/PDF offer summaries, loading screens.
  3. Digital element system:
    • Icon set — single source of icons, weight, stroke, fill conventions, sizing scale. Bundle has icons.svg — ratify or extend.
    • Photographic register — how renders are framed, when full-bleed vs contained, scrim treatments, what counts as "hero" vs "content" imagery. (Critical given the product is render-dominated.)
    • Motion principles — durations, easings, what kinds of transitions are allowed (Pannellum drag inertia, Sheet slide-in, modal fade, hotspot pulse). Bundle has --ease-* and --duration-* tokens — confirm or evolve.
    • Status palette — bundle has oxidised palette (#5C7A4A available / #B58440 reserved / #8A4438 sold). Confirm intensity, hover/active states, anonymisation rules per project.
    • Micro-interaction style — hover treatments, focus rings, click feedback, loading states, empty states.
  4. 8-dimension design brief. Adopted from open-design's design-brief methodology (per other terminal's recommendation, CONV-30): lock palette / accent / typography / display / layout-model / mood / density / exclusions in a single ratified document. Becomes the shared vocabulary for all sales-app-react module-level design conversations. Per A-BRAND-3: the minimum-viable-brief that unblocks sales-app-react-anchor is the first 5 dimensions (palette + typography + status palette + accent system + density baseline); mood/display/exclusions can ratify later as per-module conversations.
  5. Process artifact: os/docs/design/visual-register.md. Single source-of-truth document sales-app-react consumes. Lists every locked decision with rationale + visual examples (HTML snippets / Storybook story URLs / image refs).
  6. Tone-of-voice + copy register (A-BRAND-1). Wordmark voice, placeholder/empty-state copy, sales-hyperbole boundaries. Decision affects whether src/data/riviera.ts content (sourced from real Mered/H&dM marketing) needs a tone re-pass before sales-app-react modules quote it. Strings in the fixture are tagged [copy:locked] (factual: prices, sqft, dates) vs [copy:provisional] (voice-bearing) so brand can rewrite the latter without touching schema.

Open questions (for /plan interview)

Tasks (placeholder — refined by /plan)

What's Next

Run /plan plans/brand-language-and-identity.md in a dedicated session. The interview should explore: Sergei's role, logo scope, reference corpus inclusion, stakeholder review boundaries. Out of this comes a real plan with phases, approaches, and a workstreams table that supersedes this stub.

Key Context

Session Log