What problem does it solve? Projects often end up with inconsistent dark-mode implementations — Tailwind class mode, JS class toggling, or ad-hoc selectors — that break system preference support and scatter theme tokens. This Skill scaffolds or repairs a single root stylesheet that implements a clean :root[data-theme] contract with a two-tier token system, without touching JavaScript or components. ## Core Features & Use Cases - Stylesheet scaffolding: Creates theme.css, globals.css, or app.css with the full light/dark/system color-mode contract using @layer theme, prefers-color-scheme media queries, and data-theme attribute selectors. - Migration with approval gates: Detects conflicting setups like .dark classes, Tailwind darkMode: 'class', or JS-driven theming, then presents a bounded migration plan and waits for explicit approval before editing anything beyond the target stylesheet. - Two-tier token wiring: Defines tier-one --theme-light-*/--theme-dark-* source values mapped to tier-two --ui-* semantic tokens, preserving existing custom colors, imports, and layer order. - Use Case: A Next.js project uses Tailwind class-based dark mode and you want system-preference support. The skill detects the conflict, proposes switching to darkMode: ['selector', '[data-theme="dark"]'], and rewrites the root stylesheet to the attribute-based contract after your approval. ## Quick Start Use the css skill to set up light, dark, and system color modes in my project's globals.css and migrate away from class-based dark mode.