Checkbox changelog
v1.3.0 (2026-10-23)
Labels use the shared single-line preset while preserving their original snippet. Constrained labels can shrink; complex multiline content can explicitly opt out. Shared gap resolution retains at least 4 CSS px for zero or font/gap scaling and preserves larger preferred gaps, control geometry and transparent inset proportions.
Update a group array only when membership changes. Fixes repeated writes and an effect update loop on empty-array initialization; indeterminate clearing and one callback per change are preserved.
2026-09-21: Unified the usage guide, source property table, and Site / AI reading entry points. Documentation only; component behavior is unchanged.
Checkbox-Docs.2026-05-25 Archived the historical changelog at the top of the source file. Subsequent changes go in this document’s changelog; the source header retains only responsibilities, current key architecture, and the documentation path.
v1.2.28 (2026-08-20)
CB-Corner.1 The Checkbox shell continues to share Button’s
.snowui-rounded-rectangle/superellipse(1.1)iOS continuous corners. The inner hover overlay explicitly inheritsborder-radiusandcorner-shape, so the base border, selected background, and hover surface share one outline.
v1.2.27 (2026-08-20)
CB-Hover.4 By user decision, raised the unchecked-border hover overlay from
4%to20%black. The base border remains20%black, making the combined appearance roughly36%black; fill is unchanged. This value and the separate overlay implementation are recorded as a scopedStyleSpec §2.4.3exception.
v1.2.26 (2026-08-20)
CB-Hover.3 Hover now fades in a separate overlay rather than interpolating a translucent inset
box-shadowdirectly. The unchecked state adds only a4%primary-color border layer; the checked state covers the full surface with20%Static White, eliminating border flicker from becoming transparent and then recovering.
v1.2.25 (2026-08-20)
CB-Hover.2 Unchecked hover keeps the fill unchanged and layers
4%primary color over the base20%black border to darken it under hover rules. The checked state still uses the same color for fill and border.
v1.2.24 (2026-08-20)
CB-Hover.1 Hover color covers both visual fill and inset border: both use a
4%primary-color mix when unchecked, and primary color plus20%Static White when checked or indeterminate, avoiding separate border and fill colors.
v1.2.23 (2026-08-20)
CB-Motion.4 The checkmark and indeterminate line keep Static White throughout their exit transition, preventing a black afterimage caused by inherited color reverting immediately after deselection.
CB-Test.1 Added the indeterminate line state to the basic test example.
v1.2.22 (2026-08-20)
CB-Visual.2 Changed checked / indeterminate shapes to the 28×28 baseline proportions from Workshop
14763:16992. The check path uses exact design coordinates; the line is12/28of the outer frame width. Both scale with the visual.CB-Motion.3 Deselecting no longer reverses the checkmark draw animation. The mark fades out with the selected background using normal state timing, and the path resets without animation only after it is fully invisible.
v1.2.21 (2026-08-20)
CB-Size.1 Clarified that
sizeis the outer visual dimension including the inset border, and fixed this boundary withborder-box.CB-Motion.2 Standardized ordinary state transitions at
150ms ease-out. The checked mark draws as a separate path, slower on entry (200ms ease-out) and faster on exit (120ms ease-in).
v1.2.20 (2026-08-20)
CB-Visual.1 Changed checked / indeterminate shapes to the 32×32, 2px round-cap stroke paths from Workshop
14756:16934, scaling with the component.CB-Motion.1 Changed the checked mark to a drawn path; reduced-motion mode commits the final path immediately. Selected background, border, and color are unchanged.
CB-Scale.1 The unchecked border scales proportionally from 2px at size 32px using
size × 0.0625; the public border-width override still takes precedence.
v1.2.19 (2026-06-23)
Added
onCheckedChangeandariaLabelfor layouts without a visible label, for reuse by Table’s built-in selection column.
v1.2.18 (2026-04-28)
Changes
CB-Layout.1 Registered the component as an inline-shell layout under
LayoutProtocol.md, documented the visual + label layout boundary, and explicitly defined the default--snowui-checkbox-gap.
v1.2.17 (2026-04-02)
Changes
CB-Bridge.3 Added component-level variable bridges for label gap, font, and line height so composition hosts can control Checkbox icon-to-text spacing and label styling together.
v1.2.16 (2026-03-06)
Changes
CB-Bridge.2 Checkmark / indeterminate icon visibility transitions now consume Frame
controltiming bridge variables; the component no longer owns independent default duration or easing.
v1.2.15 (2026-02-18)
Fixes
CB-Fix.13 Fixed hover flicker using the earlier stable strategy: removed visual color/border transitions, so unchecked hover no longer changes the border.
v1.2.14 (2026-02-18)
Fixes
CB-Fix.12 Further fixed hover flicker by removing the visual
background-imageoverlay chain and mixing colors directly throughbackground-color.
v1.2.13 (2026-02-18)
Fixes
CB-Fix.11 Fixed hover flicker by changing state and hover selectors from
:has(...)to the sibling chain (input + visual).
v1.2.12 (2026-02-18)
Changes
CB-Adj.5 Aligned animation duration and easing with Radio/Switch (
0.2sandcubic-bezier(0.4, 0, 0.2, 1)) for visual and icon transitions.
v1.2.11 (2026-02-18)
Changes
CB-Adj.4 The active hover overlay now follows the icon’s white Token (
--static-white-100), matching the rule that overlay color equals icon/text color.
v1.2.10 (2026-02-18)
Changes
CB-Adj.3 Changed the active checkmark’s white Token to
--static-white-100for both icon color and path fill.
v1.2.9 (2026-02-18)
Changes
CB-Adj.1 Changed the default color chain to primary: without a color class, the active background uses
--primary, matching Filled Button behavior.CB-Adj.2 Fixed the active checkmark to white with an explicit path fill.
v1.2.8 (2026-02-18)
Fixes
CB-Fix.10 Fixed missing hover feedback in the active state: checked/indeterminate hover directly uses a mixed
white 20% + primarybackground so the change is visible.
v1.2.7 (2026-02-18)
Fixes
CB-Fix.8 Fixed active icon color by setting checked/indeterminate icons explicitly to
--white-100.CB-Fix.9 Fixed missing hover in the active state by switching checked/indeterminate hover overlay to the white color chain for greater visibility.
v1.2.6 (2026-02-18)
Fixes
CB-Fix.6 Further fixed hover flicker by removing visual-layer color transitions that jittered during interpolation.
CB-Fix.7 Decoupled icon color from the primary chain. The active icon now always uses
--white-100, preventingcurrentColorfrom feeding back into the primary chain.
v1.2.5 (2026-02-18)
Fixes
CB-Fix.4 Fixed disappearing flicker on hover entry and exit: the overlay is now a fixed gradient whose opacity changes through a variable, avoiding a
background-imageswap on hover.CB-Fix.5 Restored active-state contrast by returning checked/indeterminate icon color to
--white-100.
v1.2.4 (2026-02-18)
Fixes
CB-Fix.3 Fixed hover flicker with a persistent 0% overlay baseline on the visual; hover changes only overlay strength. Transitioned properties were narrowed to avoid repaint jitter.
v1.2.3 (2026-02-18)
Changes
CB-Color.1 Unified component color under the
currentColorchain soclass="text-*"can override the entire component.CB-Color.2 Replaced gray-scale layers with same-color alpha layers (20%/40%), giving active and inactive states one color system.
v1.2.2 (2026-02-18)
Fixes
CB-Fix.2 Removed the component’s
cursor: pointer. Disabled cursor behavior now follows the shared FrameSurface+.snowui-disabledchain (default arrow when disabled).
v1.2.1 (2026-02-18)
Changes
CB-Map.1 Aligned the size scale with Icon:
16/20/24/28/32/40/48/80, mapped to--size-4/5/6/7/8/10/12/20.CB-Bridge.1 Added override bridges for
radiusandborder-width:--snowui-checkbox-radius-override/--snowui-checkbox-border-width-override.CB-Token.1 Rewrote the size chain with Tokens (standard steps use
--size-*directly; nonstandard values fall back tocalc(var(--size-4) * n / 16)).
v1.2.0 (2026-02-03)
Fixes
CB-Fix.1 Completed explicit Frame capability-switch forwarding and aligned internal variable names with project conventions.
The following content is for AI readers and links code to documentation.