--astryx-spacing-00rem
做界面就像搭积木,间距、圆角和阴影是保证整个网页视觉呼吸感和层次感的“度量衡”。astryx-vue 将这些基础尺度做成了规整的标尺,让不同组件拼在一起时浑然一体。
间距变量从 --astryx-spacing-0 到 --astryx-spacing-12:
--astryx-spacing-2 是 0.5rem,--astryx-spacing-4 是 1rem。rem 的意思是「根字号的几倍」。html { font-size },组件之间的间距和内边距会按同样的比例放大。比如根字号改成 20px,--astryx-spacing-4 就从 16px 变成 20px,文字变大以后不会挤在一起。0.5(默认 2px)和 1.5(默认 6px)两个中间档位。以前这组变量写死成 px。默认根字号下外观没有变化。自定义主题如果自己用 px 写间距,那几档仍然固定不变;想让它们跟随根字号,就改写成 rem。
常用的表单输入框、按钮等可点击交互控件,统一划分为三个标准高度尺寸(这几档仍是 px):
--astryx-size-element-sm 为 28px,适合紧凑工具栏或密集数据表格。--astryx-size-element-md 为 32px,绝大多数页面的默认尺寸。--astryx-size-element-lg 为 36px,适合宽敞表单或重要操作界面。圆角范围从纯直角 --astryx-radius-none 一路延伸到胶囊全圆角 --astryx-radius-full:
0px(不采用原版 Neutral 将其设为 4px 的做法),用于方形头像或纯矩形结构。--astryx-radius-chat 为 28px(在默认 16px 根字号下相当于 1.75rem),专门用来呈现饱满圆润的现代 AI 对话气泡。阴影用来在平面屏幕上建立上下层级的纵深感:
low(低投影,微弱浮起)、med(中投影,常用卡片与下拉菜单)、high(高投影,模态弹窗与大浮层)三档。针对深色和浅色模式,外阴影的透明度与弥散范围做了精细适配,深色模式下不会显得突兀发灰。为了保证良好的无障碍键盘导航体验,系统通过四个变量规范了组件被 Tab 键聚焦时的视觉光环:
--astryx-focus-outline-width:描边宽度。--astryx-focus-outline-style:描边线型(通常为实线 solid)。--astryx-focus-outline-color:颜色跟随强调色 --astryx-color-accent,明亮显眼。--astryx-focus-outline-offset:焦点环距离控件边缘的外扩间隙,保证描边不紧贴文字或边框。0 到 12。条的宽度就是这个间距。
--astryx-spacing-00rem
--astryx-spacing-0-50.125rem
--astryx-spacing-10.25rem
--astryx-spacing-1-50.375rem
--astryx-spacing-20.5rem
--astryx-spacing-30.75rem
--astryx-spacing-41rem
--astryx-spacing-51.25rem
--astryx-spacing-61.5rem
--astryx-spacing-71.75rem
--astryx-spacing-82rem
--astryx-spacing-92.25rem
--astryx-spacing-102.5rem
--astryx-spacing-112.75rem
--astryx-spacing-123rem
小号、中号、大号控件的高度。
--astryx-size-element-sm28px
--astryx-size-element-md32px
--astryx-size-element-lg36px
默认边框粗细。
--astryx-border-width1px
键盘焦点环。颜色跟随 accent。
--astryx-focus-outline-width2px
--astryx-focus-outline-stylesolid
--astryx-focus-outline-colorvar(--astryx-color-accent)
--astryx-focus-outline-offset3px
色块的圆角就是这个变量。
--astryx-radius-none0px
保持 0。原版 Neutral 写成 0.25rem。方形头像和圆角为 none 的骨架屏用它表示直角。
--astryx-radius-inner0.375rem
--astryx-radius-element0.625rem
--astryx-radius-container0.75rem
--astryx-radius-page1.75rem
--astryx-radius-chat28px
Neutral 没有单独覆盖。28px 在 16px 根字号下等于页面圆角 1.75rem。
--astryx-radius-full9999px
外阴影三档,再加上五种内阴影。预览跟随当前的浅色或深色。
--astryx-shadow-low0 2px 4px light-dark(oklch(0 0 0 / 5%), oklch(0 0 0 / 25%)), 0 4px 8px light-dark(oklch(0 0 0 / 10%), oklch(0 0 0 / 40%)), inset 0 0 0 1px light-dark(transparent, oklch(1 0 0 / 8%))
--astryx-shadow-med0 2px 4px light-dark(oklch(0 0 0 / 5%), oklch(0 0 0 / 35%)), 0 4px 12px light-dark(oklch(0 0 0 / 10%), oklch(0 0 0 / 50%)), inset 0 0 0 1px light-dark(transparent, oklch(1 0 0 / 12%))
--astryx-shadow-high0 4px 6px light-dark(oklch(0 0 0 / 10%), oklch(0 0 0 / 50%)), 0 12px 24px light-dark(oklch(0 0 0 / 15%), oklch(0 0 0 / 70%)), inset 0 0 0 1px light-dark(transparent, oklch(1 0 0 / 15%))
--astryx-shadow-inset-hoverinset 0px 0px 0px 2px #0074e24d
--astryx-shadow-inset-selectedinset 0px 0px 0px 2px #0074e280
--astryx-shadow-inset-successinset 0px 0px 0px 2px #2f7d334d
--astryx-shadow-inset-warninginset 0px 0px 0px 2px #f8d36a4d
--astryx-shadow-inset-errorinset 0px 0px 0px 2px #de47454d