---
prompt-id: 01b
name: BYOC — Bring Your Own Colors (reference only)
status: merged
merged-into: 01-tokens-from-spec.md
documented-in: Ch03 — Token Architecture
---

# Prompt 01b — BYOC (Bring Your Own Colors)

> **Status: MERGED into Prompt 01 — not a separate paste.**
>
> BYOC is now built into Prompt 01 as **Step 0 Question 1**. When you paste
> `prompts/01-tokens-from-spec.md` and answer "Yes, I have brand colors"
> to the first branching question, Prompt 01 automatically activates the
> BYOC logic (contrast validation, oklch ramp derivation, archetype-specific
> naming) that was previously documented here as a separate prompt.
>
> You do not need to paste this file. See `01-tokens-from-spec.md` instead.

---

## What the merged BYOC logic does

When you answer Q1 = "Yes" in Prompt 01's meta-header:

1. **Validates brand colors against archetype roles** — checks 4.5:1 contrast
   against the archetype's primary surface text roles. Flags failures back
   with proposed derived shades; asks for confirmation before proceeding.

2. **Derives the oklch ramp** — generates a 9-shade ramp (50–900) from
   your primary hex using oklch() interpolation. Applies the archetype's
   TOKEN NAMING rule:
   - Semantic-only archetypes (Harbor, Meridian): maps to `--color-primary`,
     `--color-primary-hover`, etc. Does NOT expose the numeric ramp.
   - Primitive+semantic archetypes (Sentinel, Current, Lattice): exposes
     `--primary-50` through `--primary-900` as primitives, then aliases them.

3. **Documents every contrast-driven adjustment** in a CSS comment so the
   output is fully auditable.

---

## Why it was merged

Having BYOC as a separate file required the user to:
- Know Prompt 1b existed
- Decide to use it *before* pasting any prompt
- Paste a different file than Prompt 1

The user now answers one question in Prompt 01's meta-header. The routing
happens automatically. One entry point, Q&A decides the path.

---

*This file is kept for documentation reference only. · © 2026 Ishdeep S Sahni · Confidential & proprietary*
