You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
2.1 KiB
27 lines
2.1 KiB
# Audit: spinner
|
|
audit-version: 1
|
|
audited-at: 2026-06-26
|
|
scope: eidos (eidos-only primitive)
|
|
method: theming-coherence category sweep (visual-elements), 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 solid (as const), 3 variants (ring/dots/bars), color cascade via 8-role palette, no recipe entry (foundation-only), no drift.
|
|
as-const: true · roles clean: true · variants clean: true · has-recipe: false
|
|
|
|
## Findings
|
|
### LOW: Hard-coded animation delays in CSS — spinner-001 <!-- id: spinner-001 -->
|
|
- dimension: animation
|
|
- location: spinner.css:114-150
|
|
- evidence: Lines 115-120: `-0.32s`, `-0.16s`; lines 139-150: `-1s`, `-0.85s`, `-0.7s`, `-0.55s`. These are LOCAL keyframe delay sequencing, not component-level magic; acceptable per LOCAL z principle.
|
|
- impact: Animation timing is local to component stagger effects, not theme-dependent. No re-use across components.
|
|
- proposed-fix: No fix needed. Local animation stagger is acceptable LOW.
|
|
- verify: [confirmed] spinner.css:114-150 — `animation-delay: -0.32s/-0.16s` (dots nth-child 1-2) and `-1s/-0.85s/-0.7s/-0.55s` (bars nth-child 1-4) are local stagger offsets for the spinner's own shared infinite animations (spinner-bounce/spinner-stretch). Standard negative-delay phasing technique, scoped to the component's variants, not a reusable theme literal. Correctly LOW; not drift.
|
|
- fix-status: open
|
|
|
|
## Theming facts (E-bis)
|
|
- magic literals: 0.75rem @ spinner.css:27 -> --_spinner-size (em/rem allowed, local sizing) | 1.5px @ spinner.css:28 -> --_spinner-thickness (local, acceptable) | 0.9s @ spinner.css:15 -> --_spinner-duration (LOCAL, not theme-level) | 360deg @ spinner.css:163 -> rotation constant (physical, LOW) | 0.5 @ spinner.css:171-176 -> scale/opacity values in @keyframes (physical, LOW) | 0.4 @ spinner.css:184-187 -> scaleY values in @keyframes (physical, LOW)
|
|
- magic z-index: none
|
|
- non-canonical names: none
|
|
- roles clean: true · variants clean: true
|