# План реализации: Химия 7 (Беларусь) — интерактивный наглядный учебник

> Цель: создать **с нуля** интерактивный наглядный учебник по **всей программе 7 класса**
> в **современной архитектуре hub + главы** (как Химия 8 / Физика 7–11 / Алгебра / Геометрия),
> на уровне их качества, с поправкой на содержание 7 класса.
>
> **7 класс — это ПЕРВЫЙ курс химии у школьника.** Поэтому всё качественно и наглядно,
> БЕЗ количественной химии 8 класса (нет моля, молярной массы, расчётов по уравнениям,
> периодического закона, строения атома, химической связи, ТЭД, ионных уравнений,
> степени окисления). Акцент — на **первоначальные понятия** (вещество, атом, элемент,
> молекула, формула, валентность, химическая реакция, уравнение) и **первое знакомство**
> с кислородом, водородом, водой и важнейшими классами соединений (оксиды, кислоты, соли,
> основания) на уровне состава, наглядных свойств и качественных реакций.
>
> **Архитектура (по образцу Химии 8):** `chemistry_7_hub.html` (хаб-каталог глав) + **4 файла глав**.
> В БД — родитель `chemistry-7` + 4 ребёнка с `parent_slug`. Каждая глава — самостоятельная
> страница со своими § (см. карту ниже), модульный CSS/JS на предмет. Единый стандарт с
> [[../textbooks-8/PLAN_CHEMISTRY_8.md]] и [[../textbooks-9/PLAN_CHEMISTRY_9.md]].

---

## 🎯 Источник

| Параметр | Значение |
|----------|----------|
| Книга | `himiya_7kl_shimanovich_rus_2023 (1).pdf` |
| Авторы | Шиманович И. Е., Красицкий В. А., Сечко О. И., Хвалюк В. Н. |
| Изд. | Минск, «Народная асвета», 2023 (2-е издание, пересмотренное), 175 с., тираж 121 000 |
| Структура | **4 главы, 26 §, 5 лабораторных опытов, 4 практические работы, 7 приложений** |
| Справочные таблицы (приложения) | ряд активности металлов (Прил.4), расчёт массовой доли элемента (Прил.3), бытовые названия веществ (Прил.6), единицы массы/объёма (Прил.7), вода в природе (Прил.5) |

PDF лежит в `G:\Dev\Тесты\Методички\тест_6 класс\Книги\`. Оглавление — стр. 3–4 PDF.
Авторов **в hub НЕ показываем** (политика проекта, см. [[../textbooks-7/PLAN_PHYSICS_7.md]]).

> **Важные отличия от Химии 8:**
> 1. Это **первый** курс химии — объяснять с нуля, простым языком, максимум наглядности.
> 2. **Качественно, не количественно**: валентность (а не степень окисления), `M_r` как
>    «во сколько раз тяжелее» (без моля и `M`), баланс уравнений подбором (без стехиометрии).
> 3. Классы соединений даются **в порядке знакомства по ходу курса** (оксиды — в теме «Кислород»,
>    кислоты и соли — в теме «Водород», основания — в теме «Вода»), а НЕ единой главой как в 8 кл.
> 4. Индикаторы (лакмус, метилоранж, фенолфталеин), ряд активности, признаки реакций —
>    **ядро наглядности** курса.
>
> **Соответствие «глава книги → файл главы → slug»:**
>
> | Глава книги | § | Файл | slug | Цвет |
> |---|---|---|---|---|
> | Гл.I Первоначальные химические понятия | 1–12 | `chemistry_7_ch1.html` | `chemistry-7-ch1` | emerald |
> | Гл.II Кислород | 13–17 | `chemistry_7_ch2.html` | `chemistry-7-ch2` | sky/cyan |
> | Гл.III Водород | 18–22 | `chemistry_7_ch3.html` | `chemistry-7-ch3` | violet |
> | Гл.IV Вода | 23–26 | `chemistry_7_ch4.html` | `chemistry-7-ch4` | blue |
>
> Хаб: `chemistry_7_hub.html` / slug `chemistry-7` (родитель в каталоге).
> Палитра hub — **emerald/green** (первые шаги в химии, природа, вода), не пересекается с
> Химией 8 (amber) и Химией 9 (amber).

---

## 📗 ПОЛНАЯ КАРТА СОДЕРЖАНИЯ (26 §)

Колонка **«Интерактив»** — главный наглядный элемент сверх текста (минимум 1 «звёздный»
виджет на §; полный набор — в стандарте ниже).

### ГЛАВА I. Первоначальные химические понятия (§§1–12) — *emerald*
| § | Тема | Ключ | Интерактив (звёздный виджет) |
|---|------|------|------------------------------|
| §1 | Химия — наука о веществах | вещество vs тело; свойства веществ; наблюдение/опыт; лаб. оборудование, ТБ | **Виртуальная лаборатория-знакомство** (наведи на оборудование → название/назначение + правило ТБ) + DnD «тело / вещество» |
| §2 | Чистые вещества и смеси | однородные/неоднородные смеси; способы разделения | **Симулятор разделения смесей** (фильтрование, выпаривание, отстаивание, дистилляция, магнит) + классификатор |
| §3 | Атомы. Химические элементы | атом; химический элемент; символы элементов | **Тренажёр символов элементов** (название↔символ) + мини-ПСХЭ как каталог (`miniPeriodic`) |
| §4 | Относительная атомная масса | `A_r`; а.е.м. = 1/12 массы атома C | **«Весы атомов»**: во сколько раз атом X тяжелее H/C; поиск `A_r` по элементу |
| §5 | Молекулы. Простые вещества | молекула; простое вещество; атомность O₂, O₃, H₂, металлы | **3D-модели простых веществ** (biochem-core: H₂, O₂, O₃, N₂) + классификатор «атом/молекула/простое» |
| §6 | Сложные вещества | атомы разных элементов: H₂O, CO₂, CH₄, NH₃ | **3D-модели сложных веществ** + DnD «простое / сложное» |
| §7 | Химическая формула | индекс, коэффициент; качественный/количественный состав; чтение формул | **Парсер/конструктор формулы** (формула → какие атомы и сколько) + «читалка» (аш-два-о) |
| §8 | Относительная молекулярная масса | `M_r = Σ A_r·index` | **Калькулятор `M_r`** (biochem-core) с пошаговым разбором + калькулятор массовой доли элемента `w(A)` (Прил.3) |
| §9 | Валентность | валентность по водороду; H–I, O–II; составление формул по валентности | **Конструктор формул по валентности** (2 элемента + валентности → НОК индексов + проверка) + «черточки валентности» |
| §10 | Явления физические и химические. Признаки химических реакций | признаки: цвет, осадок, газ, запах, тепло/свет | **Детектор признаков реакции** (малахит→CuO+H₂O+CO₂; CuSO₄+NaOH→синий осадок) `testTube` + DnD «физ./хим. явление» |
| §11 | Закон сохранения массы. Химические уравнения | m(реагентов)=m(продуктов); Ломоносов/Лавуазье | **«Весы сохранения массы»** (анимация: реагенты ⇄ продукты, баланс) + знакомство с уравнением |
| §12 | Составление уравнений химических реакций | подбор коэффициентов; баланс атомов | **Балансировщик уравнений** (`equationBalancer`: P+O₂→P₂O₅, Fe+O₂→Fe₃O₄, H₂+O₂→H₂O, CH₄+O₂→CO₂+H₂O) |

**Лаб. опыт 1** (после §10): признаки протекания химических реакций.
**Практическая работа 1** (после §2): знакомство с химической лабораторией, разделение смесей.

### ГЛАВА II. Кислород (§§13–17) — *sky/cyan*
| § | Тема | Ключ | Интерактив |
|---|------|------|------------|
| §13 | Воздух как смесь газов | состав воздуха: N₂ 78 %, O₂ 21 %, Ar, CO₂ | **Интерактивная диаграмма состава воздуха** (круговая, клик → доля газа) + связь со §2 (смесь) |
| §14 | Кислород как химический элемент и простое вещество | O (элемент) vs O₂ (вещество); озон O₃; нахождение в природе; физ. свойства | **Переключатель «элемент ↔ простое вещество»** + 3D O₂/O₃ + «паспорт» кислорода |
| §15 | Химические свойства кислорода | горение: C, S, P, Fe + O₂ → оксиды; окисление, медленное окисление | **Симулятор горения** (выбери вещество → реакция с O₂ → оксид + уравнение + пламя) `chemEq` |
| §16 | Оксиды | оксид = Э + O (бинарное); названия; CuO, CO₂, SO₂, P₂O₅, Fe₃O₄, H₂O | **Конструктор оксида** (элемент + валентность → формула) + классификатор «оксид / не оксид» |
| §17 | Получение кислорода | разложение KMnO₄, H₂O₂ (+кат. MnO₂); катализатор; реакция разложения | **Схема получения O₂** (разложение при нагреве; катализатор — ускоряет, не расходуется, анимация) |

**Лаб. опыт 2** (после §13): сборка простейших приборов для получения и собирания газов.
**Практическая работа 2** (после §17): получение кислорода и изучение его свойств (тлеющая лучинка → вспыхивает).

### ГЛАВА III. Водород (§§18–22) — *violet*
| § | Тема | Ключ | Интерактив |
|---|------|------|------------|
| §18 | Водород — химический элемент и простое вещество | H, H₂; самый лёгкий газ; нахождение; физ. свойства | **3D-модель H₂** + «паспорт» водорода + демонстрация «легче воздуха» |
| §19 | Химические свойства водорода | H₂+O₂→H₂O (гремучий газ); H₂+CuO→Cu+H₂O (восстановление); восстановитель | **Симулятор реакций H₂** (восстановление оксида: чёрный CuO → красная Cu) `chemEq` |
| §20 | Понятие о кислотах | кислота = H + кислотный остаток; HCl, H₂SO₄, HNO₃, H₂SO₃, H₂CO₃; индикаторы | **`indicatorScale`** (лакмус красный, метилоранж розовый в кислоте) + конструктор «кислота → остаток» |
| §21 | Взаимодействие кислот с металлами | Me + кислота → соль + H₂↑; ряд активности (Прил.4); Cu/Ag не реагируют | **Интерактивный ряд активности** (`activitySeries`: K…H₂…Au, клик металл → реагирует/нет, пузырьки H₂) + Zn+HCl (`testTube`) |
| §22 | Соли — продукты замещения H на металл | соль = Me + кислотный остаток; реакция замещения; хлориды/сульфаты/нитраты | **Конструктор солей** (металл + кислотный остаток → формула по валентности) + анимация замещения |

**Лаб. опыт 3** (после §20): действие кислот на индикаторы.
**Лаб. опыт 4** (после §21): взаимодействие серной и соляной кислот с металлами.
**Практическая работа 3** (после §22): получение водорода и изучение его свойств (Zn+HCl, «гремучий газ»).

### ГЛАВА IV. Вода (§§23–26) — *blue*
| § | Тема | Ключ | Интерактив |
|---|------|------|------------|
| §23 | Состав, физические и химические свойства воды | H₂O; разложение эл. током → H₂+O₂ (2:1); Na+H₂O→щёлочь+H₂; оксид+H₂O→кислота/основание; круговорот | **Разложение воды** (анимация 2:1 H₂:O₂) + реакции воды (Na, CaO, CO₂) + круговорот воды (Прил.5) |
| §24 | Основания как сложные вещества | основание = Me + OH; NaOH, KOH, Ca(OH)₂; щёлочи vs нерастворимые; индикаторы | **Конструктор оснований** Me(OH)ₙ + **`indicatorScale`** (фенолфталеин малиновый, лакмус синий) + классификатор |
| §25 | Реакция нейтрализации | кислота + основание → соль + вода; HCl+NaOH→NaCl+H₂O; экзотермическая | **Анимация нейтрализации** (фенолфталеин малиновый → бесцветный; sim `titration`) `chemEq` |
| §26 | Охрана окружающей среды | загрязнение воды/воздуха; кислотные дожди; очистка воды; бережное отношение | **Инфографика-исследование** (источники загрязнения, очистка воды — Прил.5) |

**Лаб. опыт 5** (после §24): действие щелочей на индикаторы.
**Практическая работа 4** (после §25): реакция нейтрализации.

**Итого**: 26 §, 4 главы, **5 лаб. опытов** (§10, §13, §20, §21, §24), **4 практические работы** (§2, §17, §22, §25), 7 приложений.

---

## ⚗️ ХИМИЧЕСКИЙ СТАНДАРТ КАЧЕСТВА

### A. Движки и переиспользуемые активы (всё уже есть в проекте)

| Что нужно | Берём из | Файл / id |
|-----------|----------|-----------|
| Парсинг формул, `M_r`/`A_r`, состав вещества | biochem-core | `frontend/js/biochem-core.js` ✅ |
| 2D/3D шаростержневые модели молекул | biochem-core | `frontend/js/biochem-core.js` ✅ |
| Рендер формул/ионов/уравнений (`formula`, `ionLabel`, `chemEq`) | chem8_svg | `frontend/js/chem8_svg.js` (`window.Chem8`) ✅ |
| Индикаторы, ряд активности, классификаторы, `testTube` | chem8_svg (виджеты разд. B Химии 8) | переиспользовать / доработать ✅ |
| Интерактивная ПСХЭ (как каталог элементов) | sim `periodic` | реестр `_register-all.js` ✅ |
| Песочница реакций | sim `chemsandbox` | реестр ✅ |
| Титрование / нейтрализация | sim `titration` | реестр ✅ |
| Качественный анализ / индикаторы | sim `qualanalysis` | реестр ✅ |

Монтаж sim: контейнер `<div id="sim-<id>"></div>` + `openSim('<id>')` (или прямой mount через
`window.LabRegistry`), как на остальных страницах. Глоссарий — по образцу `chem8_glossary.js`.

### B. Хелпер `/js/chem7_svg.js` (тонкая надстройка над `chem8_svg.js`)

> **Рекомендация:** НЕ дублировать химические примитивы. `formula`, `ionLabel`, `chemEq`,
> `indicatorScale`, `activitySeries`, `testTube`, `classifier` уже есть/планируются в
> `chem8_svg.js` (`window.Chem8`). `chem7_svg.js` должен **переиспользовать** их (через
> `window.Chem8.*`) и добавить только то, что специфично для 7 класса. План Химии 9 уже
> рекомендует свести химические примитивы в общий `chem_svg.js` — при совместной разработке
> довести до единого shared-модуля. Молекулы — **только через `biochem-core.js`**.

```js
// 1. Конструктор формулы по валентности (звёздный виджет §9):
//    выбор 2 элементов + их валентностей → НОК → индексы → формула + структурная схема
const valenceBuilder = (mount, {elements}) => { /* H-I, O-II, Cl-I, ...; НОК(v1,v2) */ };

// 2. Тренажёр символов элементов (§3): название ↔ символ (карточки/квикфайр)
const elementSymbolDrill = (mount, {set}) => { /* H,O,C,N,Na,Cl,Fe,Cu,Ca,Al,Zn,S,P,Mg,K */ };

// 3. «Весы атомов» (§4): сравнение масс атомов в а.е.м., во сколько раз тяжелее
const atomBalance = (mount, {a, b}) => { /* визуальные весы + A_r */ };

// 4. Разделитель смесей (§2): смесь → выбор метода (фильтр/выпаривание/магнит/дистилляция)
const mixtureSeparator = (mount, {mixtures}) => { /* анимация разделения, проверка метода */ };

// 5. Детектор признаков реакции (§10): анимация опыта + чек-лист признаков (цвет/осадок/газ/запах/тепло)
const reactionSigns = (mount, {demo}) => { /* малахит↘, CuSO4+NaOH↘синий, S+O2 запах */ };

// 6. «Весы сохранения массы» (§11): слева реагенты, справа продукты, стрелка баланса m=m
const massConservation = (mount, {eq}) => { /* m(реаг)=m(прод), визуальные весы */ };

// 7. Балансировщик уравнений подбором (§12): матрица атомов, подсветка дисбаланса, без стехиометрии
const equationBalancer = (mount, {skeleton}) => { /* коэффициенты, проверка баланса атомов */ };

// 8. Симулятор горения (§15): вещество (C/S/P/Fe) + O2 → оксид + пламя/искры + уравнение
const combustionSim = (mount, {fuel}) => { /* SVG-пламя + chemEq продукта */ };

// 9. Конструктор оксида/соли/основания (§16,22,24): Me/Э + валентность/остаток → формула
const compoundBuilder = (mount, {kind}) => { /* kind: 'oxide'|'salt'|'base'; по валентности */ };

// 10. Диаграмма состава воздуха (§13): интерактивная круговая (N2 78, O2 21, Ar, CO2)
const airComposition = (mount) => { /* клик сектор → газ + доля */ };

// 11. Разложение воды (§23): анимация электролиза, объёмы H2:O2 = 2:1
const waterDecomp = (mount) => { /* две пробирки над электродами, 2:1 */ };

// 12. Калькулятор массовой доли элемента (Прил.3, §8): w(A) = A_r·x / M_r, пошагово
const massFraction = (mount, {formula}) => { /* w(O) в H3PO4 = 65,3 % */ };
```

`indicatorScale`, `activitySeries`, `testTube`, `classifier`, `miniPeriodic` — **из `chem8_svg.js`**
(если там пока заглушки — реализовать там же и переиспользовать в обоих учебниках).

### C. Правила рендера химии (обязательны с §1)

1. **Формулы веществ** — нижние индексы для атомов (`H₂O`, `CaCO₃`) через `Chem8.formula`/
   `chemEq`, не «сырой» текст. Зарядов ионов и степеней окисления в 7 классе НЕТ.
2. **Уравнения реакций** — всегда сбалансированы; стрелки `=`/`→`, `↑` (газ), `↓` (осадок),
   условия над стрелкой (`t`, кат., эл. ток). Только реакции из программы 7 класса.
3. **Валентность**, а не степень окисления: схемы «черточек» (H–Cl, H–O–H), составление формул
   по валентности (НОК индексов).
4. **Признак реакции** — для каждой качественной/наглядной реакции показывать видимый признак:
   цвет осадка, пузырьки газа, изменение окраски индикатора, пламя (через `testTube`/`indicatorScale`/`combustionSim`).
5. **Молекулярные модели** — структурная формула + 3D (biochem-core) для изучаемых веществ
   (H₂, O₂, O₃, N₂, H₂O, CO₂, CH₄, NH₃, HCl).
6. **Цвета — химически достоверные**: осадок Cu(OH)₂ голубой, малахит зелёный→CuO чёрный,
   медь красная, сера жёлтая; индикаторы: лакмус (кислота — красный, щёлочь — синий),
   метилоранж (кислота — розовый), фенолфталеин (щёлочь — малиновый).
7. **Безопасность** — где уместно (кислоты, щёлочи, Na+вода, гремучий газ) — заметка-«скрепка»;
   в практических работах — блок «Правила ТБ».
8. **KaTeX-эскейпы** — в JS-шаблонах двойной backslash (`\\to`, `\\downarrow`, `\\uparrow`).
9. **Drag/слайдеры** — `window`-listeners + `{passive:false}` + state ВЫШЕ `redraw()`
   (стандарт геометрии), `touch-action:none` на draggable SVG/canvas, **без `setPointerCapture`**.
10. **Без эмоджи** — только inline SVG `.ic` (правило проекта [[feedback_no_emoji]]).
11. **Простой язык** — это первый курс химии; определения короткие, на каждое понятие — наглядность.

### D. Типы интерактивов по темам 7 класса

| Тип темы | Интерактив |
|----------|------------|
| Вещества/смеси (§1,2,13) | `mixtureSeparator`, классификатор, `airComposition`, виртуальная лаборатория |
| Атомы/элементы (§3,4) | `elementSymbolDrill`, `miniPeriodic`, `atomBalance` |
| Молекулы/вещества (§5,6) | biochem-core 3D, классификатор «простое/сложное» |
| Формулы/`M_r`/валентность (§7,8,9) | парсер формулы, калькулятор `M_r`, `valenceBuilder`, `massFraction` |
| Реакции/уравнения (§10,11,12) | `reactionSigns`, `massConservation`, `equationBalancer` |
| Кислород/горение/оксиды (§14,15,16,17) | `combustionSim`, `compoundBuilder('oxide')`, схема получения, sim `chemsandbox` |
| Водород/кислоты/соли (§18,19,20,21,22) | 3D H₂, `indicatorScale`, `activitySeries`, `testTube`, `compoundBuilder('salt')` |
| Вода/основания/нейтрализация (§23,24,25) | `waterDecomp`, `compoundBuilder('base')`, `indicatorScale`, sim `titration` |
| Прикладное/экология (§26, Прил.) | инфографика-исследование, бытовые названия (Прил.6), единицы (Прил.7) |

---

## 📦 СТРУКТУРА КАЖДОГО § (стандарт наполнения)

**Теория (3 карточки):**
- `theory` — основное определение/понятие + наглядная SVG/модель
- `rule` — ключевое правило/закономерность/формула (рамка)
- `example` — разобранный пример (реакция / составление формулы / опыт) с пошаговым рендером
- (для прикладных §) `apply` — применение/значение (инфографика)

**Интерактивы (3–5 на §):**
1. **Звёздный виджет** темы (из карты содержания)
2. **Конструктор/симулятор** (drag / slider / sim из реестра / biochem-core 3D)
3. **DnD-классификатор** (вещество/смесь, простое/сложное, физ./хим. явление, оксид/кислота/соль/основание)
4. **Тренажёр** — 5 задач с inline-наглядностью (формула / уравнение / модель / признак в условии)
5. **Босс §** — 3–4 интеграционные задачи (+5 XP каждая)

**Дополнительно:** пополнение глоссария (термины §, `[[ссылки]]`), «Вопросы и задания» из
учебника (адаптированные, с проверкой), проходящий jsdom-тест страницы.

**Финал главы:** итоговая шпаргалка (mini-cards), карта связей (SVG-граф понятий главы),
5–7 интегрированных боссов (+10 XP), achievement «Мастер главы N» (+50 XP, confetti),
кнопка перехода к следующей главе.

---

## 🚀 ПОРЯДОК РЕАЛИЗАЦИИ (по фазам)

### Phase 0 — Фундамент (hub + каркасы глав)
- **`chemistry_7_hub.html`** — хаб-каталог 4 глав по образцу `chemistry_8_hub.html`: палитра
  **emerald** (`--pri:#059669`/`#047857`, `--pri-soft:#d1fae5`; header gradient
  `linear-gradient(110deg,#065f46 0%,#059669 55%,#6ee7b7 100%)`), водяной знак «ХИМИЯ»,
  карточки глав с прогрессом (грузятся из `/api/textbooks/chemistry-7/children`),
  блок «Финал курса» (шпаргалка + боссы — наполняется в Phase 5), achievement-strip
  «Химик 7 класса», тема (localStorage `chemistry7_theme`), KaTeX CDN, `/js/api.js`+`/js/xp.js`.
- **4 файла глав** `chemistry_7_ch1..ch4.html` — на Phase 0 валидные каркасы-заглушки
  (header с водяным знаком, hero, sidebar-оглавление §, контейнер параграфов, XP/tracker-интеграция),
  наполнение § — в Phase 1–4. Подключить `?v=YYYYMMDD` (cache-busting) на все JS;
  sidebar-фикс `@media(min-width:981px){#sidebar-btn{display:none}}`.
- **`/js/chem7_svg.js`** (хелперы B — заглушки → реализация по фазам); подключить
  `chem8_svg.js`, `biochem-core.js` и нужные симуляторы на страницах глав; `chem7_glossary.js`.
- **Миграция `046_chemistry7_hub.sql`** (следующий номер после `045_bio_pathways.sql`):
  **INSERT** родителя `chemistry-7` (`html_path='chemistry_7_hub.html'`, `para_count=26`,
  `color='emerald'`, `parent_slug=NULL`, `subject='chemistry'`, `grade=7`) + **4 детей**
  `chemistry-7-ch1..ch4` (`parent_slug='chemistry-7'`, свои `html_path`/`para_count`/`color`/`sort_order`)
  — по образцу `041_chemistry8_hub.sql`. Применить `npm run migrate` + рестарт dev-сервера.
- jsdom-тест-каркас: хаб строится, все 5 файлов парсятся, ссылки глав ведут на существующие slug.

### Phase 1 — Глава I «Первоначальные химические понятия» (§§1–12) + ЛО1 + ПР1
Самая фундаментальная: закладываем движки, от которых зависит весь курс — `elementSymbolDrill`,
парсер формулы + калькулятор `M_r` (biochem-core), `valenceBuilder`, `equationBalancer`,
`reactionSigns`, `massConservation`, `mixtureSeparator`. По 2–3 § за волну.

### Phase 2 — Глава II «Кислород» (§§13–17) + ЛО2 + ПР2
`airComposition`, `combustionSim`, `compoundBuilder('oxide')`, схема получения O₂ (катализатор),
sim `chemsandbox`. Первые реакции горения и понятие оксида.

### Phase 3 — Глава III «Водород» (§§18–22) + ЛО3 + ЛО4 + ПР3
3D H₂, восстановление CuO, `indicatorScale` (лакмус/метилоранж), `activitySeries` (ряд активности,
Прил.4), `testTube` (Zn+HCl, пузырьки H₂), `compoundBuilder('salt')`. Понятия «кислота» и «соль».

### Phase 4 — Глава IV «Вода» (§§23–26) + ЛО5 + ПР4
`waterDecomp` (разложение 2:1), реакции воды, `compoundBuilder('base')`, `indicatorScale`
(фенолфталеин), нейтрализация (sim `titration`), экология/круговорот воды (Прил.5).

### Phase 5 — Финалы глав + общий финал учебника
Шпаргалки и карты связей по каждой главе; интегрированные боссы + achievements;
**большой финал**: «химический паспорт вещества» (тело/вещество → состав → формула → реакции),
итоговый босс-квест, ачивка «Химик 7 класса»; глоссарий собран и связан `[[ссылками]]`;
страница приложений-справочников (Прил.3,4,6,7 как интерактивные виджеты).

### Phase 6 — Качество и админка
Полный прогон jsdom-тестов (каждый § — builder не stub); аудит баланса всех уравнений и
KaTeX/`chemEq`-эскейпов; синхронизация с админкой (если новые sim в `lab.html` →
обновить `ADMIN_SIMS` в `admin.html` — [[feedback_sims_admin_sync]]); проверка доступа
по классам/ученикам ([[project_content_access]], `/api/access`); появление в каталоге
`textbooks.html` в секции 7 класса (рядом с Физикой 7, Алгеброй 7, Геометрией 7).

> Рекомендуемый темп: внутри фазы — по 2–3 § за «волну», каждая волна = commit +
> проходящий jsdom-тест (правило CLAUDE.md: commit изменённых файлов + push сразу).

---

## 🗄️ ИНТЕГРАЦИЯ С ПРОЕКТОМ

| Точка | Действие |
|-------|----------|
| **БД каталог** | `chemistry-7` в `textbooks` **отсутствует** → миграция `046_chemistry7_hub.sql`: INSERT родитель + 4 ребёнка (образец — `041_chemistry8_hub.sql`). Каталог `/api/textbooks` показывает только `parent_slug IS NULL`; хаб тянет детей через `/api/textbooks/chemistry-7/children`. |
| **Прогресс/XP** | Автоматически: `textbook-xp-widget.js` (+5 XP/§), `textbook-tracker.js`, `LS.xp`. Доп. XP за боссов — по образцу `phys7_ch1_widgets.js`. localStorage-ключи прогресса — `chem7-*`. |
| **Симуляторы** | Реестр `frontend/js/labs/_register-all.js`. Нужные химические sim уже зарегистрированы: `periodic`, `chemsandbox`, `titration`, `qualanalysis`. |
| **Молекулы** | `biochem-core.js` (парсинг, `M_r`, 2D/3D-модели). |
| **Хим. примитивы** | `chem8_svg.js` (`window.Chem8`: `formula`, `ionLabel`, `chemEq` + виджеты) — переиспользовать; `chem7_svg.js` — тонкая надстройка (валентность, горение, смеси, весы массы). |
| **Бэкенд** | Роуты готовы: `backend/src/routes/textbooks.js` (catalog/children/progress/bookmarks). Доступ: `backend/src/services/contentAccess.js`. |
| **Глоссарий** | `chem7_glossary.js` по образцу `chem8_glossary.js` (всплывающие определения терминов). |
| **Тесты** | `cd backend && npm test` (jsdom). На каждый § — тест: страница строится, builder не stub, уравнения сбалансированы. Учитывать 3 pre-existing baseline-фейла (`BASELINE_FAILS=3`). |
| **Админка** | Новые sim в `lab.html` → синхронно `ADMIN_SIMS` в `admin.html`. |
| **Каталог-страница** | `frontend/textbooks.html` — карточка появляется автоматически из каталога (секция 7 класса). |

---

## ⚠️ КРИТИЧЕСКИЕ ПРАВИЛА

### ❌ НЕ делать
- Контент 8 класса: моль, молярная масса/объём, расчёты по уравнениям, периодический закон,
  строение атома, химическая связь, ТЭД, ионные уравнения, степень окисления — **в 7 классе НЕТ**.
- «Сырые» формулы текстом — только `Chem8.formula`/`chemEq`/KaTeX.
- Несбалансированные уравнения (аудит баланса перед commit). Реакции — только из программы 7 кл.
- Дублировать молекулярный движок или химические примитивы — переиспользовать `biochem-core.js` и `chem8_svg.js`.
- `setPointerCapture` (теряется после `innerHTML`-replace) → `window`-listeners + state-flag.
- `\to`, `\uparrow`, `\downarrow` без удвоения backslash в JS-шаблонах.
- Эмодзи — запрещены; только inline SVG `.ic` ([[feedback_no_emoji]]).
- Авторов учебника в hub/footer — НЕ упоминаем.
- **Grep tool — запрещён**; поиск только `ast-index` (правила проекта, [[reference_sqlite_node]]).

### ✅ Обязательно
- Каждый commit → jsdom-тест 100 % pass (сверх baseline). Push сразу после коммита, файлы поимённо.
- Аудит баланса уравнений + KaTeX-эскейпов после каждой волны.
- Каждая наглядная/качественная реакция = уравнение **+ видимый признак** (цвет/газ/осадок/индикатор/пламя).
- Цвета осадков/индикаторов/пламени — химически достоверные.
- Все builder-функции в конце финальной волны главы — НЕ stub'ы.
- Простой, дружелюбный язык первого курса; на каждое понятие — наглядность.
- Перед работой по ветке `feature/lab-content-engine` — `git fetch` (параллельные сессии,
  [[project_concurrent_sessions_branch]]).

---

## 📊 Оценка объёма

| Глава | § | Лаб/ПР | Ожидаемый LOC |
|--------|---|--------|---------------|
| Гл.I Первоначальные понятия | 12 | ЛО1 + ПР1 | ~10 000 (+`valenceBuilder`, `equationBalancer`, `reactionSigns`, `massConservation`, `mixtureSeparator`) |
| Гл.II Кислород | 5 | ЛО2 + ПР2 | ~5 000 (+`combustionSim`, `compoundBuilder('oxide')`, `airComposition`) |
| Гл.III Водород | 5 | ЛО3,4 + ПР3 | ~6 000 (+`indicatorScale`, `activitySeries`, `testTube`, `compoundBuilder('salt')`) |
| Гл.IV Вода | 4 | ЛО5 + ПР4 | ~5 000 (+`waterDecomp`, `compoundBuilder('base')`, sim `titration`) |
| Финалы глав + общий финал + приложения | — | — | ~4 000 |
| `/js/chem7_svg.js` хелперы | — | — | ~2 500 |
| Хаб + 4 каркаса глав (Phase 0) | — | — | ~2 500 |
| **Итого** | **26** | **5 ЛО + 4 ПР** | **~35 000 LOC** |

Меньше Химии 8 (~64 000) — курс короче (26 § против 52) и качественный (без тяжёлых
количественных движков). По плотности интерактива — на уровне Химии 8 / Физики 7.

---

## 🏆 Достижения и XP (оценка)

| Slug | Название | Условие | XP |
|------|----------|---------|-----|
| `chemistry7_ch1_master` | Первооткрыватель | Все боссы финала главы I | 50 |
| `chemistry7_ch2_master` | Повелитель кислорода | Все боссы финала главы II | 50 |
| `chemistry7_ch3_master` | Знаток водорода | Все боссы финала главы III | 50 |
| `chemistry7_ch4_master` | Хранитель воды | Все боссы финала главы IV | 50 |
| `chemistry7_course_master` | Химик 7 класса | Все 4 ачивки глав + финальный босс-квест | 150 |

XP-оценка полного прохождения: 26 § × ~50 XP + 4 ач × 50 + финал 150 ≈ **1 700 XP**.

---

## 🧠 Чем Химия 7 отличается от Химии 8

| Аспект | Химия 7 (первый курс) | Химия 8 |
|--------|----------------------|---------|
| Количество вещества (моль) | **Нет** | Есть (вводный раздел) |
| `M_r` / `M` | `M_r` как «во сколько раз тяжелее» (без моля) | Молярная масса `M`, расчёты |
| Состав по формуле | Качественный/количественный; массовая доля элемента (Прил.3) | + расчёты по уравнениям |
| Валентность vs степень окисления | **Валентность** | Степень окисления, ОВР |
| Классы соединений | Знакомство по ходу курса (оксиды, кислоты, соли, основания) | Системно, единой главой + генетическая связь |
| Периодический закон, строение атома, связь | **Нет** | Есть (главы 2–4) |
| ТЭД, ионные уравнения, растворы (`w`,`c`) | **Нет** | Есть (глава 6) |
| Кислоты/основания | Понятие, индикаторы, реакции с Me, нейтрализация | + классификация, свойства, получение |
| Главный визуал курса | Балансировщик уравнений + ряд активности + индикаторы | Количественные расчёты + ПСХЭ |

Курсы дополняют друг друга: Химия 7 закладывает язык химии (вещество, формула, валентность,
уравнение) и первое знакомство с веществами; Химия 8 переводит это в количественную плоскость.

---

## 📚 Связанные планы
- [PLAN_CHEMISTRY_8.md](../textbooks-8/PLAN_CHEMISTRY_8.md) — образец архитектуры (hub + главы), химический стандарт качества, `chem8_svg.js`, миграция-шаблон.
- [PLAN_CHEMISTRY_9.md](../textbooks-9/PLAN_CHEMISTRY_9.md) — химический стандарт, рекомендация о shared `chem_svg.js`.
- [PLAN_PHYSICS_7.md](PLAN_PHYSICS_7.md) — образец полного курса 7 класса (фазы, ачивки, финал курса, политика «без авторов», cache-busting, sidebar-фикс).

---

## 🎬 Запуск

**Phase 0**: `chemistry_7_hub.html` (по образцу `chemistry_8_hub.html`, палитра emerald) +
4 каркаса глав (`chemistry_7_ch1..ch4.html`) + `/js/chem7_svg.js` (скелет) + подключение
`chem8_svg.js`/`biochem-core.js`/симуляторов + миграция `046_chemistry7_hub.sql` (родитель + 4 ребёнка)
+ `npm run migrate` + рестарт + jsdom-каркас.
**Phase 1**: Глава I (§§1–12) — закладываем движки (`valenceBuilder`, `equationBalancer`,
парсер формулы, `M_r`, `reactionSigns`), от которых зависят все главы.

Дальше — последовательно по главам (Phase 2 → 4), затем финалы (Phase 5) и качество (Phase 6).

После завершения **Химия 7 → первый учебник, полностью покрывающий химию с нуля** для самого
младшего класса в линейке (7→8→9), закрывает «нижнюю» ступень химии.
