Краткое знакомство с системой контрольных точек Rupture под препроцессор Stylus.
Ниже приведено краткое и сбивчивое описание (знакомство) с системой
под препроцессор Stylus. Оно основано на двух материалах, оба являющихся официальными:1
breakpoints
А больше в Сети материалов по Rupture и нет, даже на английском языке. Есть, правда, очень краткий - на французском, которым я совсем не владею.
Rupture был создан на примере плагина Breakpoint Slicer под препроцессор Sass.
Шкала Rupture
Основа Rupture - шкала значений
, которая так и называется - 1
breakpoints
. Фактически 1
scale
- это объект со своими свойствами и методами. Перечень контрольных точек (1
scale
) - это массив значений, передаваемых объекту 1
breakpoints
.1
scale
Ниже представлена
по умолчанию (но которую можно легко изменить при необходимости):1
scale
Количество этих значений -
- может быть необязательно равно 5 (пяти). Их может быть неограниченное количество - столько, сколько нужно.1
0, 400px, 600px 800px, 1050px
Перечень значений
, показанных выше, можно представить в виде диапазонов; каждому диапазону можно присвоить порядковый номер 1
breakpoints
и “обозвать” как 1
slice number
:1
slice
Подключать библиотеку Rupture в проект нет необходимости. Достаточно установить библиотеку командой:
После этого Rupture готова к использованию. Можно запустить компиляцию из командной строки (не рекомендуется):
Здесь
- это сокращение от 1
-c
, то есть - минифицировать CSS-код на выходе. Почему не рекомендуется использовать командную строку? Просто для этих целей лучше (и целесообразнее) использовать Gulp.1
--compress
Миксины Rupture
В Rupture все управляется миксинами. Есть заранее созданный набор миксинов, которые необходимо применять для определенного случая (
).1
breakpoints
Все миксины Rupture делятся на два вида:
- простые миксины для практического использования каждый день
- сложный набор миксинов, которые фактически представляют из себя
1
grid sistem
В этом кратком обзоре я буду рассматривать только “практические” миксины. Более сложные - нет, ибо “не зачем”.
Набор практических миксинов Rupture
Первые три миксина - наиболее применимые и удобные на практике.
+above(measure)
- если размер окна браузера больше указанного значения (
), то применить стили1
> measure
- это алиас миксина +above(measure)1
+from-width(measure)
+below(measure)
- если размер окна браузера меньше указанного значения (
), то применить стили1
< measure
- это алиас миксина +below(measure)1
+to-width(measure)
+between(measure1, measure2)
- если размер окна браузера находится в указанных пределах (
), то применить стили1
measure1 <= between <= measure2
Дальше пошли миксины - “по обстоятельствам”.
+at(measure)
- если размер окна браузера
указанного значения, то применить стили1
>=
+mobile()
- если размер окна браузера
, то применить стили1
<= 400px
- переменная, в которой хранится значение для миксина1
rupture.mobile-cutoff
1
mobile()
+tablet()
- если размер окна браузера находится в пределах
и1
>= 1050px
, то применить стили1
< 400px
+desktop()
- если размер окна браузера
, то применить стили1
> 1050px
- переменная, в которой хранится значение для миксина1
rupture.desktop-cutoff
1
desktop()
+hd()
- если размер окна браузера
1800px, то применить стили1
>=
- переменная, в которой хранится значение для миксина1
rupture.hd-cutoff
1
hd()
+retina()
- если плотность размещения пикселей больше 1.5
, то применить стили1
(retina display)
+landscape()
- если у окна браузера высота меньше, чем ширина, то применить стили
+portrait()
- если у окна браузера высота больше, чем ширина, то применить стили
Настройка Rupture
Как любая система, Rupture имеет свои собственные настройки. Которые можно задавать в файле проекта в виде переменных с их значениями.
К примеру, Rupture имеет возможность автоматического конвертирования значений
из пикселей (px) в 1
breakpoints
. Как говорится в официальном руководстве, в веб-разработке существует мнение, что задавать контрольные точки в 1
em
- это хорошая практика.1
em
Поэтому, такой пример иллюстрирует включение автоматической конвертации из
в 1
px
; и задание базового размера шрифта в 18px (базовый размер шрифта равен 16px):1
em
rupture.scale - одна из важнейших переменных Rupture. В этой переменной можно в виде массива переопределить значения breakpoints.
Например, таким образом:
Пример работы Rupture
Перейдем от теории к практике и рассмотрим маленький рабочий пример - как будет отрабатывать Rupture:
Комментировать вышеприведенный код мне как-то не особого желания. Он очень простой и наглядный - слова тут излишни.
Кроме одного вопроса, который чуть не забыл упомянуть! В этом коде (и всех примерах выше) применялось точное значение для миксинов -
, к примеру.1
+below(400px)
Но ничто не мешает использовать любые произвольные переменные, в которые можно “загружать” нужные значения. К примеру, код выше можно преобразовать таким образом:
Заключение о Rupture
Вот я и познакомился с Rupture. Что можно сказать - система мне (в очередной раз - все из мира Stylus) понравилась, она очень проста и наглядна. Достаточно полчаса, чтобы ознакомиться с ее возможностями и начать применять на практике.