kruzhok-team / lapki-client

Графическая IDE для киберфизических систем (клиентская часть)
GNU General Public License v3.0
11 stars 6 forks source link

Архитектура: как мы храним темы? #336

Open chekoopa opened 3 months ago

chekoopa commented 3 months ago

Сейчас сложилась ситуация, что две цветовые темы хранятся у конфиге Tailwind (themesToInject‎). При этом изначальная планировка подразумевала наличие JSON-файлов с описаниями цветов, доступных для изменения и расширения со стороны пользователя. Условно, если пользователю необходимо добавить новую тему, он не скачивает npm и наш репозиторий, а копирует JSON-файл и меняет цвета на своё усмотрение.

Нужно определиться с подходом и доработать систему тем, исходя из этого.

  1. Темы в хардкоде. Пользователь работает только с темами, которые даём мы, а любое действие по редизайну – форк и/или PR. Путь наименьшего сопротивления, радикальное усилие – вырезать ресурсы и работу с ними (если есть).
  2. Темы в ресурсах. Пользователь может создавать и изменять темы без нашего участия. Требует усилия по доработке системы тем.
  3. Смешанный подход. Встроенные темы + возможность подгружать тему из JSON. Тоже требует усилия, но при реализации второго варианта совсем небольшого.

Третий подход считаю самым правильным (тот же VS Code), второй позволяет перейти к третьему небольшим шагом.