グローバル CSS クラス

DayFlow は、カレンダーコンポーネントの外観をカスタマイズできる df- プレフィックス付きの CSS クラスセットを提供しています。これらのクラスは、コアライブラリを変更せずに簡単にスタイルをカスタマイズできるように設計されています。

適切な CSS エントリの選び方

Tailwind CSS をすでに使っているかどうかで、読み込むスタイルシートを選んでください。

エントリ含まれる内容使う場面
styles.cssTailwind preflight / reset を含む完全バンドルTailwind を使っていない場合
styles.components.cssコンポーネントスタイルのみ、CSS reset なしすでに Tailwind を使っている場合
@import '@dayflow/core/dist/styles.components.css';
@import 'tailwindcss';

テーマ上書きでは、--df-color-* 変数または以下に記載した安定した df-* セマンティッククラスを優先してください。

目次


共通

すべてのカレンダービューで使用される共通 CSS クラス。

クラス名説明
df-calendar-containerサイドバーとカレンダーを包む最外層のルートコンテナ。--df-calendar-height に対応します。
df-calendarカレンダーメインコンテナ(ヘッダーとビューコンテンツを含む)
df-headerカレンダーヘッダーセクション(タイトル、今日ボタン、表示切り替えを含む)
df-header-leftヘッダーの左側セクション(タイトルとナビゲーションボタン)
df-header-midヘッダーの中央セクション(現在の表示期間タイトル)
df-header-rightヘッダーの右側セクション(表示切り替えと検索)
df-navigationナビゲーションコントロールコンテナ
df-view-header-containerセカンダリなビューヘッダー領域で使われる共有コンテナ
df-view-header-titleビュー単位のタイトルに使う共有テキストクラス
df-view-header-subtitleビュー単位のサブタイトルに使う共有テキストクラス
df-eventすべてのイベントの基本クラス
df-event-titleイベントタイトルテキスト
df-event-timeイベント時間テキスト
df-event-color-barイベント左側のカラーバー(日/週ビュー)
df-month-event-color-bar通常イベントのカラーインジケーター(月ビュー)
df-all-day-row終日イベント行コンテナ
df-all-day-label終日ラベルテキスト
df-all-day-content終日イベントコンテンツエリア
df-all-day-cell個別の終日イベントセル
df-date-number日付番号の表示
df-current-time-line現在時刻インジケーターラインコンテナ
df-current-time-label現在時刻ラベルテキスト
df-current-time-bar現在時刻の水平線
df-calendar-checkboxカレンダー一覧や関連コントロールで再利用される共有チェックボックススタイル
df-portalPortal で描画されるフローティング UI のルートスコープクラス
df-range-pickerRange Picker のトリガーとポップアップに付くルートスコープクラス

セマンティック補助クラス

今回のスタイル再構成により、DayFlow はボタン状態や選択状態、破壊的アクション、フォーカスリングなどを表す安定した df-* セマンティッククラスを公開しています。これらは共有基盤 CSS で定義されており、カスタム slot やプラグイン UI から安全に再利用できます。

クラス名用途
df-fill-primaryプライマリ塗りつぶし背景 + 自動前景文字色
df-fill-secondaryセカンダリ塗りつぶし背景 + 自動前景文字色
df-fill-destructive破壊的アクション背景 + 自動前景文字色
df-tint-primaryプライマリ 10% ティント
df-tint-primary-mdプライマリ 20% ティント
df-tint-primary-lgプライマリ 30% ティント
df-hover-primaryプライマリ系ホバー状態
df-hover-primary-mdより強めのプライマリ系ホバー状態
df-hover-primary-solidプライマリ塗りつぶしボタンのホバー状態
df-hover-baseDayFlow の hover トークンを使う標準ホバー背景
df-hover-mutedmuted 系ホバー背景
df-hover-destructive破壊的アクションのホバー状態
df-text-primaryプライマリ文字色
df-text-muted弱めのテキスト色
df-text-primary-fgプライマリ背景上の文字色
df-text-secondary-fgセカンダリ背景上の文字色
df-text-destructive破壊的アクション文字色
df-text-destructive-fg破壊的背景上の文字色
df-bg-baseベースサーフェス背景
df-bg-cardカード背景
df-bg-sidebarサイドバー向けの muted 背景
df-bg-secondaryセカンダリ muted 背景
df-bg-tertiary第3レベル背景 / 区切り面
df-border-baseベース境界線
df-border-lightより軽い境界線
df-border-strongプライマリ token を使う強い境界線
df-border-primaryプライマリ境界線色
df-border-primary-soft柔らかいプライマリ境界線色
df-ring-primaryプライマリ ring トークン
df-ring-primary-solidソリッドなプライマリ ring トークン
df-shadow-sm小さめの影
df-shadow-md中程度の影
df-shadow-primaryプライマリ shadow トークン
df-focus-ring:focus 時にプライマリ border と ring を適用
df-focus-ring-only:focus 時に ring のみ適用
df-focus-border-primary:focus 時に border のみプライマリ化

テーマ調整では、これらの df-* クラスまたは --df-color-* 変数を優先してください。bg-primarytext-primaryhover:bg-primary/90 のような旧来の内部 Tailwind セマンティック名に依存しないでください。


レイアウトとモーションの補助クラス

これらのクラスは、カスタム slot コンテンツやプラグイン UI で DayFlow のレイアウトや入場アニメーションを再利用したいときに便利です。

クラス名用途
df-content-slot-stackedコンテンツスロットを縦積みし、利用可能な高さを埋める
df-scrollbar-hideスクロール動作を維持したままスクロールバーを隠す
df-animate-in入場アニメーションの基本タイミングヘルパー
df-fade-inフェードイン補助クラス
df-zoom-in-95わずかなズームイン補助クラス
df-animate-slide-up上方向スライドの入場アニメーション
df-animate-slide-down下方向スライドの退場アニメーション

日ビュー

日ビュー専用の CSS クラス。

クラス名説明
df-day-view日ビューコンテナ
df-day-event日ビューの個別イベント
df-day-time-gridタイムグリッドコンテナ
df-time-column時間列(時間を表示する左サイドバー)
df-time-slot個別のタイムスロットコンテナ(左列)
df-time-label時間ラベルテキスト(例:「13:00」)
df-time-grid-rowタイムグリッドの水平行
df-time-grid-cellタイムグリッドの個別セル
df-right-panel日ビューの右パネル(ミニカレンダー + イベントリスト)

週ビュー

週ビュー専用の CSS クラス。

クラス名説明
df-week-view週ビューコンテナ
df-week-event週ビューの個別イベント
df-week-header曜日名付きの週ヘッダーコンテナ
df-week-header-row曜日名を含む固定ヘッダー行
df-week-day-cellヘッダーの個別曜日セル
df-time-column時間列(時間を表示する左サイドバー)
df-time-slot個別のタイムスロットコンテナ(左列)
df-time-label時間ラベルテキスト
df-time-grid-rowタイムグリッドの水平行
df-time-grid-cellタイムグリッドの個別セル

月ビュー

月ビュー専用の CSS クラス。

クラス名説明
df-month-view月ビューコンテナ
df-month-grid月ビューのメイングリッドコンテナ
df-month-day-cell月ビューの個別日付セル
df-month-date-number-container日付番号エリアのコンテナ
df-month-date-number月ビューの日付番号
df-month-more-events非表示イベントの「+ x件」インジケーター
df-month-titleスクロール時のフローティング月タイトル

年ビュー

年ビュー専用の CSS クラス。これらは年間概要でのイベント外観のカスタマイズに特に便利です。

クラス名説明
df-year-eventイベント外側コンテナ - イベント要素全体をラップ
df-event-year-content年ビューイベントのコンテンツコンテナ - アイコン、タイトルなどを含む
df-event-year-title年ビューイベントのタイトルテキスト - 配置やフォントの調整に使用
df-event-icon-svgイベント描画で共通利用される SVG アイコンクラス。年ビューでも使用
df-event-year-indicator年ビューの時間指定イベント用カラーインジケーター
df-year-grid-monthGrid Year View の月カードコンテナ
df-year-fixed-day-cellFixed Week Year View の日セル

ミニカレンダー

ミニカレンダーコンポーネント(通常サイドバー或者日ビューに配置)用の CSS クラス。

クラス名説明
df-mini-calendarミニカレンダーコンテナ
df-mini-calendar-bodyミニカレンダー本体ラッパー
df-mini-calendar-header-nav月ナビゲーション行
df-mini-calendar-nav-btn前月 / 次月ボタン
df-mini-calendar-month-label現在月ラベル
df-mini-calendar-grid日付グリッドコンテナ
df-mini-calendar-header曜日ヘッダーセル(例:「月」、「火」)
df-mini-calendar-dayミニカレンダー日付ボタンのベースクラス
df-mini-calendar-day-cell日付セルの見た目を担うサーフェス
df-mini-calendar-day-number日付数字ラベル
df-mini-calendar-dots日セル内のイベントドットコンテナ
df-mini-calendar-dot個別のイベントドット

サイドバー

サイドバーコンポーネント用の CSS クラス。

クラス名説明
df-sidebarサイドバーコンテナ
df-sidebar-headerサイドバーヘッダーコンテナ
df-sidebar-toggleサイドバー折りたたみ/展開切り替えボタン
df-sidebar-header-titleサイドバーヘッダータイトル(「カレンダー」)
df-sidebar-list-shellサイドバーリストのスクロールラッパー
df-sidebar-listカレンダーリストコンテナ
df-sidebar-list-itemリスト内の個別カレンダー項目
df-sidebar-row各項目内のインタラクティブな行
df-sidebar-chip小型ラベル / chip
df-sidebar-dialogサイドバー用ダイアログコンテナ
df-sidebar-buttonサイドバー共通ボタン

ナビゲーション

ナビゲーションボタン用の CSS クラス。

クラス名説明
df-nav-buttonナビゲーション矢印ボタンのベースクラス(前へ/次へ)
df-calendar-nav-buttonカレンダーナビゲーション矢印ボタンのスタイルクラス
df-today-button「今日」ボタンのベースクラス
df-calendar-today-buttonカレンダー用「今日」ボタンのスタイルクラス

イベント詳細

イベント詳細パネルとダイアログ用の CSS クラス。

クラス名説明
df-event-detail-panelフローティングイベント詳細パネル
df-event-dialog-overlayイベント詳細ダイアログのオーバーレイルート
df-event-dialog-backdropイベント詳細ダイアログの背景
df-dialog-containerダイアログコンテンツコンテナ
df-event-dialog-closeイベント詳細ダイアログの閉じるボタン
df-portalフローティング UI の共通ルート

コンテンツスロット

コンテンツスロットレンダリングシステムに使用される CSS クラス。

クラス名説明
df-content-slotコンテンツスロットのコンテナ
df-slot-[id]特定のスロットインスタンスに割り当てられる動的クラス。[id] は一意の識別子です。

イベント状態属性

DayFlow はイベント状態だけでなく、グリッド、オーバーレイ、ドロワー、内部レイアウト補助にも data-* 属性を使っています。以下は現在のプロジェクトで使われている属性の一覧です。多くは CSS から直接ターゲットでき、一部はオーバーレイ制御や click-outside 判定用の構造フックです。

イベント要素

属性説明
data-view"day" "week" "month" "year" "agenda"そのイベントや断片を描画しているビュー
data-all-day"true" "false"終日イベントかどうか
data-selected"true" "false"現在選択中かどうか
data-dragging"true" "false"現在ドラッグ中かどうか
data-resizing"true" "false"現在リサイズ中かどうか
data-popping"true" "false"インタラクション中に視覚的に浮き上がった状態かどうか
data-editable"true" "false"ビルトイン UI から編集可能かどうか
data-viewable"true" "false"詳細 UI を開けるかどうか
data-draggable"true" "false"そのイベントでドラッグが有効かどうか
data-multi-day"true" "false"複数日にまたがるかどうか
data-month-stack"true" "false"月ビューのスタック表示内で描画されているか
data-touch-handles"true" "false"タッチ用リサイズハンドルを表示 / 確保すべきか
data-axisビュー依存のキーワードコンパクト / timed イベント描画の向きヒント
data-densityビュー依存のキーワードコンパクトイベント内容の密度ヒント
data-positionビュー依存のキーワードセグメントやコンパクトイベントの位置ヒント
data-segment-shape"full" "start" "middle" "end"複数セグメントイベントの角丸の形状
data-segment-days数値文字列月ビューのイベントセグメントが表す日数
data-event-idイベント ID 文字列インタラクティブなイベント / パネルアンカーに付く生のイベント識別子
data-continued-left"true" "false"Agenda の終日バッジが前日から続いているか
data-continued-right"true" "false"Agenda の終日バッジが翌日へ続くか

日付・グリッド・レイアウト状態

属性説明
data-today"true" "false"今日に対応する日付 / セクション / ヘッダーセル
data-other-month"true" "false"前月または翌月に属する日付
data-current-month"true" "false"現在の月レンジ内の日付
data-date日付文字列グリッド / 年ビューセルに付く具体的な日付ペイロード
data-first-day"true" "false"グループ化された年 / 月構造内の最初の可視日
data-weekend"true" "false"週末セル / ラベルかどうか
data-has-events"true" "false"1 件以上のイベントを含むセル
data-heat-level数値文字列グリッド年ビューのヒートマップ強度レベル
data-visible"true" "false"仮想化や条件付きレイアウトで使う表示状態フラグ
data-layoutレイアウトキーワード月ビュー / 仮想スクロール描画で使う内部レイアウトモード
data-layout-ready"true" "false"仮想化レイアウトが初回計測を完了したか
data-trailing-border"true" "false"月セルの末尾ボーダーを描画するか
data-scrollbar-space"true" "false"スクロールバー分の余白を予約するか
data-secondary-tz"true" "false"補助タイムゾーン軸が有効か
data-show-all-day"true" "false"終日行が有効か
data-sliding-view"true" "false"ビューがスライド / 遷移状態にあるか
data-mobile"true" "false"モバイル向けコンパクト描画ヒント
data-switcher-mode"buttons" "select"ビルトインビュー切り替え UI のモード
data-inside-pill"true" "false"Compact header の内容が today pill 内に入っているか
data-sidebar-collapsed"true" "false"サイドバーが折りたたまれているか
data-sidebar-enabled"true" "false"カレンダー shell が sidebar プラグイン付きで描画されているか
data-df-themeテーマキーワードテーマ付きレイアウトラッパーが出すテーママーカー

コントロール・入力・検索

属性説明
data-active"true" "false"スイッチ、タブ、ピッカーなどの汎用 active 状態
data-open"true" "false"ドロップダウン、ドロワー、検索 UI が開いているか
data-bordered"true" "false"ヘッダー下ボーダーを描画するか
data-loading"true" "false"非同期ボタン / アクションのローディング状態
data-ready"true" "false"quick-create オーバーレイの初期配置が完了したか
data-placement配置キーワードポップアップ / quick-create の位置ヒント
data-checked"true" "false"カスタムスイッチの checked 状態
data-disabled"true" "false"カスタムスイッチ / 入力の disabled 状態
data-kindコンポーネント依存のキーワードmobile event drawer 内のセクション / フィールド種別
data-expanded"true" "false"ドロワーセクションが展開されているか
data-closing"true" "false"mobile drawer の closing transition 中か
data-tone"default" "today" "upcoming"グループ化された検索結果日付ヘッダーのトーン
data-mini-calendar-dot存在属性mini calendar のイベントドットを示すマーカー
属性説明
data-active"true" "false"サイドバーのカレンダー行が active 状態か
data-collapsed"true" "false"サイドバーの source group やパネルが折りたたまれているか
data-draggable"true" "false"サイドバー内のカレンダー項目をドラッグできるか
data-dragging"true" "false"サイドバー内のカレンダー項目が現在ドラッグ中か
data-position"top" "bottom"サイドバー内でカレンダーを並べ替える際の drop indicator の位置
data-selected"true" "false"サイドバーのドロップダウン / import ダイアログ内の選択状態
data-submenu-content存在属性サイドバーのサブメニュー portal 内容を示すマーカー

オーバーレイとインタラクションフック

属性説明
data-event-detail-panel存在属性フローティングイベント詳細パネルのルート
data-event-detail-dialog存在属性モーダルイベント詳細ダイアログのルート
data-range-picker-popup存在属性range picker ポップアップのルート
data-calendar-picker-dropdown存在属性calendar picker ドロップダウンのルート
data-grid-day-cell存在属性グリッド型年ビューの日セル
data-grid-day-popup存在属性年ビューの日ポップアップルート

/* 選択中のイベント */
.df-event[data-selected='true'] {
  outline: 2px solid var(--df-color-primary);
}

/* ドラッグ中のイベント */
.df-event[data-dragging='true'] {
  opacity: 0.6;
}

/* 月ビューのイベントのみ */
.df-event[data-view='month'] {
  font-size: 11px;
}

/* 終日イベントのみ */
.df-event[data-all-day='true'] {
  font-weight: 600;
}

/* 今日の Agenda セクションやコンパクトグリッドセルを強調 */
[data-today='true'] {
  background-color: color-mix(in srgb, var(--df-color-primary) 8%, transparent);
}

カスタマイズ方法

外観をカスタマイズするには、これらのクラスや --df-color-* 変数をグローバル CSS から上書きします。ほとんどのテーマ調整では !important は不要で、高い詳細度の局所ルールを意図的に上書きしたい場合だけ使ってください。

/* すべてのイベントの角丸を変更 */
.df-event {
  border-radius: 8px !important;
}

/* 現在時刻インジケーターをカスタマイズ */
.df-current-time-line {
  z-index: 100;
}
.df-current-time-bar {
  height: 3px !important;
  background-color: #ef4444 !important;
}

/* 特定のビューをカスタマイズ */
.df-day-view .df-event {
  border-left: 4px solid #3b82f6;
}

/* サイドバーのスタイル設定 */
.df-sidebar {
  background-color: #f8fafc !important;
}

/* ミニカレンダーのスタイル設定 */
.df-mini-calendar-day:hover {
  background-color: #e2e8f0;
}

/* カスタム slot / プラグイン UI で DayFlow のセマンティック色を再利用 */
.my-custom-primary-chip {
  background-color: var(--df-color-primary);
  color: var(--df-color-primary-foreground);
}

/* ダークモードの上書き */
.dark .df-calendar {
  background-color: #111827;
}

/* イベント詳細パネルのスタイル設定 */
.df-event-detail-panel {
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15) !important;
}

使用のヒント

  1. 詳細度: スタイルが適用されない場合は、カレンダーをカスタムクラスでラップして詳細度を上げてください:

    .my-custom-calendar .df-event { ... }
  2. レスポンシブデザイン: メディアクエリを使用して、モバイルデバイス向けにスタイルを調整します:

    @media (max-width: 768px) {
      .df-event-title {
        font-size: 10px;
      }
      .df-time-label {
        font-size: 10px;
      }
    }
  3. ダークモード: .dark セレクターを使用してダークモード専用のスタイルを設定します:

    .dark .df-month-day-cell {
      border-color: #374151;
    }
  4. CSS 変数: DayFlow は --df-color-* カスタムプロパティで色を管理しています。.df-calendar-container(フローティング UI には .df-portal も)で上書きすると、スコープを絞った色変更ができます:

    .df-calendar-container,
    .df-portal {
      --df-color-primary: #3b82f6;
      --df-color-primary-foreground: #ffffff;
    }

旧バージョンからのアップグレード

破壊的変更:calendar-event クラスの削除

イベント要素から calendar-event クラスが削除されました。スタイルシートで .calendar-event { ... } を使用している場合は、.df-event { ... } に変更してください。

以前 DayFlow の DOM 要素に付いていた Tailwind utility クラス(flexrounded-mdshadow-sm など)もすべて削除されました。これらはパブリック API の一部ではありませんでした。すべての CSS カスタマイズには、ドキュメントに記載された df-* クラスと data-* 属性を使用してください。

関連ドキュメント

On this page