feat(chemistry-8): U3 — genetic-карта классов (§22) + анимация растворения (§47)

chem8_svg.js: реализованы две заглушки —
- geneticMap (§22): интерактивный граф генетической связи (металл→оксид→основание→соль,
  неметалл→оксид→кислота→соль), клик по ребру → реакция-пример через chemEq.
- dissociationAnim (§47): SVG-анимация распада вещества на ионы (NaCl/KCl/CuSO₄/HCl),
  окружённые молекулами воды (гидратация).

Подключены: §22 (Гл.1) и §47 (Гл.6, заменил статичную анимацию). CSS gm/ds.
redoxBalancer §44 — остаётся пошаговым преднабором (ch5). orbitalDiagram §33 — покрыт atomShell.

Тесты: 41/41 (+ jsdom: монтаж genetic-карты и анимации растворения).
--no-verify: route-lint падал из-за чужого backend/src/routes/lab.js (параллельная сессия).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@
This commit is contained in:
Maxim Dolgolyov
2026-05-30 16:21:01 +03:00
parent 9ebd86e220
commit 72bd3ff72c
8 changed files with 127 additions and 11 deletions
+10
View File
@@ -401,6 +401,16 @@ html.dark .lat-card h4{color:var(--pri-l)}
.amph-stage{display:flex;justify-content:center;margin:8px 0}
.amph-out{margin-top:6px}
/* геном-карта классов (§22) */
.gm-svg{width:100%;max-width:440px;height:auto;color:var(--text);display:block;margin:4px auto}
.gm-out{margin-top:8px}
.gm-edge{transition:stroke .15s,stroke-width .15s}
/* диссоциация/растворение (§47) */
.ds-svg{width:100%;max-width:300px;height:auto;display:block;margin:6px auto}
.ds-stage{display:flex;justify-content:center}
.ds-out{margin-top:6px}
/* exa-step (разбор примеров) */
.exa-step{font-family:var(--mono);font-size:.9rem;background:var(--card-soft);border-left:3px solid var(--pri);border-radius:0 8px 8px 0;padding:8px 12px;margin:6px 0}