Zero Config · Zero FOUC · Zero Runtime · 모든 CSS-in-JS 문법 완벽 지원
--- --- [English](README.md) | 한국어 ## 왜 Devup UI인가? **Devup UI는 단순한 CSS-in-JS 라이브러리가 아닙니다 — CSS-in-JS의 미래 그 자체입니다.** 기존 CSS-in-JS 솔루션들은 개발자 경험과 성능 사이에서 타협을 강요했습니다. Devup UI는 Rust 기반 전처리기를 통해 모든 스타일을 빌드 타임에 처리함으로써 이 트레이드오프를 완전히 제거합니다. - **완전한 문법 지원**: 변수, 조건문, 반응형 배열, 가상 선택자 등 모든 CSS-in-JS 패턴을 완벽하게 지원 - **익숙한 API**: styled-components, Emotion과 호환되는 `styled()` API 제공 - **진정한 제로 런타임**: 런타임에서 스타일링을 위한 JavaScript 실행이 전혀 없습니다 - **가장 작은 번들 크기**: 최적화된 클래스명(`a`, `b`, ... `aa`, `ab`)으로 CSS 출력 최소화 - **가장 빠른 빌드 속도**: Rust + WebAssembly가 제공하는 압도적인 전처리 성능 ## 설치 ```sh npm install @devup-ui/react # Next.js npm install @devup-ui/next-plugin # Vite npm install @devup-ui/vite-plugin # Rsbuild npm install @devup-ui/rsbuild-plugin # Webpack npm install @devup-ui/webpack-plugin ``` ## 기능 - **전처리기** — 모든 CSS 추출이 빌드 타임에 완료됩니다 - **Zero Config** — 별도 설정 없이 바로 사용 가능 - **Zero FOUC** — 스타일 깜빡임 없음, Provider 불필요 - **Zero Runtime** — 스타일링을 위한 클라이언트 JavaScript 실행 없음 - **RSC 지원** — React Server Components 완벽 호환 - **라이브러리 모드** — 추출된 스타일과 함께 컴포넌트 라이브러리 빌드 가능 - **동적 테마** — CSS 변수 기반 제로 코스트 테마 전환 - **타입 세이프 테마** — 테마 토큰에 대한 완전한 TypeScript 지원 - **가장 작고 빠름** — 벤치마크로 증명됨 ## 비교 벤치마크 Next.js Build Time and Build Size (github action - ubuntu-latest) | 라이브러리 | 버전 | 빌드 시간 | 빌드 사이즈 | | ---------------------------------- | ------ | ---------- | -------------------- | | tailwindcss | 4.1.13 | 19.31s | 59,521,539 bytes | | styleX | 0.15.4 | 41.78s | 86,869,452 bytes | | vanilla-extract | 1.17.4 | 19.50s | 61,494,033 bytes | | kuma-ui | 1.5.9 | 20.93s | 69,924,179 bytes | | panda-css | 1.3.1 | 20.64s | 64,573,260 bytes | | chakra-ui | 3.27.0 | 28.81s | 222,435,802 bytes | | mui | 7.3.2 | 20.86s | 97,964,458 bytes | | **devup-ui(per-file css)** | 1.0.18 | **16.90s** | 59,540,459 bytes | | **devup-ui(single css)** | 1.0.18 | **17.05s** | **59,520,196 bytes** | | tailwindcss(turbopack) | 4.1.13 | 6.72s | 5,355,082 bytes | | **devup-ui(single css+turbopack)** | 1.0.18 | 10.34s | **4,772,050 bytes** | ## 작동 원리 Devup UI는 빌드 타임에 컴포넌트를 변환합니다. 클래스명은 CSS 크기를 최소화하기 위해 압축된 base-37 인코딩을 사용하여 생성됩니다. **기본 변환:** ```tsx // 개발자가 작성: const example =