HTML元素加阴影唯一可靠方案是CSS的box-shadow属性,它支持多层、内阴影及自定义属性管理,不存在Token_html或Shadow Token等HTML标准属性。
Token_html 或 Shadow Token
不存在叫 Token_html 或 Shadow Token 的 HTML 标准属性、全局变量或内置 API。这是混淆了设计系统术语和前端实现方式的结果——所谓“阴影 Token”只是设计团队内部对阴影值的命名约定(比如 shadow-sm、shadow-lg),不是 HTML 语法的一部分。
box-shadow 是唯一可靠方案所有浏览器渲染 HTML 元素阴影,都依赖 CSS 的 box-shadow 属性。它接受 4–6 个参数:水平偏移、垂直偏移、模糊半径、扩散半径、颜色、可选的 inset 关键字。
box-shadow: 0 2px 4px rgba(0,0,0,0.1)
box-shadow: 0 1px 2px #000, 0 2px 8px rgba(0,0,0,0.15)
inset:box-shadow: inset 0 2px 4px rgba(0,0,0,0.05)
所谓“系统方法”,本质是用 CSS 自定义属性(CSS Custom Properties)统一管理阴影值,再在组件中引用。这不是 HTML 功能,而是工程组织手段。
:root 中定义::root {<br> --shadow-sm: 0 1px 2px rgba(0,0,0,0.05);<br> --shadow-md: 0 4px 6px -1px rgba(0,0,0,0.1);<br> --shadow-lg: 0 10px 15px -3px rgba(0,0,0,0.1);<br>}
box-shadow: var(--shadow-md);
style 属性里——无法复用、不可维护box-shadow 字符串来“注入 Token”,既无必要又难调试box-shadow 在所有现代浏览器中支持良好,但几个细节常被忽略:
立即学习“前端免费学习笔记(深入)”;
inset 阴影不适用于 img 或 video 等替换元素(除非包裹一层 div)rgba() 或 hsla(),别用 opacity——后者会把整个元素变透明scroll 事件,也不参与元素尺寸计算(getBoundingClientRect() 不包含阴影区域)真正要落地“阴影系统”,核心是 CSS 自定义属性 + 设计规范文档 + 组件库约束,而不是找一个叫 Shadow Token 的 HTML 标签或函数。