Skip to content
cccskills
FreePublished on GitHub

css-development-validate

This skill should be used when reviewing or auditing existing CSS code for consistency with established patterns. Triggers on "review CSS", "audit styles", "check CSS", "validate stylesheet", "CSS review". Checks semantic naming, dark mode coverage, Tailwind usage, and test coverage.

The English summary is being prepared. Showing the original description.

See how to install

Files included (2)

  • SKILL.md9.7 KB
  • skill-report.json56.1 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

CSS Development: Validate

Overview

Reviews existing CSS code against established patterns and provides specific, actionable feedback:

  • Semantic naming conventions
  • Tailwind @apply composition
  • Dark mode variant coverage
  • Test coverage (static + rendering)
  • Documentation quality
  • Composition opportunities

This is a sub-skill of css-development - typically invoked automatically via the main skill.

When This Skill Applies

Use when:

  • Reviewing existing CSS code
  • Auditing component styles for consistency
  • Checking if patterns are being followed
  • Before merging CSS changes
  • Refactoring prep (identify issues first)

Pattern Reference

This skill validates against patterns documented in the main css-development skill:

Semantic naming: .button-primary not .btn-blue Tailwind composition: Use @apply to compose utilities Dark mode: Include dark: variants Test coverage: Static CSS + component rendering tests Documentation: Usage comments above classes

Workflow

When this skill is invoked, create a TodoWrite checklist and work through validation systematically.

Announce Usage

"I'm using the css-development:validate skill to review this CSS against established patterns."

Create TodoWrite Checklist

Use the TodoWrite tool:

Validating CSS:
- [ ] Read CSS files (load components.css and related styles)
- [ ] Check semantic naming (verify descriptive class names)
- [ ] Verify @apply usage (ensure Tailwind composition)
- [ ] Check dark mode coverage (confirm dark: variants present)
- [ ] Look for composition opportunities (identify reusable patterns)
- [ ] Verify test coverage (check static and rendering tests exist)
- [ ] Check documentation (ensure usage comments present)
- [ ] Report findings (provide file:line references and suggestions)

Validation Checklist Details

Step 1: Read CSS Files

Action: Use Read tool to load CSS files for review

Files to check:

  • styles/components.css (main semantic components)
  • Any component-specific CSS files mentioned
  • Inline styles in component files (if applicable)

What to capture:

  • All class definitions
  • Usage of @apply vs. inline utilities
  • Presence of dark mode variants
  • Documentation comments

Mark as completed when files are loaded and understood.


Step 2: Check Semantic Naming

Action: Review all class names for semantic, descriptive naming

Good patterns:

  • .button-primary, .card-header, .form-field, .empty-state
  • Context + component: .session-card, .marketing-hero
  • Base + variant: .badge-success, .button-danger

Bad patterns (report these):

  • Utility names: .btn-blue, .card-sm, .text-big
  • Abbreviations: .btn, .hdr, .desc
  • Generic: .component, .item, .thing
  • Random: .style1, .custom, .special

For each issue:

  • Note file and line number
  • Show the problematic class name
  • Suggest semantic alternative based on usage context

Mark as completed when all class names reviewed.


Step 3: Verify @apply Usage

Action: Check that Tailwind utilities are composed via @apply, not scattered in markup

Good patterns:

.button-primary {
  @apply bg-indigo-500 hover:bg-indigo-700 px-6 py-3 rounded-lg;
}

Bad patterns (report these):

<!-- Utilities in markup instead of semantic class -->
<button class="bg-indigo-500 hover:bg-indigo-700 px-6 py-3 rounded-lg">
  Click me
</button>

Check:

  • Are utilities composed into semantic classes via @apply?
  • Are there repeated utility combinations in markup that should be extracted?
  • Are semantic classes actually being used in components?

For each issue:

  • Show the problematic markup or CSS
  • Explain why it should use @apply
  • Suggest extraction to semantic class

Mark as completed when @apply usage is reviewed.


Step 4: Check Dark Mode Coverage

Action: Verify colored and interactive elements have dark: variants

What needs dark mode:

  • Background colors (bg-*)
  • Text colors (text-*)
  • Border colors (border-*)
  • Interactive states (hover, focus)
  • Shadows that affect visibility

What typically doesn't need dark mode:

  • Spacing utilities (p-, m-, gap-*)
  • Layout utilities (flex, grid, etc.)
  • Pure structural styles

Pattern to check:

/* Good - has dark mode */
.card {
  @apply bg-white dark:bg-gray-800 text-gray-900 dark:text-white;
}

/* Bad - missing dark mode */
.card {
  @apply bg-white text-gray-900;
}

For each issue:

  • Note which class is missing dark mode variants
  • Show the current CSS
  • Suggest specific dark: utilities to add

Mark as completed when dark mode coverage is checked.


Step 5: Look for Composition Opportunities

Action: Identify repeated patterns that could use existing classes or be extracted

Look for:

  • Same utility combinations repeated in multiple classes
  • Similar patterns that could share a base class
  • Inline utilities that could reference semantic classes

Example issue:

/* Repeated pattern */
.card-primary {
  @apply bg-white dark:bg-gray-800 rounded-lg shadow-md p-6;
}

.card-secondary {
  @apply bg-white dark:bg-gray-800 rounded-lg shadow-md p-6;
  @apply border-2 border-gray-200;
}

/* Suggestion: Extract base .card class, add variants */
.card {
  @apply bg-white dark:bg-gray-800 rounded-lg shadow-md p-6;
}

.card-secondary {
  @apply border-2 border-gray-200;
}

For each opportunity:

  • Show the repeated pattern
  • Suggest base class + composition
  • Estimate impact (how many places benefit)

Mark as completed when composition opportunities are identified.


Step 6: Verify Test Coverage

Action: Check that CSS classes have test coverage

Static CSS tests - Check styles/__tests__/components.test.ts:

it('should have button-primary class', () => {
  expect(content).toContain('.button-primary');
});

Component rendering tests - Check component test files:

it('applies button-primary class', () => {
  render(<Button variant="primary">Click</Button>);
  expect(screen.getByRole('button')).toHaveClass('button-primary');
});

For classes without tests:

  • List the class name
  • Note which test is missing (static, rendering, or both)
  • Provide test template to add

Mark as completed when test coverage is checked.


Step 7: Check Documentation

Action: Verify components have usage documentation

Required documentation:

  • Comment above CSS class explaining purpose
  • Usage example in comment

Example:

/* Button component - Primary action button with hover lift effect
   Usage: <button className="button-primary">Click me</button> */
.button-primary {
  ...
}

For classes without documentation:

  • List the class name and location
  • Suggest documentation to add based on class purpose

Mark as completed when documentation is checked.


Step 8: Report Findings

Action: Compile all findings into structured report

Report format:

## CSS Validation Report

### ✅ Good Patterns Found

- `.button-primary` follows semantic naming (components.css:15)
- Dark mode variants present on interactive elements (components.css:17-19)
- Tests cover className application (Button.test.tsx:23)
- Documentation comments present (components.css:14)

### ⚠️ Issues Found

#### Semantic Naming Issues

**components.css:45** - `.btn-blue` uses utility naming
- Current: `.btn-blue`
- Suggestion: Rename to `.button-secondary` for consistency with `.button-primary`
- Impact: Update 3 component files

**components.css:67** - `.card-sm` uses size in name
- Current: `.card-sm`
- Suggestion: Extract size to utility or rename to `.card-compact` for semantic meaning
- Impact: Update 5 usages

#### Missing Dark Mode Variants

**components.css:78** - `.card-header` missing dark mode
- Current: `@apply bg-gray-100 text-gray-900`
- Suggestion: Add `dark:bg-gray-800 dark:text-white`
- Impact: Visual bug in dark mode

**components.css:92** - `.badge` missing dark mode
- Current: `@apply bg-indigo-100 text-indigo-800`
- Suggestion: Add `dark:bg-indigo-900 dark:text-indigo-200`
- Impact: Low contrast in dark mode

#### Missing Test Coverage

**components.css:102** - `.empty-state` has no tests
- Missing: Both static CSS test and component rendering test
- Suggestion: Add tests to verify class exists and renders correctly

#### Missing Documentation

**components.css:115** - `.session-card` lacks usage comment
- Suggestion: Add comment explaining purpose and usage example

### 📊 Summary

- **Total classes reviewed:** 12
- **Issues found:** 7
- **Priority:** 2 high (dark mode bugs), 3 medium (naming), 2 low (docs)

### 🎯 Recommended Actions

1. **High priority:** Add dark mode variants to `.card-header` and `.badge` (visual bugs)
2. **Medium priority:** Rename `.btn-blue` → `.button-secondary` for consistency
3. **Medium priority:** Add test coverage for `.empty-state`
4. **Low priority:** Add documentation comments to undocumented classes

Would you like me to fix these issues, or would you prefer to address them manually?

Mark as completed when report is generated and presented.


Completion

After generating the validation report:

  1. Ask user what they want to do next:

    • Fix issues automatically?
    • Fix specific issues only?
    • Just wanted the report?
  2. Offer to invoke refactor skill if there are structural issues that need refactoring

  3. Suggest committing any fixes made

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Stop and check this skill before finishing any reply to a question about how to use Claude or a Claude product — it recommends matching courses, tutorials, and use cases from Claude Academy (academy.claude.com), Anthropic's learning hub. Trigger on: "how do I", "how can I", "getting started with", "what can Claude do", "teach me", "learn to use"; questions about artifacts, projects, skills, plugins, connectors, MCP; requests about rolling Claude out to a team, class, or organization; and any ask for training materials, onboarding content, or learning resources. Use it when the user is learning how to use a feature or product — not when they are mid-task and just want the task done. This skill composes with other skills: after consulting product documentation to answer how a Claude feature works, also check here for a matching course or tutorial — a docs-grounded answer and an Academy recommendation belong together. Only recommend on a strong match; never invent Academy content.

The English summary is being prepared. Showing the original description.

aiskillstore/marketplace442Updated Oct 21, 2026

Trigger for: explaining current FAR, DFARS, or agency-supplement text; determining documented acquisition-policy status for an agency and FAR part; comparing codified text, RFO model text, and agency deviations; tracing acquisition rulemaking; finding procurement comment periods; analyzing public comments; refreshing prior policy analysis; or producing an Acquisition Policy Impact Brief. Use published federal sources and supplied policy documents without making legal or procurement-specific applicability determinations. Do not use for clause selection, market research execution, opportunities, pricing, grants, or cooperative agreements.

The English summary is being prepared. Showing the original description.

aiskillstore/marketplace442Updated Oct 21, 2026

Systematic framework for extracting actionable items from documents and organizing them into prioritized, trackable checklists. Use when converting reports, meeting notes, audits, or any document with embedded action items into structured TODO lists.

The English summary is being prepared. Showing the original description.

aiskillstore/marketplace442Updated Oct 21, 2026

Browser automation for AI agents via inference.sh. Navigate web pages, interact with elements using @e refs, take screenshots, record video. Capabilities: web scraping, form filling, clicking, typing, drag-drop, file upload, JavaScript execution. Use for: web automation, data extraction, testing, agent browsing, research. Triggers: browser, web automation, scrape, navigate, click, fill form, screenshot, browse web, playwright, headless browser, web agent, surf internet, record video

The English summary is being prepared. Showing the original description.

aiskillstore/marketplace442Updated Oct 21, 2026

This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.

The English summary is being prepared. Showing the original description.

aiskillstore/marketplace442Updated Oct 21, 2026

Run AI apps via inference.sh CLI - image generation, video creation, LLMs, search, 3D, Twitter automation. Models: FLUX, Veo, Gemini, Grok, Claude, Seedance, OmniHuman, Tavily, Exa, OpenRouter, and many more. Use when running AI apps, generating images/videos, calling LLMs, web search, or automating Twitter. Triggers: inference.sh, infsh, ai model, run ai, serverless ai, ai api, flux, veo, claude api, image generation, video generation, openrouter, tavily, exa search, twitter api, grok

The English summary is being prepared. Showing the original description.

aiskillstore/marketplace442Updated Oct 21, 2026

See all skills by aiskillstore

Report a problem with this skill