全局 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 渲染的浮层根作用域类
df-range-pickerRange Picker 触发器与弹层共用的根作用域类

语义辅助类

这次样式重构后,DayFlow 对外公开了一组稳定的 df-* 语义类,用来表达按钮填充态、选中态、危险操作态、焦点环等主题语义。它们定义在共享基础样式中,适合在自定义 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 token 的默认悬停背景
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第三级背景 / 分隔面
df-border-base基础边框
df-border-light更轻的柔和边框
df-border-strong使用主色 token 的强调边框
df-border-primary主色边框
df-border-primary-soft柔和主色边框
df-ring-primary主色 ring 颜色 token
df-ring-primary-solid纯主色 ring 颜色
df-shadow-sm小层级阴影
df-shadow-md中层级阴影
df-shadow-primary主色阴影 token
df-focus-ring:focus 时同时设置主色边框与 ring
df-focus-ring-only:focus 时仅应用主色 ring
df-focus-border-primary:focus 时仅应用主色边框

推荐优先使用这些 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时间标签文本(例如 "1 PM")
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事件详情对话框的 overlay 根节点
df-event-dialog-backdrop事件详情对话框的背景遮罩
df-dialog-container对话框内容容器
df-event-dialog-close事件详情对话框的关闭按钮
df-portal浮层根节点作用域

内容插槽

用于内容插槽渲染系统的 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 全天 badge 是否从前一天延续而来
data-continued-right"true" "false"Agenda 全天 badge 是否延续到后一天

日期、网格与布局状态

属性可选值描述
data-today"true" "false"标记今天对应的日期、section 或头部单元格
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"单元格内是否包含至少一个事件
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"内置视图切换器当前使用的模式
data-inside-pill"true" "false"Compact header 内容是否被渲染进 today pill
data-sidebar-collapsed"true" "false"侧边栏是否折叠
data-sidebar-enabled"true" "false"当前 calendar shell 是否带着 sidebar 插件一起挂载
data-df-theme主题关键字主题化布局包装节点发出的主题标记

控件、输入与搜索

属性可选值描述
data-active"true" "false"通用 active 状态标记,用于开关、tab、picker 等
data-open"true" "false"下拉、抽屉或搜索区域是否处于打开状态
data-bordered"true" "false"header 是否绘制底部边框
data-loading"true" "false"异步按钮 / 操作的加载状态
data-ready"true" "false"quick-create 浮层是否完成初始定位
data-placement位置关键字popup / quick-create 的定位提示
data-checked"true" "false"自定义开关的选中状态
data-disabled"true" "false"自定义开关 / 输入的禁用状态
data-kind组件相关关键字mobile event drawer 中的区块 / 字段类型
data-expanded"true" "false"抽屉区块是否展开
data-closing"true" "false"mobile drawer 是否处于关闭过渡阶段
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存在属性标记 sidebar 子菜单 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存在属性年视图日期 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 section 或紧凑网格单元格 */
[data-today='true'] {
  background-color: color-mix(in srgb, var(--df-color-primary) 8%, transparent);
}

如何自定义

要自定义外观,建议优先覆盖这些类或 --df-color-* 变量。大多数主题层面的调整不需要 !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(和 .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。请使用文档中列出的 df-* 类和 data-* 属性进行所有 CSS 自定义。

相关文档

On this page