Skip to content
cccskills
FreePublished on GitHub

ui-styling

Build accessible interfaces with shadcn/ui components and Tailwind CSS styling. Create forms, tables, and layouts that adapt to screen size, then coordinate colors, spacing, and dark mode across the application.

OriginalShow the original description

Create beautiful, accessible user interfaces with shadcn/ui components (built on Radix UI + Tailwind), Tailwind CSS utility-first styling, and canvas-based visual designs. Use when building user interfaces, implementing design systems, creating responsive layouts, adding accessible components (dialogs, dropdowns, forms, tables), customizing themes and colors, implementing dark mode, generating visual designs and posters, or establishing consistent styling patterns across applications.

See how to install

Good for

  • Build forms with keyboard navigation
  • Adapt layouts for phones and desktops
  • Unify colors and dark mode
  • Create posters and brand visuals

Files included (98)

  • SKILL.md10.7 KB
  • canvas-fonts/ArsenalSC-OFL.txt4.3 KB
  • canvas-fonts/ArsenalSC-Regular.ttf162.0 KB
  • canvas-fonts/BigShoulders-Bold.ttf92.3 KB
  • canvas-fonts/BigShoulders-OFL.txt4.3 KB
  • canvas-fonts/BigShoulders-Regular.ttf92.2 KB
  • canvas-fonts/Boldonse-OFL.txt4.3 KB
  • canvas-fonts/Boldonse-Regular.ttf75.4 KB
  • canvas-fonts/BricolageGrotesque-Bold.ttf88.8 KB
  • canvas-fonts/BricolageGrotesque-OFL.txt4.3 KB
  • canvas-fonts/BricolageGrotesque-Regular.ttf88.8 KB
  • canvas-fonts/CrimsonPro-Bold.ttf104.8 KB
  • canvas-fonts/CrimsonPro-Italic.ttf106.3 KB
  • canvas-fonts/CrimsonPro-OFL.txt4.3 KB
  • canvas-fonts/CrimsonPro-Regular.ttf104.2 KB
  • canvas-fonts/DMMono-OFL.txt4.3 KB
  • canvas-fonts/DMMono-Regular.ttf47.7 KB
  • canvas-fonts/EricaOne-OFL.txt4.3 KB
  • canvas-fonts/EricaOne-Regular.ttf24.3 KB
  • canvas-fonts/GeistMono-Bold.ttf76.5 KB
  • canvas-fonts/GeistMono-OFL.txt4.3 KB
  • canvas-fonts/GeistMono-Regular.ttf76.4 KB
  • canvas-fonts/Gloock-OFL.txt4.3 KB
  • canvas-fonts/Gloock-Regular.ttf92.9 KB
  • canvas-fonts/IBMPlexMono-Bold.ttf132.8 KB
  • canvas-fonts/IBMPlexMono-OFL.txt4.3 KB
  • canvas-fonts/IBMPlexMono-Regular.ttf130.7 KB
  • canvas-fonts/IBMPlexSerif-Bold.ttf157.2 KB
  • canvas-fonts/IBMPlexSerif-BoldItalic.ttf165.9 KB
  • canvas-fonts/IBMPlexSerif-Italic.ttf166.0 KB
  • canvas-fonts/IBMPlexSerif-Regular.ttf156.6 KB
  • canvas-fonts/InstrumentSans-Bold.ttf66.5 KB
  • canvas-fonts/InstrumentSans-BoldItalic.ttf68.4 KB
  • canvas-fonts/InstrumentSans-Italic.ttf68.3 KB
  • canvas-fonts/InstrumentSans-OFL.txt4.3 KB
  • canvas-fonts/InstrumentSans-Regular.ttf66.4 KB
  • canvas-fonts/InstrumentSerif-Italic.ttf69.2 KB
  • canvas-fonts/InstrumentSerif-Regular.ttf67.7 KB
  • canvas-fonts/Italiana-OFL.txt4.3 KB
  • canvas-fonts/Italiana-Regular.ttf26.5 KB
  • canvas-fonts/JetBrainsMono-Bold.ttf112.1 KB
  • canvas-fonts/JetBrainsMono-OFL.txt4.3 KB
  • canvas-fonts/JetBrainsMono-Regular.ttf112.2 KB
  • canvas-fonts/Jura-Light.ttf150.7 KB
  • canvas-fonts/Jura-Medium.ttf150.9 KB
  • canvas-fonts/Jura-OFL.txt4.3 KB
  • canvas-fonts/LibreBaskerville-OFL.txt4.3 KB
  • canvas-fonts/LibreBaskerville-Regular.ttf144.1 KB
  • canvas-fonts/Lora-Bold.ttf130.7 KB
  • canvas-fonts/Lora-BoldItalic.ttf137.0 KB
  • canvas-fonts/Lora-Italic.ttf136.1 KB
  • canvas-fonts/Lora-OFL.txt4.3 KB
  • canvas-fonts/Lora-Regular.ttf130.8 KB
  • canvas-fonts/NationalPark-Bold.ttf77.4 KB
  • canvas-fonts/NationalPark-OFL.txt4.3 KB
  • canvas-fonts/NationalPark-Regular.ttf74.6 KB
  • canvas-fonts/NothingYouCouldDo-OFL.txt4.3 KB
  • canvas-fonts/NothingYouCouldDo-Regular.ttf31.3 KB
  • canvas-fonts/Outfit-Bold.ttf54.1 KB
  • canvas-fonts/Outfit-OFL.txt4.3 KB
  • canvas-fonts/Outfit-Regular.ttf53.6 KB
  • canvas-fonts/PixelifySans-Medium.ttf49.9 KB
  • canvas-fonts/PixelifySans-OFL.txt4.3 KB
  • canvas-fonts/PoiretOne-OFL.txt4.3 KB
  • canvas-fonts/PoiretOne-Regular.ttf44.2 KB
  • canvas-fonts/RedHatMono-Bold.ttf33.6 KB
  • canvas-fonts/RedHatMono-OFL.txt4.3 KB
  • canvas-fonts/RedHatMono-Regular.ttf33.7 KB
  • canvas-fonts/Silkscreen-OFL.txt4.3 KB
  • canvas-fonts/Silkscreen-Regular.ttf31.2 KB
  • canvas-fonts/SmoochSans-Medium.ttf58.3 KB
  • canvas-fonts/SmoochSans-OFL.txt4.3 KB
  • canvas-fonts/Tektur-Medium.ttf74.5 KB
  • canvas-fonts/Tektur-OFL.txt4.3 KB
  • canvas-fonts/Tektur-Regular.ttf73.8 KB
  • canvas-fonts/WorkSans-Bold.ttf186.8 KB
  • canvas-fonts/WorkSans-BoldItalic.ttf171.7 KB
  • canvas-fonts/WorkSans-Italic.ttf170.2 KB
  • canvas-fonts/WorkSans-OFL.txt4.3 KB
  • canvas-fonts/WorkSans-Regular.ttf184.5 KB
  • canvas-fonts/YoungSerif-OFL.txt4.3 KB
  • canvas-fonts/YoungSerif-Regular.ttf102.7 KB
  • LICENSE.txt11.1 KB
  • references/canvas-design-system.md7.7 KB
  • references/shadcn-accessibility.md9.7 KB
  • references/shadcn-components.md10.9 KB
  • references/shadcn-theming.md8.5 KB
  • references/tailwind-customization.md9.9 KB
  • references/tailwind-responsive.md8.1 KB
  • references/tailwind-utilities.md9.7 KB
  • scripts/.coverage52.0 KB
  • scripts/requirements.txt444 B
  • scripts/shadcn_add.py8.6 KB
  • scripts/tailwind_config_gen.py15.3 KB
  • scripts/tests/coverage-ui.json34.3 KB
  • scripts/tests/requirements.txt52 B
  • scripts/tests/test_shadcn_add.py9.7 KB
  • scripts/tests/test_tailwind_config_gen.py18.7 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

UI Styling Skill

Comprehensive skill for creating beautiful, accessible user interfaces combining shadcn/ui components, Tailwind CSS utility styling, and canvas-based visual design systems.

Reference

When to Use This Skill

Use when:

  • Building UI with React-based frameworks (Next.js, Vite, Remix, Astro)
  • Implementing accessible components (dialogs, forms, tables, navigation)
  • Styling with utility-first CSS approach
  • Creating responsive, mobile-first layouts
  • Implementing dark mode and theme customization
  • Building design systems with consistent tokens
  • Generating visual designs, posters, or brand materials
  • Rapid prototyping with immediate visual feedback
  • Adding complex UI patterns (data tables, charts, command palettes)

Core Stack

Component Layer: shadcn/ui

  • Pre-built accessible components via Radix UI primitives
  • Copy-paste distribution model (components live in your codebase)
  • TypeScript-first with full type safety
  • Composable primitives for complex UIs
  • CLI-based installation and management

Styling Layer: Tailwind CSS

  • Utility-first CSS framework
  • Build-time processing with zero runtime overhead
  • Mobile-first responsive design
  • Consistent design tokens (colors, spacing, typography)
  • Automatic dead code elimination

Visual Design Layer: Canvas

  • Museum-quality visual compositions
  • Philosophy-driven design approach
  • Sophisticated visual communication
  • Minimal text, maximum visual impact
  • Systematic patterns and refined aesthetics

Script Paths

Script paths in this skill and its references/ are relative to the directory that contains this SKILL.md, not to the project: scripts/<file> is this skill's own scripts/ folder, and ../<skill>/scripts/<file> is a sibling sub-skill installed alongside it. Build the full path from that directory (Claude Code reports it as the skill's base directory when the skill loads) and keep the working directory at the project root — the scripts read and write project files such as docs/brand-guidelines.md, assets/design-tokens.json or src/ relative to it.

Quick Start

Component + Styling Setup

Install shadcn/ui with Tailwind:

npx shadcn@latest init

CLI prompts for framework, TypeScript, paths, and theme preferences. This configures both shadcn/ui and Tailwind CSS.

Add components:

npx shadcn@latest add button card dialog form

Use components with utility styling:

import { Button } from "@/components/ui/button"
import { Card, CardHeader, CardTitle, CardContent } from "@/components/ui/card"

export function Dashboard() {
  return (
    <div className="container mx-auto p-6 grid gap-6 md:grid-cols-2 lg:grid-cols-3">
      <Card className="hover:shadow-lg transition-shadow">
        <CardHeader>
          <CardTitle className="text-2xl font-bold">Analytics</CardTitle>
        </CardHeader>
        <CardContent className="space-y-4">
          <p className="text-muted-foreground">View your metrics</p>
          <Button variant="default" className="w-full">
            View Details
          </Button>
        </CardContent>
      </Card>
    </div>
  )
}

Alternative: Tailwind-Only Setup

Vite projects:

npm install -D tailwindcss @tailwindcss/vite
// vite.config.ts
import tailwindcss from '@tailwindcss/vite'
export default { plugins: [tailwindcss()] }
/* src/index.css */
@import "tailwindcss";

Component Library Guide

Comprehensive component catalog with usage patterns, installation, and composition examples.

See: references/shadcn-components.md

Covers:

  • Form & input components (Button, Input, Select, Checkbox, Date Picker, Form validation)
  • Layout & navigation (Card, Tabs, Accordion, Navigation Menu)
  • Overlays & dialogs (Dialog, Drawer, Popover, Toast, Command)
  • Feedback & status (Alert, Progress, Skeleton)
  • Display components (Table, Data Table, Avatar, Badge)

Theme & Customization

Theme configuration, CSS variables, dark mode implementation, and component customization.

See: references/shadcn-theming.md

Covers:

  • Dark mode setup with next-themes
  • CSS variable system
  • Color customization and palettes
  • Component variant customization
  • Theme toggle implementation

Accessibility Patterns

ARIA patterns, keyboard navigation, screen reader support, and accessible component usage.

See: references/shadcn-accessibility.md

Covers:

  • Radix UI accessibility features
  • Keyboard navigation patterns
  • Focus management
  • Screen reader announcements
  • Form validation accessibility

Tailwind Utilities

Core utility classes for layout, spacing, typography, colors, borders, and shadows.

See: references/tailwind-utilities.md

Covers:

  • Layout utilities (Flexbox, Grid, positioning)
  • Spacing system (padding, margin, gap)
  • Typography (font sizes, weights, alignment, line height)
  • Colors and backgrounds
  • Borders and shadows
  • Arbitrary values for custom styling

Responsive Design

Mobile-first breakpoints, responsive utilities, and adaptive layouts.

See: references/tailwind-responsive.md

Covers:

  • Mobile-first approach
  • Breakpoint system (sm, md, lg, xl, 2xl)
  • Responsive utility patterns
  • Container queries
  • Max-width queries
  • Custom breakpoints

Tailwind Customization

Config file structure, custom utilities, plugins, and theme extensions.

See: references/tailwind-customization.md

Covers:

  • @theme directive for custom tokens
  • Custom colors and fonts
  • Spacing and breakpoint extensions
  • Custom utility creation
  • Custom variants
  • Layer organization (@layer base, components, utilities)
  • Apply directive for component extraction

Visual Design System

Canvas-based design philosophy, visual communication principles, and sophisticated compositions.

See: references/canvas-design-system.md

Covers:

  • Design philosophy approach
  • Visual communication over text
  • Systematic patterns and composition
  • Color, form, and spatial design
  • Minimal text integration
  • Museum-quality execution
  • Multi-page design systems

Utility Scripts

Python automation for component installation and configuration generation.

shadcn_add.py

Add shadcn/ui components with dependency handling:

python scripts/shadcn_add.py button card dialog

tailwind_config_gen.py

Generate tailwind.config.js with custom theme:

python scripts/tailwind_config_gen.py --colors brand:blue --fonts display:Inter

The generator refuses to create or replace a config when any sibling tailwind.config.js, .cjs, .mjs, or .ts file already exists. Review the reported config first, then pass --force only when the competing output is intentional:

python scripts/tailwind_config_gen.py --colors brand:blue --force

Best Practices

  1. Component Composition: Build complex UIs from simple, composable primitives
  2. Utility-First Styling: Use Tailwind classes directly; extract components only for true repetition
  3. Mobile-First Responsive: Start with mobile styles, layer responsive variants
  4. Accessibility-First: Leverage Radix UI primitives, add focus states, use semantic HTML
  5. Design Tokens: Use consistent spacing scale, color palettes, typography system
  6. Dark Mode Consistency: Apply dark variants to all themed elements
  7. Performance: Leverage automatic CSS purging, avoid dynamic class names
  8. TypeScript: Use full type safety for better DX
  9. Visual Hierarchy: Let composition guide attention, use spacing and color intentionally
  10. Expert Craftsmanship: Every detail matters - treat UI as a craft

Reference Navigation

Component Library

  • references/shadcn-components.md - Complete component catalog
  • references/shadcn-theming.md - Theming and customization
  • references/shadcn-accessibility.md - Accessibility patterns

Styling System

  • references/tailwind-utilities.md - Core utility classes
  • references/tailwind-responsive.md - Responsive design
  • references/tailwind-customization.md - Configuration and extensions

Visual Design

  • references/canvas-design-system.md - Design philosophy and canvas workflows

Automation

  • scripts/shadcn_add.py - Component installation
  • scripts/tailwind_config_gen.py - Config generation

Common Patterns

Form with validation:

import { useForm } from "react-hook-form"
import { zodResolver } from "@hookform/resolvers/zod"
import * as z from "zod"
import { Form, FormField, FormItem, FormLabel, FormControl, FormMessage } from "@/components/ui/form"
import { Input } from "@/components/ui/input"
import { Button } from "@/components/ui/button"

const schema = z.object({
  email: z.string().email(),
  password: z.string().min(8)
})

export function LoginForm() {
  const form = useForm({
    resolver: zodResolver(schema),
    defaultValues: { email: "", password: "" }
  })

  return (
    <Form {...form}>
      <form onSubmit={form.handleSubmit(console.log)} className="space-y-6">
        <FormField control={form.control} name="email" render={({ field }) => (
          <FormItem>
            <FormLabel>Email</FormLabel>
            <FormControl>
              <Input type="email" {...field} />
            </FormControl>
            <FormMessage />
          </FormItem>
        )} />
        <Button type="submit" className="w-full">Sign In</Button>
      </form>
    </Form>
  )
}

Responsive layout with dark mode:

<div className="min-h-screen bg-white dark:bg-gray-900">
  <div className="container mx-auto px-4 py-8">
    <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
      <Card className="bg-white dark:bg-gray-800 border-gray-200 dark:border-gray-700">
        <CardContent className="p-6">
          <h3 className="text-xl font-semibold text-gray-900 dark:text-white">
            Content
          </h3>
        </CardContent>
      </Card>
    </div>
  </div>
</div>

Resources

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

banner-design

FreeSummary

Create banners for social media, ads, website heroes, and print formats. Compare multiple visual directions built in HTML/CSS using supplied assets, CSS graphics, or optional generated imagery, with PNG exports when browser capture is available.

  • Creating social media headers and covers
  • Comparing display ad banner designs
  • Designing a website hero visual
nextlevelbuilder/ui-ux-pro-max-skill137.2KUpdated Oct 15, 2026

brand

FreeSummary

Define a brand’s tone, visual standards, and messaging, then review content and assets for consistency. Includes tools to check asset names and formats, compare colors, and convert brand guidelines into reusable design settings.

  • Define a consistent brand tone
  • Create guidelines for colors and typography
  • Review marketing assets for brand consistency
nextlevelbuilder/ui-ux-pro-max-skill137.2KUpdated Oct 15, 2026

design

FreeSummary

Create logos, business card mockups, HTML presentations, banners, social images, and SVG icons. Define shared brand colors and typography, then carry those choices into visual assets and interface styling.

  • Create logos and business card mockups
  • Design social images for multiple platforms
  • Build pitch decks in HTML
nextlevelbuilder/ui-ux-pro-max-skill137.2KUpdated Oct 15, 2026

design-system

FreeSummary

Organize colors, spacing, and typography into reusable design tokens, or shared style values. Generate CSS variables, define component states, check for hardcoded values, and create HTML presentations that follow the same brand rules.

  • Standardize colors, spacing, and typography
  • Document button states and variants
  • Check code for hardcoded style values
nextlevelbuilder/ui-ux-pro-max-skill137.2KUpdated Oct 15, 2026

slides

FreeSummary

Create HTML presentations for marketing, pitches, and data-driven explanations. Use Chart.js graphs, reusable design settings, responsive layouts, and writing formulas to shape slide content and choose layouts suited to the presentation's purpose.

  • Creating marketing presentation slides
  • Building a pitch deck
  • Explaining data with Chart.js graphs
nextlevelbuilder/ui-ux-pro-max-skill137.2KUpdated Oct 15, 2026

ui-ux-pro-max

FreeSummary

Search local design guidance to plan, build, review, or improve web, mobile, and desktop interfaces. Find suitable colors, font pairings, layouts, charts, and interaction patterns, with implementation advice matched to the project's technology.

  • Choose colors and fonts for a new product
  • Review forms and keyboard accessibility
  • Fix layouts that break on small screens
nextlevelbuilder/ui-ux-pro-max-skill137.2KUpdated Oct 15, 2026

See all skills by nextlevelbuilder

Report a problem with this skill