impeccable
Use when the user wants to design, redesign, shape, critique, audit, polish, clarify, distill, harden, optimize, adapt, animate, colorize, extract, or otherwise improve a frontend interface. Covers websites, landing pages, dashboards, product UI, app shells, components, forms, settings, onboarding,
Install
mkdir -p .claude/skills/impeccable-colton615-coder && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/14980" && unzip -o skill.zip -d .claude/skills/impeccable-colton615-coder && rm skill.zipInstalls to .claude/skills/impeccable-colton615-coder
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Use when the user wants to design, redesign, shape, critique, audit, polish, clarify, distill, harden, optimize, adapt, animate, colorize, extract, or otherwise improve a frontend interface. Covers websites, landing pages, dashboards, product UI, app shells, components, forms, settings, onboarding, and empty states. Handles UX review, visual hierarchy, information architecture, cognitive load, accessibility, performance, responsive behavior, theming, anti-patterns, typography, fonts, spacing, layout, alignment, color, motion, micro-interactions, UX copy, error states, edge cases, i18n, and reusable design systems or tokens. Also use for bland designs that need to become bolder or more delightful, loud designs that should become quieter, live browser iteration on UI elements, or ambitious visual effects that should feel technically extraordinary. Not for backend-only or non-UI tasks.About this skill
Designs and iterates production-grade frontend interfaces. Real working code, committed design choices, exceptional craft.
LIFE-IN-SYNC Scope Override
For this native SwiftUI repository, AGENTS.md, PRODUCT.md, DESIGN.md, and the canonical documents under docs/ override web-oriented guidance in this skill.
- Do not translate CSS, browser, React, Tailwind, web-font, icon-package, or JavaScript-library advice into SwiftUI work.
- Use native SwiftUI controls, SF Symbols, Apple typography, and existing project tokens and components.
- Do not add third-party packages, browser tooling, web architecture, or app-wide design abstractions unless explicitly approved.
- Do not run a simulator, browser visual pass, screenshots, Computer Use, or visual QA unless the current task explicitly requests it.
- For Garage, preserve the restrained emerald/black/gold language and reject neon cockpit styling, cheap glow, and gamer-dashboard clutter.
- If this skill conflicts with a current LIFE-IN-SYNC feature contract, follow the feature contract and report the conflict rather than blending directions.
The web-specific references remain valid only for web targets. They are not implementation instructions for LIFE-IN-SYNC.
Setup
You MUST do these steps before proceeding:
- Run
node .github/skills/impeccable/scripts/context.mjsonce per session. If you've already seen its output in this conversation, do not re-run it. The script either prints the project's PRODUCT.md (and DESIGN.md when present) as a markdown block, or tells you it's missing. Follow whatever it prints. If it reportsNO_PRODUCT_MD, stop and followreference/init.mdbefore doing anything else. If the output ends with anUPDATE_AVAILABLEdirective, follow it (ask the user once about updating, then continue). It never blocks the current task. - If the user invoked a sub-command (
craft,shape,audit,polish, ...), you MUST readreference/<command>.mdnext. Non-optional. The reference defines the command's flow; without it you will skip steps the user expects. - Familiarize yourself with any existing design system, conventions, and components in the code. Read at least one project file (CSS / tokens / theme / a representative component or page). Required even when you've loaded a sub-command reference in step 2. Don't reinvent the wheel; use what's there when it works, branch out when the UX wins.
- Read the matching register reference. This is non-optional; skipping it produces generic output. If the project is marketing, a landing page, a campaign, long-form content, or a portfolio (design IS the product), read
reference/brand.md. If it is app UI, admin, a dashboard, or a tool (design SERVES the product), readreference/product.md. Pick by first match: (1) task cue ("landing page" vs "dashboard"); (2) surface in focus (the page, file, or route being worked on); (3)registerfield in PRODUCT.md. - If the project is brand-new (no existing CSS tokens / theme / committed brand colors found in step 3), run
node .github/skills/impeccable/scripts/palette.mjsto receive a brand seed color and composition guidance. This is the anchor for your primary brand color. Compose the rest of the palette (bg, surface, ink, accent, muted) around it per the script's instructions. Use OKLCH throughout. Skip this step only if step 3 found committed brand colors in existing tokens; in that case identity-preservation wins.
Design guidance
Produce ready-to-ship, production-grade code, not prototypes or starting points. Take no shortcuts unless the user asks for them (when in doubt, ask). Don't stop until arriving at a complete implementation (beautiful, responsive, fast, precise, bug-free, on brand). You take attention to detail seriously: every page, section or component crafted is battle tested using the tools available to you (browser screenshotting, computer use, etc). the model is capable of extraordinary work. Don't hold back.
General rules
Color
- Verify contrast. Body text must hit ≥4.5:1 against its background; large text (≥18px or bold ≥14px) needs ≥3:1. Placeholder text needs the same 4.5:1, not the muted-gray default. The most common failure: muted gray body text on a tinted near-white. If the contrast is even close, bump the body color toward the ink end of the ramp; light gray "for elegance" is the single biggest reason AI designs feel hard to read.
- Gray text on a colored background looks washed out. Use a darker shade of the background's own hue, or a transparency of the text color.
Typography
- Cap body line length at 65–75ch.
- Don't pair fonts that are similar but not identical (two geometric sans-serifs, two humanist sans-serifs). Pair on a contrast axis (serif + sans, geometric + humanist) or use one family in multiple weights.
- Hero / display heading ceiling: clamp() max ≤ 6rem (~96px). Above that the page is shouting, not designing.
- Display heading letter-spacing floor: ≥ -0.04em. Anything tighter and letters touch; cramped, not "designed".
- Use
text-wrap: balanceon h1–h3 for even line lengths;text-wrap: prettyon long prose to reduce orphans.
Layout
- Vary spacing for rhythm.
- Cards are the lazy answer. Use them only when they're truly the best affordance. Nested cards are always wrong.
- Flexbox for 1D, Grid for 2D. Don't default to Grid when
flex-wrapwould be simpler. - For responsive grids without breakpoints:
repeat(auto-fit, minmax(280px, 1fr)). - Build a semantic z-index scale (dropdown → sticky → modal-backdrop → modal → toast → tooltip). Never arbitrary values like 999 or 9999.
Motion
- Motion should be intentional, and not be an afterthought. consider it as part of the build.
- Don't animate CSS layout properties unless truly needed.
- Ease out with exponential curves (ease-out-quart / quint / expo). No bounce, no elastic.
- Use libraries for more advanced motion needs (e.g. motion, gsap, anime.js, lenis etc)
- Reduced motion is not optional. Every animation needs a
@media (prefers-reduced-motion: reduce)alternative: typically a crossfade or instant transition. - Staggering the items within one list is legitimate. The tell is the uniform reflex (one identical entrance applied to every section), not motion itself; each reveal should fit what it reveals. Suppressing the reflex is never a reason to ship a page with no motion at all.
- Reveal animations must enhance an already-visible default. Don't gate content visibility on a class-triggered transition; transitions pause on hidden tabs and headless renderers, so the reveal never fires and the section ships blank.
- Premium motion materials are not just transform/opacity. Blur, backdrop-filter, clip-path, mask, and shadow/glow are part of the palette when they materially improve the effect and stay smooth.
Interaction
- Dropdowns rendered with
position: absoluteinside anoverflow: hiddenoroverflow: autocontainer will be clipped. Use the native<dialog>/ popover API,position: fixed, or a portal to escape the stacking context.
New projects only (when no prior work exists)
Color & Theme
- Use OKLCH.
- The cream / sand / beige body bg is the saturated AI default of 2026. The whole warm-neutral band (OKLCH L 0.84-0.97, C < 0.06, hue 40-100) reads as cream/sand/paper/parchment regardless of what you call it. Token names like
--paper,--cream,--sand,--bone,--flour,--linen,--parchment,--wheat,--biscuit,--ivoryare tells in themselves. If the brief is "warm, traditional, family-coastal-Italian" or "magazine-warm" or "editorial-restraint", DO NOT translate that into a near-white warm-tinted bg; that's the AI move. Pick: (a) a saturated brand color as the body (terracotta, oxblood, deep ochre, near-black), (b) a true off-white at chroma 0 (or chroma toward the brand's own hue, not toward warmth-by-default), or (c) a darker mid-tone tinted neutral that's clearly the brand's own. "Warmth" in the brand is carried by accent + typography + imagery, not by body bg. - Tinted neutrals: add 0.005–0.015 chroma toward the brand's hue. Don't default-tint toward warm or cool "because the brand feels that way"; that's the cross-project monoculture move.
- When picking a theme: Dark vs. light is never a default. Not dark "because tools look cool dark." Not light "to be safe.".Before choosing, write one sentence of physical scene: who uses this, where, under what ambient light, in what mood. If the sentence doesn't force the answer, it's not concrete enough. Add detail until it does.
- Pick a color strategy before picking colors. Four steps on the commitment axis:
- Restrained: tinted neutrals + one accent ≤10%. Product default; brand minimalism.
- Committed: one saturated color carries 30–60% of the surface. Brand default for identity-driven pages.
- Full palette: 3–4 named roles, each used deliberately. Brand campaigns; product data viz.
- Drenched: the surface IS the color. Brand heroes, campaign pages.
Absolute bans
Match-and-refuse. If you're about to write any of these, rewrite the element with different structure.
- Side-stripe borders.
border-leftorborder-rightgreater than 1px as a colored accent on cards, list items, callouts, or alerts. Never intentional. Rewrite with full borders, background tints, leading numbers/icons, or nothing. - Gradient text.
background-clip: textcombined with a gradient background. Decorative, never meaningful. Use a single solid color. Emphasis via weight or size. - Glassmorphism as default. Blurs and glass cards used decoratively. Rare and purposeful, or nothing.
- The hero-metric template. Big number, small label, supporting stats, gradient accent. SaaS cliché.
- Identical card grids. Same-sized cards with icon + heading + text, repeated endlessly.
- Tiny uppercase tracked eyebrow above every section. The 2023-era kicker (small all-caps text
Content truncated.