skills/tailwind-semantic-theme/SKILL.md
Set up or refactor Tailwind v4 theming with shadcn-compatible semantic CSS tokens, without shadcn. Use only when explicitly named or when the exact methodology is requested: OKLCH `:root` and `.dark` variables, class-based dark mode, `@theme inline`, and shadcn-compatible token names.
npx skillsauth add sjunepark/custom-skills tailwind-semantic-themeInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use shadcn's theming contract without adopting shadcn as a dependency.
Keep the token names and CSS structure. Adapt the file layout to the project in front of you.
:root and .dark.@theme inline.@theme, or a different dark-mode selector..dark class contract.background, foregroundcard, card-foregroundpopover, popover-foregroundprimary, primary-foregroundsecondary, secondary-foregroundmuted, muted-foregroundaccent, accent-foregrounddestructive, destructive-foregroundborder, input, ringchart-1 through chart-5sidebar, sidebar-foregroundsidebar-primary, sidebar-primary-foregroundsidebar-accent, sidebar-accent-foregroundsidebar-border, sidebar-ringradiusname / name-foreground pairs for surface/text compatibility.@import "tailwindcss";@custom-variant dark (&:is(.dark *));@theme inline { ... } mappings from semantic vars to Tailwind tokens:root { ... } light values.dark { ... } dark values@layer base { ... } only for a small reset such as body/background/text and shared border/ring defaults.dark.bg-background text-foreground, bg-card text-card-foreground, bg-primary text-primary-foreground, and similar semantic utilities.bg-zinc-900 or text-slate-500 repeats across the app, promote that usage into a semantic token.slate, blue, or gray when the real role is semantic.For methodology-only requests, provide:
.dark.For implementation requests, also:
When you need a concrete starting point, read references/tailwind-v4-theme-scaffold.css. Adapt it to the project's existing CSS file instead of copying it blindly.
@theme inline in global CSS is the simpler fit.$tailwind-semantic-theme help me set up shadcn-style theme variables in this Tailwind v4 app, but do not install shadcn."$tailwind-semantic-theme refactor my raw Tailwind colors into semantic tokens with .dark mode."$tailwind-semantic-theme show me the right globals.css structure for OKLCH tokens, @theme inline, and shadcn-compatible names."development
Use when the user wants to design, redesign, shape, critique, audit, polish, clarify, distill, harden, optimize, adapt, animate, colorize, extract, or improve a frontend interface. Covers websites, landing pages, dashboards, product UI, app shells, components, forms, settings, onboarding, empty states, UX review, visual hierarchy, information architecture, accessibility, performance, responsive behavior, theming, typography, spacing, layout, color, motion, micro-interactions, UX copy, error states, edge cases, i18n, design systems, tokens, live browser iteration, and ambitious visual effects. Not for backend-only or non-UI tasks.
development
Manually integrate Git branch work without blind mechanical merges. Use when merging, transplanting, or refactoring branch work; resolving conflicts; preserving source-branch intent in a clean current-branch structure; or auditing that source additions, removals, tests, and docs landed intentionally.
testing
Prepare, audit, set up, and guide Release Please releases. Use when releasing, preparing or reviewing a release PR, adding Release Please, classifying SemVer impact or breaking changes, writing Release Please-compatible Conventional Commit guidance, or documenting release criteria. Release work requires existing Release Please config; setup requires an explicit setup request.
development
Teach how code, a subsystem, architecture area, feature flow, module, API/data boundary, or relevant technical concept works for reviewers and maintainers. Use when the user asks to understand code or concepts; focus on design, responsibilities, contracts, data flow, invariants, tradeoffs, and maintenance implications, not syntax or line-by-line execution. Use `change-explainer` for diffs, commits, or patches.