Origin

Why CDP exists — the problem it solves

CDP was built in direct response to a documented pattern: every AI-assisted design session, without a written constraint document in context, produced the same failures. Fourteen-pixel body text. Ghost-grey color values that barely pass large-text thresholds. Unvalidated dark backgrounds with opacity-reduced text. Buttons that fail touch target minimums. These aren't random errors — they are AI defaults, the statistical center of the training data.

CDP exists because a human strategist setting rules in advance produces better outcomes than a human strategist correcting AI errors after the fact. The protocol is the difference between governance and cleanup.

UX designer reviewing design work at desk — the moment CDP was built to govern

Every session without a written constraint document produces the same failures. CDP was built to prevent them.

Structure

Six governance domains

CDP v3.0 organizes its rules across six domains. Each domain governs a category of design decisions and contains specific numbered rules with stated rationale.

Domain 01
Design Standards
Typography minimums, color tokens, contrast requirements, image rules, visual balance, and responsive breakpoints. The non-negotiable floor for every visual decision.
Domain 02
AI Interaction Governance
Rules governing how AI collaborators operate — output before explanation, no false confirmations, no design reversals without stated rationale, stateless generation awareness.
Domain 03
Workflow Structure
One fix at a time discipline. CDP compliance verification before code delivery. Decision protocol requiring explicit approval before execution.
Domain 04
Code Development
Complete Code File Protocol — every update reposted in full with version header. No partial snippets for critical files. Clean Brief Principle for all briefs.
Domain 05
Voice Preservation
AI drafts are starting points, not final copy. Cara's natural voice takes precedence. AI may not flatten, formalize, or homogenize written content without explicit instruction.
Domain 06
Problem Escalation
Performance Flag Rule — issues flagged immediately, not buried. Staging Sync Protocol for environment-specific changes. Accessibility Gate as hard stop before delivery.
Rules in Practice

Selected rules — stated as governance

Each CDP rule is stated as an enforceable constraint, not a recommendation. Below are selected rules from CDP v3.0 that illustrate how the protocol operates in practice.

CDP-11 · Domain 01
Typography Minimum — Non-Negotiable
Minimum 16px on every element, everywhere. No exceptions — including labels, captions, badges, eyebrows, table headers, and metadata.
AI defaults to 14px, 13px, or 12px for secondary elements without a written rule to prevent it. This violates WCAG 2.1 SC 1.4.4 at smaller viewport sizes and creates two-tier legibility — large text for primary content, illegible text for supporting content. CDP eliminates the tier entirely.
ADA / WCAG 2.1 · Accessibility Gate
CDP-15 · Domain 02
Stateless Generation Problem — Conversion Trap
AI has no persistent memory between sessions. Every session begins stateless. Decisions made in previous sessions must be re-stated in the current context or they will be violated.
The Conversion Trap is the pattern where AI reverts to defaults mid-session or across sessions — not from error, but from statelessness. CDP addresses this by requiring the full constraint document to be present in every session where design decisions are made. The protocol is the memory.
AI Interaction Governance
CDP-18 · Domain 04
Complete Code File Protocol
Every code file update must be reposted in full with a version header showing file name, last updated date, changes made, and version number. No partial snippets for critical files.
Partial code delivery creates integration errors when the developer — in this case, Cara — must manually identify where a snippet fits in a larger file. Full file reposts eliminate that ambiguity entirely and create a version trail that makes rollback possible without git dependency.
Code Development
CDP-20 · Domain 06
Accessibility Gate
Accessibility review is a hard stop before any component or page is delivered. WCAG 2.1 AA is the floor. AAA is the preferred standard wherever achievable.
Accessibility bolted on after design is complete costs more, fixes less, and signals that inclusion was an afterthought. The Accessibility Gate makes it structurally impossible to ship before accessibility is reviewed — not as a checklist, but as a verified outcome.
Problem Escalation · WCAG 2.1
CDP-12C · Domain 02
Output Before Explanation
AI delivers the requested output first. Explanation, rationale, and caveats follow — never precede — the deliverable.
AI systems default to front-loading explanation as a hedge against uncertainty. This inverts the usefulness of the interaction — the person asked for a deliverable, not a disclaimer. CDP-12C enforces the correct order: show the work, then explain it.
AI Interaction Governance
Domain 02 — Highlighted
AI Interaction Governance — the most differentiating domain

Most design protocols govern visual output. CDP governs the collaboration process itself — how AI partners are briefed, how they deliver output, how they handle disagreement, and what they are never permitted to do regardless of instruction. This domain exists because AI behavior without written constraints is not neutral. It has direction — toward defaults, toward averages, toward the most common training pattern. CDP-Domain-02 is the written counterforce.

CDP-12B
But Better Loop
When asked to improve something, AI must preserve what works and improve what doesn't — never replace the whole in service of the part.
CDP-15
Conversion Trap
AI must not revert to defaults mid-session. When CDP rules are present, they supersede training data patterns unconditionally.
CDP-19
Clean Brief Principle
Briefs are written without ambiguity. AI may ask one clarifying question before beginning. It may not assume intent and proceed.
CDP-Decision
Decision Protocol
No design change is applied before a decision is made. AI presents options and waits. It does not act on implied preference.
Proof of Practice

CDP applied — live implementations

Every page on this portfolio is a CDP implementation. The rules are not theoretical — they are enforced constraints visible in every component, every color token, every navigation pattern, and every line of code on this site.

CDP governs a multi-AI collaboration panel: Ryan (ChatGPT — structural feedback and strategic audit), Ming (DeepSeek — engineering analysis and code review), and Claude (Anthropic — strategic thinking, writing, and governance documentation). The panel nicknames are documented here because they appear by name in case study references throughout this portfolio.

What follows

The component library — governance made visible

The component library below is not the protocol. It is the output of the protocol — what CDP produces when the rules hold. Every color token is verified. Every touch target is 44px minimum. Every font is 16px minimum everywhere. Every navigation pattern carries full ARIA implementation. The rules above are the reason the components below look the way they do.

Cara's Design Protocol — Component Library Demo

Every component. Every rule. No guessing.

This page demonstrates what Cara's Design Protocol (CDP) produces — a compliant, intentional design system where AI is the partner and the strategist sets the rules. Every token validated. Nothing assumed.

Heading fontPlayfair Display
Body fontSource Sans 3
Minimum text size16px — everywhere
Contrast standardWCAG 2.1 AA+
Touch targets44px minimum

Color Palette & Compliance

Every color token is verified against an external contrast checker — not self-reported by the AI. These are tested results, not estimates.

Why CDP exists — and what it prevents

Left without constraint, AI consistently defaults to 14px body text, ghost-grey color values that barely pass large-text thresholds, and unvalidated dark backgrounds. Every session, the same patterns resurface. CDP is the written rule set enforced before any code ships. Not a preference — a constraint. The page you are reading is the proof of what holds when the rules apply.

Ink — Primary Text #2c1810 AAA 16.8:1 on cream · 16.75:1 on white · All body copy
Ink Support — Secondary #5c4a42 AAA 7.4:1 on cream · Captions and secondary labels only
Orange — CDP Accent #c85a1e AAA 7.1:1 on cream · Eyebrows, labels, CTAs
Navy — Hero & Header #1a2744 Background Deep navy — not black · White at 15.4:1 AAA
Cream — Page Background #fefaf6 Background Warm off-white · Reduces screen fatigue
White — Card Surface #ffffff Background Cards, modals, form inputs · Ink at 16.75:1 AAA

Type Scale

Two fonts. One scale. 16px hard floor on every element — headings, body, labels, badges, captions, metadata. No exceptions. CDP enforces this because AI will shrink text without a written rule to hold it accountable.

H1 DisplayPlayfair Display 700
48–60px · lh 1.1

Great Design Starts Here

H2 SectionPlayfair Display 600
36–44px · lh 1.2

Section Heading

H3 CardPlayfair Display 600
22px · lh 1.3

Card or Module Title

BodySource Sans 3 400
16px · lh 1.7
color: #2c1810

Body copy at 16px minimum, dark brown #2c1810 on cream. Rich contrast. Not grey. CDP enforces this because small, light body text is the first thing AI defaults to when there is no constraint document in the conversation.

SupportSource Sans 3 400
16px · lh 1.65
color: #5c4a42

Supporting copy at #5c4a42 — medium brown, 7.4:1 on cream, AAA pass. Used only for true secondary text: captions, timestamps, secondary labels. Never for body paragraphs.

EyebrowSource Sans 3 600
16px · ALL CAPS · ls .12em

Category Label · Section Tag

Three working patterns — light desktop, dark desktop, and a functional hamburger menu. Hover every link. Tab through every element. Open and close the hamburger with keyboard or tap. Current page state communicates through aria-current, not just visual styling.

ARIA attributes at work in these patterns

AttributeWhere it livesWhat it does
aria-labelnav, buttons, brand links, CTAsNames elements for screen readers when visible text is absent or not descriptive enough. Every interactive element in these navs has one.
aria-expandedHamburger buttonAnnounces open or closed state. JavaScript toggles this between false and true as the user opens and closes the panel.
aria-controlsHamburger buttonLinks the button to the panel it controls. The id on the panel must match exactly.
aria-hidden="true"Closed panel, decorative bar spansRemoves content from the accessibility tree when it should not be announced. Flips to false when panel opens.
aria-current="page"Active nav linkTells screen readers which page the user is on. Visual highlight alone is not enough — assistive technology needs this attribute.
role="list"All nav ul elementsCSS list resets can strip list semantics in some browsers. Explicit role="list" restores them so screen readers announce item count and position.

Button System

44px minimum touch target on every button. Focus rings visible at 3:1 contrast per WCAG 2.1 SC 1.4.11. Disabled state uses aria-disabled plus explicit visual treatment.

Dark brown fill · #2c1810
CDP orange · #c85a1e
Outline · dark brown border
Tertiary · orange border
aria-disabled + visual state

Card Components

Three surface variants. Contrast recalculated for each surface — not assumed. CDP three-tier hierarchy on every card: eyebrow label → heading → supporting text.

Default Surface

White Card

Foreground: #2c1810 · Background: #ffffff · Ratio: 16.75:1 AAA. Body at 16px minimum. Three-tier hierarchy enforced at the component level by CDP.

Navy Surface

Navy Card

Foreground: #ffffff · Background: #1a2744 · Ratio: 15.4:1 AAA. Full white — no opacity reduction. CDP rule: never use rgba to fade text on dark surfaces.

Warm Tint Surface

Tinted Card

Foreground: #2c1810 · Background: #fdf0e8 · Ratio: 15.9:1 AAA. Tinted backgrounds shift the contrast calculation — text color is always re-verified against the actual surface used.

Built In. Not Bolted On.

These decisions were made at the system level. A site is never 100% — but there is a documented standard, a validation process, and an honest account of where the work stands.

Implemented

Skip Navigation Link

Visually hidden until keyboard focus. Allows screen reader and keyboard users to bypass the header. Press Tab as soon as the page loads.

Implemented

Visible Focus Indicators

All interactive elements show a 3px focus ring in CDP orange. Not the browser default — explicitly set and tested on every interactive element.

Implemented

Semantic HTML + Landmarks

Header, main, nav, footer, article — properly structured. Heading hierarchy flows H1 → H2 → H3 without skipping levels.

Implemented

ARIA on Interactive Elements

Hamburger toggle carries aria-expanded, aria-controls, and aria-label. Active links use aria-current="page". Decorative elements use aria-hidden="true".

Implemented

44px Touch Targets

Every button and interactive control meets WCAG 2.5.5 minimum. Enforced with min-height in CSS. The hamburger button is 44×44px exactly.

Note

No Site Is 100%

CDP strives for AAA where achievable and enforces AA as the floor. Borderline cases are documented and revisited. The standard exists. The work continues.

Built under Cara's Design Protocol (CDP) · Playfair Display + Source Sans 3 · WCAG 2.1 AA+

AI as a partner. The strategist sets the rules.
Cara Harpole · uxdesignwarrior.com · Me & The Machine