77ebe9e3e4
PLAN.md + 5 subplans + CONTEXT.md Strategy: Incremental | Mode: Automated | Execution: Direct Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
63 lines
2.9 KiB
Markdown
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, есть ли паттерны которые нужно унифицировать в будущем. -->
|