diff --git a/yunkes/src/layouts/MainLayout.vue b/yunkes/src/layouts/MainLayout.vue index 20f18d6..b77a71e 100644 --- a/yunkes/src/layouts/MainLayout.vue +++ b/yunkes/src/layouts/MainLayout.vue @@ -103,68 +103,118 @@ function goPlain(path: string): void { diff --git a/yunkes/src/style.css b/yunkes/src/style.css index 3fbd12b..411e4fa 100644 --- a/yunkes/src/style.css +++ b/yunkes/src/style.css @@ -1,10 +1,30 @@ /* App-level layout + resets. Element Plus ships its own component styles. */ +/* ═══ 墨玉控制台主题(Ink-Jade Console)═══ + 深墨侧栏 + 玉绿主色(微信血统精炼) + 暖纸内容区。 + Element Plus 变量在此统一覆写,组件零改动。 */ :root { --yk-header-height: 56px; --yk-aside-width: 260px; - --yk-bg: #f5f7fa; - --yk-border: #e4e7ed; + --yk-bg: #f3f5f8; + --yk-border: #e6e9ef; + --yk-ink: #171d2b; + --yk-ink-2: #1f2637; + --yk-ink-text: #a7b1c4; + --yk-ink-text-dim: #6b7689; + --yk-jade: #0d9f6e; + --yk-jade-bright: #35d492; + --yk-jade-soft: #4bbe8f; + + /* Element Plus 主色系 → 玉绿 */ + --el-color-primary: #0d9f6e; + --el-color-primary-light-3: #4bbe8f; + --el-color-primary-light-5: #7fd2ac; + --el-color-primary-light-7: #b2e6cc; + --el-color-primary-light-8: #d0f0df; + --el-color-primary-light-9: #e8f7ef; + --el-color-primary-dark-2: #0a8459; + --el-border-radius-base: 6px; } * { @@ -20,12 +40,13 @@ body, body { font-family: - 'Helvetica Neue', Helvetica, 'PingFang SC', 'Hiragino Sans GB', - 'Microsoft YaHei', Arial, sans-serif; + -apple-system, 'Helvetica Neue', 'PingFang SC', 'Hiragino Sans GB', + 'MiSans', 'Microsoft YaHei', 'Segoe UI', sans-serif; font-size: 14px; - color: #303133; + color: #2b3240; background: var(--yk-bg); -webkit-font-smoothing: antialiased; + font-variant-numeric: tabular-nums; } a { @@ -301,3 +322,117 @@ a { .yk-channel-tag { margin-right: 4px; } + +/* ═══════════════════ 主题精修层(2026-08-22) ═══════════════════ */ + +/* 内容区:暖纸底 + 极淡点阵纹理(营造深度,不喧宾) */ +.yk-main { + background: + radial-gradient(circle at 1px 1px, rgba(23, 29, 43, 0.035) 1px, transparent 0) 0 0 / 22px 22px, + var(--yk-bg); +} + +/* 页面进场:轻微上浮淡入(仅首次挂载,transform 动画不触发布局) */ +.yk-main > * { + animation: yk-rise 0.32s cubic-bezier(0.22, 0.8, 0.36, 1) both; +} +@keyframes yk-rise { + from { opacity: 0; transform: translateY(6px); } + to { opacity: 1; transform: translateY(0); } +} + +/* ── 卡片 ── */ +.el-card { + border-radius: 10px; + border: 1px solid rgba(23, 29, 43, 0.06); + box-shadow: 0 1px 2px rgba(23, 29, 43, 0.03), 0 4px 16px -8px rgba(23, 29, 43, 0.08); + transition: box-shadow 0.25s ease, transform 0.25s ease; +} +.el-card:hover { + box-shadow: 0 2px 4px rgba(23, 29, 43, 0.04), 0 10px 28px -10px rgba(13, 159, 110, 0.16); +} + +/* ── 表格 ── */ +.el-table { + --el-table-header-bg-color: #f6f8fa; + --el-table-header-text-color: #5a6472; + --el-table-row-hover-bg-color: #eef8f2; + --el-table-border-color: #edf0f4; + border-radius: 8px; + overflow: hidden; +} +.el-table th.el-table__cell { + font-weight: 600; + font-size: 12.5px; + letter-spacing: 0.02em; +} +.el-table .el-table__row { + transition: background-color 0.18s ease; +} +.el-table .cell { + font-variant-numeric: tabular-nums; +} + +/* ── 按钮/输入框圆角微调 ── */ +.el-button { + border-radius: 7px; + font-weight: 500; +} +.el-button--primary { + box-shadow: 0 2px 8px -2px rgba(13, 159, 110, 0.45); +} +.el-input__wrapper, +.el-select__wrapper, +.el-date-editor { + border-radius: 7px; +} + +/* ── 分页器 ── */ +.el-pagination.is-background .el-pager li.is-active { + background: var(--el-color-primary); + box-shadow: 0 2px 6px -1px rgba(13, 159, 110, 0.5); +} + +/* ── 标签(tag) ── */ +.el-tag { + border-radius: 5px; + font-weight: 500; +} + +/* ── 抽屉/对话框 ── */ +.el-drawer, +.el-dialog { + border-radius: 12px; +} + +/* ── 细滚动条 ── */ +::-webkit-scrollbar { + width: 8px; + height: 8px; +} +::-webkit-scrollbar-thumb { + background: #c6cdd8; + border-radius: 4px; +} +::-webkit-scrollbar-thumb:hover { + background: #aab4c4; +} +::-webkit-scrollbar-track { + background: transparent; +} +.yk-sidenav::-webkit-scrollbar-thumb { + background: rgba(255, 255, 255, 0.14); +} + +/* ── 聊天流:纸面质感 ── */ +.yk-chat__stream { + background: + radial-gradient(circle at 1px 1px, rgba(23, 29, 43, 0.028) 1px, transparent 0) 0 0 / 20px 20px, + #fdfdfd; + border-radius: 12px; +} + +/* ── 页头标题排版 ── */ +h2 { + letter-spacing: 0.01em; +}