Framework: ICP & Persona Development (Generic Template)

Purpose

To provide a standardized framework for defining the Ideal Customer Profile (ICP) and Personas for any client.

This ensures all marketing activities (content, ads, messaging, campaigns) are aligned with the right audience and their decision-making behavior.

Scope

Applies to all client industries (B2B, B2C, SaaS, services, retail, etc.).

Framework is used by marketing strategists, growth teams, and client stakeholders during onboarding and campaign planning.

Objectives

  • Define who the client’s ideal customers are at a firm level (ICP).
  • Build buyer personas at the individual level (motivations, behaviors, pain points).
  • Create a bridge between ICP → Personas → Messaging for execution in later EPICs.

Section A – ICP Development Framework

FieldDescriptionExample (B2B SaaS)Example (B2C Retail Service)
Industry/SegmentTarget sector or verticalMid-sized SaaS companies in EdTechUrban households seeking premium cleaning services
Company SizeHeadcount / revenue bands50–200 employees, $5M–$20M ARRHouseholds with dual income, age 28–45
Location/RegionPrimary geographic marketsUSA, UK, AustraliaMetro cities within 15km delivery radius
Budget CapacitySpend readiness for marketing/service$50K+ per year on SaaS integrations$200–$500 per month on recurring services
Tech/Infra MaturityCurrent digital adoption levelUsing HubSpot/Slack, struggling with integrationsUse WhatsApp/Google reviews, not structured CRM
Pain Points (Business)Challenges ICP facesDifficulty scaling product adoption, high churnUnreliable local cleaners, lack of trust & quality
Growth TriggersEvents that make them buyFunding rounds, new product launches, compliance changesMoving homes, newborn arrival, festive seasons
Decision-MakersWho approves the dealCTO, VP Product, Head of OpsHousehold decision-makers, usually women aged 30–45
Deal BreakersReasons they won’t buyLack of integrations, cost >10% of ARRPricing higher than local average, safety concerns

Section B – Persona Development Framework

Each ICP can have multiple personas. Personas are role-specific and individual-focused.

FieldDescriptionExample Persona (B2B SaaS)Example Persona (B2C Service)
Persona NameMemorable label“Tech-Savvy CTO”“Busy Working Mom”
Role / ProfileProfessional or lifestyle roleCTO at EdTech SaaSMother of 2, corporate job
DemographicsAge, gender, income, educationAge 35–45, Male, $150K/year, CS degreeAge 30–40, Female, household income $120K
Goals / MotivationsWhat they want to achieveFaster product adoption, reduce churnClean, safe home without time investment
Pain PointsFrustrations / barriersOverwhelmed IT stack, budget approvalsNo time for cleaning, safety worries about staff
Buying TriggersEvents that push decisionBoard pressure, new product launchGuests visiting, seasonal festivals
ObjectionsWhy they resist“We already use X tool”, “Too expensive”“Too costly vs local cleaner”, “Don’t trust outsiders”
Preferred ChannelsWhere to reach themLinkedIn, Tech blogs, SaaS podcastsInstagram, WhatsApp, Local Facebook groups
Decision StyleRational, emotional, reference-basedData-driven, ROI proof neededTrust & referral-driven

Section C – Linking ICP & Personas to Positioning

FlowExplanationExample
ICP → PersonasICP defines the firm/market; personas zoom into the individual decision-makers.ICP: Mid-sized SaaS → Persona: CTO, VP Ops
Personas → Messaging PillarsEach persona’s pain points & motivations shape messaging pillars.Persona: CTO → Message: “Cut churn by 30% with seamless onboarding.”
Messaging → CampaignsPositioning & messaging translate into organic, paid, and conversion tactics in later EPICs.Messaging Pillar: “Trust & Quality” → Instagram ads + testimonials

Sample Consolidated Output

Client Type: Mid-sized EdTech SaaS (ICP)

  • Persona 1 (Decision-Maker): Tech-Savvy CTO
  • Persona 2 (Influencer): Product Manager
  • Persona 3 (End User Advocate): Customer Success Lead

Client Type: Premium Home Cleaning (ICP)

  • Persona 1 (Decision-Maker): Busy Working Mom
  • Persona 2 (Influencer): Working Spouse
  • Persona 3 (End User Advocate): Elderly Parents

Outcome

A clear, structured ICP + Persona map that:

  1. Anchors all marketing activities in a real customer context.
  2. Ensures messaging and campaigns are audience-first.
  3. Becomes the foundation for EPIC 1 → Doc 3 (Messaging Pillars Framework).

SOP: Discovery & Client Positioning Workshop

1. Purpose

To provide a structured process for conducting a client discovery + positioning workshop that results in a clear market position statement and inputs for ICP & messaging.


2. Scope

  • Applies to new clients or major repositioning projects.
  • Facilitated by Marketing Consultant / Account Lead.
  • Output feeds into: ICP (Doc 2), Messaging Pillars (Doc 3).

3. Objectives of the Workshop

  1. Understand the client’s business model, goals, and context.
  2. Identify target audience and market positioning.
  3. Map competitors & differentiators.
  4. Define north star positioning statement (draft).

4. Pre-Workshop Preparation

  • Share Workshop Brief with client (agenda + expected outcomes).
  • Collect pre-reads: website, pitch decks, competitor links.
  • Setup workspace (Figma/Miro/Google Docs).
  • Confirm participants:
    • Founder/CEO (vision)
    • Sales Lead (pipeline reality)
    • Marketing Lead (current messaging)

5. Workshop Agenda (2–3 hours)

StageActivityTools/MethodsOutput
Intro (15m)Align on goals & processSlides, MiroShared understanding
Business Context (30m)Client explains product/service, goals, challengesWhiteboard promptsRaw notes on context
Market Landscape (30m)Explore competitors, trends, alternativesCompetitor mapCompetitor grid (features, pricing, positioning)
Customer Insight (45m)Discuss ideal buyers, pain-points, buying triggersPersona canvasDraft ICP notes
Positioning Draft (30m)Co-create positioning statement + 3 differentiatorsMessage house templateDraft positioning statement
Wrap-Up (15m)Review, assign actions, confirm deliverablesShared docAction list + owners

6. Post-Workshop Actions

  • Summarize notes → prepare Discovery Report.
  • Extract:
    • ICP draft → feeds into Doc 2.
    • Messaging cues → feed into Doc 3.
  • Share report with client for validation.
  • Store final report in Marketing > Clients > Discovery.

7. Roles & Responsibilities

RoleResponsibility
Facilitator (Consultant/Marketing Lead)Run session, guide exercises, capture insights
Client StakeholdersProvide inputs, validate context
Analyst/StrategistConvert raw inputs into structured outputs

8. Governance

  • Every new engagement must start with this workshop.
  • No campaign planning until positioning statement draft is signed off.
  • If gaps remain, a follow-up 1-hour session scheduled.

Outcome:

  • Clear Positioning Draft Statement (who you are, who you serve, how you’re different).
  • Inputs for ICP + Messaging EPICs.
  • A validated foundation for all marketing execution.

Framework: Controlled Contribution Model for Design Systems

1. Purpose

To establish a clear contribution workflow that allows designers to propose new components or updates without creating duplication, drift, or broken libraries.


2. Why This Matters

  • Without control → everyone edits the library → chaos.
  • Too much control → system becomes rigid, slow to evolve.
  • Controlled contribution = balance of flexibility + governance.

3. Contribution Levels (RACI)

RolePermissionsExamples
Junior DesignerCan propose changes, cannot publishSuggest new state for Input field
Mid/Senior DesignerCan create components in sandbox, submit for reviewDraft new Card variant
Design LeadCan review, approve, and publish changesApproves Button v1.4 update
Design OpsMaintains logs, versions, governanceUpdates Component Review Log
Dev LeadReviews feasibility for code parityApproves new Dropdown structure
QA LeadValidates accessibility + consistencyChecks contrast + states before publish

4. Contribution Workflow

  1. Proposal
    • Designer raises request in Contribution Log (Doc 10.8).
    • Must include: Problem statement, screenshots, Figma draft, expected impact.
  2. Sandbox Build
    • Designer creates draft in sandbox (not master).
    • Follows tokens + naming conventions.
  3. Peer Review
    • Peer validates with Component Consistency Checklist (Doc 4.7).
    • Logs findings in Contribution Log.
  4. Lead Review
    • Design Lead checks alignment with system + business needs.
    • Approves or rejects.
  5. Dev & QA Review (if needed)
    • Dev Lead confirms feasibility, QA validates accessibility.
  6. Publish
    • Approved component merged into Master Library (Doc 10.5).
    • Tagged with new version (vX.Y).
    • Migration instructions shared if replacing/deprecating.
  7. Log & Notify
    • Component Review Log (Doc 10.8) updated.
    • Team notified with changelog.

5. Guardrails

  • No direct edits to master library without review cycle.
  • Breaking changes (impact = High) require migration plan + dev sync.
  • Duplicates → reject; must be merged or converted into a variant.
  • One sprint rule → all deprecated components must be swapped out within 1 sprint.
  • Contribution freeze → during major releases, contributions paused until handoff is complete.

6. Example Scenario

  • Designer wants new “Success Toast” component.
  • Logs proposal → sandbox build → peer review.
  • Design Lead + Dev Lead approve → published as Toast/Success v1.0.
  • Old workaround “Alert/Success hack” deprecated → migration table shared.
  • Review Log updated, consumers notified.

7. Usage Notes

  • Store contribution requests in Contribution Log with status (Proposed, In Review, Approved, Rejected, Published).
  • Review contribution model quarterly → adjust roles as team scales.
  • Ensure contribution model is communicated to all new hires.

Outcome: Design system evolves in a controlled, scalable, and collaborative way → no chaos, no bottlenecks, just a healthy contribution pipeline.

Template: Component Review Log

Purpose

To maintain a clear, historical record of all component updates, ensuring traceability, accountability, and rollback capability.


1. When to Use

  • New component created → must be logged.
  • Component updated → log change reason + version tag.
  • Component deprecated/removed → log with migration path.

2. Workflow Context

  • Designer proposes change → fills log entry.
  • Peer & Lead review → approve/reject.
  • Dev Lead is notified if code impact exists.
  • Entry becomes part of the Design System Changelog.

3. Table – Component Review Log

DateComponentActionReason for ChangeImpact (Low/Med/High)VersionOwnerPeer ReviewerLead ApprovalDev NotifiedNotes / Migration Path
2025-08-28Button/PrimaryUpdatedAdded icon slot for left/right placementMediumv1.4RameshPriya✅ Lead Approved✅ YesConsumers swap Button/Primary v1.3Button/Primary v1.4
2025-08-20Input/TextCreatedNew text input pattern for formsLowv1.0AishaN/A✅ Lead Approved✅ YesLinked to token Color-InputBorder
2025-08-15Card/FeatureDeprecatedDuplicate with Card/ProductHighv1.1 → DeprecatedRanjanVivek✅ Lead Approved✅ YesReplace all instances within 1 sprint

4. Required Fields Explained

  • Date → Change date (not publish date).
  • Action → Created, Updated, Deprecated, Hotfix.
  • Reason → Business, token change, UX feedback, dev request, QA bug.
  • Impact
    • Low = non-breaking (cosmetic)
    • Medium = new variant/feature, consumers unaffected
    • High = breaking change, migration required
  • Version → Must follow version control (vX.Y).
  • Notes / Migration Path → Explicit replacement instructions.

5. Governance

  • Entries cannot be skipped → no undocumented changes allowed.
  • Only the Design Lead can mark final approval.
  • Monthly review meeting → scan logs for recurring issues (e.g., too many hotfixes).

6. Usage Notes

  • Store log in shared folder: Design System → Component Logs.
  • Sync entries into the master Changelog Doc for dev + QA reference.
  • Old entries are archived after 1 year but never deleted.

Guide: Updating Components Without Breaking Everything

1. Purpose

To provide a safe, step-by-step method for updating components in a shared library without disrupting existing designs, developer workflows, or QA.


2. Why This Matters

  • Master components are used across multiple files/projects.
  • If updated recklessly →
    • Instances detach or break.
    • Dev handoff gets inconsistent.
    • Teams lose trust in the library.
  • This guide ensures updates are predictable, reversible, and documented.

3. Golden Rules Before Updating

  1. Never edit directly in production library → always work in a sandbox copy.
  2. Version everything → if you can’t tag changes, you can’t roll them back.
  3. Announce change window → team should know when updates are being made.
  4. Test in consumer files before publishing → validate impact.

4. Step-by-Step Update Process

Stage A – Prep & Sandbox

  1. Duplicate the component into a sandbox page/file.
  2. Tag current version → e.g., Button/Primary v1.3.
  3. Check usage → list all files using this component.

Stage B – Apply Changes Safely

  1. Make updates in sandbox, not in master.
    • Examples: token change (new color), structural update (icon slot), new state.
  2. Test responsiveness (desktop, mobile, tablet).
  3. Validate against Token–Component Sync Map (Doc 10.6).
  4. Confirm all states + variants are still intact.

Stage C – Test & Validate

  1. Swap sandbox component into 1–2 consumer screens.
    • Validate spacing, overrides, responsiveness.
  2. Run peer review with Component Consistency Checklist (Doc 4.7).
  3. Run accessibility validation (contrast, focus states, tap targets).

Stage D – Publish & Communicate

  1. Update component in master library → tag new version (e.g., v1.4).
  2. Document update in Component Review Log (Doc 10.8).
  3. Publish with changelog → include: what changed, what broke, what to test.
  4. Notify team with migration guide (Slack/Email).

Stage E – Post-Update Monitoring

  1. Monitor adoption → check consumer files in 1 sprint.
  2. If bugs appear → hotfix publish (v1.4.1) or rollback to v1.3.

5. Failure Handling

  • If update breaks multiple screens →
    • Immediately rollback to last stable version.
    • Announce rollback + issue fix ETA.
  • If conflicting overrides found in consumer files →
    • Provide migration guidance (swap to correct variant).

6. Example – Updating Button/Primary

  • Before: Blue background (#3B82F6), no icon slot.
  • Change: Add optional left icon property.
  • Process:
    1. Sandbox test → create variant with icon slot.
    2. Swap in 2–3 screens → validate spacing.
    3. Document in Review Log → “v1.4 added icon property.”
    4. Publish → notify devs → “React Button v1.4 now supports icons.”

7. Usage Notes

  • Treat library updates like code releases.
  • Never surprise devs or QA → always log in Review Log & Changelog.
  • If a breaking change is unavoidable → provide migration table.

Framework: Token–Component Sync Map

1. Purpose

To create a systematic mapping between design tokens and components so that every component:

  • Inherits tokens (not manual styles).
  • Syncs automatically with updates.
  • Can be implemented in dev with 1:1 parity.

2. Why This Matters

  • Without token → component linkage, libraries drift: buttons with custom hex, inputs with inconsistent spacing, etc.
  • Devs then code “random values” → inconsistency across products.
  • Sync Map ensures design = dev = QA parity.

3. Mapping Model

Token CategoryToken NameApplied ToComponent ExamplesNotes
ColorColor-PrimaryFill, borderButton/Primary, Link/ActiveMust meet contrast AA
 Color-ErrorFill, text, borderInput/Error, Alert/ErrorRed used only for errors
TypographyFont-HeadingH1–H3Card Titles, Modal HeadersUse consistent line height
 Font-BodyBody textInputs, Forms, ParagraphsBase size = 16px
SpacingSpace-2 (8px)Gaps inside formsInput fields, CardsBase multiple = 8px grid
 Space-4 (24px)Section paddingModals, CardsUsed for container padding
RadiusRadius-Small (4px)Small interactive componentsButtons, InputsSubtle rounding
 Radius-Large (12px)Larger modulesCards, ModalsFriendly feel
ShadowsShadow-1Low elevationCards, DropdownsSoft subtle shadow
 Shadow-2High elevationModals, TooltipsProminent, layered

4. Sync Workflow

  1. Design Stage
    • Every component must inherit tokens directly (never raw values).
    • Component builder checks: “Are all fills, borders, spacing = tokens?”
  2. Library Maintenance Stage
    • Monthly audit (see Doc 10.4 Cleanup Checklist).
    • Scan for overrides (random hex, manual font sizes).
  3. Dev Handoff Stage
    • Export tokens in JSON/Style Dictionary format.
    • Dev team implements same tokens in CSS/React Native/Flutter.
    • Components mapped directly to code components.

5. Example – Button/Primary

ElementToken AppliedValue (example)
BackgroundColor-Primary#3B82F6
Border RadiusRadius-Small4px
FontFont-Button-TextInter 16px SemiBold
PaddingSpace-2 vertical, Space-4 horizontal8px × 24px
ShadowShadow-10 1px 2px rgba(0,0,0,0.05)

6. Governance

  • No component can be approved if tokens ≠ are applied.
  • Violations flagged in Component Review Log (Doc 10.8).
  • Quarterly sync meeting with the dev team to check design–code parity.

7. Usage Notes

  • Keep this map as a living doc, updated with new tokens/components.
  • Share with both design & dev teams → it’s the bridge document.
  • Store under: Design System → Token–Component Maps.

SOP: Creating & Managing Shared Master Libraries

1. Purpose

To define the process, governance, and responsibilities for creating and maintaining shared master libraries that power all project-specific design systems.

This ensures consistency across projects, scalability, and smooth design–dev alignment.


2. Scope

  • Applies to all design teams, leads, and developers who use shared libraries.
  • Covers setup, publishing, maintenance, contribution, and version control.
  • Includes tokens, components, variants, and patterns.

3. Why This Matters

  • Without a single shared library → each project drifts in its own direction.
  • Duplicated components = dev confusion, QA mismatches.
  • Shared libraries provide:
    • Efficiency: Reuse, don’t reinvent.
    • Consistency: Same button looks and behaves the same across all projects.
    • Scalability: One update = cascades to all consumers.

4. Library Setup

Stage A – Foundations First

  1. Create a Foundations File:
    • Tokens: Color, Spacing, Typography, Radius, Shadows.
    • Exportable to dev via Style Dictionary / JSON.
  2. Create a Components File:
    • Buttons, Inputs, Cards, Modals, Navigation, Alerts, Tables.
    • Each with full variants + states.
  3. Create a Patterns File:
    • Assemblies (pricing cards, dashboards, forms).
    • Document with usage guidelines.
  4. Organize Figma Pages:
    • 01 Foundations → Tokens.
    • 02 Components → Atomic components.
    • 03 Patterns → Assemblies & flows.
    • 04 Archive → Deprecated items.

5. Publishing & Version Control

  • Initial Publish: Version v1.0.
  • Micro Changes: Bug fixes, visual tweaks → v1.0.1.
  • Minor Changes: New components added → v1.1.
  • Major Changes: Breaking updates → v2.0.
  • Always publish with a changelog entry (Doc 10.8: Component Review Log).
  • Consumers must update to latest version within 1 sprint unless breaking.

6. Governance & Contribution Model

  • Only Design Leads can approve new components into master.
  • Designers submit requests via Contribution Log (Doc 10.9).
  • Dev Leads consulted before publishing breaking updates.
  • Deprecated components tagged with Deprecated_DO-NOT-USE for 1 sprint before deletion.
  • Monthly audit → remove unused orphans, normalize tokens.

7. Maintenance Workflow

StepActivityTool/Doc ReferenceOwner
1New request loggedContribution Log (Doc 10.9)Designer
2Peer reviewComponent Consistency Checklist (Doc 4.7)Peer Designer
3Lead approvalDoc 10.2 + Doc 10.3Design Lead
4Dev feasibility checkToken–Component Sync Map (Doc 10.6)Dev Lead
5Version tag & publishDoc 10.8 ChangelogDesign Lead
6Notify consumersSlack/Email update + migration tableDesign Ops
7Monitor adoptionAudit Sheet (Doc 5.6 style)QA Lead

8. Failure Handling

  • If consumers find broken components → log issue in Component Review Log.
  • Urgent bug fixes → publish hotfix vX.Y.Z (same day).
  • If duplicate components appear → merge, deprecate old, document replacement.

9. Exit Criteria Before Publish

  • Tokens normalized, no raw hex/manual styles.
  • Variants/states complete.
  • Naming conventions aligned.
  • Documentation updated (Doc 10.2).
  • Peer + Lead review complete.
  • Dev feasibility confirmed.
  • Changelog prepared.

10. Usage Notes

  • Treat master library as codebase: no casual edits.
  • Consumers must not detach or override → log a request instead.
  • Master library sync must be reviewed monthly with dev team.

Design System Cleanup Checklist + Playbook (Execution-Ready)

1. Purpose

A step-by-step playbook to audit, clean, and stabilize the component library so designers stop creating duplicates, developers ship consistent UI, and performance stays healthy.


2. Scope

  • Applies to all project-specific and shared libraries.
  • Covers tokens, components, variants, naming, usage, and performance.
  • Used during scheduled hygiene (weekly/quarterly) and before major releases.

3. Success Criteria (define before you start)

MetricTargetNotes
Duplicate components≤ 2% of totalPost-merge, per category
Missing states (per component)0Default/Hover/Active/Disabled/Error/Success
Non-token colors0No raw hex in published components
Orphan components (0 instances)0 in published libraryMove to Archive or delete
Library publish frequency1 per sprintWith changelog
File open time (shared lib)≤ 8 sec on reference deviceMeasure before/after

4. When to Run

  • Weekly: light sweep (30–45 min).
  • Pre-Release: full cleanup.
  • Trigger: team size change, big brand update, performance complaints, or code-library drift.

5. Roles (RACI)

ActivityDesignerPeer DesignerDesign LeadDev LeadQA
Inventory & scanRCIII
Merge/rename componentsRCACI
Token normalizationRCACI
Variant/state completionRCACI
Deprecation & migration planRCACC
Publish & changelogRCACI
Post-cleanup validationRCACA

A = Accountable, R = Responsible, C = Consulted, I = Informed


6. Pre-Flight (do this before touching anything)

  • Duplicate the library file: LibraryName_backup_YYYYMMDD.
  • Export current component list (names, IDs, instance count).
  • Capture baseline metrics (success criteria table above).
  • Announce read-only window to the team.

7. Cleanup Workflow (overview)

  1. Inventory → 2) Token Normalize → 3) Merge & De-dup → 4) Variants & States Complete → 5) Naming & Structure Fix → 6) Usage & Orphans Sweep → 7) Accessibility Pass → 8) Performance Trim → 9) Publish + Changelog → 10) Migration & Follow-up

8. Detailed Checklist (use end-to-end)

8A) Token Hygiene

  • All fills, borders, shadows use approved tokens (no raw hex).
  • Typography styles applied (no manual overrides).
  • Spacing uses 8px scale (no 5/7/13px fragments).
  • Radius and shadows mapped to named tokens only.
  • Failure fix: Batch-apply tokens; create missing tokens if patterns repeat.

8B) Component Hygiene

  • Each component lives in its category page (Buttons, Inputs, Cards, Modals, Navigation, Alerts, Icons).
  • Auto-layout and constraints set; responsive behavior verified.
  • Properties exposed for size/icon/variant where applicable.
  • No detached instances in published library.
  • Failure fix: Rebuild as variants; reattach instances via “swap instance”.

8C) Variants & State Coverage

  • Mandatory states present: Default, Hover, Active, Disabled, Error, Success.
  • Data-driven: Empty, Loading, Permission where relevant.
  • Focus/keyboard states represented for interactive components.
  • Failure fix: Add missing states; document behaviors in component notes.

8D) Naming & Structure

  • Naming scheme: Component/Variant/Size/State (e.g., Button/Primary/Medium/Hover).
  • No visual names (no BlueButton).
  • Frames/layers named: Label, Background, Icon_Left, Helper_Text, Error_Message.
  • Version tags on major updates (v1.1, v1.2).
  • Failure fix: Batch-rename; align pages to 01 Foundations / 02 Components / 03 Screens / 04 Archive.

8E) Usage & Orphans

  • Components with 0 instances moved to Archive or deleted.
  • Duplicates merged; most-used instance becomes the source of truth.
  • Instance links in product files point to current published components.
  • Failure fix: “Swap instance” in consumer files; leave deprecation markers for one sprint.

8F) Accessibility

  • Text contrast ≥ AA; interactive elements ≥ 44px on mobile.
  • Error messaging visible + descriptive (not color-only).
  • Focus states visible and consistent.
  • Failure fix: Adjust tokens and states; add helper text patterns.

8G) Performance

  • Remove unused local styles and dead components.
  • Consolidate icons into a single set (SVG, consistent stroke).
  • Reduce nested autolayout depth where not needed.
  • Failure fix: Flatten deep nests; replace raster with SVG where possible.

9. Duplicate Resolution — Decision Tree

  1. Are two components visually and functionally identical?
  2. Yes: Keep the one with higher instance count; merge tokens/props; mark the other “Deprecated – do not use” for one sprint; then delete.
  3. No: If difference is intentional, convert into a Variant. If difference is accidental, normalize to a single source.

10. Deprecation & Migration

  • Tag old components: Deprecated_DO-NOT-USE_until_YYYY-MM-DD.
  • Communicate replacements with a table (old → new).
  • Provide 1-sprint grace period; then remove deprecated ones.
  • Run a “consumer projects” pass to swap all instances.
  • Record all changes in the changelog.

Migration Table (example)

Old ComponentReplacementActionOwnerDue
Button/BluePrimaryButton/PrimarySwap instances in Product A/BDesigner X2025-09-05
Input/Email_v0Input/TextSwap + add error stateDesigner Y2025-09-05

11. Exit Criteria (don’t publish until all hold true)

  • 0 non-token styles.
  • 0 missing mandatory states.
  • 0 orphan components in published library.
  • Duplicates resolved or formally deprecated.
  • Changelog prepared.
  • Dev team ack on impact.

12. Changelog (publish with the library)

VersionDateChangeImpactAction for Consumers
v1.42025-08-28Merged Button/Primary variants; standardized hoverMinorUpdate instances on next sprint
v1.42025-08-28Removed raw hex in Cards; tokenized shadowsNoneNo action
v1.42025-08-28Deprecated Badge/Outline_v0MediumSwap to Badge/Outline

13. Audit Log Template (keep per cleanup)

IDIssueLocationSeverity (H/M/L)Fix AppliedOwnerDateEvidence
A-12Non-token color in CardComponents/Cards/Card-FeatureMReplaced with Color-Neutral-200DS Team2025-08-28Screenshot/Link
A-19Missing Hover state (Button/Tertiary)Components/ButtonsHAdded Hover variantDS Team2025-08-28Link

Severity: H = blocks release; M = fix before publish; L = backlog.


14. Practical “How-To” (fast actions)

  • Find raw hex: search styles for # and replace with tokens.
  • Find orphans: filter components by instance count = 0.
  • Batch rename: apply pattern Button/* to Button/{Variant}/{Size}/{State}.
  • Swap instances at scale: open consumer file → “Select all with same instance” → swap to new component.
  • Measure performance: time-to-open the shared library before/after cleanup.

15. Weekly vs Quarterly Runbook

Weekly (30–45 min):

  • Token drift check, missing states scan, new duplicates, orphans.
  • Publish micro version (e.g., v1.4.1).

Quarterly (2–3 hrs):

  • Full duplicate merge, icon set consolidation, archive sweep, accessibility pass, performance trims.
  • Publish minor/major version (e.g., v1.5 / v2.0) with migration note.

Usage Notes

  • Treat this as an operational ritual, not a one-off task.
  • Keep the checklist, audit log, and changelog in the same folder as the library.
  • Do not publish without meeting exit criteria.

Guide: Designing Robust UI Variants

1. Purpose

To ensure every UI component is designed with all necessary variants and states, so that it is reusable, developer-friendly, and QA-complete.


2. Why This Matters

  • Designers often design only the happy path (default button, single input state).
  • Devs then guess what hover/disabled/error looks like → leads to inconsistency.
  • Without robust variants, components cannot scale across products.
  • Robust variants = less rework, consistent UX, smoother dev handoff.

3. Types of Variants & States

CategoryWhat to IncludeExampleNotes
Style VariantsDifferent priority/role of componentButton → Primary, Secondary, TertiaryOnly 1 Primary per screen
Size VariantsDifferent sizes for contextsButton → Small, Medium, LargeFollow spacing tokens (8px grid)
Platform VariantsWeb, Mobile, Dashboard adaptationsNav Bar → Desktop (top), Mobile (bottom)Check against breakpoints (Doc 5.2)
State VariantsInteraction + feedback statesDefault, Hover, Active, Disabled, Error, SuccessMandatory for all components
Content VariantsWith/without icons, text lengthInput → With icon, Without iconMust test long text overflow
Accessibility VariantsFocus, keyboard, high-contrast modesCheckbox → Focus outline visibleMust meet WCAG AA

4. Step-by-Step Process for Designing Variants

Step 1 – Start with Base Component

  • Create the simplest version first (default state).
  • Apply tokens (Doc 4.1) → no hardcoded values.

Step 2 – Add Style Variants

  • Identify business needs: which roles need Primary vs Secondary vs Tertiary.
  • Keep visual weight aligned with UI Style Mapping (Doc 4.3).

Step 3 – Add State Variants

  • Always include: Default, Hover, Active, Disabled, Error, Success.
  • Add Empty, Loading, Permission states if data-driven.

Step 4 – Add Platform Variants

  • Adapt for Desktop, Tablet, Mobile.
  • Test responsiveness → grid alignment, reflow, tap target sizes.

Step 5 – Add Content Variants

  • Icon Left, Icon Right, Text Only.
  • Short text vs Long text overflow.

Step 6 – Validate Accessibility

  • Focus outline visible for keyboard nav.
  • Contrast ratio ≥ WCAG AA.
  • Minimum tap size = 44px mobile.

5. Example – Button Component

  • Style Variants: Primary (filled), Secondary (outlined), Tertiary (text).
  • Size Variants: Small (28px), Medium (36px), Large (44px).
  • State Variants: Default, Hover, Active, Disabled, Error, Success.
  • Content Variants: With icon left, with icon right, text only.
  • Platform Variants: Web (inline), Mobile (full-width).
  • Accessibility Variants: Focus outline for keyboard, high-contrast mode.

6. Do’s & Don’ts

Do:

  • Document every variant in Component Documentation Sheet (Doc 10.2).
  • Keep variants inside one component set (Figma Variants).
  • Annotate behaviors clearly for devs.

Don’t:

  • Deliver only the default state.
  • Create one-off styles outside system.
  • Forget empty/loading/permission states for data-driven components.

7. Usage Notes

  • Designers must not submit a component for approval until all variants are designed.
  • Peer reviewers check using Component Consistency Checklist (Doc 4.7).
  • Devs must receive visual + notes for every variant.

Template: Component Design Documentation Sheet

Purpose

To document every UI component in detail — covering purpose, variants, states, tokens, and dev expectations — so there is no ambiguity during design, QA, or development.


1. When to Use

  • New Component Creation → Every new component added to library.
  • Component Update → When visual tokens, states, or behaviors change.
  • Dev Handoff → Ensures engineers get a reference for implementation.

2. Workflow Context

  • Designer builds component → fills this sheet → peer reviews → lead approves → sheet stored in Component Docs folder.
  • Dev refers to it in handoff stage.
  • QA validates final build against this sheet during testing.

3. Template (with Sample Entries)

FieldDescriptionSample Entry
Component NameFunctional, structured nameButton/Primary/Large
CategorySystem groupingAction → Buttons
PurposeWhy this component exists“Triggers key user actions across product”
VariantsStyle variationsPrimary, Secondary, Tertiary
StatesInteraction statesDefault, Hover, Active, Disabled, Error, Success
PropertiesConfigurable optionsSize: Small/Medium/Large Icon: Left/Right/None
Applied TokensTokens linkedColor-Primary, Radius-Small, Font-Button-Text
Behavior / System ResponseExpected interaction outcomeHover = 10% darker shade Disabled = cursor not-allowed
Accessibility NotesContrast, tap area, keyboard rulesMeets WCAG AA contrast Tap target ≥ 44px
Usage GuidelinesDo’s & Don’tsDo: One Primary per screen Don’t: Stack multiple CTAs
DependenciesLinked patterns or componentsUses base Button + icon set
Example ScreensWhere it appearsLanding Hero CTA, Dashboard “Save” action
Figma ReferenceFrame/component link[Figma Link]
Dev Handoff NotesExtra rules for engineersMust use shared React Button Component v1.2
Version HistoryUpdates appliedv1.0 – Created v1.1 – Updated hover state

4. Usage Notes

  • Every component must have a completed doc sheet before entering library.
  • Keep version history updated — no silent changes.
  • Store all sheets under: Design System → Component Documentation.

Outcome: Components are fully documented, traceable, and dev-ready — eliminating ambiguity between design, dev, and QA.