Skip to main content

style-component

Style React UI with Tailwind CSS v4 utilities and Headless UI accessible primitives, wired into presentational components without breaking one-way layering.

소스 정보

저장소
ThibautBaissac/react-express-ai-kit
최근 소스 활동
2026년 6월 8일 08:10
감지된 SKILL.md 언어
영어
스타
2
포크
0

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
2 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
style-component
description
Style React UI with Tailwind CSS v4 utilities and Headless UI accessible primitives, wired into presentational components without breaking one-way layering.
when_to_use
Use WHEN styling or restyling a component, building a dialog/menu/combobox/listbox/popover/tabs/switch/disclosure, adding transitions, or setting up Tailwind — whether the user asks directly or an implementation agent is realizing a matching To-Do item from a `tasks/task-N.md` plan. Do NOT use to fetch data or add business logic (that lives in hooks/services), and do NOT use for backend work.
argument-hint
[component-or-feature]
arguments
["target"]
model
sonnet
# Style a component with Tailwind + Headless UI Style `$target` with utilities. Use Headless UI for accessible interactive elements. Keep fetching and business logic out of presentational components. ## Step 1 — Ensure Tailwind is set up Check for `@tailwindcss/vite`, `tailwindcss()` in `vite.config.*`, and `@import "tailwindcss"` in a CSS entry. If incomplete, apply the reference section "Tailwind v4 setup". Install `@headlessui/react` only when needed. ## Step 2 — Style with utilities Apply `references/styling-patterns.md`. - Use utility classes directly on semantic markup; prefer design tokens over arbitrary values like `w-[317px]`. - Compose conditional classes with the project's existing `clsx`/`cn` helper, not string concatenation. - Keep responsive/state variants inline (`md:`, `hover:`, `dark:`); do not hand-write CSS the utilities already cover. ## Step 3 — Use Headless UI for interactive primitives Check the reference inventory before building an interactive widget. Use Headless UI when it provides the behavior; it owns keyboard, focus, and ARIA. Style with data attributes and `<Transition>` or `transition`. ## Step 4 — Keep it presentational and DRY-by-earn - No `useQuery`/`fetch` in the component — data arrives via props or a hook. - Generic, domain-free primitives (`Button`, `Card`, `Dialog`) belong in `shared/ui` from the start. - For *domain* styled components, extract a shared cluster only after a third real use; prefer duplication until then. ## Step 5 — Verify ```bash source "${CLAUDE_PROJECT_DIR}/.claude/lib/detect-toolchain.sh" run_typecheck run_build ``` `run_build` confirms Tailwind compiles the used classes. ## Checklist - [ ] Tailwind v4 is wired via the Vite plugin and `@import "tailwindcss"` (no `tailwind.config.js` unless one already exists). - [ ] Interactive widgets use Headless UI, not hand-rolled ARIA. - [ ] Classes use design tokens; arbitrary values only when no token fits. - [ ] Component stays presentational — no data fetching or business logic. - [ ] Domain-free primitives live in `shared/ui`; no domain styled abstraction added before its third real use. - [ ] `run_typecheck` and `run_build` pass.
GitHub에서 보기