Skip to content

소개

@vuepkg/calendar는 Vue 3 Composition API 기반의 Modern Calendar Engine입니다.

왜 @vuepkg/calendar인가?

기존 Vue 캘린더의 문제

라이브러리문제
FullCalendar핵심 기능(DnD·Timeline·Recurring)이 유료 라이선스. ~100KB gzip. jQuery/Backbone 유산.
v-calendar단순 달력 수준 — Week/Day 그리드, DnD 없음. 정체 상태.
vue-cal유지보수 불안정. TypeScript 지원 미흡.

@vuepkg/calendar의 포지션

  • Controlled / emit-only: 상태는 소비자가 소유, 컴포넌트는 표현+emit만. 서버 저장·낙관적 업데이트·권한 기반 뷰 제어에 완벽 적합.
  • Zero dependency: vue peer 외 런타임 의존성 없음. CDN 없이 npm install 한 줄.
  • CSS-variable 테마: 런타임 JS 테마 엔진 없음. --vp-color-primary 한 줄로 브랜드 컬러 변경. Tailwind 프로젝트는 테마 가이드 § Tailwind 참고.
  • Scoped slot: #event/#day-cell/#toolbar/#month-overflow-item로 칩·셀·툴바 마크업을 Tailwind 등으로 직접 교체 가능(REV-A1).
  • Headless: @vuepkg/calendar/headless로 로직만 가져와 자체 UI(Tailwind 등) 구성 가능.
  • Modern DX: TypeScript-first, Composition API native, tree-shakeable.

스타일 커스터마이징 (요약)

방식적합한 경우
CSS 변수 (--vp-*)ScheduleCalendar 그대로 쓰며 브랜드 톤만 맞출 때
scheduleTypeOptions일정 유형별 색상
@vuepkg/calendar/headless내부 UI까지 Tailwind로 직접 그릴 때
scoped slot (#event / #list-cell-* 등)✅ 4뷰 전체 Tailwind 교체 가능 (REV-A1·REV-A3)

상세: 테마 커스터마이징 · 로드맵: GitHub roadmap

지원 범위

기능상태
Month / Week / Day / List 뷰
드래그로 시간 슬롯 선택
드래그 앤 드롭 이동·리사이즈
반복 일정 (daily/weekly/monthly/yearly)
일정 CRUD 모달 (Dialog)
공휴일 자동 조회 (공공데이터포털)
2주/3주 월간 뷰 변형
Dark mode
scoped slot API (Tailwind/shadcn)✅ (REV-A1)
Timeline / Resource Scheduler 뷰@vuepkg/calendar/timeline — v1 읽기 전용, DnD는 v1.1 예정
표시 타임존 (displayTimezone)displayTimezone 가이드 — v1 읽기 전용, 생성/DnD는 v1.1 예정
List 행 커스터마이즈 (list-cell-*)✅ (REV-A3)

번들 사이즈

산출물Brotli (size-limit CI 실측)
index.js (+ eager 공유 청크)~23 KB / 24 KB budget
headless.js~8 KB / 9 KB
timeline.js~2 KB / 4 KB (opt-in 서브패스)
style.css~5 KB / 8 KB

vue peer dependency는 제외. 코어는 Month 뷰 기본 로드 청크(CalendarMonthNav-*.js)를 포함한 실측치입니다 — 로드맵 §0 참고.

Released under the MIT License.