Как организовать процесс создания собственного css-фреймворка?
Хотелось бы узнать, на какие этапы разбить построение фреймворка и как всё грамотно организовать.
Что было сделано?
1.Опробованы различные фреймворки: полноценные (Kickstart, Bootstrap, Foundation), не совсем(onecssgrid, html5 boilerplate)
2.Организована структура css-фреймворка
3.Построена сетка на основе, взятой из других фреймворков с определёнными корректировками
4.Добавлены reset.css и normalize.css (насчёт второго я не уверен вовсе, его предназначение вроде как для корректного отображения стилей во всех браузерах, со своей задачей normalize не справляется, поэтому смысла включать его в фреймворк я не вижу)
Требования к фреймворку
1.Универсальное использование
2.Минимизация правки стилей
3.Автоматизация, установка определённых конфигураций без правки стилей фреймворка в текстовом редакторе (возможно ли реализовать это на JS?)
normalize.css нужен, ибо его задача невилировать различия в оформлении в различных браузерах. И что вы подразумеваете под "не ставился с задачей"?
Организуйте фреймворк максимально модульно, разделите на независимые компоненты и используйте less. У вас там будут и переменные, и возможность собрать css под нужные параметры с нужными компонентами, и сборщик на js.
ie к чёрту этот браузер, прописал в js, его блокировку с просьбой скачать адекватный браузер, в итоге что у нас остаётся, мозилла с хромом да сафари(тут и там webkit), браузеры идущие под движком ie идут лесом, остаются основные игроки, из всего этого вывод что normalize.css нам не нужен!
1. Если у вас normalize "не справился с задачей" - это первый тревожный звоночек, вероятнее всего вы что-то делаете не так. Без обид.
2. Второй тревожный звонок - вы хотите создать модульный, универсальный и гибкий фреймворк без использования препроцессоров (SASS/SCSS/LESS). Это путь в никуда.
3. По сути вопроса:
- переходите на препроцессоры, насильно. Какой выберете - дело ваше, я предпочитаю SCSS
- разбивайте на модули
- используйте Normalize
- пишите эффективный и правильный CSS
- забудьте про идею создать идеальный фреймворк, который можно использовать с минимальными правками везде и всегда - это утопия
- научитесь потом эти модули правильно собирать в единый CSS-файл, с минификацией и т.д. Например, с помощью Grunt.
- удачи :)