グローバル CSS クラス
DayFlow は、カレンダーコンポーネントの外観をカスタマイズできる df- プレフィックス付きの CSS クラスセットを提供しています。これらのクラスは、コアライブラリを変更せずに簡単にスタイルをカスタマイズできるように設計されています。
適切な CSS エントリの選び方
Tailwind CSS をすでに使っているかどうかで、読み込むスタイルシートを選んでください。
| エントリ | 含まれる内容 | 使う場面 |
|---|---|---|
styles.css | Tailwind 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-portal | Portal で描画されるフローティング UI のルートスコープクラス |
df-range-picker | Range 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-base | DayFlow の hover トークンを使う標準ホバー背景 |
df-hover-muted | muted 系ホバー背景 |
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-primary、text-primary、hover: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-month | Grid Year View の月カードコンテナ |
df-year-fixed-day-cell | Fixed 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] は一意の識別子です。 |
イベント状態属性
すべてのカレンダーイベント要素には、現在の状態を反映する data-* 属性が付与されています。クラスを追加しなくても、CSS の属性セレクターで直接ターゲットにできます。
| 属性 | 値 | 説明 |
|---|---|---|
data-view | "day" "week" "month" "year" | そのイベントを表示している現在のビュー |
data-all-day | "true" "false" | 終日イベントかどうか |
data-selected | "true" "false" | イベントが選択中かどうか |
data-dragging | "true" "false" | イベントがドラッグ中かどうか |
data-resizing | "true" "false" | イベントがリサイズ中かどうか |
data-multi-day | "true" "false" | 複数日にまたがるイベントかどうか |
data-editable | "true" "false" | イベントが編集可能かどうか |
data-segment-shape | "full" "start" "middle" "end" | 複数セグメントイベントの角丸の形状 |
例
/* 選択中のイベント */
.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;
}カスタマイズ方法
外観をカスタマイズするには、これらのクラスや --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;
}使用のヒント
-
詳細度: スタイルが適用されない場合は、カレンダーをカスタムクラスでラップして詳細度を上げてください:
.my-custom-calendar .df-event { ... } -
レスポンシブデザイン: メディアクエリを使用して、モバイルデバイス向けにスタイルを調整します:
@media (max-width: 768px) { .df-event-title { font-size: 10px; } .df-time-label { font-size: 10px; } } -
ダークモード:
.darkセレクターを使用してダークモード専用のスタイルを設定します:.dark .df-month-day-cell { border-color: #374151; } -
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 クラス(flex、rounded-md、shadow-sm など)もすべて削除されました。これらはパブリック API の一部ではありませんでした。すべての CSS カスタマイズには、ドキュメントに記載された df-* クラスと data-* 属性を使用してください。