PluginBench
Skill
Pass
Audit score 90

frontend-design

jwynia/agent-skills

Create production-grade frontend interfaces with design system tools for palettes, typography, tokens, and components.

What is frontend-design?

A design-focused skill for building distinctive web interfaces across React, Vue, Svelte, and vanilla HTML/CSS. Provides analysis tools to audit existing designs and generation tools to create color palettes, typography systems, design tokens, and component templates. Use when building web components, pages, or applications that need intentional, high-quality design.

  • Analyze existing CSS for design patterns, color usage, typography, and spacing inconsistencies
  • Extract design tokens from legacy codebases into CSS, SCSS, Tailwind, or Style Dictionary formats
  • Generate cohesive color palettes from seed colors with shade scales and semantic colors
  • Create typography systems with font stacks, type scales, and responsive breakpoints
  • Generate design tokens files in multiple formats (CSS, SCSS, Tailwind, TypeScript)
  • Generate component templates with design-focused styling across multiple frameworks and aesthetic styles

How to install frontend-design

npx skills add https://github.com/jwynia/agent-skills --skill frontend-design
Prerequisites
  • Deno runtime with --allow-read and --allow-write permissions
  • Optional: existing CSS or design files for analysis mode
Claude Code
Cursor
Windsurf
Cline

How to use frontend-design

  1. 1.Run analysis scripts on existing CSS to audit design patterns and extract tokens (analyze-styles.ts, extract-tokens.ts)
  2. 2.Create a specification JSON file defining your design requirements (colors, typography, tokens)
  3. 3.Run generation scripts to create color palettes, typography systems, and design tokens (generate-palette.ts, generate-typography.ts, generate-tokens.ts)
  4. 4.Generate component templates for your framework and styling approach (generate-component.ts)
  5. 5.Use the generated CSS variables, Tailwind config, or token files in your project

Use cases

Good for
  • Audit CSS files to identify design inconsistencies and extract reusable tokens before refactoring
  • Generate a complete color palette and typography system for a new design system
  • Create component templates (buttons, cards, inputs, modals) with consistent styling across your framework
  • Check accessibility compliance for color contrast, focus states, and touch targets in existing designs
  • Generate design tokens from a specification to ensure consistency across React, Vue, and Svelte components
Who it's for
  • Frontend developers building new web applications or components
  • Design system maintainers creating tokens and component libraries
  • Teams auditing existing codebases for design consistency
  • Developers working across multiple frameworks who need unified design tokens

frontend-design FAQ

What frameworks does this support?

React, Vue, Svelte, and vanilla HTML/CSS. Component generation can output to any of these frameworks with styling options including CSS, Tailwind, CSS Modules, styled-components, and emotion.

Can I analyze my existing design system?

Yes. Use analyze-styles.ts to audit CSS files for color usage, typography patterns, and spacing inconsistencies. Use extract-tokens.ts to convert existing styles into standardized design token formats.

What output formats are supported for design tokens?

CSS variables, SCSS, Tailwind config, Style Dictionary, and TypeScript. You can also output as JSON for use in other tools.

Does this check accessibility?

Yes. The analyze-accessibility.ts script checks color contrast ratios, focus indicator presence, touch target sizes, and motion preference respect against WCAG AA or AAA standards.

How do I use generated tokens in my project?

Generated tokens can be imported as CSS variables, Tailwind configuration, SCSS variables, or TypeScript constants depending on your output format and framework.

Full instructions (SKILL.md)

Source of truth, from jwynia/agent-skills.


name: frontend-design description: "Create distinctive, production-grade frontend interfaces with high design quality. Provides analysis tools for auditing existing designs and generation tools for creating color palettes, typography systems, design tokens, and component templates. Supports React, Vue, Svelte, and vanilla HTML/CSS. Use when building web components, pages, or applications. Keywords: design, UI, frontend, CSS, components, palette, typography, tokens, accessibility." license: MIT compatibility: Requires Deno with --allow-read, --allow-write permissions metadata: author: agent-skills version: "1.0" type: generator mode: generative domain: development

Frontend Design

Create distinctive, production-grade frontend interfaces that avoid generic "AI slop" aesthetics. This skill combines design philosophy guidance with practical TypeScript tooling for analyzing existing designs and generating design system artifacts.

Core Principle: Choose a clear aesthetic direction and execute it with precision. Bold maximalism and refined minimalism both work - the key is intentionality, not intensity.

When to Use This Skill

Use when:

  • Building web components, pages, or applications
  • Auditing existing CSS for design inconsistencies
  • Extracting design tokens from legacy codebases
  • Generating color palettes and typography systems
  • Creating component templates across frameworks
  • Checking accessibility compliance for design elements

Don't use when:

  • Simple text content changes
  • Backend-only work
  • Non-visual functionality

Prerequisites

  • Deno runtime (for script execution)
  • Optional: Existing CSS/design files for analysis
  • Optional: Design tokens file for reference

Quick Start

This skill operates in three modes:

1. Analyze Mode

Audit existing styles, extract tokens, check accessibility.

# Audit CSS for design patterns and inconsistencies
deno run --allow-read scripts/analyze-styles.ts styles.css

# Extract design tokens from existing CSS
deno run --allow-read scripts/extract-tokens.ts ./src --format css

# Check accessibility (contrast, focus states)
deno run --allow-read scripts/analyze-accessibility.ts component.tsx

2. Specify Mode

Create JSON specifications defining what to generate. See assets/ for schema examples.

3. Generate Mode

Create palettes, typography systems, tokens, and components.

# Generate a color palette
deno run --allow-read --allow-write scripts/generate-palette.ts --seed "#2563eb" --theme warm

# Generate typography system
deno run --allow-read --allow-write scripts/generate-typography.ts --display "Playfair Display" --body "Source Sans Pro"

# Generate design tokens file
deno run --allow-read --allow-write scripts/generate-tokens.ts tokens-spec.json ./output/

# Generate a component
deno run --allow-read --allow-write scripts/generate-component.ts --name Button --framework react --styling tailwind

Instructions

Phase 1: Analysis (Optional but Recommended)

Before creating new designs, audit existing code to understand current patterns.

1a. Style Analysis

Analyze CSS files to identify colors, typography, spacing, and inconsistencies:

deno run --allow-read scripts/analyze-styles.ts <input> [options]

Options:
  --tokens <file>    Compare against existing design tokens
  --pretty           Pretty-print JSON output
  --format <type>    Output format: json (default), summary

Output includes:

  • Color usage inventory with hex normalization
  • Typography patterns (fonts, sizes, weights)
  • Spacing value distribution
  • Inconsistencies and recommendations

1b. Token Extraction

Extract design tokens from CSS files into standardized formats:

deno run --allow-read scripts/extract-tokens.ts <input> [options]

Options:
  --format <type>    Output: css, scss, tailwind, style-dictionary, tokens-studio
  --output-css       Also output CSS variables file

1c. Accessibility Audit

Check design-related accessibility issues:

deno run --allow-read scripts/analyze-accessibility.ts <input> [options]

Options:
  --format <type>    Output: json, summary
  --level <AA|AAA>   WCAG conformance level (default: AA)

Checks include:

  • Color contrast ratios
  • Focus indicator presence
  • Touch target sizes
  • Motion preference respect

Phase 2: Generation

2a. Color Palette Generation

Generate cohesive color palettes from seed colors or themes:

deno run --allow-read --allow-write scripts/generate-palette.ts [options] <output>

Options:
  --seed <color>     Primary seed color (hex)
  --theme <type>     warm, cool, neutral, vibrant, muted, dark, light
  --style <type>     minimalist, bold, organic, corporate, playful
  --shades           Generate 50-950 shade scale
  --semantic         Generate success/warning/error colors
  --contrast <lvl>   Target contrast: AA (default), AAA
  --format <type>    css, scss, tailwind, tokens, json

Example specification (palette-spec.json):

{
  "seedColors": {
    "primary": "#2563eb",
    "accent": "#f59e0b"
  },
  "theme": "cool",
  "generateShades": true,
  "generateSemantics": true,
  "contrastTarget": "AA",
  "outputFormat": "css"
}

2b. Typography System Generation

Generate typography systems with font stacks and scales:

deno run --allow-read --allow-write scripts/generate-typography.ts [options] <output>

Options:
  --display <font>   Display/heading font family
  --body <font>      Body text font family
  --mono <font>      Monospace font family
  --scale <type>     minor-second, major-second, minor-third, major-third, perfect-fourth, golden-ratio
  --base <px>        Base font size (default: 16)
  --line-height      tight, normal, relaxed
  --responsive       Generate responsive breakpoints
  --format <type>    css, scss, tailwind, tokens

Type scales:

ScaleRatioCharacter
minor-second1.067Subtle, conservative
major-second1.125Balanced, professional
minor-third1.200Clear hierarchy
major-third1.250Strong presence
perfect-fourth1.333Bold, impactful
golden-ratio1.618Dramatic, artistic

2c. Design Token Generation

Generate comprehensive design token files in multiple formats:

deno run --allow-read --allow-write scripts/generate-tokens.ts <spec> <output-dir>

Specification structure:

{
  "name": "my-design-system",
  "tokens": {
    "color": { "primary": "#2563eb", "secondary": "#64748b" },
    "spacing": { "xs": "0.25rem", "sm": "0.5rem", "md": "1rem" },
    "typography": {
      "fontFamilies": { "display": "Playfair Display", "body": "Inter" },
      "fontSizes": { "sm": "0.875rem", "base": "1rem", "lg": "1.125rem" }
    },
    "shadow": { "sm": "0 1px 2px rgba(0,0,0,0.05)" },
    "border": { "radius": { "sm": "0.25rem", "md": "0.5rem" } },
    "animation": { "duration": { "fast": "150ms", "normal": "300ms" } }
  },
  "outputFormats": ["css", "scss", "tailwind", "ts"]
}

2d. Component Generation

Generate component templates with design-focused styling:

deno run --allow-read --allow-write scripts/generate-component.ts [options] <output-dir>

Options:
  --name <name>      Component name (required)
  --type <type>      button, card, input, modal, navigation, hero, custom
  --framework <fw>   react, vue, svelte, html
  --styling <type>   css, tailwind, css-modules, styled-components, emotion
  --aesthetic <type> minimal, bold, organic, brutalist, glassmorphism, neumorphism
  --animation <lvl>  none, subtle, expressive
  --dark-mode        Include dark mode support
  --tokens <file>    Use design tokens file

Framework output examples:

React with Tailwind:

export function Button({ variant = 'primary', children }: ButtonProps) {
  return (
    <button className="px-4 py-2 rounded-lg font-medium transition-all">
      {children}
    </button>
  );
}

Vue with scoped CSS:

<template>
  <button :class="['btn', `btn--${variant}`]"><slot /></button>
</template>
<script setup lang="ts">
defineProps<{ variant?: 'primary' | 'secondary' }>();
</script>
<style scoped>.btn { /* styles */ }</style>

Svelte:

<script lang="ts">
  export let variant: 'primary' | 'secondary' = 'primary';
</script>
<button class="btn btn--{variant}"><slot /></button>
<style>.btn { /* styles */ }</style>

Examples

Example 1: Audit and Modernize Legacy CSS

# 1. Analyze existing styles
deno run --allow-read scripts/analyze-styles.ts ./legacy/styles.css --pretty > audit.json

# 2. Extract tokens from the analysis
deno run --allow-read scripts/extract-tokens.ts ./legacy/styles.css --format css > tokens.css

# 3. Generate improved palette from dominant color
deno run --allow-read --allow-write scripts/generate-palette.ts --seed "#336699" --shades --format css palette.css

Example 2: Create Design System from Scratch

# 1. Generate color palette
deno run --allow-read --allow-write scripts/generate-palette.ts \
  --seed "#8b5cf6" --theme vibrant --shades --semantic --format css colors.css

# 2. Generate typography system
deno run --allow-read --allow-write scripts/generate-typography.ts \
  --display "Space Grotesk" --body "Inter" --scale major-third --responsive --format css typography.css

# 3. Generate comprehensive tokens
deno run --allow-read --allow-write scripts/generate-tokens.ts design-spec.json ./tokens/

Example 3: Generate Component Library

# Generate button component for React with Tailwind
deno run --allow-read --allow-write scripts/generate-component.ts \
  --name Button --framework react --styling tailwind --aesthetic bold ./components/

# Generate card component for Vue with CSS modules
deno run --allow-read --allow-write scripts/generate-component.ts \
  --name Card --framework vue --styling css-modules --aesthetic glassmorphism ./components/

# Generate input for Svelte
deno run --allow-read --allow-write scripts/generate-component.ts \
  --name Input --framework svelte --styling css --aesthetic minimal ./components/

Example 4: Accessibility Check Before Launch

# Audit all components
deno run --allow-read scripts/analyze-accessibility.ts ./src/components --level AAA --format summary

Script Reference

ScriptPurposePermissions
analyze-styles.tsAudit CSS for patterns and inconsistencies--allow-read
extract-tokens.tsExtract design tokens from CSS--allow-read
analyze-accessibility.tsCheck design accessibility--allow-read
generate-palette.tsGenerate color palettes--allow-read --allow-write
generate-typography.tsGenerate typography systems--allow-read --allow-write
generate-tokens.tsGenerate multi-format tokens--allow-read --allow-write
generate-component.tsGenerate framework components--allow-read --allow-write

Design Philosophy

Avoid generic "AI slop" aesthetics. See references/design-philosophy.md for detailed guidance.

Key principles:

  • Typography: Choose distinctive fonts, not defaults (avoid Arial, Inter, Roboto)
  • Color: Dominant colors with sharp accents, not timid palettes
  • Motion: Orchestrated reveals over scattered micro-interactions
  • Composition: Asymmetry, overlap, grid-breaking elements
  • Texture: Gradients, noise, patterns - not flat solid colors

Never converge on:

  • Purple gradients on white backgrounds
  • System fonts or overused families
  • Predictable card-based layouts
  • Cookie-cutter Bootstrap aesthetics

Common Issues

"CSS parsing failed"

  • Ensure valid CSS syntax
  • SCSS/PostCSS may need preprocessing first

"Color contrast check failed"

  • Check for CSS variables that couldn't be resolved
  • Provide the actual color values or tokens file

"Unknown framework"

  • Supported: react, vue, svelte, html
  • Check spelling and lowercase

"Token format not supported"

  • Supported: css, scss, tailwind, style-dictionary, tokens-studio, json, ts

Additional Resources

  • references/design-philosophy.md - Detailed anti-slop aesthetics guide
  • references/token-formats.md - Design token format specifications
  • references/framework-templates.md - Framework-specific patterns
  • assets/*.json - JSON schema files for specifications

Related Skills

  • web-search - Research design inspiration and trends
  • research-workflow - Deep dive into design systems

Related skills

More from jwynia/agent-skills and the wider catalog.

GOgodot-asset-generator logo

godot-asset-generator

jwynia/agent-skills

Generate game assets using AI image generation APIs (DALL-E, Replicate, fal.ai) and prepare them for Godot. Covers the full art pipeline from concept art and style guides to final sprites, sprite sheets, and import configuration. This skill should be used when creating game art, generating sprites, making tilesets, creating UI elements, or preparing assets for Godot import. Keywords: game assets, AI art, DALL-E, Replicate, fal.ai, sprite sheet, tileset, Godot, pixel art, character sprite, game art, texture, animation frames.

845 installsAudited
GOgodot-best-practices logo

godot-best-practices

jwynia/agent-skills

Guide AI agents through Godot 4.x GDScript best practices, architecture patterns, and coding standards.

1.9k installs
PDpdf-generator logo

pdf-generator

jwynia/agent-skills

Create and manipulate PDF files programmatically. Use when the user needs to generate PDFs, fill PDF forms, extract PDF content, add watermarks/overlays, or merge documents. Supports both template-based generation (form filling, overlays) and from-scratch creation. Keywords: PDF, document, form, fillable, merge, watermark, extract, text, report.

884 installs
PRpresentation-design logo

presentation-design

jwynia/agent-skills

Design and evaluate presentations that communicate effectively with audience-centered frameworks.

1.8k installsAudited
RErequirements-analysis logo

requirements-analysis

jwynia/agent-skills

Diagnose requirements problems and guide discovery of real needs versus solutions.

2.1k installs
STstory-coach logo

story-coach

jwynia/agent-skills

Act as an assistive writing coach who guides but never writes for the user. Use when helping someone develop their own writing through questions, diagnosis, and frameworks. Critical constraint - never generate story prose, dialogue, or narrative content. Instead ask questions, identify issues, suggest approaches, and let the writer write.

784 installs