Commit 89ecf16b by luoqi

style(web): 矩阵 hover/选中描边改主色

黑框会被读成边界线、像数据的一部分;这一圈框表达的是「你正指着谁 / 选中了谁」,
属于交互态,而交互态在全站都该是品牌主色。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
parent 0a68b25e
...@@ -215,6 +215,8 @@ function MatrixRow({ ...@@ -215,6 +215,8 @@ function MatrixRow({
'flex-1 text-[13px] text-slate-900 nums', 'flex-1 text-[13px] text-slate-900 nums',
// ⭐ hover/选中用**内描边**而不是换底色 —— 换底色会在渐变面上戳一个洞, // ⭐ hover/选中用**内描边**而不是换底色 —— 换底色会在渐变面上戳一个洞,
// 整片"连续"的观感当场破掉。描边只加一圈框,底下的渐变原样透出来。 // 整片"连续"的观感当场破掉。描边只加一圈框,底下的渐变原样透出来。
// ⚠️ 描边用**品牌主色**不是中性黑:这一圈框表达的是"你正指着谁 / 选中了谁",
// 属于交互态,交互态在全站都该是主色(黑框会读成边界线,像是数据的一部分)。
// ⚠️ 用 outline 而不是 shadow-[inset_…_var(--color-…)]:后者 Tailwind v4 // ⚠️ 用 outline 而不是 shadow-[inset_…_var(--color-…)]:后者 Tailwind v4
// 会把带 var() 的任意值解析成"只有颜色的阴影",偏移和扩散全丢, // 会把带 var() 的任意值解析成"只有颜色的阴影",偏移和扩散全丢,
// 实测算出来是 `oklab(0 0 0 / 0) 0 0 0 0 inset` —— 完全透明,**看不出坏了**。 // 实测算出来是 `oklab(0 0 0 / 0) 0 0 0 0 inset` —— 完全透明,**看不出坏了**。
...@@ -223,8 +225,8 @@ function MatrixRow({ ...@@ -223,8 +225,8 @@ function MatrixRow({
? 'cursor-default text-slate-900/35' ? 'cursor-default text-slate-900/35'
// ⚠️ 必须带 `outline-solid`:基态的 `outline-none` 把 outline-style 钉成 none, // ⚠️ 必须带 `outline-solid`:基态的 `outline-none` 把 outline-style 钉成 none,
// 只加 `outline-2` 只改宽度 —— 实测算出来是 width:2px 但 style:none,**一条线都不画**。 // 只加 `outline-2` 只改宽度 —— 实测算出来是 width:2px 但 style:none,**一条线都不画**。
: 'cursor-pointer font-medium outline-none hover:outline-solid hover:outline-2 hover:-outline-offset-2 hover:outline-slate-900 focus-visible:outline-solid focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-slate-900', : 'cursor-pointer font-medium outline-none hover:outline-solid hover:outline-2 hover:-outline-offset-2 hover:outline-brand-600 focus-visible:outline-solid focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-brand-600',
isSelected && 'outline-solid outline-2 -outline-offset-2 outline-slate-900', isSelected && 'outline-solid outline-2 -outline-offset-2 outline-brand-600',
)} )}
> >
{n ? n.toLocaleString() : '—'} {n ? n.toLocaleString() : '—'}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment