全局 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] 是唯一标识符

事件状态属性

每个日历事件元素都暴露了一组 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-* 变量。大多数主题层面的调整不需要 !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