ce9f29fcd0
Mass-replace через node-скрипт (без правки HTML/CSS-частей файла): - ctx.fillStyle = '#xxx' → ctx.fillStyle = (window.PHYS9_COLORS?...:'#xxx') - ctx.strokeStyle = '#xxx' → аналогично - ctx.shadowColor = '#xxx' → аналогично - drawArrow3(..., '#xxx', ...) → drawArrow3(..., PHYS9_COLORS.x|fallback, ...) Маппинг по физическим смыслам: - #94a3b8 → forceNormal (slate-400, пунктир/нормаль) - #475569 → body (тело) - #1e293b → axis (координат. оси) - #ef4444 → plotPrimary (основной график) - #10b981 → force (сила) - #3b82f6 → liquid (жидкость) - #0284c7 → velocity (скорость) - #ea580c → acceleration (ускорение) - #7c3aed → forceFriction (трение) - #2563eb → displacement (перемещение) - ещё 8 других цветов Все 129 замен с fallback: если PHYS9_COLORS не загружен (старый кеш), работает прежний #цвет. Тёмная тема автоматически переключается благодаря get-проперти в phys9_palette.js. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>