PluginBench
Skill
Review
Audit score 70

design-system

nextlevelbuilder/ui-ux-pro-max-skill

Design token architecture, component specs, and brand-compliant slide generation for systematic design systems.

What is design-system?

Manages three-layer token architecture (primitive→semantic→component), CSS variable systems, and component state specifications. Also generates design-to-code presentations with Chart.js integration and contextual decision logic. Use for establishing design systems, creating Tailwind configs, and building brand-compliant decks.

  • Three-layer token structure (primitive, semantic, component) with CSS variable generation
  • Component specification templates with state variants (hover, active, disabled)
  • Spacing and typography scale management
  • Tailwind theme configuration integration
  • BM25-based slide search with contextual recommendations
  • Slide generation with Chart.js charts, animations, and emotion-arc pattern breaking

How to install design-system

npx skills add https://github.com/nextlevelbuilder/ui-ux-pro-max-skill --skill ckm:design-system
Prerequisites
  • Node.js for token generation scripts
  • Python 3 for slide search and validation scripts
  • Brand guidelines document (colors, typography, voice)
  • JSON token configuration file
Claude Code
Cursor
Windsurf
Cline

How to use design-system

  1. 1.Define your token structure in a JSON config (primitive colors, semantic aliases, component-specific values)
  2. 2.Run `node scripts/generate-tokens.cjs --config tokens.json -o tokens.css` to generate CSS variables
  3. 3.Create component specifications using the provided pattern table (background, text, border, shadow across states)
  4. 4.For slides: run `python scripts/search-slides.py "[goal]"` to find relevant slide templates
  5. 5.Generate slide HTML with `/slides:create "[deck description]"` command
  6. 6.Validate slides with `python scripts/slide-token-validator.py` to ensure all colors use `var()` not hardcoded hex
  7. 7.Import `assets/design-tokens.css` in all slides and components

Use cases

Good for
  • Creating a design token system from brand guidelines and color palettes
  • Defining component states and variants for design-to-code handoff
  • Generating investor pitch decks with data visualizations and brand compliance
  • Building Tailwind configuration from semantic tokens
  • Validating that production code uses tokens instead of hardcoded values
Who it's for
  • UI/UX designers establishing design systems
  • Frontend developers implementing token-based styling
  • Product managers creating brand-compliant presentations
  • Design system maintainers
  • Teams using Tailwind CSS

design-system FAQ

What's the difference between primitive, semantic, and component tokens?

Primitive tokens are raw values (e.g., #2563EB). Semantic tokens are purpose-based aliases (e.g., --color-primary references a primitive). Component tokens are component-specific (e.g., --button-bg references a semantic token). This three-layer structure enables theme switching and systematic reuse.

Can I use this with Tailwind CSS?

Yes. Generate semantic tokens as a JSON config, then use the Tailwind integration to convert them into a theme object in `tailwind.config.js`. Reference the `references/tailwind-integration.md` file for setup.

How does the slide search work?

It uses BM25 ranking to search slide templates by goal or content type. You can also add context (slide position, previous emotion) for contextual recommendations that follow the Duarte sparkline pattern (alternating emotions for engagement).

Do I have to use the slide system?

No. The skill's core is token architecture and component specs. Slide generation is optional and requires Python scripts; token generation uses Node.js and works independently.

What happens if I hardcode a color instead of using a token?

The `validate-tokens.cjs` script will flag it. All production code should use CSS variables (e.g., `var(--color-primary)`) to maintain consistency and enable theme switching.

Full instructions (SKILL.md)

Source of truth, from nextlevelbuilder/ui-ux-pro-max-skill.


name: design-system description: Token architecture, component specifications, and slide generation. Three-layer tokens (primitive→semantic→component), CSS variables, spacing/typography scales, component specs, strategic slide creation. Use for design tokens, systematic design, brand-compliant presentations. argument-hint: "[component or token]" license: MIT metadata: author: claudekit version: "1.0.0"

Design System

Token architecture, component specifications, systematic design, slide generation.

When to Use

  • Design token creation
  • Component state definitions
  • CSS variable systems
  • Spacing/typography scales
  • Design-to-code handoff
  • Tailwind theme configuration
  • Slide/presentation generation

Token Architecture

Load: references/token-architecture.md

Three-Layer Structure

Primitive (raw values)
       ↓
Semantic (purpose aliases)
       ↓
Component (component-specific)

Example:

/* Primitive */
--color-blue-600: #2563EB;

/* Semantic */
--color-primary: var(--color-blue-600);

/* Component */
--button-bg: var(--color-primary);

Quick Start

Generate tokens:

node scripts/generate-tokens.cjs --config tokens.json -o tokens.css

Validate usage:

node scripts/validate-tokens.cjs --dir src/

References

TopicFile
Token Architecturereferences/token-architecture.md
Primitive Tokensreferences/primitive-tokens.md
Semantic Tokensreferences/semantic-tokens.md
Component Tokensreferences/component-tokens.md
Component Specsreferences/component-specs.md
States & Variantsreferences/states-and-variants.md
Tailwind Integrationreferences/tailwind-integration.md

Component Spec Pattern

PropertyDefaultHoverActiveDisabled
Backgroundprimaryprimary-darkprimary-darkermuted
Textwhitewhitewhitemuted-fg
Bordernonenonenonemuted-border
Shadowsmmdnonenone

Scripts

ScriptPurpose
generate-tokens.cjsGenerate CSS from JSON token config
validate-tokens.cjsCheck for hardcoded values in code
search-slides.pyBM25 search + contextual recommendations
slide-token-validator.pyValidate slide HTML for token compliance
fetch-background.pyFetch images from Pexels/Unsplash

Templates

TemplatePurpose
design-tokens-starter.jsonStarter JSON with three-layer structure

Integration

With brand: Extract primitives from brand colors/typography With ui-styling: Component tokens → Tailwind config

Skill Dependencies: brand, ui-styling Primary Agents: ui-ux-designer, frontend-developer

Slide System

Brand-compliant presentations using design tokens + Chart.js + contextual decision system.

Source of Truth

FilePurpose
docs/brand-guidelines.mdBrand identity, voice, colors
assets/design-tokens.jsonToken definitions (primitive→semantic→component)
assets/design-tokens.cssCSS variables (import in slides)
assets/css/slide-animations.cssCSS animation library

Slide Search (BM25)

# Basic search (auto-detect domain)
python scripts/search-slides.py "investor pitch"

# Domain-specific search
python scripts/search-slides.py "problem agitation" -d copy
python scripts/search-slides.py "revenue growth" -d chart

# Contextual search (Premium System)
python scripts/search-slides.py "problem slide" --context --position 2 --total 9
python scripts/search-slides.py "cta" --context --position 9 --prev-emotion frustration

Decision System CSVs

FilePurpose
data/slide-strategies.csv15 deck structures + emotion arcs + sparkline beats
data/slide-layouts.csv25 layouts + component variants + animations
data/slide-layout-logic.csvGoal → Layout + break_pattern flag
data/slide-typography.csvContent type → Typography scale
data/slide-color-logic.csvEmotion → Color treatment
data/slide-backgrounds.csvSlide type → Image category (Pexels/Unsplash)
data/slide-copy.csv25 copywriting formulas (PAS, AIDA, FAB)
data/slide-charts.csv25 chart types with Chart.js config

Contextual Decision Flow

1. Parse goal/context
        ↓
2. Search slide-strategies.csv → Get strategy + emotion beats
        ↓
3. For each slide:
   a. Query slide-layout-logic.csv → layout + break_pattern
   b. Query slide-typography.csv → type scale
   c. Query slide-color-logic.csv → color treatment
   d. Query slide-backgrounds.csv → image if needed
   e. Apply animation class from slide-animations.css
        ↓
4. Generate HTML with design tokens
        ↓
5. Validate with slide-token-validator.py

Pattern Breaking (Duarte Sparkline)

Premium decks alternate between emotions for engagement:

"What Is" (frustration) ↔ "What Could Be" (hope)

System calculates pattern breaks at 1/3 and 2/3 positions.

Slide Requirements

ALL slides MUST:

  1. Import assets/design-tokens.css - single source of truth
  2. Use CSS variables: var(--color-primary), var(--slide-bg), etc.
  3. Use Chart.js for charts (NOT CSS-only bars)
  4. Include navigation (keyboard arrows, click, progress bar)
  5. Center align content
  6. Focus on persuasion/conversion

Chart.js Integration

<script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.1/dist/chart.umd.min.js"></script>

<canvas id="revenueChart"></canvas>
<script>
new Chart(document.getElementById('revenueChart'), {
    type: 'line',
    data: {
        labels: ['Sep', 'Oct', 'Nov', 'Dec'],
        datasets: [{
            data: [5, 12, 28, 45],
            borderColor: '#FF6B6B',  // Use brand coral
            backgroundColor: 'rgba(255, 107, 107, 0.1)',
            fill: true,
            tension: 0.4
        }]
    }
});
</script>

Token Compliance

/* CORRECT - uses token */
background: var(--slide-bg);
color: var(--color-primary);
font-family: var(--typography-font-heading);

/* WRONG - hardcoded */
background: #0D0D0D;
color: #FF6B6B;
font-family: 'Space Grotesk';

Reference Implementation

Working example with all features:

assets/designs/slides/claudekit-pitch-251223.html

Command

/slides:create "10-slide investor pitch for ClaudeKit Marketing"

Best Practices

  1. Never use raw hex in components - always reference tokens
  2. Semantic layer enables theme switching (light/dark)
  3. Component tokens enable per-component customization
  4. Use HSL format for opacity control
  5. Document every token's purpose
  6. Slides must import design-tokens.css and use var() exclusively