Skip to content

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Latest commit

 

History

177 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧪 Химический Ассистент — Интерактивная таблица Менделеева

Doc sync: 2026-02-24 Full technical audit references:

Интерактивный справочник по химии с расширенными данными об элементах, аллотропах, таблицей растворимости, уравнивателем реакций, LaTeX-экспортом и умным поиском. Полностью адаптирован для мобильных устройств и больших экранов. Работает оффлайн как PWA, есть десктопные сборки для Windows и Linux (режим обоев — только Windows).

🔗 GitHub: https://github.com/layfhaker/mendeleevtable
🌐 Демо: https://layfhaker.github.io/mendeleevtable/


📁 Структура проекта

mendeleevtable/
├── index.html           # Основная HTML-разметка
├── manifest.json        # PWA манифест
├── sw.js                # Service Worker для оффлайн-режима
│
├── electron-app/        # 🖥️ Electron приложение (отдельная папка)
│   ├── electron/        # Код Electron
│   │   ├── main.js      # Главный процесс
│   │   ├── preload.js   # Безопасный API
│   │   └── wallpaper-api.js # Windows API для обоев
│   ├── package.json     # NPM конфигурация
│   ├── node_modules/    # Зависимости (после npm install)
│   ├── dist/            # Готовые сборки (.exe/.AppImage/.deb/.snap)
│   └── README.md        # Инструкция по Electron
│
├── latex/               # 📄 LaTeX шаблоны экспорта
│   ├── element-template.tex
│   └── preamble.tex
│
├── css/                 # Стили (модульная система)
│   ├── style.css        # Главный файл (импорты)
│   ├── base.css         # Базовые стили и canvas
│   ├── table.css        # Периодическая таблица Менделеева
│   ├── modal.css        # Модальное окно элемента
│   ├── theme.css        # Тёмная тема + волновая анимация
│   ├── fab.css          # FAB-меню (плавающая кнопка)
│   ├── calculator.css   # Калькулятор молярной массы
│   ├── filters.css      # Панель фильтров и поиска
│   ├── solubility.css   # Таблица растворимости
│   ├── advanced-modal.css # Продвинутая модалка веществ
│   ├── nodemap.css      # NodeMap (визуализация архитектуры)
│   └── scroll-collapse.css # Scroll-collapse система (NEW!)
│
├── js/                  # JavaScript (модульная система)
│   ├── scrypt.js        # 🚀 Модульный загрузчик (entry point)
│   ├── icons.js         # SVG-спрайт иконок
│   ├── elements.js      # База данных 118 элементов
│   ├── particles.js     # Canvas: анимация фона + 3D атомы
│   ├── scroll-collapse.js # Виртуальный скролл и сжатие (NEW!)
│   ├── wallpaper-handler.js # Обработчик установки обоев (NEW!)
│   │
│   ├── modules/         # 📦 Основные модули
│   │   ├── modal.js     # Модальное окно элемента
│   │   ├── theme.js     # Тёмная тема
│   │   ├── calculator.js # Калькулятор молярной массы
│   │   ├── balancer.js  # Уравниватель реакций
│   │   ├── latex-export.js # Экспорт в LaTeX
│   │   ├── search-filters.js # Поиск и фильтры
│   │   ├── ui.js        # FAB-меню и UI
│   │   └── mobile-layout.js # Мобильная адаптация
│   │
│   ├── solubility/      # 🧪 Таблица растворимости
│   │   ├── data.js      # Данные: катионы, анионы, матрица
│   │   ├── colors.js    # 100+ цветов веществ
│   │   ├── solubility-table.js # Рендеринг таблицы
│   │   ├── filters.js   # Фильтрация и выделение
│   │   ├── search.js    # Поиск веществ
│   │   ├── modal.js     # Открытие/закрытие основной модалки
│   │   ├── advanced-modal.js # Продвинутая модалка с детальной информацией
│   │
│   └── nodemap/         # 🗺️ Визуализация архитектуры
│       ├── nodemap-init.js # Инициализация
│       ├── nodemap-parser.js # Парсер функций
│       ├── nodemap-layout.js # Алгоритм размещения
│       ├── nodemap-canvas.js # Canvas рендеринг
│       ├── nodemap-modal.js # Интерфейс модального окна
│       ├── nodemap-flow-data.js # Анализ потока данных
│       ├── nodemap-flow-layout.js # Layout для flow-диаграмм
│       └── nodemap-flow-canvas.js # Рендеринг flow-диаграмм
│
└── img/
    ├── favicon.png      # Фавикон
    ├── png1.png         # PWA иконка 192x192
    └── png2.png         # PWA иконка 512x512

✅ Реализованные функции

🖥️ Electron приложение (NEW!)

  • ✅ Scroll-Collapse система — таблица плавно сжимается при скролле
  • ✅ Виртуальный скролл — до порога 300px страница не прокручивается
  • ✅ Установка обоев — кнопка в FAB-меню (только Windows)
  • ✅ Windows API — автоматическая установка через PowerShell
  • ✅ Portable версия — не требует установки
  • ✅ Инсталлятор NSIS — профессиональная установка
  • ✅ Linux сборки — AppImage / deb / snap

🔬 Основной интерфейс

  • ✅ Интерактивная таблица Менделеева (118 элементов)
  • ✅ Цветовая кодировка по 10 категориям
  • ✅ Лантаноиды и актиноиды вынесены отдельно
  • ✅ FAB-меню для быстрого доступа к функциям
  • ✅ SVG иконки с автоматической сменой цвета
  • ✅ Полная мобильная адаптация (PWA-готово)

📖 Модальное окно элемента

  • ✅ Анимация открытия из точки клика
  • ✅ Эффект "разлёта" элементов таблицы
  • ✅ Полупрозрачный фон (видны 3D атомы)
  • ✅ 4 информационные секции:
    • Базовая информация (номер, масса, период, группа, блок)
    • Физические свойства (плотность, температуры, цвет, структура)
    • История и практика (открытие, происхождение, применение)
    • Интересные факты

⚗️ Система аллотропов

  • ✅ Табы для переключения между формами
  • ✅ Кнопка "+ Ещё" для редких аллотропов
  • ✅ Индивидуальные данные для каждой формы

🔍 Поиск и фильтрация

  • ✅ Умный поиск по названию, символу, фактам, применению
  • ✅ Панель фильтров по 10 категориям элементов
  • ✅ Химический парсер — распознаёт формулы:
    • "BaSO4" → открывает таблицу растворимости
    • "хлорид натрия" → NaCl → таблица растворимости
    • Подсветка найденного вещества крестовиной

🧪 Таблица растворимости

  • ✅ Полноэкранная модалка 24×16 (384 соединения)
  • ✅ Sticky Headers — фиксированные заголовки
  • ✅ Подсветка крестовиной — выделение строки + столбца
  • ✅ Toggle-логика — повторный клик снимает выделение
  • ✅ 🎨 Режим "Реальные цвета":
    • Чёрные осадки (сульфиды Ag, Pb, Cu, Fe, Ni, Co, Hg)
    • Жёлтые осадки (AgI, PbI₂, хроматы)
    • Голубые растворы (Cu²⁺)
    • Розовые растворы (Co²⁺, Mn²⁺)
    • Зелёные растворы (Ni²⁺, Fe²⁺, Cr³⁺)
    • Фиолетовые растворы (KMnO₄)
    • Белые осадки с градиентом
    • Бесцветные растворы с "водяным" оттенком

🧮 Калькулятор молекулярной массы

  • ✅ Drag & Drop элементов из таблицы
  • ✅ Тап для добавления (мобильные)
  • ✅ Редактирование индексов
  • ✅ Адаптивное позиционирование

⚖️ Уравниватель реакций

  • ✅ Ввод уравнения и автоматическая балансировка
  • ✅ Встроенные примеры для быстрого старта
  • ✅ Адаптивное позиционирование на больших экранах

📄 Экспорт в LaTeX

  • ✅ Экспорт данных элемента в .tex
  • ✅ Форматирование формул через mhchem
  • ✅ Таблицы свойств и соединений из таблицы растворимости

🎨 Визуальные эффекты

  • ✅ 3D модель атома — вращающиеся электроны
  • ✅ Тёмная тема с волновой анимацией
  • ✅ Частицы на фоне — летающие точки с соединениями
  • ✅ Плавные переходы и анимации

📱 PWA и оффлайн

  • ✅ manifest.json — установка на устройство
  • ✅ Service Worker — работа без интернета
  • ✅ Иконки 192×192 и 512×512
  • ✅ iOS-совместимость (apple-touch-icon)
  • ✅ Splash screen для Android

🗺️ NodeMap — Визуализация архитектуры (NEW!)

  • ✅ Автоматический анализ кода — сканирование всех функций
  • ✅ Интерактивный граф — визуализация зависимостей
  • ✅ Тепловая карта — частота вызовов (Cold/Normal/Warm/Hot)
  • ✅ Типизация функций (Entry/Hub/Leaf/Island)
  • ✅ Метрики сложности — Lines, Complexity, Parameters
  • ✅ Поиск и фильтры — быстрое нахождение функций
  • ✅ Панель предупреждений — Dead Code, Circular Dependencies, High Complexity
  • ✅ Открытие по клавише . (точка)

📱 Мобильная оптимизация (v0.6.5)

  • ✅ Полноэкранный режим таблицы растворимости
  • ✅ Safe-area — учёт "челки" и кнопки Home
  • ✅ Скрытые скроллбары — чистый интерфейс
  • ✅ Вертикальная шапка — заголовок сверху, кнопки снизу
  • ✅ Bounce эффекты — естественное поведение скролла
  • ✅ 0px bottom padding в PWA-режиме
  • ✅ Правильные рамки выделенных ячеек

🖥️ Оптимизация для больших экранов

  • ✅ Адаптивные размеры модальных окон и таблиц
  • ✅ Корректная геометрия панелей (калькулятор/уравниватель)

🎨 Цветовая схема категорий

Категория Светлая тема Тёмная тема
Щелочные металлы 🔴 #ff9999 🔴 #8b3a3a
Щёлочноземельные 🟠 #ffcc99 🟠 #8b6914
Переходные металлы 🟡 #ffff99 🟡 #7a7a2e
Постпереходные металлы 🟢 #ccff99 🟢 #4a7a2e
Металлоиды 🩵 #99ffcc 🩵 #2e7a5c
Неметаллы 🔵 #99ffff 🔵 #2e6a7a
Галогены 💙 #99ccff 💙 #2e4a7a
Благородные газы 🟣 #cc99ff 🟣 #5c2e7a
Лантаноиды 💗 #ff99cc 💗 #7a2e5c
Актиноиды 💜 #ff99ff 💜 #7a2e7a

🛠 Технологии

  • HTML5 — семантическая разметка
  • CSS3 — Grid, Flexbox, CSS Variables, анимации, sticky positioning
  • JavaScript (ES6+) — Drag & Drop API, модульная загрузка
  • Canvas API — анимация частиц, 3D атомы, NodeMap визуализация
  • SVG — векторные иконки
  • PWA — Service Worker, Web App Manifest
  • Electron — десктопное приложение с нативными API
  • Node.js — PowerShell интеграция, установка обоев
  • Без фреймворков — чистый код, максимальная производительность

📊 Статистика проекта

Параметр Значение
Элементов в базе 118 / 118
Аллотропов 40+
Полей на элемент 20+
Соединений в таблице растворимости 384 (24×16)
Веществ с реальными цветами 100+
Веществ с детальной информацией 118 / 118
JavaScript-функций 200+
Строк кода ~40k
Размер проекта ~150 КБ
CSS файлов 11
JS модулей 24

📝 История версий

v1.0.0 (текущая) — январь 2026

  • 🖥️ Electron приложение — полноценное десктопное приложение
  • ✨ Scroll-Collapse система — таблица сжимается при виртуальном скролле
  • 🖼️ Установка обоев Windows — интеграция с Windows API
  • 📦 Portable версия — запуск без установки
  • 🪟 NSIS инсталлятор — профессиональная установка
  • 🐧 Linux сборки — AppImage / deb / snap
  • 📄 LaTeX экспорт — генерация .tex файлов для элемента
  • 🧪 118 элементов — полностью заполненные данные по таблице
  • 🖥️ Оптимизация больших экранов — масштаб и отступы UI

v0.6.5 — январь 2026

  • 🗺️ NodeMap — визуализация архитектуры проекта
  • 📱 Мобильная оптимизация — полноэкранный режим таблицы растворимости
  • 🔧 Safe-area — поддержка "челок" и кнопок Home
  • 🎨 Bounce эффекты — естественное поведение скролла
  • 📦 Продвинутая модалка — детальная информация о веществах
  • 🗃️ substances-data.js — база данных о веществах
  • 📱 Улучшения для iPhone — оптимизированы размеры иконок и кнопок
  • 📱 Улучшения для Android — уменьшены размеры иконок FAB меню
  • 🎨 Единообразие цветов — синие кнопки на всех устройствах

v0.6 — декабрь 2025

  • Поиск и фильтрация — панель фильтров, умный поиск
  • Таблица растворимости — 24×16, sticky headers, крестовина
  • 🎨 Режим реальных цветов — 100+ веществ
  • PWA — полный оффлайн-режим

v0.5

  • SVG иконки, FAB-меню
  • Калькулятор массы (Drag & Drop)
  • Тёмная тема с волновой анимацией
  • 3D атомы, полупрозрачные модалки

v0.4

  • FAB-меню, калькулятор
  • Элементы 11-40 в базе

v0.3

  • Система аллотропов

v0.2

  • Модальное окно с 4 секциями

v0.1

  • Базовая таблица Менделеева

🎯 Roadmap v0.7

📊 Аналитика и статистика

  • 📈 Графики растворимости — зависимость от температуры
  • 📊 Режим сравнения — сопоставление двух веществ
  • 🔬 Изотопы — информация о периодах полураспада

🔬 Лабораторный режим

  • ⚗️ Симулятор реакций — визуализация химических процессов
  • ⚖️ Уравниватель реакций — автоматическая балансировка
  • 🧪 База реакций — типичные реакции с анимацией

📤 Экспорт и шаринг

  • 💾 Экспорт данных — PNG, PDF, JSON
  • 🔗 Поделиться — ссылки на вещества и элементы
  • 📋 Копирование — формул, данных, графиков

🧠 Образовательный режим

  • 📝 Тесты по элементам — проверка знаний
  • 🃏 Flashcards — карточки для запоминания
  • 🏆 Режим викторины — соревновательный элемент
  • 📊 Достижения — прогресс обучения

🌐 Дополнительно

  • 🌍 Мультиязычность (EN/RU/KZ)
  • 🎨 Режим для дальтоников
  • 🔌 Интеграция с PubChem API
  • 🥽 AR-режим (WebXR)

🚀 Установка и запуск

Локальный запуск (веб-версия):

# 1. Клонировать репозиторий
git clone https://github.com/layfhaker/mendeleevtable.git

# 2. Перейти в папку
cd mendeleevtable

# 3. Открыть в браузере
# Просто откройте index.html двойным кликом
# или используйте Live Server в VS Code

🖥️ Electron приложение (NEW!)

Проект можно запустить как десктопное приложение с функцией установки обоев!

📖 Подробная инструкция: см. electron-app/README.md

Быстрый старт:

# 1. Перейти в папку Electron
cd electron-app

# 2. Установить зависимости
npm install

# 3. Запустить приложение
npm start

# 4. Собрать .exe файл (опционально)
npm run build

Уникальные возможности:

  • 🖼️ Установка обоев Windows — текущий вид таблицы как обои рабочего стола
  • ✨ Scroll-Collapse система — таблица плавно сжимается при скролле
  • 📦 Portable версия — не требует установки
  • 🪟 NSIS инсталлятор — профессиональная установка

Как PWA:

  1. Откройте сайт в Chrome/Safari: https://layfhaker.github.io/mendeleevtable/
  2. Нажмите "Установить" / "Добавить на главный экран"
  3. Приложение будет работать оффлайн

GitHub Pages:

Проект автоматически деплоится на GitHub Pages при каждом пуше в ветку main.


📱 Совместимость

  • ✅ Chrome/Edge (рекомендуется) — полная поддержка
  • ✅ Firefox — полная поддержка
  • ✅ Safari (iOS/macOS) — полная поддержка
  • ✅ Mobile browsers — оптимизировано
  • ✅ PWA — работает на Android и iOS
  • ⚠️ Internet Explorer — не поддерживается

Минимальные требования:

  • ECMAScript 6+ (ES2015)
  • Canvas API
  • CSS Grid/Flexbox
  • Service Workers (для PWA)

🤖 Для разработчиков

Документация:

Ключевые особенности кода:

  • ✅ Модульная система — файлы загружаются динамически через scrypt.js
  • ✅ Нет import/export — совместимость с file:// протоколом
  • ✅ Чистый JavaScript — без фреймворков и сборщиков
  • ✅ CSS Variables — легкая кастомизация
  • ✅ Адаптивный дизайн — mobile-first подход

Добавление нового элемента:

// В файле js/elements.js
"Nn": {
    atomicNumber: "119",
    name: "Новый элемент",
    atomicMass: "300",
    // ... остальные поля
}

Добавление информации о веществе:

// В файле js/solubility/substances-data.js
"Ba2+-SO42-": {
    name: "Сульфат бария",
    formula: "BaSO₄",
    molarMass: 233.43,
    // ... остальные поля (см. README.md в папке)
}

🤝 Вклад в проект

Мы приветствуем любой вклад в развитие проекта! Вот как вы можете помочь:

Способы участия:

  1. 🐛 Сообщить о баге — создайте Issue
  2. 💡 Предложить идею — опишите в Issues
  3. 📝 Добавить данные — элементы, вещества, реакции
  4. 🎨 Улучшить дизайн — UI/UX предложения
  5. 🌍 Перевод — добавить новый язык
  6. 📖 Документация — улучшить README, комментарии

Правила оформления Pull Request:

  • Четкое описание изменений
  • Соблюдение структуры кода
  • Тестирование на десктопе и мобильных
  • Проверка в обеих темах (светлая/темная)

📄 Лицензия

MIT License — можно использовать в любых целях с указанием авторства.


👨‍💻 Автор

Авари (layfhaker)
GitHub: @layfhaker


🌟 Поддержка проекта

Если проект вам помог — поставьте ⭐ на GitHub!


Проект создан для школьной олимпиады по химии/информатике
Последнее обновление: январь 2026

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages