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>
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
# 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, есть ли паттерны которые нужно унифицировать в будущем. -->
|
||||
Reference in New Issue
Block a user