Это обновленная версия статьи, опубликованной 11 ноября 2014 года.
Sass имеет ряд встроенных функций, которые помогут вам настроить стили для вашего проекта намного быстрее и проще.
Давайте погрузимся в несколько из них!
Функции затемнения и осветления Sass
Возможно, две из самых известных функций в этом списке, я собираюсь считать их одной, потому что они делают одно и то же, но в разных направлениях.
Как следует из названия, darken
и lighten
будет темнее и светлее цвет на определенный процент соответственно. Вы можете использовать их в состоянии наведения кнопки или по всему сайту для создания иерархии. Вот как:
$main-color: #6dcff6; $darker-color: darken($main-color, 20%); $lighter-color: lighten($main-color, 20%);
Второй аргумент в этих двух функциях принимает процентное значение, чтобы затемнить / осветлить цвет. Таким образом, вам не нужно искать гекс чуть более светлого цвета каждый раз, когда вы хотите состояние легкого взаимодействия. Например, вы можете сделать это:
.brand-button { background: $main-color; } .brand-button:hover { background: $lighter-color; } .brand-button:visited { background: $darker-color; }
Что компилируется в это:
.brand-button { background: #6dcff6; } .brand-button:hover { background: #cdeffc; } .brand-button:visited { background: #0fafee; }
Использование этих функций означает, что вы можете создать эффективную цветовую палитру, которая может оставаться неизменной на протяжении всего проекта. Если, например, у вас есть выделенные и неактивные цвета состояния, основанные на цвете основного бренда, и ваш клиент решает изменить свой основной цвет на полпути в процессе разработки (это случается чаще, чем я хочу признать…), вам нужно изменить только одно значение и увидеть его каскадом по всей остальной части сайта.
Функции Opacify и Transparentize Sass
Все еще придерживаясь цветов, opacify
и transparentize
делают цвета более или менее непрозрачными соответственно.
Лично я нашел это полезным при работе с модальными окнами и другими всплывающими окнами, где вы могли бы захотеть, чтобы фоновое содержимое исчезло.
$main-color: rgba(0, 0, 0, 0.5); $opaque-color: opacify($main-color, 0.5); $transparent-color: transparentize($main-color, 0.3);
В отличие от darken
и lighten
, второй аргумент в этих двух функциях должен быть десятичным числом от 0 до 1 вместо процента. Эти функции полезны для цветов, основанных на одном основном цвете бренда, который пронизывает весь проект. И снова, включив эти функции, вы сможете изменить только основной цвет, и он будет распространяться соответствующим образом.
Вы можете использовать значения, полученные с opacify
и transparentize
следующим образом:
.modal.focus { background: $main-color; } .modal.blur { background: $transparent-color; } .main-content { background: $opaque-color; }
Который скомпилирует в это:
.modal.focus { background: rgba(0, 0, 0, 0.5); } .modal.blur { background: rgba(0, 0, 0, 0.2); } .main-content { background: black; }
Вы также можете использовать opacify
и opacify
fade-out
для создания того же эффекта, что и они, поскольку они являются псевдонимами для opacify
и opacify
.
Функция дополнения Sass
Как следует из названия, complement
будет возвращать дополнение любого цвета, который подается в него. Это особенно полезно, если вы пытаетесь создать призыв к действию на своей странице или представлении и вам нужно немного визуального контраста. Использование этой встроенной функции избавляет от необходимости идти и смотреть цвет на цветовом круге.
$main-color: #6dcff6; $call-to-action: complement($main-color); //=> this will return #f6946d
Функция процента Sass
Числовые функции Sass помогут вам создавать свои собственные функции и циклы. Например, функция percentage
преобразует любое число в процент, например, так:
width: percentage(0.16) //=> this will return 16%
width: percentage(100px/50px); //=> this will return 200%
Функция percentage
даже не заботится о том, чтобы вы добавляли единицы измерения, например, px, в значения. Это делает его кандидатом на легкое типографское или адаптивное преобразование значений , где проценты имеют значение. Какой хороший парень!
Функция If Sass
Sass имеет возможность писать нормальные операторы if, используя @if
. Он отлично справляется с репликацией того, что вы найдете в традиционном языке программирования, для создания фантастической условной логики.
Sass также предоставляет встроенную функцию if
, которая во многом похожа на троичный оператор в ряде других языков программирования:
.foo { width: if( 1 > 2, 400px, 500px); //=> this will return 500px }
Эта функция принимает три аргумента, первый — условие для проверки, второй — вывод, если условие истинно, и третий — выход, если условие ложно.
Вы можете использовать эту троичную функцию, если хотите создать переменные зависимые условия (например, если ширина элемента article больше, чем у стороннего элемента) в ваших таблицах стилей, хотя возможности с этим чуть более открыты. закончился.
Лично я нахожу более полезным в адаптивных проектах. Вы можете использовать эту функцию для изменения свойств, основанных на не связанных между собой переменных (например, font-size
элемента в зависимости от width
его контейнера), или даже иметь свойства, зависящие от переменных, которые изменяются при разных размерах экрана или дисплеях (например, при изменении фоновое изображение элемента для экранов сетчатки).
Вывод
Sass имеет ряд полезных функций в своем встроенном арсенале, и они даже не включают в себя те, которые Compass делает доступными для вас, если вы решите использовать его. В конце концов, речь идет о том, какой рабочий процесс имеет смысл для вас, в зависимости от вашего проекта, команды и сроков.
Есть ли какие-либо функции Sass или Compass, с которыми вы столкнулись, которые, по вашему мнению, должны быть добавлены в список, или которые вы просто находите полезными в своих проектах? Дайте нам знать в комментариях ниже.