-
Tailwind Plus의 UI 블록들이 이제 Vanilla JavaScript만으로 완전히 동작 가능해짐
- React, Vue 등 프레임워크 없이도 대화형 컴포넌트를 사용할 수 있게 됨
-
@tailwindplus/elements라는 커스텀 엘리먼트 기반 라이브러리가 새롭게 제공됨
- 다양한 플랫폼 및 프레임워크와의 호환성을 갖춘 사용성 강조됨
- 모든 Tailwind Plus 고객은 지금 바로 이 기능을 사용할 수 있음
Tailwind Plus에서 Vanilla JavaScript 지원 도입
많은 Tailwind Plus UI 블록(예: 다이얼로그, 드롭다운, 커맨드 팔레트)은 실질적으로 JavaScript가 동반되어야 실사용이 가능함. 기존에는 React 또는 Vue 사용자가 아닌 경우, 이러한 UI 블록의 상호작용을 위해 직접 JavaScript를 작성해야 했음.
하지만 이제는 모든 UI 블록이 완전한 기능과 접근성, 인터랙티브 요소를 갖추어 Plain HTML 예시에서도 즉시 동작함. 즉, JavaScript 프레임워크에 의존하지 않고도 드롭다운, 커맨드 팔레트, 다이얼로그, 드로어 등 다양한 인터페이스 블록을 프로젝트 어디서든 활용할 수 있음.
@tailwindplus/elements: 핵심 라이브러리
이 변화를 가능하게 한 것이 바로 @tailwindplus/elements 라이브러리임. 이 라이브러리는 Tailwind Plus 고객을 위한 전용 패키지로, 헤드리스 커스텀 엘리먼트 모음집임.
- 커스텀 엘리먼트들은 HTML 코드에 <script> 태그 한 줄만 추가하면 어디서든 적용 가능함
- 복잡한 상호작용, 포커스 관리, 키보드 접근성, ARIA 속성 부여 등이 자동 처리됨
- 스타일링은 Tailwind CSS 유틸리티 클래스나 직접 작성한 CSS로 자유롭게 커스터마이즈 가능함
주요 활용 예시
-
드롭다운: <el-dropdown>, <el-menu> 등 커스텀 엘리먼트로 구성하며, 별도 JavaScript 없이 동작함
-
셀렉트: <el-select>, <el-options>, <el-option> 엘리먼트로 고급 선택 컴포넌트 구현 가능함
-
커맨드 팔레트: <el-command-palette>, <el-command-list> 등 구조로 완전한 기능 구현됨
이 커스텀 엘리먼트들은 ARIA 속성, 포커스 이동, 키보드 내비게이션을 자동으로 처리해 웹 접근성까지 강력히 지원함.
프레임워크 통합 및 플랫폼 의존성 최소화
- HTML만 사용하는 환경은 물론 Svelte, Rails(Ruby on Rails), React 등 다양한 환경과 통합 가능함
-
Svelte 예시: <el-autocomplete>에 양방향 바인딩 추가 예시 제공
-
Rails 예시: 폼 제출 시 네이티브 폼 컨트롤처럼 <el-select> 값이 서버로 전송됨
-
React 예시: 기존의 Headless UI, React Aria와 달리 프레임워크 종속성 없이 사용 가능함
최신 웹 표준 및 브라우저 호환성
- Elements는 최신 웹 플랫폼 기능(Web Components, Custom Elements 등)을 적극 활용해 가벼운 구성 및 네이티브 경험 제공함
- 필요한 경우 polyfill도 자동으로 번들하여 Tailwind CSS v4와 동일한 브라우저 지원 범위 확보함
- 웹 표준이 널리 보급될수록 Elements의 용량도 자연스레 가벼워질 전망임
진정한 범용성: "HTML이 곧 최소공배수"
HTML은 모든 웹 프레임워크의 "최소공배수"로, Elements를 사용하면 Tailwind Plus의 HTML 기반 UI 블록이 어떤 환경에서도 일관되게 동작함
- Svelte, Rails, React 등에서 실제 활용 예시 및 코드 제공됨
출시 및 접근 안내
-
Tailwind Plus 구독자라면 즉시 모든 업데이트된 UI 블록과 Elements를 사용할 수 있음
-
드롭다운, 커맨드 팔레트 등 다양한 UI 카테고리별 데모 예제와 Elements 공식 문서 제공됨
- 프로젝트 요구에 맞게 원하는 방식으로 커스터마이즈 가능함
마치며
이제 Tailwind Plus 사용자라면 원하는 어떤 환경이든, 복잡한 JavaScript 작성 없이 강력하고 접근성 있는 UI를 손쉽게 구현할 수 있음.