Files
Learn_System/plans/lab-split/phase-3-token-purify.md
T
Maxim Dolgolyov 77ebe9e3e4 chore(plan): lab-split 5-phase plan
PLAN.md + 5 subplans + CONTEXT.md

Strategy: Incremental | Mode: Automated | Execution: Direct

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 22:33:41 +03:00

63 lines
2.9 KiB
Markdown

# Phase 3: Token purification — 265 hardcoded colors → vars
**Status:** ⬜ Not Started
**Parent plan:** [PLAN.md](./PLAN.md)
**Domain:** frontend
## Objective
Заменить 265 хардкодных brand-цветов в lab-related files на `var(--token)` где это семантически корректно. Сохранить curated palettes (subject-specific colors) и canvas-fillStyle (CSS vars не resolve'ятся в canvas context).
## Tasks
- [ ] Идентифицировать все хардкоды в:
- `frontend/lab.html` (HTML body + remaining inline styles)
- `frontend/css/lab.css` (после Phase 1)
- `frontend/js/labs/lab-glue.js` (после Phase 2)
- [ ] Заменить direct token matches:
- `#9B5DE5``var(--violet)`
- `#06D6E0``var(--cyan)`
- `#06D664``var(--green)` (also `#06D6A0` если есть)
- `#F15BB5``var(--pink)`
- `#FFB347``var(--amber)`
- `#0F172A``var(--text)`
- `#3D4F6B``var(--text-2)`
- `#56687A``var(--text-3)`
- `#EEF2FF``var(--bg)`
- [ ] KEEP (НЕ менять):
- Tinted/alpha (`rgba(155,93,229,0.12)` etc.) — CSS не имеет color-mix() без deps
- Canvas `ctx.fillStyle = "#..."` — CSS vars не работают в canvas
- Curated subject palettes (bio violet / chem green / math cyan / phys amber) если они вложены массивом
- Slightly-different shades (`#9B5DE6``#9B5DE5`) — это намеренно другой цвет
- [ ] Semantic aliases: использовать `var(--danger)` / `var(--success)` / `var(--warning)` / `var(--info)` в semantic context
## Files to Modify
- `frontend/lab.html` — заменить hardcodes
- `frontend/css/lab.css` (после Phase 1) — заменить hardcodes
- `frontend/js/labs/lab-glue.js` (после Phase 2) — заменить hardcodes если есть
## Acceptance Criteria
- Хардкодов brand-colors ≤ 30 (от 265, target 90%+ replacement)
- Визуально lab выглядит идентично
- Pre-commit hook passes
- No regression в любой sim
## Notes
- Lab.html сейчас содержит много inline `style="color: #XXX"` — multi-line replacement через ast-index search + manual replacement
- Don't over-aggressive — если color используется один раз в curated palette decoration, лучше keep
- Document log: "Заменено: N, оставлено: M (reasons listed)"
## Review Checklist
- [ ] Counts reported: before / after
- [ ] Spot-check 3 sims визуально (canvas рендеринг не поменялся)
- [ ] No emoji в коде
- [ ] Pre-commit hook passes
## Handoff to Next Phase
<!-- Implementer: какие места были tricky, есть ли паттерны которые нужно унифицировать в будущем. -->