Color Palette Builder — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Color Palette Builder (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A brand color palette is not a mood board - it is a functional system with roles, scales, and rules. The costly failure is shipping pretty swatches with no usage rules: developers guess, screens drift, and within months the product has fourteen slightly different blues and body text that fails contrast. Build the palette so a developer can implement it without asking a single question.
Work the steps in order: roles before scales, scales before contrast checks - contrast is verified per color pair, and pairs only exist once the scales do.
Collect these before generating anything; label any guess as a guess.
Every strong palette derives from a single anchor - the primary brand color. It must pass three tests: works on white, works on dark surfaces, and survives single-color reproduction (favicon, embroidery, one-color print). Derive the rest of the palette from the anchor rather than assembling unrelated colors; derivation is what keeps the system coherent.
Every color gets a role before it gets a name:
For Primary and Secondary, generate a 9-step scale from near-white to near-black (100 through 900) with the anchor at 500. For Neutral, use 50 through 900 - UI work burns through subtle background steps fast. Step by perceptual lightness (manual HSL/OKLCH stepping, or generators like Radix Colors or Tailwind's palette tooling) and confirm adjacent steps are visually distinguishable on a real screen.
On a typical screen, target roughly 60 percent neutral surfaces and backgrounds, 30 percent secondary and supporting color, 10 percent primary accent. When primary exceeds about 10 percent of the screen it stops functioning as an accent and interactive elements lose their signal. Use this as a review test against real screens, not as a paint-by-numbers rule.
Apply WCAG 2.1 AA minimums as non-negotiable: 4.5:1 for normal text, 3:1 for large text (24px+, or roughly 19px+ bold) and for UI components. Test Primary 600 and darker against white; test Primary 200 and lighter under dark text (Neutral 900). Aim for AAA (7:1) on body text wherever feasible. Document every passing pair explicitly - developers need the pairs, not the claim that contrast was checked.
For each token band, state one sentence on what it is for and one on what it is not for. Example: "Primary 500 - use for interactive elements, primary buttons, and focus rings. Do not use as a background behind body text." Usage rules are the difference between a palette and a system.
Define semantic tokens (color-background-default, color-text-primary, color-border-subtle) that map to palette values per mode. Semantic tokens decouple component code from raw values and make dark mode a mapping exercise instead of a redesign.
PALETTE - "Meridian" (B2B analytics product)
Role Token Hex Usage
Primary primary-500 #2563EB Buttons, links, active nav (5.2:1 on white)
primary-600 #1D4ED8 Button hover (6.7:1 on white)
primary-100 #DBEAFE Selected-row background; dark text only
Secondary secondary-500 #0D9488 Charts, tags, secondary CTAs
Neutral neutral-900 #111827 Headings, body text (17:1 on white)
neutral-600 #4B5563 Secondary text (7.6:1 on white - AAA)
neutral-300 #D1D5DB Borders, dividers (decorative)
neutral-50 #F9FAFB Page background
Semantic success-600 #16A34A Icons/large text only (3.3:1 - fails body text)
error-600 #DC2626 Error text on white (4.8:1)
Distribution check (dashboard screen): neutral surfaces ~60%,
secondary/data color ~30%, primary accent ~10%.
Passing text pairs: neutral-900 and neutral-600 on white and neutral-50;
white on primary-500 and darker; neutral-900 on primary-100.Produce a palette specification containing: the full token table (role, token, hex, usage rule), the explicit list of passing contrast pairs with measured ratios, a 60-30-10 distribution check against at least one real screen, and the semantic token layer with per-mode mappings when dark mode is in scope or plausible.
For deep accessibility work (simulation, non-text contrast audits, remediation), hand off to color-accessibility. Pair with typography-system for the type layer and brand-guidelines for full identity documentation.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.