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.
svelte-kit-vice/audit/components/spinner.md

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

  • 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

Powered by TurnKey Linux.