web-component-design

Design reusable UI components across React, Vue, and Svelte with accessibility standards.

Updated Apr 5, 2026
One-click install
npx skills add https://github.com/Jhabbig/Habbig --skill web-component-design-jhabbig
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: web-component-design
Source: https://github.com/Jhabbig/Habbig/tree/main/.claude/plugins/wshobson/ui-design/skills/web-component-design
Command: npx skills add https://github.com/Jhabbig/Habbig --skill web-component-design-jhabbig

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill helps you design reusable, maintainable UI components instead of shipping one-off interfaces that are hard to scale, reuse, and keep accessible.

Core Features & Use Cases

  • Component Composition: Build compound components, slots, and render-prop APIs for flexible reuse.
  • Styling Strategy: Choose between Tailwind, CSS Modules, styled-components, Emotion, or Vanilla Extract based on team and performance needs.
  • Accessibility by Default: Apply keyboard support, focus management, ARIA roles, skip links, and live regions for inclusive interfaces.
  • Use Case: Turn a brittle modal, dropdown, or tab set into a consistent design-system primitive that works across React, Vue, and Svelte.

Quick Start

Design a reusable component for the UI you are building, and make sure it includes a clear API, accessible interactions, and a styling approach that matches the framework and product constraints.

Frequently Asked Questions about web-component-design

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I design reusable UI components that avoid prop sprawl and inconsistency?

To design reusable UI components, establish a clear API and apply compound component patterns to reduce prop sprawl. This strategy minimizes duplication and inconsistency by prioritizing flexible composition over rigid configuration across your interface architecture.

What is the best way to manage keyboard support and focus management in accessible interface components?

The best way to manage keyboard support and focus management is aligning component behavior with accessibility standards. Implement ARIA roles, skip links, and live regions to ensure inclusive interface interactions and proper focus trapping within your UI components.

Can I use the same design system component architecture across React, Vue, and Svelte?

Yes, you can apply consistent design system architecture across React, Vue, and Svelte. The approach focuses on framework-agnostic strategies like compound patterns, polymorphic primitives, and clear APIs to maintain reusable UI behavior across different libraries.

How do I choose a styling strategy between Tailwind, CSS Modules, and CSS-in-JS for a component library?

Choose a styling strategy by evaluating team needs and performance requirements. Compare Tailwind, CSS Modules, styled-components, Emotion, and Vanilla Extract to determine whether utility classes or CSS-in-JS best fits your specific design system constraints.

Why does my brittle modal or dropdown component break when reused in different contexts?

Brittle modals and dropdowns break from tight coupling and lack of composition. Transforming them into design-system primitives with clear APIs, ref forwarding, and render-prop patterns ensures they adapt flexibly across varying application contexts without breaking.