Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

Back to skills

Tailwind

ASecurity

Work inside an existing Tailwind codebase without degrading it — use the project's theme tokens instead of arbitrary values, extend the theme when a token is genuinely missing, extract repetition into components rather than @apply, resolve class conflicts with the project's merge helper, and make dark mode a token decision. Fires when writing or editing Tailwind classes in a repo that already uses it. Not for deciding whether to adopt Tailwind, not for visual design direction, and not a rende...

46 stars
0 votes
0 copies
0 views
Added 9/22/2026
ai-agentsexpress

Security Analysis

A100/100

Scanned 9/22/2026

Install to Claude Code

$npx -y skills add nahid-sparktales/agent-dispatcher --skill tailwind --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Tailwind?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Tailwind
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/nahid-sparktales-tailwind/badge)](https://www.skillsdirectory.com/skills/nahid-sparktales-tailwind)

More formats (shields.io, HTML) on the badges page.

Download Zip
Files
SKILL.md
---
name: tailwind
description: Work inside an existing Tailwind codebase without degrading it — use the project's theme tokens instead of arbitrary values, extend the theme when a token is genuinely missing, extract repetition into components rather than @apply, resolve class conflicts with the project's merge helper, and make dark mode a token decision. Fires when writing or editing Tailwind classes in a repo that already uses it. Not for deciding whether to adopt Tailwind, not for visual design direction, and not a rendered-output check.
---

# Tailwind

A Tailwind codebase degrades one arbitrary value at a time. Every value you hardcode is a design
decision the theme can no longer make.

## When this fires

Writing or editing Tailwind utility classes in a project that already uses Tailwind. It does not
fire for choosing a styling approach, for visual design direction, or for CSS in a project that
does not use Tailwind.

## Procedure

1. **Read the theme before writing a class.** Tailwind's major versions place theme configuration
   differently — a JS/TS config file in some, a CSS-side theme block in others — so find where
   *this* project defines its tokens (and confirm the version from the lockfile; see
   `stack-detection`). Read the colors, spacing, radius, font and breakpoint tokens that exist.
2. **Read one or two existing components** in the same area. The class vocabulary a team actually
   uses is a stronger constraint than what Tailwind permits.
3. **Reach for a token before a value.** Semantic color tokens over raw palette steps, scale
   spacing over pixel values. If you are about to type a bracketed arbitrary value, first check
   whether a token covers it.
4. **When no token covers it, add the token — do not sprinkle the value.** Ask whether this is a
   one-off (one arbitrary value, with a comment saying why) or a design decision (belongs in the
   theme). Adding a theme token changes the whole app's vocabulary, so say what you are adding and
   why in the report.
5. **Do not extract on the second repetition.** Two similar class lists are cheaper than a wrong
   abstraction. At the third, extract a **component** — the props and boundaries question is
   `component-architecture`, not a CSS question. Reserve `@apply` for a genuinely global primitive
   in the stylesheet; an `@apply` block that reimplements a component is worse than the repetition.
6. **Merge conditional classes with the project's helper.** Later position in the `class` string
   does **not** win a conflict — the generated stylesheet's order decides, so `p-2` and `p-4` in
   one string resolve unpredictably. Use the project's existing `cn`/merge utility for any
   conditional or overridable class, and pass overrides through it rather than concatenating.
7. **Never build a class name from a fragment.** Tailwind finds classes by scanning source text,
   so `bg-${color}-500` produces no CSS. Write full class strings in a lookup map, and confirm the
   file you are editing is inside the project's content/source scan paths — a class in an
   unscanned file silently produces nothing.
8. **Make dark mode a token decision, not a per-utility one.** Check the project's dark-mode
   strategy first (media query vs a class/attribute toggle) and follow it. Prefer semantic tokens
   whose values differ per theme over stacking a `dark:` variant on every utility; add `dark:`
   where the token system genuinely cannot express the difference.
9. **Keep the class order the project keeps.** If a class-sorting formatter is configured, run the
   project's format command rather than hand-sorting.
10. **Look at it in both themes and at the breakpoints you touched.** Class lists are not evidence
    of rendering; hand that off to `browser-verification`.

## Checklist

- [ ] Theme tokens read before classes were written
- [ ] No arbitrary value that an existing token covers
- [ ] Any new token added to the theme, with the reason stated
- [ ] Repetition extracted at the third occurrence, as a component
- [ ] `@apply` used only for a global primitive, if at all
- [ ] Conditional/override classes routed through the project's merge helper
- [ ] No class name assembled from fragments
- [ ] Dark mode expressed through tokens where the system allows it
- [ ] Project formatter run; class order matches the codebase
- [ ] Light and dark rendered and looked at, not inferred

## Failure handling

- **A class is in the source but no style appears** — check, in order: the file is inside the scan
  paths, the class name is a complete literal string, the utility actually exists in this major
  version, and the build was re-run.
- **A style applies but the wrong value wins** — a conflict, not a specificity puzzle. Route both
  classes through the merge helper instead of adding `!important`.
- **Dark mode is right in one place and wrong in another** — the two places are using different
  mechanisms (one token, one `dark:` variant). Unify on the project's strategy.
- **A design needs a value no token has and the theme owner is not you** — use one arbitrary value
  with a comment and raise the missing token. Do not add tokens to a shared theme unasked; that is
  a change to every screen.
- **A theme token's value needs changing** — that repaints the app. Stop and ask before editing an
  existing token's value, even when it looks obviously wrong.

## Evidence to report

The tokens used; any token added, with its file and the reason; the count of arbitrary values left
and why each survived; whether repetition was extracted or deliberately left; and confirmation that
light and dark were both rendered, or a plain statement that they were not.

Attribution

nahid-sparktalesnahid-sparktales
View sourceMore from nahid-sparktales →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Caveman

Ultra-compressed communication mode that cuts output tokens while keeping technical accuracy. Levels: lite, full, ultra and the wenyan variants. Use for /caveman, "caveman mode", "talk like caveman", "be brief" or "less tokens".

1066601 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

686011 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3351 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

651 votes

math-skill

A comprehensive mathematical reasoning skill for AI assistants — handles arithmetic to research-level problems with rigorous step-by-step reasoning, systematic verification, and transparent uncertainty handling

381 votes
View all in ai-agents →