style: 颜色统一为CSS变量并优化复习卡片交互

This commit is contained in:
2026-09-13 22:11:23 +08:00
parent cc4c20e77b
commit fae27e7c20
12 changed files with 372 additions and 100 deletions
+107 -1
View File
@@ -1,4 +1,84 @@
@import "./base.css";
:root {
--green-900: #123d2d;
--green-800: #1a5a42;
--green-700: #237556;
--green-600: #2f8f68;
--green-500: #43a879;
--green-100: #eef9f3;
--surface: #f7fbf8;
--surface-strong: #ffffff;
--text-primary: #1b2a23;
--text-secondary: #4b6156;
--border-soft: #d6e6dc;
--shadow-soft: 0 14px 30px rgba(19, 61, 45, 0.09);
--shadow-strong: 0 20px 45px rgba(19, 61, 45, 0.16);
/* 残片/提醒语义色(对应 EP warning 色系,避免各组件硬编码) */
--accent-warning: #e6a23c;
--accent-warning-soft: #fff8e1;
--accent-warning-strong: #b8860b;
/* 成功/命中语义的浅底与深字(统计卡片、标签共用) */
--accent-success-soft: #e8f5e9;
--accent-success-softer: #f1f8e9;
--accent-success-strong: #2e7d32;
--accent-success-text: #856404;
}
*,
*::before,
*::after {
box-sizing: border-box;
}
html,
body,
#app {
min-height: 100%;
}
body {
margin: 0;
color: var(--text-primary);
background:
radial-gradient(circle at 12% 18%, rgba(67, 168, 121, 0.2), transparent 32%),
radial-gradient(circle at 85% 0%, rgba(35, 117, 86, 0.14), transparent 28%),
linear-gradient(165deg, #eef9f3 0%, #f8fcfa 50%, #edf7f1 100%);
font-family: "Source Han Sans SC", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;
line-height: 1.6;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
/* ------------------------------------------------------------------
* Element Plus 主题对齐
*
* EP 默认 success 是黄绿 #67c23a,与本站墨绿主题色相不一致,
* 且白字压在其上对比度仅 2.24:1(低于 WCAG AA 4.5:1)。
* 这里统一改写 EP 的 success / primary 色阶,使全站按钮、标签、
* 开关等组件自动使用主题绿。
*
* 注意:本文件在 main.ts 中必须导入在 element-plus 样式之后,
* 否则同特异度下会被 EP 默认值覆盖。
* ------------------------------------------------------------------ */
:root {
/* primary 与 success 同源:本站正向语义统一走 success,primary 仅次级编辑 */
--el-color-primary: var(--green-700);
--el-color-primary-light-3: #4a8f74;
--el-color-primary-light-5: #6ba98f;
--el-color-primary-light-7: #9cc7b5;
--el-color-primary-light-8: #bcd9cc;
--el-color-primary-light-9: #eef9f3;
--el-color-primary-dark-2: var(--green-800);
--el-color-success: var(--green-700);
--el-color-success-light-3: #4a8f74;
--el-color-success-light-5: #6ba98f;
--el-color-success-light-7: #9cc7b5;
--el-color-success-light-8: #bcd9cc;
--el-color-success-light-9: #eef9f3;
--el-color-success-dark-2: var(--green-800);
}
#app {
width: 100%;
@@ -35,6 +115,32 @@ a:hover {
box-shadow: var(--shadow-soft);
}
/* ------------------------------------------------------------------
* 按钮尺寸收敛
*
* EP 默认 large / default / small 三档实测高度为 32 / 32 / 24px
* large 与 default 在视觉上无法区分,行内 small 的 24px 又低于触屏
* 舒适点击区。这里保持两个视觉层级:
* 主操作 large → 40px 高
* 常规/行内 default、small → 至少 28px 高(保留 small 的紧凑感)
* 字号统一 13px 上限,避免行内按钮字号过小(原为 12px)。
* ------------------------------------------------------------------ */
.el-button--large {
--el-button-size: 40px;
padding: 0 20px;
font-size: 15px;
}
.el-button--small {
--el-button-size: 28px;
font-size: 13px;
}
.el-button--small.is-text,
.el-button--small.is-link {
padding: 0 8px;
}
/* 按钮操作区统一规范:窄屏下操作按钮纵向全宽 */
.action-row .el-button,
.edit-actions .el-button,