스킬 자체의 표현으로
현대적인 조합 패턴, CSS-in-JS 솔루션, 컴포넌트 API 설계 원칙을 사용하여 React, Vue, Svelte 전반에서 재사용 가능한 UI 컴포넌트를 구축합니다. 복합 컴포넌트, 렌더 프롭, 슬롯과 함께 React context, Vue composables, Svelte runes 같은 프레임워크별 패턴을 다룹니다. 컴포넌트 라이브러리, 디자인 시스템, 레거시 컴포넌트 리팩터링에 적용됩니다.
시맨틱 프롭, 단일 책임, ref 포워딩, 제어형과 비제어형 패턴의 구분을 통해 기본적으로 접근 가능한 컴포넌트를 강조합니다. class-variance-authority, Tailwind CSS, 스코프 스타일링 방식을 사용한 버튼, 아코디언, 셀렉트, 탭의 구체적인 구현을 포함합니다.
산출물
- class-variance-authority와 Tailwind CSS로 버튼, 아코디언, 셀렉트, 탭, 카드를 구현하는 디자인 시스템 컴포넌트입니다.
작동 방식
- 01CSS-in-JS 방식 선택하기
빠른 프로토타이핑을 위한 Tailwind CSS, 스코프 스타일을 위한 CSS Modules, 동적인 React 스타일링을 위한 styled-components, SSR 친화적인 유연성을 위한 Emotion, 또는 런타임 없는 성능을 위한 Vanilla Extract 중에서 선택합니다.
- 02컴포넌트 API 설계하기
loading 대신 isLoading 같은 시맨틱한 프롭 이름을 사용하고, 합리적인 기본값을 제공하며, children을 통한 조합을 지원하고, className이나 style 프롭을 통해 스타일 재정의를 허용합니다.
- 03프레임워크별 패턴 구현하기
복합 컴포넌트에는 React context를, provide와 inject를 사용하는 Vue 3 composables를, 또는 반응형 상태를 위해 $props와 $derived를 사용하는 Svelte 5 runes를 사용합니다.