GUIDE
잘못된 UI 상태를 렌더 전에 차단하기
GJ Kit는 런타임 경고보다 올바른 값만 표현할 수 있는 API를 우선합니다. 접근성 이름 누락, 동작 없는 액션, 잘못된 리터럴 값과 서로 양립할 수 없는 모드를 타입 검사에서 발견합니다.
생성기를 거친 브랜드 테마
Theme과 ThemePair는 createTheme과 createThemes의 반환값만 Provider와 Tailwind preset에 전달할 수 있습니다. 누락된 토큰을 가진 손조립 객체는 거부됩니다.
판별 유니언으로 모드 분리
ProgressBar의 determinate와 indeterminate, Accordion의 single과 multiple, ListItem의 정적 행과 버튼 행처럼 가능한 prop 조합을 별도 타입으로 표현합니다.
TypeScript
<ProgressBar accessibilityLabel="동기화" value={null} />
// value={null}과 max의 동시 지정은 타입 오류오타와 레거시 의미 차단
Tabs와 RadioGroup은 NoInfer로 items 밖의 value를 막고 Text의 color는 닫힌 토큰 키만 받습니다. 제거된 unstyled와 의미가 달라진 TextField style은 never로 선언해 스프레드 이관 오류도 드러냅니다.
- IconButton 접근성 이름 누락 차단
- EmptyState action handler 누락 차단
- Button label과 children 동시 부재 차단
관련 컴포넌트 문서
Button
primary, outline, destructive, inverse 변형과 세 가지 크기, 로딩 상태를 제공하는 Expo·React Native 버튼입니다.
ProgressBar
value와 max 기반 진행률, 알 수 없는 진행 상태, 모션 감소와 접근성 값을 지원하는 React Native ProgressBar입니다.
Accordion
controlled single·multiple 모드와 헤더·패널 ARIA 관계, 키보드 상호작용을 제공하는 Expo·React Native Accordion입니다.
RadioGroup
단일 선택 값을 타입으로 제한하고 방향키·Home·End 키보드 탐색을 제공하는 Expo·React Native RadioGroup입니다.