# Audit: button-group audit-version: 1 audited-at: 2026-06-26 scope: eidos (eidos-only primitive) method: theming-coherence category sweep (composite-and-service), adversarially verified; roles + `:Morfo` lead-verified CLEAN across all eidos (no success/warning/danger/info; only alert-dialog uses `:Morfo`). ## Summary Counts (post-verification): CRITICAL 0 · HIGH 0 · MEDIUM 0 · LOW 1. conformance: Contract: 'as const satisfies Morfo' ✓ | Scope: eidos ✓ | Roles: none/N-A ✓ | Variants: data-orientation, data-disabled only; propagated to children ✓ | Sizing/Tokens: all via recipe ✓ | Local z allowed ✓ as-const: true · roles clean: true · variants clean: true · has-recipe: true ## Findings ### LOW: MAGIC_LITERAL where canonical scale exists — button-group-001 - dimension: MAGIC_LITERAL - location: src/uix/eidos/lib/recipes/base.ts:4384 - evidence: 'divider-strength': '18%' - impact: Bare percentage where --opacity-* scale could be canonical; though this is a specialized mix-opacity control, the 18% literal bypasses the established opacity scale - proposed-fix: Consider documenting whether this 18% is a one-off interaction opacity or should reference an opacity token if theming consistency is desired - verify: [downgraded] Confirmed literal at base.ts:4384 'divider-strength': '18%'. But this is a color-mix percentage (currentColor mix for the segmented seam, css:93), not an --opacity-* element-opacity case. The recipe comment (4381) explicitly flags it as 'the lone magic number'. color-mix proportion has no canonical token; LOW cosmetic, not opacity-scale drift. - fix-status: open ## Theming facts (E-bis) - magic literals: 18% @ src/uix/eidos/lib/recipes/base.ts:4384 -> should document opacity rationale or reference token | 1 @ src/uix/eidos/components/button-group/button-group.css:98,102 -> local z acceptable | 2 @ src/uix/eidos/components/button-group/button-group.css:106 -> local z acceptable - magic z-index: none - non-canonical names: none - roles clean: true · variants clean: true