Задать вопрос
@NedoKoder

Какие принципы нужно соблюдать при разработке фреймворков по типу Bootstrap/Tabler, UIKit и прочих?

Привет народ. Иногда пишу какие-то проекты для автоматизации всякой всячины. Я больше по бекенду, потому чтоб не возиться с фронтом — юзаю всякие бутстрапы, UIKit и прочие. Хотел на Tailwind перейти, но количество классов в HTML — это жесть, поэтому нет.

В чем собственно проблема

Проблема в том, что у этих готовых решений есть "недостатки", из-за которых я не могу на одном остановиться.

У кого-то лучше модальные окна, у кого-то компоненты красивее, но при этом что-то другое хуже, чем у конкурента.

У одного меню на ПК норм, на мобилке ужасное, у другого наоборот.

В итоге — каждый раз в зависимости от проекта приходится искать компромиссы.


Так вот, так как нынче бушуют всевозможные ИИ, решил создать свой CSS/JS фреймворк для личного пользования (может потом и в паблик закину, если чё путное получится).

Понимаю, что создание фреймворка — дело время-затратное, поэтому решил сначала сделать базу, каркас.

А уже потом, по мере необходимости, с помощью ИИ добавлять недостающие части, описывая ИИ своё видение идеального компонента.

Вопрос такой:
Какие принципы должны лечь в основу создания CSS-кода, чтобы потом не пришлось ничего ломать и переделывать в будущем?

Спрашивал у разных ИИ — советы у разных моделей иногда противоположные:
  • кто-то советует адаптив писать в конце каждого файла
  • кто-то — выносить в отдельный файл типа adaptive.css
  • кто-то — делать отдельный файл для каждого компонента: container.css + container.adaptive.css
  • кто-то — за mobile-first
  • другие — за подход, где базовые стили под ПК, а адаптив под мобилки
и прочие пункты в таком духе.

Все ИИ обосновывают и всё звучит логично, причём разные по сути решения, но хочется услышать мнение от живых людей, у кого есть знания или опыт про это. Типа набросок со списком вещей, которые должны лечь в основу фрейма.

Для себя накидал пока такие. Может какие то плохи и нужно менять?

+Базово только 2 брейкпоинта, до 768 и после.
+ Всё оформление в отдельный файл аля theme.css потом переопределяя другим файлом по необходимости, в т.ч это касается и темных тем.
+ модульность. Один файл, одна логика. Удаление любого css файла кроме файла темы и файла с переменными, не должно влиять на другие файлы
+ один класс у всякого элемента базовый, остальные влияют лишь модифицируют внешний вид

Пока только такие

Буду благодарен за любой опыт и советы!
  • Вопрос задан
  • 122 просмотра
Подписаться 1 Средний 2 комментария
Пригласить эксперта
Ответы на вопрос 3
alexey-m-ukolov
@alexey-m-ukolov Куратор тега CSS
Вашим фреймворком (тем более написанным с помощью генераторов текста) никто пользоваться не будет, так что ориентируйтесь на собственные задачи и предпочтения.
А базу можете подсмотреть во всяких бутстрапах, UIKit и прочих - там уже набиты все возможные шишки, лучше вы не придумаете. Можете только что-то упростить для себя, понимая и принимая ограничения, которые это удаление создаст.
Ответ написан
VoidVolker
@VoidVolker
Dark side eye. А у нас печеньки! А у вас?
Те же самые, как и при разработке любого другого ПО: планирование, декомпозиция, модульность, документация, а так же фокусировка на достижении приоритетных целей. Определитесь сначала с проблемами, которые вы хотите решить с помощью данного фреймворка и уже от этого отталкивайтесь. Описываете проблему, ограничения, требования - далее ищите возможные решения, выбираете оптимальное и проектируете уже более конкретно. Постановка задачи -> техническое задание -> частное техническое задание -> проект -> декомпозированный и проработанный проект -> реализация. Примерно так.
Ответ написан
Комментировать
webrevenue
@webrevenue
Веб-дизайнер и SEO оптимизатор
Сделайте так:
1. Файл с тем что используется везде, нормалайзер, сетка, еще что то - в принципе как у бутстрап
2. Компоненты по очереди (с комментариями), чтобы можно было выкинуть эти куски, если они не нужны
Ну и соответственно mobile-first стили, от мобилы к ПК
Я бы делал так)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы