1
0
Files
DiAL/openspec/specs/css-utility-classes/spec.md

6.0 KiB
Raw Blame History

Purpose

定义 styles.css 中集中管理的前端样式工具类和 CSS 自定义属性,供 TDesign 组件之外的自定义组件StatusDot、StatusBar 等)引用。

Requirements

Requirement: 状态色 CSS 类

styles.css SHALL 定义状态指示相关的 CSS 类,颜色使用 TDesign tokens。

Scenario: StatusDot 颜色类

  • WHEN StatusDot 组件渲染
  • THEN 组件 SHALL 使用 .status-dot 基础类 + .status-dot--upbackground: --td-success-color)或 .status-dot--downbackground: --td-error-color)修饰类,不使用内联 style

Scenario: StatusDot 发光阴影

  • WHEN StatusDot 组件渲染
  • THEN .status-dot--up SHALL 定义 box-shadow 使用 --td-success-color.status-dot--down SHALL 定义 box-shadow 使用 --td-error-color

Scenario: StatusBar 色块类

  • WHEN StatusBar 组件渲染色块
  • THEN 组件 SHALL 使用 .status-bar-block 基础类 + .status-bar-block--upbackground: --td-success-color)、.status-bar-block--downbackground: --td-error-color)或 .status-bar-block--emptybackground: --td-bg-color-component-disabled)修饰类,不使用内联 style

Requirement: 可用率色阶 CSS 变量

styles.css SHALL 定义 10 级可用率色阶 CSS 自定义属性,使用项目自定义色值。

Scenario: 色阶变量定义

  • WHEN 可用率进度条渲染
  • THEN 色阶 SHALL 通过 CSS 自定义属性 --avail-0--avail-9 定义,值为项目自定义色值(#d54941#3dba60

Scenario: 色阶渐变方向

  • WHEN 色阶变量被引用
  • THEN 色阶 SHALL 从红色0-30%经橙色30-60%过渡到绿色60-100%

Requirement: 辅助工具类

styles.css SHALL 定义前端组件复用的工具类,包含页面布局相关类。

Scenario: 文本禁用色类

  • WHEN 延迟列无数据需要显示占位符
  • THEN 组件 SHALL 使用 .text-disabledcolor: --td-text-color-disabled

Scenario: 等宽数字类

  • WHEN 数值需要等宽显示
  • THEN 组件 SHALL 使用 .tabular-numsfont-variant-numeric: tabular-nums

Scenario: 延迟色值类

  • WHEN 延迟数值渲染
  • THEN 组件 SHALL 使用 .latency-ok.latency-warn.latency-error

Scenario: 延迟值容器类

  • WHEN 延迟数值需要固定宽度对齐
  • THEN 组件 SHALL 使用 .latency-valuedisplay: inline-block; min-width: 7ch; white-space: nowrap

Scenario: 全宽布局类

  • WHEN 组件需要占满父容器宽度
  • THEN 组件 SHALL 使用 .full-widthwidth: 100%

Scenario: 可点击表格类

  • WHEN PrimaryTable 行支持点击交互
  • THEN 表格 SHALL 使用 .clickable-tablecursor: pointer

Scenario: Tab 面板内边距类

  • WHEN Drawer 内 Tabs 面板需要内边距
  • THEN TabPanel SHALL 使用 className="tab-panel-padded" prop 传入类名

Scenario: 内容区居中类

  • WHEN Dashboard 内容区需要居中且限制最大宽度
  • THEN 内容区 SHALL 使用 .dashboard-contentmax-width: 1400px; margin: 0 auto; padding: var(--td-comp-paddingTB-xl) var(--td-comp-paddingLR-xl)

Scenario: 页面背景色

  • WHEN Dashboard 页面渲染
  • THEN .dashboard 类 SHALL 设置 background: var(--td-bg-color-page)min-height: 100vhwidth: 100%

Scenario: 品牌标识类

  • WHEN HeadMenu logo 区域渲染品牌名和副标题
  • THEN 品牌 SHALL 使用 .dashboard-branddisplay: inline-flex; align-items: baseline; gap: var(--td-comp-margin-s)),品牌名 SHALL 使用 .dashboard-logofont-size: calc(var(--td-font-size-title-large) + 6px); font-weight: 700副标题 SHALL 使用 .dashboard-subtitlefont-size: var(--td-font-size-body-medium); color: var(--td-text-color-secondary)

Scenario: 刷新状态类

  • WHEN HeadMenu operations 区域渲染刷新倒计时
  • THEN 容器 SHALL 使用 .dashboard-refresh-statusdisplay: inline-flex; align-items: center; margin-right: var(--td-comp-margin-xxl)

Scenario: SummaryCard 居中类

  • WHEN SummaryCards 内 Statistic 需要居中
  • THEN Statistic 所在的 Col SHALL 使用 .summary-stat-coltext-align: center

Scenario: SummaryCards 行间距类

  • WHEN SummaryCards 容器需要与下方内容保持间距
  • THEN 容器 SHALL 使用 .summary-cards-rowmargin-bottom: var(--td-comp-margin-xl)

Scenario: Drawer 时间控件单行类

  • WHEN Drawer 时间选择器需要单行布局
  • THEN 控件容器 SHALL 使用 .drawer-time-controlsdisplay: flex; align-items: center; gap: var(--td-comp-margin-m); width: 100%),日期选择器 SHALL 使用 .drawer-date-rangeflex: 1; min-width: 360px

Scenario: Drawer 时间控件响应式

  • WHEN 视口宽度 ≤ 768px
  • THEN .drawer-time-controls SHALL 启用 flex-wrap.drawer-date-range min-width 改为 100%

Scenario: 概览统计卡片类

  • WHEN Drawer 概览统计区渲染
  • THEN 统计卡片 SHALL 使用 .overview-stat-cardbackground: var(--td-bg-color-container-hover)),内部项 SHALL 使用 .overview-stat-itemdisplay: flex; align-items: center; justify-content: space-between数值 SHALL 使用 .overview-stat-valuefont-size: var(--td-font-size-body-medium); text-align: right

Requirement: 异常行背景类

styles.css SHALL 定义 DOWN 行的背景色和左侧竖线,使用安全选择器且不使用 !important

Scenario: DOWN 行背景色

  • WHEN 表格行标记为 DOWN 状态
  • THEN 行 SHALL 通过 .t-table tr.row-down 选择器获得浅红色背景

Scenario: DOWN 行左侧竖线

  • WHEN 表格行标记为 DOWN 状态
  • THEN 行 SHALL 通过 .t-table tr.row-down 选择器获得 border-left: 3px solid var(--td-error-color)

Scenario: DOWN 行 hover 状态

  • WHEN 鼠标悬停在 DOWN 行上
  • THEN 行背景 SHALL 通过 .t-table--hoverable tbody tr.row-down:hover 选择器显示 hover 状态色