Files
Learn_System/plans/lab-split/phase-1-extract-style.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

50 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Phase 1: Extract inline `<style>` → `frontend/css/lab.css`
**Status:** ⬜ Not Started
**Parent plan:** [PLAN.md](./PLAN.md)
**Domain:** frontend
## Objective
Вынести 856L inline `<style>` блока из lab.html в отдельный `frontend/css/lab.css`. После — lab.html становится короче на ~856L, CSS можно править/рефакторить независимо.
## Tasks
- [ ] Создать `frontend/css/lab.css`
- [ ] Скопировать содержимое `<style>...</style>` из lab.html (lines 10-866) в lab.css
- [ ] Удалить inline `<style>` блок из lab.html
- [ ] Добавить `<link rel="stylesheet" href="/css/lab.css">` в `<head>` (после `/css/ls.css`)
- [ ] Verify: `curl -sI http://localhost:3000/lab` → 200
- [ ] Spot-check: открыть в браузере, sim-toolbar/panels выглядят как раньше
- [ ] Pre-commit hook passes
## Files to Modify/Create
- `frontend/css/lab.css` — NEW (~856L)
- `frontend/lab.html` — удалить `<style>` блок, добавить `<link>` (net 855L)
## Acceptance Criteria
- lab.html без `<style>` блока (только `<link>` к /css/lab.css)
- `/lab` отвечает 200
- Визуально lab выглядит идентично pre-Phase-1
- Pre-commit hook чистый
## Notes
- Если в CSS есть `@import` / `url(...)` paths — проверить что они всё ещё валидны от нового origin (/css/lab.css base)
- CSP в server.js: разрешает `'self'` для styles, нет проблем
- Watch for: CSS-variables defined inline могут оказаться нужны другим inline blocks → проверить нет ли таких dependencies
## Review Checklist
- [ ] lab.css не пустой и содержит весь CSS из inline блока
- [ ] lab.html не содержит `<style>` блок (только `<link>`)
- [ ] No emoji в коде (pre-commit проверит)
- [ ] Server возвращает 200
- [ ] Spot-check: открыть /lab, sim-grid и sim-toolbar отображаются нормально
## Handoff to Next Phase
<!-- Implementer заполнит: какой именно баг был при extract (если был), какие inline-style overrides остались (Phase 3 будет с ними работать). -->