- PVSM.RU - https://www.pvsm.ru -

Сравнение css-фреймворков-библиотек на живом примере. Часть 1

сравнение css-фреймворков на примере

Пролог

В данном цикле статей я намерен провести объективное сравнение css-фреймворков на основе живых примеров, как в TodoMVC для js решений.

В вводной статье Вы узнаете о фреймворках и библиотеках и об их различиях. Расскажу, на какие типы они делятся. Укажу планируемый список готовых решений для анализа.

Содержание

  • Пролог
  • Введение
  • Различия между понятиями фреймворк и библиотека
  • Типы решений по реализации пользовательских веб-интерфейсов
    • Простой css-фреймворк
    • Web-component
    • Css-сетка
    • Комплексный css-фреймворк

  • Сравнение
  • Заключение

Введение

Ежедневно мир наполняется множеством идей и технологий, особенно в IT-секторе. Люди в нем спешно начинают переходить от одного новшества к другому, применяя его не по назначению.

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

При создании новой версии mr. Gefest'а [1] нам не хватало информации о css-фреймворках. Нам нужно было узнать не только, какие там компоненты, но и как устроены они изнутри, получить их наиболее полное и корректное сравнение.

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

Поэтому мы решили сделать сравнение css-фреймворков на живом примере, как в ToMVC. Это должно помочь веб-разработчикам быстро выбрать подходящее css-решение.

Работы много, поэтому сравнение я буду описывать на хабре постепенно — в виде цикла статей. Надеюсь, мой труд будет Вам полезен.

Различия в понятиях «фреймворк» и «библиотека».

Перед анализом решений необходимо рассмотреть два понятия: фреймворк и библиотека. На первый взгляд, они могут показаться одинаковыми, но это не так. Обратимся к их определениям в Википедии.

Фреймворк (неологизм от англ. framework — каркас, структура) — программная платформа, определяющая структуру программной системы; программное обеспечение, облегчающее разработку и объединение разных компонентов большого программного проекта.

Библиотека (от англ. library) в программировании — сборник подпрограмм или объектов, используемых для разработки программного обеспечения (ПО).

Css-фреймворк — фреймворк, созданный для упрощения работы верстальщика, быстроты разработки и исключения максимально возможного числа ошибок вёрстки (проблемы совместимости различных версий браузеров и т. д.).

Про различия между понятиями там написано:

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

Из всего этого можно сделать вывод, что библиотека является фреймворком, если:

  • задает правила построения архитектуры программного кода;
  • диктует принципы структурирования файлов;
  • внутри себя имеет несколько библиотек.

Несмотря на их четкое разделение, не всегда можно увидеть грань, где начинается css-фреймворк и заканчивается css-библиотека. Ведь в их основе лежит язык разметки и язык определения его внешнего вида. Они значительно отличаются от javascript, c++, pascal и других. Это сбивает с толку, так как их формализация не всегда подходит под определённые выше правила. Но я буду внимательнее и постараюсь сделать все, как можно точнее. Да и Вы, надеюсь, подскажете и поможете при допущении ошибок.

Типы css-фреймворков/библиотек

На рынке существует множество css-фреймворков и библиотек. Все они обладают разным набором элементов. Ради справедливой оценки и уменьшения погрешностей в результатах, я решил разделить на подтипы css-решения, проанализировав около 40-ка вариантов:

  • Простые css-фреймворки;
  • Web-components;
  • Css-сетки;
  • Комплексные css-фреймворки.

Простые css-фреймворки

В них не используется javascript. Все их модули пишутся на css и html. Они легки, быстры и просты. Из-за отсутствия javascript-компонентов у простых css-фреймворков не достаточно некоторых функциональных возможностей.

Они могут включать в себя следующие модули:

  • примитивы (типография, изображения и т.д.);
  • сетку;
  • кнопки;
  • таблицы;
  • элементы форм;
  • меню;
  • вспомогательные элементы.

Список решений для анализа:

Web-components

Они основаны на новом механизме веб-компонентов.

Веб-компоненты — это комплекс стандартов, который добавляет в браузер технологию для удобной реализации ui-решений. Каждый такой элемент будет работать в своем личном DOM-дереве без перекрытия стилями основной страницы. Это одно из главных преимуществ web-components, так как позволяет поддерживать ему свойство инкапсуляции. Более подробно об этом я писал в группе проекта: Веб-компоненты [16].

Список фреймворков для анализа:

Css-сетки

Большинство решений по реализации сетки имеет скромный набор возможностей и выполняет только одну задачу, поэтому она не входит в понятие фреймворков. Несмотря на это, мы все равно их проанализируем и сравним.

Список решений для анализа:

Комплексные css-фреймворки

Самые масштабные фреймворки. Обладают javascript и css+html модулями. Способны решить большинство задач по созданию web-UI.

Обычно в них присутствуют:

  • примитивы (типография, изображения и т.д.);
  • сетки;
  • диалоговые окна;
  • разделители на страницы (пагинации) ;
  • панели;
  • шрифты с векторными иконками;
  • карточки;
  • списки данных;
  • хлебные крошки;
  • аккордеоны;
  • кнопки;
  • таблицы;
  • элементы форм;
  • меню;
  • вспомогательные элементы;
  • и многое другое.

Список решений для анализа:

Заключение вводного материала

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

Я наглядно доказал, чем отличается css-фреймворк от css-библиотеки, и выделил 4 типа решений:

  • Простые css-фреймворки;
  • Web-components;
  • Css-сетки;
  • Комплексные css-фреймворки.

В каждом типе определил признаки и указал список решений для дальнейшего изучения.

В следующих статья мы начнем с анализа конкретных css-фреймворков и библиотек (список может меняться). До новых встреч.

Автор: mr. Gefest

Источник [42]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/javascript/106809

Ссылки в тексте:

[1] mr. Gefest'а: http://gefest-ide.com/index.php?url=habrfr

[2] Kube: https://imperavi.com/kube/

[3] PureCSS: http://purecss.io/start/

[4] Skeleton: http://getskeleton.com/

[5] Amazium: http://www.amazium.co.uk/

[6] Css-framework : http://agat.github.io/css-framework/

[7] Inuit: https://github.com/csswizardry/inuit.css

[8] Yaml4: http://www.yaml.de/docs/index.html

[9] Cardinal: http://cardinalcss.com/

[10] Typeplate: http://typeplate.com/

[11] Furato: http://icalialabs.github.io/furatto/index.html

[12] Kraken: http://cferdinandi.github.io/kraken/

[13] CascadeFramework : http://jslegers.github.io/cascadeframework/index.html

[14] Simpliste: http://cssr.ru/simpliste/ru.html

[15] Apppie: http://www.apppie.org/

[16] Веб-компоненты: https://vk.com/mrgefest?w=page-83839037_50722049

[17] Brick: http://brick.mozilla.io/

[18] Polymer: https://www.polymer-project.org/1.0/

[19] Responsive Grid System: http://www.responsivegridsystem.com/

[20] 1140px CSS Grid Retired : http://andytaylor.me/2013/04/09/1140px-css-grid-retired/

[21] The Goldilocks Approach: http://goldilocksapproach.com/

[22] Proportional Grids: http://builtbyboon.com/blog/proportional-grids

[23] InGrid: http://piira.se/projects/ingrid/

[24] Yamb: http://www.prowebdesign.ro/yamb/

[25] Aeon: http://newaeonweb.com.br/responsiveaeon/

[26] Gridiculo: http://gridiculo.us/

[27] 960: http://960.gs/

[28] Toast: http://daneden.github.io/Toast/

[29] Girder: http://comfypixel.com/Girder/

[30] Pocketgrid: http://arnaudleray.github.io/pocketgrid/docs/

[31] Fitgrd: http://www.fitgrd.com/

[32] Kindling: http://timothylong.com/kindling/

[33] Flexbox: http://flexboxgrid.com/

[34] Cutegrid: http://www.cutegrids.com/

[35] Semantic-UI: http://semantic-ui.com/

[36] Foundation: http://foundation.zurb.com/

[37] UIKit : http://getuikit.com/

[38] 99Lime Html kickstart : http://www.99lime.com/elements/

[39] Gumby: http://www.gumbyframework.com/

[40] Bootstrap3: http://getbootstrap.com/

[41] Gridism: http://cobyism.com/gridism/

[42] Источник: http://habrahabr.ru/post/273553/