frontend-design-systems

Frontend Design Systems

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "frontend-design-systems" with this command: npx skills add 4444j99/a-i--skills/4444j99-a-i-skills-frontend-design-systems

Frontend Design Systems

Build consistent, scalable UI components with systematic design patterns.

Design Token System

Color Tokens

// tokens/colors.ts export const colors = { primary: { 50: '#e3f2fd', 100: '#bbdefb', 500: '#2196f3', 900: '#0d47a1', }, neutral: { 50: '#fafafa', 100: '#f5f5f5', 500: '#9e9e9e', 900: '#212121', }, semantic: { success: '#4caf50', warning: '#ff9800', error: '#f44336', info: '#2196f3', } };

Spacing Scale

export const spacing = { xs: '0.25rem', // 4px sm: '0.5rem', // 8px md: '1rem', // 16px lg: '1.5rem', // 24px xl: '2rem', // 32px '2xl': '3rem', // 48px };

Typography System

export const typography = { fontFamily: { sans: ['Inter', 'system-ui', 'sans-serif'], mono: ['Fira Code', 'monospace'], }, fontSize: { xs: ['0.75rem', { lineHeight: '1rem' }], sm: ['0.875rem', { lineHeight: '1.25rem' }], base: ['1rem', { lineHeight: '1.5rem' }], lg: ['1.125rem', { lineHeight: '1.75rem' }], xl: ['1.25rem', { lineHeight: '1.75rem' }], }, fontWeight: { normal: '400', medium: '500', semibold: '600', bold: '700', } };

Component Patterns

Base Button Component

interface ButtonProps { variant?: 'primary' | 'secondary' | 'outline'; size?: 'sm' | 'md' | 'lg'; disabled?: boolean; loading?: boolean; children: React.ReactNode; onClick?: () => void; }

export function Button({ variant = 'primary', size = 'md', disabled = false, loading = false, children, onClick, }: ButtonProps) { const variants = { primary: 'bg-primary-500 text-white hover:bg-primary-600', secondary: 'bg-neutral-200 text-neutral-900 hover:bg-neutral-300', outline: 'border-2 border-primary-500 text-primary-500 hover:bg-primary-50', };

const sizes = { sm: 'px-3 py-1.5 text-sm', md: 'px-4 py-2 text-base', lg: 'px-6 py-3 text-lg', };

return ( <button className={rounded-lg font-medium transition-colors ${variants[variant]} ${sizes[size]}} disabled={disabled || loading} onClick={onClick} > {loading ? <Spinner /> : children} </button> ); }

Compound Components

// Card compound component pattern export function Card({ children }: { children: React.ReactNode }) { return <div className="rounded-lg border shadow-sm">{children}</div>; }

Card.Header = function CardHeader({ children }: { children: React.ReactNode }) { return <div className="px-6 py-4 border-b">{children}</div>; };

Card.Body = function CardBody({ children }: { children: React.ReactNode }) { return <div className="px-6 py-4">{children}</div>; };

Card.Footer = function CardFooter({ children }: { children: React.ReactNode }) { return <div className="px-6 py-4 border-t bg-neutral-50">{children}</div>; };

// Usage <Card> <Card.Header>Title</Card.Header> <Card.Body>Content</Card.Body> <Card.Footer>Actions</Card.Footer> </Card>

Layout Patterns

Responsive Grid System

function GridLayout({ children }: { children: React.ReactNode }) { return ( <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4"> {children} </div> ); }

Container Pattern

function Container({ children }: { children: React.ReactNode }) { return ( <div className="container mx-auto px-4 sm:px-6 lg:px-8 max-w-7xl"> {children} </div> ); }

State Management Patterns

Form State

function useForm<T>(initialValues: T) { const [values, setValues] = useState(initialValues); const [errors, setErrors] = useState<Partial<Record<keyof T, string>>>({});

const handleChange = (name: keyof T, value: any) => { setValues(prev => ({ ...prev, [name]: value })); setErrors(prev => ({ ...prev, [name]: undefined })); };

const validate = (schema: z.ZodSchema<T>) => { const result = schema.safeParse(values); if (!result.success) { const fieldErrors = result.error.formErrors.fieldErrors; setErrors(fieldErrors as any); return false; } return true; };

return { values, errors, handleChange, validate }; }

Accessibility Patterns

// Focus management function Dialog({ open, onClose, children }: DialogProps) { const dialogRef = useRef<HTMLDivElement>(null);

useEffect(() => { if (open) { dialogRef.current?.focus(); } }, [open]);

return ( <div ref={dialogRef} role="dialog" aria-modal="true" tabIndex={-1} onKeyDown={(e) => { if (e.key === 'Escape') onClose(); }} > {children} </div> ); }

Integration Points

Complements:

  • canvas-design: For design integration

  • accessibility-patterns: For ARIA/WCAG

  • responsive-design-patterns: For mobile-first

  • testing-patterns: For component testing

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

creative-writing-craft

No summary provided by upstream source.

Repository SourceNeeds Review
General

skill-creator

No summary provided by upstream source.

Repository SourceNeeds Review
General

generative-music-composer

No summary provided by upstream source.

Repository SourceNeeds Review
General

interfaith-sacred-geometry

No summary provided by upstream source.

Repository SourceNeeds Review