From the June 2026 code audit. Deliberately parked at the time (judged not worth it yet) — filing so it's tracked.
Problem
src/lib/logo/makelab-logo.js is ~1,870 lines that mix two very different things:
- Generic geometry primitives —
Triangle, Cell, Grid, TriangleDir (a reusable "triangle-grid art" substrate).
- Makeability-Lab-specific content — the
createMakeabilityLab*Row cell-array factories, the hard-coded M/L outline coordinate arrays, and the color palette.
The primitives are already consumed by makelab-logo-morpher.js, the intro animations (leaffall/gridfade/zoomfade), and triangle-art.js — but you can't reuse them without importing the entire ML logo.
Separately, leaffall/zoomfade/gridfade share ~40–50 lines of piece-pool / delay / stagger boilerplate.
Proposal
- Extract the generic primitives into their own module (e.g.
logo/core/ or a gridart/ namespace): triangle.js, cell.js, grid.js, triangle-dir.js.
- Leave
makelab-logo.js as the ML-specific content built on the substrate.
- Extract a
BaseIntroAnimation for the shared intro-animation logic.
Acceptance
Triangle/Cell/Grid importable without pulling in the ML logo.
- Intro animations deduplicated onto a shared base.
- No behavior change to the existing demos (
npm run build + gallery unchanged visually).
From the June 2026 code audit. Deliberately parked at the time (judged not worth it yet) — filing so it's tracked.
Problem
src/lib/logo/makelab-logo.jsis ~1,870 lines that mix two very different things:Triangle,Cell,Grid,TriangleDir(a reusable "triangle-grid art" substrate).createMakeabilityLab*Rowcell-array factories, the hard-coded M/L outline coordinate arrays, and the color palette.The primitives are already consumed by
makelab-logo-morpher.js, the intro animations (leaffall/gridfade/zoomfade), andtriangle-art.js— but you can't reuse them without importing the entire ML logo.Separately,
leaffall/zoomfade/gridfadeshare ~40–50 lines of piece-pool / delay / stagger boilerplate.Proposal
logo/core/or agridart/namespace):triangle.js,cell.js,grid.js,triangle-dir.js.makelab-logo.jsas the ML-specific content built on the substrate.BaseIntroAnimationfor the shared intro-animation logic.Acceptance
Triangle/Cell/Gridimportable without pulling in the ML logo.npm run build+ gallery unchanged visually).