# Radio 更新日志 先阅读 [完整 LICENSE](https://snowui.dev/LICENSE);同任务、同版本、同范围去重。 ### v1.4.0 (2026-10-23) - 标签采用共享单行预设并保留原始 Snippet;窄宽时允许标签收缩,复杂多行内容可显式退出。控件与标签间距消费共享解析,零值与字体/gap 缩放不低于 4 CSS px;较大首选值、视觉体尺寸和透明留白比例保持。 - 点击继续采用既有可取消选择合同,但不取消原生点击的默认状态提交,修复取消后绑定为 false 而原生 input 仍为 checked 的漂移;Space 仍阻止浏览器重复激活。 - 2026-09-21:统一使用文档、源码属性表与 Site / AI 阅读入口;仅文档修订,不改变组件行为。 - **Radio-Docs.2026-05-25** 源码顶部历史更新日志已归档;后续新增变更统一写入本文档 更新日志,源码顶部只保留职责、当前关键架构与文档路径。 ### v1.3.17 (2026-08-20) - **RD-Hover.5** Filled 选中 Hover 只在粗黑选中环上叠加 `20%` Static White,中间白色孔保持不变;Outline 选中 Hover 将 Dot 调整为主色叠加 `20%` Static White,并在基础外框上额外叠加 `20%` 黑色。 ### v1.3.16 (2026-08-20) - **RD-Hover.4** 按用户裁决将未选中边框 Hover 覆盖层从 `4%` 提升为 `20%` 黑色;基础边框仍为单层 `20%` 黑色,默认叠加结果等效约 `36%` 黑色,填充保持不变。该值与独立覆盖层实现已登记为 `StyleSpec §2.4.3` 限定例外。 ### v1.3.15 (2026-08-20) - **RD-Hover.3** Hover 改为位于基础边框和选中环之上的独立覆盖层,避免半透明 `box-shadow` 插值产生闪烁,也不再改写点击后的选中环颜色。 - **RD-Ring.1** 未选中态只绘制单层 `20%` 黑色基础边框;独立选中环默认宽度为 0,仅在 Filled 选中时以 `150ms` 展开,避免两层基础边框叠加。 ### v1.3.14 (2026-08-20) - **RD-Hover.2** 未选中 Hover 保持填充背景不变,仅把基础 `20%` 黑色边框作为底色叠加 `4%` 主色,使 Checkbox 与 Radio 使用相同的边框加深规则。 ### v1.3.13 (2026-08-20) - **RD-Hover.1** Hover 色同时覆盖填充、基础 inset 边框与 Filled 选中环;选中和未选中状态均使用各自既有 Hover 填充色统一整个视觉表面。 ### v1.3.12 (2026-08-20) - **RD-Size.1** 明确 `size` 是包含 inset 边框的视觉体外部尺寸,并用 `border-box` 固化该边界。 - **RD-Motion.1** dot、基础边框与 Filled 选中环统一使用与 Checkbox 常规状态一致的 `150ms ease-out`,替代原 300ms 默认节奏。 ### v1.3.11 (2026-08-20) - **RD-Scale.1** 未选中边框以 Workshop `14756:16934` 的 32px / 2px 为基准,按 `size × 0.0625` 等比缩放;公开 border-width override 仍优先,Filled 选中环结构与动效不变。 ### v1.3.10 (2026-04-28) #### 调整 - **RD-Layout.1** 按 `LayoutProtocol.md` 将组件注册为内联外壳布局,补充 visual + label 的布局边界说明,并将 gap 收敛到 `--snowui-radio-gap` / `--snowui-radio-gap-override` 链路。 ### v1.3.9 (2026-03-10) #### 调整 - **RD-Adjust.8** 撤回单层边框直接变粗的尝试,恢复常驻细边框 + 叠加选中环层方案,保持上一版的边框结构与动效路径。 ### v1.3.8 (2026-03-10) #### 调整 - **RD-Adjust.7** 尝试将 Filled 恢复为单层边框直接变粗/变细,不再保留叠加选中环层;该方案随后撤回。 ### v1.3.7 (2026-03-10) #### 调整 - **RD-Adjust.6** Filled 选中环不再使用“缩放 + 淡出”近似粗细变化;改为常驻选中环层直接过渡边框宽度与颜色,恢复真实的粗细变化动效,并避免末段换层断点。 ### v1.3.6 (2026-03-10) #### 调整 - **RD-Adjust.5** Filled 选中环从“仅透明度淡出”调整为“缩放 + 淡出”,恢复边框由粗到细的观感,同时继续避开小尺寸 inset 宽度插值带来的闪动。 ### v1.3.5 (2026-03-10) #### 修复 - **RD-Fix.16** 小尺寸 Filled 退选时不再对粗边框做 inset 宽度插值;改为稳定细边框常驻,粗边框独立选中环只做透明度过渡,避免末段突然掉到未选中态。 ### v1.3.4 (2026-03-10) #### 修复 - **RD-Fix.15** 默认 Filled 形态退选时保留常驻细边框,选中态粗边框作为独立内层收回,避免边框缩到某个节点后突然掉到未选中视觉。 ### v1.3.3 (2026-03-10) #### 修复 - **RD-Fix.14** 默认 Filled 形态的未选中 hover 不再使用独立 overlay 层,改为在 `.snowui-radio-visual` 同层直接过渡边框与背景变量,消除“粗边框收完后新层闪现”的闪动。 ### v1.3.2 (2026-03-10) #### 修复 - **RD-Fix.13** 默认 Filled 形态的未选中 hover 恢复为“常驻 0% overlay 基线,hover 仅切换透明度”,进一步消除 checked -> unchecked 时的闪动。 ### v1.3.1 (2026-03-10) #### 修复 - **RD-Fix.12** 取消选中时的视觉层补齐 `background-color` 过渡,避免 hover 背景在 checked -> unchecked 切换时瞬时跳变。 ### v1.3.0 (2026-03-10) #### 新功能 - **RD-Behavior.1** Radio 支持点击当前已选项取消选中;键盘 `Space` 也遵循同样行为。 - **RD-Behavior.2** `bind:group` 场景下取消当前项会把 `group` 清空为 `undefined`,并保持后续组联动继续可用。 - **RD-Fix.11** 移除 checked 态 `cursor: default`,避免与“可取消选中”交互冲突。 ### v1.2.15 (2026-03-10) #### 新功能 - **RD-Role.1** Radio 新增 `as="badge"` 角色,可在 `Image` 宿主中作为右上角角标组合使用。 ### v1.2.14 (2026-03-06) #### 调整 - **RD-Bridge.1** Radio 内部 Dot 与 Filled 描边过渡改为消费 Frame 通用时序桥接变量;组件仅定义最终描边粗细,不再内置独立默认时间曲线。 ### v1.2.13 (2026-02-23) #### 修复 - **RD-Fix.10** 修复 checked 态光标语义:选中项输出 `data-checked="true"` 并在组件层设置 `cursor: default`,避免 hover 时出现 pointer 误导。 ### v1.2.12 (2026-02-18) #### 修复 - **RD-Fix.9** 按历史稳定策略修复 hover 闪动:unchecked hover 不再改变边框,仅保留背景混色。 - **RD-Adj.4** 保留默认 filled 激活态“边框加粗”过渡,仅对 checked 状态应用边框动效。 ### v1.2.11 (2026-02-18) #### 修复 - **RD-Fix.8** 进一步修复 hover 闪动:移除 visual 的 `background-image` 叠加链路,改为直接 `background-color` 混色。 ### v1.2.10 (2026-02-18) #### 修复 - **RD-Fix.7** 修复 hover 闪动:状态与 hover 选择器从 `:has(...)` 切换为 sibling 链路(`input + visual`)。 ### v1.2.9 (2026-02-18) #### 修复 - **RD-Fix.6** 修复默认(filled)形态激活动效缺失:选中时“边框加粗”补齐平滑过渡。 - **RD-Adj.3** 与 Checkbox/Switch 统一动效时间与缓动曲线(`0.2s` + `cubic-bezier(0.4, 0, 0.2, 1)`)。 ### v1.2.8 (2026-02-18) #### 调整 - **RD-Adj.2** 默认颜色链路改为主色:未设置颜色类时激活态使用 `--primary`(行为对齐 Filled Button)。 ### v1.2.7 (2026-02-18) #### 修复 - **RD-Fix.5** 进一步修复 hover 闪动:移除视觉层颜色过渡,避免颜色链插值抖动。 ### v1.2.6 (2026-02-18) #### 修复 - **RD-Fix.4** 修复 hover 进出时的消失闪动:overlay 改为固定 gradient,通过变量切换透明度,避免 hover 时切换 `background-image`。 ### v1.2.5 (2026-02-18) #### 修复 - **RD-Fix.3** 修复 hover 闪动:视觉层改为常驻 0% overlay 基线,hover 仅切换 overlay 强度;并收敛过渡属性避免重绘抖动。 ### v1.2.4 (2026-02-18) #### 调整 - **RD-Color.1** 组件颜色统一改为 `currentColor` 链路,支持 `class="text-*"` 覆盖整组件。 - **RD-Color.2** 原灰阶层改为同色透明度层(20%/40%),激活与未激活统一同色体系。 ### v1.2.3 (2026-02-18) #### 调整 - **RD-Adj.1** 默认 `variant` 从 `outline` 调整为 `filled`。 ### v1.2.2 (2026-02-18) #### 优化 - **RD-Opt.1** 尺寸梯度与 Icon 组件对齐:`16/20/24/28/32/40/48/80`。 - **RD-Opt.2** 尺寸链路改为 `--size-*` token,并补齐 `override -> internal -> token` 变量桥接。 ### v1.2.1 (2026-02-18) #### 修复 - **RD-Fix.2** 移除组件内 `cursor: pointer`,禁用态 cursor 统一由 Frame `Surface` + `.snowui-disabled` 通用链路控制。 ### v1.2.0 (2026-02-03) #### 修复 - **RD-Fix.1** 补齐 Frame 能力开关显式传参与内部变量命名规范 --- --- > **以下内容供 AI 阅读,用于维护代码与文档的关联**