v3.2.0

스타일

styles는 캘린더의 어떤 CSS 클래스든 덮어쓸 수 있는 기능을 제공합니다. 각 값을 CSS 클래스 목록으로 교체할 수 있습니다.

아래는 모든 기본 클래스 목록입니다.

CSS 클래스

ts
new Calendar('#calendar', {
  styles: {
    // 기본
    calendar: 'vc',
    controls: 'vc-controls',
    grid: 'vc-grid',
    column: 'vc-column',
 
    // 헤더
    header: 'vc-header',
    headerContent: 'vc-header__content',
    month: 'vc-month',
    year: 'vc-year',
    arrowPrev: 'vc-arrow vc-arrow_prev',
    arrowNext: 'vc-arrow vc-arrow_next',
 
    // 월 / 연도 선택기
    wrapper: 'vc-wrapper',
    content: 'vc-content',
    months: 'vc-months',
    monthsMonth: 'vc-months__month',
    years: 'vc-years',
    yearsYear: 'vc-years__year',
 
    // 주 행 / 주 번호
    week: 'vc-week',
    weekDay: 'vc-week__day',
    weekNumbers: 'vc-week-numbers',
    weekNumbersTitle: 'vc-week-numbers__title',
    weekNumbersContent: 'vc-week-numbers__content',
    weekNumber: 'vc-week-number',
 
    // 날짜
    dates: 'vc-dates',
    date: 'vc-date',
    dateBtn: 'vc-date__btn',
 
    // 팝업 및 툴팁
    datePopup: 'vc-date__popup',
    dateRangeTooltip: 'vc-date-range-tooltip',
 
    // 시간 컨트롤
    time: 'vc-time',
    timeContent: 'vc-time__content',
    timeHour: 'vc-time__hour',
    timeMinute: 'vc-time__minute',
    timeKeeping: 'vc-time__keeping',
    timeRanges: 'vc-time__ranges',
    timeRange: 'vc-time__range',
  },
});

CSS 변수

내장 테마(light, dark, slate-light)의 모든 색상은 CSS custom property로 정의되어 있으며, 기본값(fallback)은 각 테마의 원래 색상입니다. 즉, CSS 클래스를 건드리거나 테마 오버라이드가 제대로 적용되길 기다릴 필요 없이 몇 개의 변수만 설정하면 캘린더 스타일을 바꿀 수 있습니다.

css
:root {
  --vc-date-selected-bg: #7c3aed;
  --vc-date-selected-color: #fff;
}

변수를 설정하지 않으면 캘린더는 이전과 완전히 동일하게 렌더링됩니다 — 변수를 명시적으로 설정하기 전까지는 아무것도 바뀌지 않습니다.

:root에 변수를 설정하면 모든 테마에 한 번에 적용됩니다(light/dark/slate-light 모두 동일한 변수 이름을 사용합니다). 특정 테마 하나만 재정의하려면, 해당 테마의 셀렉터로 범위를 제한하세요. 예: [data-vc-theme='dark'] { --vc-date-selected-bg: #7c3aed; }.

기본

변수lightdarkslate-light
--vc-bgwhiteslate-900slate-100
--vc-colorslate-900whitegray-800
--vc-focus-outline-colororange-300orange-300blue-300

헤더 / 타이틀

변수lightdarkslate-light
--vc-header-colorslate-900whitegray-800
--vc-title-colorslate-900whitegray-800
--vc-title-color-hoverslate-500slate-500gray-600
--vc-title-color-disabledslate-300slate-700gray-400

월 / 연도 선택

변수lightdarkslate-light
--vc-months-years-bgwhiteslate-900slate-100
--vc-months-years-colorslate-500whitegray-600
--vc-months-years-bg-hoverslate-100slate-800slate-200
--vc-months-years-color-disabledslate-300slate-700gray-400
--vc-months-years-bg-selectedcyan-500slate-500blue-500
--vc-months-years-color-selectedwhitewhitewhite

요일 행 / 주 번호

변수lightdarkslate-light
--vc-week-numbers-title-colorslate-500whitegray-600
--vc-week-number-colorslate-500whitegray-600
--vc-week-number-color-hoverslate-600slate-300gray-800
--vc-week-day-colorslate-500whitegray-600
--vc-week-day-color-hoverslate-600slate-300gray-800
--vc-week-day-off-colorrose-500rose-500red-500
--vc-week-day-off-color-hoverrose-600rose-600red-600

날짜

변수lightdarkslate-light
--vc-date-bgwhiteslate-900slate-100
--vc-date-colorslate-900slate-400gray-800
--vc-date-color-hover dark onlyslate-200
--vc-date-bg-hoverslate-100slate-800slate-200
--vc-date-hover-bgslate-100slate-800slate-200
--vc-date-hover-edge-bgslate-200slate-700slate-300
--vc-date-disabled-colorslate-300slate-700gray-400
--vc-date-outside-colorslate-400slate-600gray-400
--vc-date-today-bgslate-100slate-800slate-200
--vc-date-today-colorcyan-500cyan-500blue-500
--vc-date-today-outside-colorslate-500slate-600gray-600
--vc-date-selected-bgcyan-500cyan-500blue-500
--vc-date-selected-colorwhitewhitewhite
--vc-date-selected-outside-bgslate-300slate-700slate-300
--vc-date-selected-outside-colorslate-500slate-300gray-600

주말 / 공휴일

변수lightdarkslate-light
--vc-date-weekend-colorrose-500rose-500red-500
--vc-date-weekend-bg-hoverrose-50slate-800slate-200
--vc-date-weekend-hover-bgrose-50slate-800slate-200
--vc-date-weekend-hover-edge-bgrose-100slate-700slate-300
--vc-date-weekend-disabled-colorslate-300slate-700gray-400
--vc-date-weekend-today-colorrose-500rose-500red-500
--vc-date-weekend-today-disabled-colorslate-300slate-700gray-400
--vc-date-weekend-outside-bgwhiteslate-900slate-100
--vc-date-weekend-outside-colorslate-400slate-600gray-400
--vc-date-weekend-outside-color-hover dark onlyslate-300
--vc-date-weekend-outside-bg-hoverslate-100slate-800slate-200
--vc-date-weekend-outside-hover-bgslate-100slate-800slate-200
--vc-date-weekend-today-outside-colorslate-400slate-400gray-400
--vc-date-weekend-disabled-outside-colorslate-300slate-700gray-400
--vc-date-weekend-selected-bgrose-500rose-500red-500
--vc-date-weekend-selected-colorwhitewhitewhite

선택된 범위 (multiple-ranged)

변수lightdarkslate-light
--vc-date-range-middle-bgcyan-500 at 70%cyan-500 at 80%blue-500 at 80%
--vc-date-range-middle-colorwhitewhitewhite
--vc-date-range-middle-outside-bgslate-200slate-800slate-200
--vc-date-range-middle-outside-colorslate-500slate-300gray-600
--vc-date-range-middle-weekend-bgrose-500 at 70%rose-500 at 80%red-500 at 80%
--vc-date-range-middle-weekend-colorwhitewhitewhite

팝업 & 툴팁

변수lightdarkslate-light
--vc-date-popup-bgwhiteslate-800white
--vc-date-popup-colorslate-900whitegray-800
--vc-date-range-tooltip-bgslate-50slate-800slate-50
--vc-date-range-tooltip-colorslate-500slate-400slate-500

시간 컨트롤

변수lightdarkslate-light
--vc-time-border-colorslate-300slate-800gray-300
--vc-time-separator-colorslate-900whitegray-800
--vc-time-input-bgwhiteslate-900slate-100
--vc-time-input-colorslate-900whitegray-800
--vc-time-input-bg-hoverorange-100slate-700blue-100
--vc-time-keeping-colorslate-500slate-500gray-600
--vc-time-keeping-color-hover dark onlyslate-400
--vc-time-range-bgwhiteslate-900slate-100
--vc-time-range-track-colorslate-300slate-600slate-300
--vc-time-range-thumb-bgwhiteslate-800slate-100
--vc-time-range-thumb-borderslate-300slate-600gray-300
--vc-time-range-thumb-border-hoverslate-400slate-400gray-400

"dark only"로 표시된 세 변수는 dark 테마에만 light/slate-light 테마에는 없는 추가 hover 상태가 있기 때문에 존재합니다 — 다른 테마에서는 이 변수들을 재정의할 대상 자체가 없습니다.