2025년Archive
9월 17일
오늘 배운 것 (TIL)
Vanilla Extract with Next.js 14+ 완벽 가이드
vanilla-extract의 Next.js 14+ 환경에서의 사용법을 정리했다.
주요 학습 내용
1. 기본 설정
- Next.js 플러그인 설치 및 설정 방법
- 외부 라이브러리 사용 시
transpilePackages설정 - 다른 플러그인과의 조합 방법 (MDX 등)
2. 기본 사용법
- 스타일 정의와 컴포넌트 적용
- 테마 시스템 구축 (
createTheme,createThemeContract) - Sprinkles 유틸리티 시스템 활용
3. 고급 사용법
- 레시피 시스템을 통한 복합 스타일 관리
- 동적 스타일링 (
assignInlineVars,setElementVars) - CSS 변수와 복잡한 스타일 객체 조합
- 전역 테마 계약 활용
4. 문제 해결
- 외부 라이브러리 스타일 미적용 문제 해결
- Jest 테스트 환경에서의 .css.ts 파일 처리
- SSR 환경에서의 CSS 누락 문제 해결
- 테스트 환경 최적화 방법
5. 성능 최적화
- 식별자 설정을 통한 번들 크기 최적화
- CSS 번들 최적화 및 반응형 배열 표기법
- 타입 안전성 확보 (
RequiredConditionalValue) - 글로벌 스타일과 Sprinkles 결합
6. 실무 활용 팁
- calc 연산 중첩 개선
- 키프레임에서 변수 사용
- 컴포넌트 속성 필터링 패턴
특히 인상 깊었던 점
-
테마 계약 시스템:
createThemeContract를 사용하면 CSS 없이 테마 구조만 정의하고, 이를 바탕으로 여러 테마를 구현할 수 있어 코드 분할에 유리하다. -
Sprinkles 시스템: Tailwind CSS와 유사하지만 타입 안전성과 빌드 타임 최적화가 보장되는 유틸리티 퍼스트 접근법이 매우 인상적이었다.
-
동적 스타일링:
assignInlineVars를 통해 런타임에 CSS 변수를 안전하게 조작할 수 있어, 테마 변경이나 동적 브랜딩에 활용 가능하다. -
레시피와 Sprinkles 결합: 컴포넌트 변형(variant)을 체계적으로 관리하면서도 유틸리티의 장점을 함께 활용할 수 있는 패턴이 매우 실용적이다.