sass:color
- Dart Sass
- с версии 1.23.0
- LibSass
- ✗
- Ruby Sass
- ✗
Только Dart Sass в настоящее время поддерживает загрузку встроенных модулей с помощью @use. Пользователи других реализаций должны вызывать функции, используя их глобальные имена.
color.adjust($color, $red: null, $green: null, $blue: null, $hue: null, $saturation: null, $lightness: null, $whiteness: null, $blackness: null, $x: null, $y: null, $z: null, $chroma: null, $alpha: null, $space: null) adjust-color(...) //=> color
- Dart Sass
- с версии 1.79.0
- LibSass
- ✗
- Ruby Sass
- ✗
- Dart Sass
- с версии 1.28.0
- LibSass
- ✗
- Ruby Sass
- ✗
Увеличивает или уменьшает один или несколько каналов $color на фиксированные значения.
Добавляет переданное значение для каждого ключевого аргумента к соответствующему каналу цвета и возвращает скорректированный цвет. По умолчанию, это может изменять только каналы в цветовом пространстве $color, но другое цветовое пространство может быть передано в качестве $space, чтобы вместо этого изменять каналы там. Это всегда возвращает цвет в том же пространстве, что и $color.
По историческим причинам, если $color находится в лестничном цветовом пространстве, можно скорректировать любые каналы лестничного цветового пространства. Однако, это ошибка, если указать канал RGB ($red, $green и/или $blue) одновременно с каналом HSL ($hue, $saturation и/или $lightness), или любой из них одновременно с каналом HWB ($hue, $whiteness и/или $blackness).
Тем не менее, рекомендуется явно передавать $space даже для устаревших цветов.
Все аргументы каналов должны быть числами и иметь единицы, которые можно было бы передать для этих каналов в конструкторе цветового пространства. Если текущее значение канала плюс значение корректировки находятся за пределами исходного диапазона канала, оно приводится к:
- красным, зелёным и синим каналам для цветового пространства
rgb; - каналу светлоты для цветовых пространств
lab,lch,oklabиoklch; - нижней границы каналов насыщенности и хроматичности для цветовых пространств
hsl,lchиoklch; - и каналу альфа для всех пространств.
См. также:
-
color.scale()для плавного масштабирования свойств цвета. -
color.change()для установки свойств цвета.
@use 'sass:color'; @debug color.adjust(#6b717f, $red: 15); // #7a717f @debug color.adjust(lab(40% 30 40), $lightness: 10%, $a: -20); // lab(50% 10 40) @debug color.adjust(#d2e1dd, $hue: 45deg, $space: oklch); // rgb(209.7987626149, 223.8632000471, 229.3988769575)
// SASS @use 'sass:color' @debug color.adjust(#6b717f, $red: 15) // #7a717f @debug color.adjust(lab(40% 30 40), $lightness: 10%, $a: -20) // lab(50% 10 40) @debug color.adjust(#d2e1dd, $hue: 45deg, $space: oklch) // rgb(209.7987626149, 223.8632000471, 229.3988769575)
color.change($color, $red: null, $green: null, $blue: null, $hue: null, $saturation: null, $lightness: null, $whiteness: null, $blackness: null, $x: null, $y: null, $z: null, $chroma: null, $alpha: null, $space: null) change-color(...) //=> color
- Dart Sass
- с версии 1.79.0
- LibSass
- ✗
- Ruby Sass
- ✗
- Dart Sass
- с версии 1.28.0
- LibSass
- ✗
- Ruby Sass
- ✗
Устанавливает один или несколько каналов цвета на новые значения.
Использует значение, переданное для каждого ключевого аргумента, вместо соответствующего канала цвета, и возвращает изменённый цвет. По умолчанию, это может изменять только каналы в цветовом пространстве $color, но другое цветовое пространство может быть передано в качестве $space, чтобы вместо этого изменять каналы там. Это всегда возвращает цвет в том же пространстве, что и $color.
По историческим причинам, если $color находится в лестничном цветовом пространстве, можно изменить любые каналы лестничного цветового пространства. Однако, это ошибка, если указать канал RGB ($red, $green и/или $blue) одновременно с каналом HSL ($hue, $saturation и/или $lightness), или любой из них одновременно с каналом HWB ($hue, $whiteness и/или $blackness).
Тем не менее, рекомендуется явно передавать $space даже для устаревших цветов.
Все аргументы каналов должны быть числами и иметь единицы, которые можно было бы передать для этих каналов в конструкторе цветового пространства. Каналы никогда не приводятся к предельному значению для color.change().
См. также:
-
color.scale()для плавного масштабирования свойств цвета. -
color.adjust()для корректировки свойств цвета на фиксированные значения.
@use 'sass:color'; @debug color.change(#6b717f, $red: 100); // #64717f @debug color.change(color(srgb 0 0.2 0.4), $red: 0.8, $blue: 0.1); // color(srgb 0.8 0.2 0.1) @debug color.change(#998099, $lightness: 30%, $space: oklch); // rgb(58.0719961509, 37.2631531594, 58.4201613409)
// SASS @use 'sass:color' @debug color.change(#6b717f, $red: 100) // #64717f @debug color.change(color(srgb 0 0.2 0.4), $red: 0.8, $blue: 0.1) // color(srgb 0.8 0.2 0.1) @debug color.change(#998099, $lightness: 30%, $space: oklch) // rgb(58.0719961509, 37.2631531594, 58.4201613409)
color.channel($color, $channel, $space: null) //=> number
- Dart Sass
- с версии 1.79.0
- LibSass
- ✗
- Ruby Sass
- ✗
Возвращает значение $channel в цветовом пространстве $space, которое по умолчанию равно пространству $color. $channel должен быть строкой в кавычках, а $space — строкой без кавычек.
Это возвращает число с единицей deg для канала hue цветовых пространств hsl, hwb, lch и oklch. Возвращает число с единицей % для каналов saturation, lightness, whiteness и blackness цветовых пространств hsl, hwb, lab, lch, oklab и oklch. Для всех остальных каналов возвращает число без единиц.
Это вернёт 0 (возможно, с подходящей единицей), если $channel отсутствует в $color. Вы можете использовать color.is-missing(), чтобы явно проверить наличие отсутствующих каналов.
@use 'sass:color'; @debug color.channel(hsl(80deg 30% 50%), "hue"); // 80deg @debug color.channel(hsl(80deg 30% 50%), "hue", $space: oklch); // 124.279238779deg @debug color.channel(hsl(80deg 30% 50%), "red", $space: rgb); // 140.25
// SASS @use 'sass:color' @debug color.channel(hsl(80deg 30% 50%), "hue") // 80deg @debug color.channel(hsl(80deg 30% 50%), "hue", $space: oklch) // 124.279238779deg @debug color.channel(hsl(80deg 30% 50%), "red", $space: rgb) // 140.25
color.complement($color, $space: null) complement($color, $space: null) //=> color
- Dart Sass
- с версии 1.79.0
- LibSass
- ✗
- Ruby Sass
- ✗
Возвращает дополнительный цвет $color в $space.
Поворачивает цветовой оттенок $color на 180deg в $space. Это означает, что $space должно быть полярным цветовым пространством: hsl, hwb, lch или oklch. Всегда возвращает цвет в том же пространстве, что и $color.
По историческим причинам, $space является необязательным, если $color находится в лестничном цветовом пространстве. В этом случае $space по умолчанию hsl. Всегда рекомендуется явно передавать $space.
@use 'sass:color'; // HSL hue 222deg becomes 42deg. @debug color.complement(#6b717f); // #7f796b // Oklch hue 267.1262408996deg becomes 87.1262408996deg @debug color.complement(#6b717f, oklch); // rgb(118.8110604298, 112.5123650034, 98.1616586336) // Hue 70deg becomes 250deg. @debug color.complement(oklch(50% 0.12 70deg), oklch); // oklch(50% 0.12 250deg)
// SASS @use 'sass:color' // HSL hue 222deg becomes 42deg. @debug color.complement(#6b717f) // #7f796b // Oklch hue 267.1262408996deg becomes 87.1262408996deg @debug color.complement(#6b717f, oklch) // rgb(118.8110604298, 112.5123650034, 98.1616586336) // Hue 70deg becomes 250deg. @debug color.complement(oklch(50% 0.12 70deg), oklch) // oklch(50% 0.12 250deg)
color.grayscale($color) grayscale($color) //=> color
Возвращает серый цвет с такой же светлотой, как $color.
Если $color находится в лестничном цветовом пространстве, это устанавливает насыщенность HSL на 0%. В противном случае устанавливает хроматичность Oklch на 0%.
@use 'sass:color'; @debug color.grayscale(#6b717f); // #757575 @debug color.grayscale(color(srgb 0.4 0.2 0.6)); // color(srgb 0.3233585271 0.3233585411 0.3233585792) @debug color.grayscale(oklch(50% 80% 270deg)); // oklch(50% 0% 270deg)
// SASS @use 'sass:color' @debug color.grayscale(#6b717f) // #757575 @debug color.grayscale(color(srgb 0.4 0.2 0.6)) // color(srgb 0.3233585271 0.3233585411 0.3233585792) @debug color.grayscale(oklch(50% 80% 270deg)) // oklch(50% 0% 270deg)
color.ie-hex-str($color) ie-hex-str($color) //=> unquoted string
Возвращает необрамённую строку, представляющую $color в формате #AARRGGBB, ожидаемом свойством -ms-filter Internet Explorer.
Если $color ещё не находится в цветовом пространстве rgb, оно преобразуется в rgb и, при необходимости, производится отображение гаммы. Алгоритм конкретного отображения гаммы может изменяться в будущих версиях Sass по мере улучшения состояния дел; в настоящее время используется local-minde.
@use 'sass:color'; @debug color.ie-hex-str(#b37399); // #FFB37399 @debug color.ie-hex-str(rgba(242, 236, 228, 0.6)); // #99F2ECE4 @debug color.ie-hex-str(oklch(70% 10% 120deg)); // #FF9BA287
// SASS @use 'sass:color' @debug color.ie-hex-str(#b37399) // #FFB37399 @debug color.ie-hex-str(rgba(242, 236, 228, 0.6)) // #99F2ECE4 @debug color.ie-hex-str(oklch(70% 10% 120deg)) // #FF9BA287
color.invert($color, $weight: 100%, $space: null) invert($color, $weight: 100%, $space: null) //=> color
- Dart Sass
- с версии 1.79.0
- LibSass
- ✗
- Ruby Sass
- ✗
Возвращает обратное или отрицательное значение $color в $space.
$weight должно быть числом от 0% до 100% (включительно). Более высокое значение веса означает, что результат будет ближе к отрицательному значению, а более низкое — ближе к $color. Вес 50% всегда даёт средне-светло-серый цвет в $space.
По историческим причинам, $space является необязательным, если $color находится в устаревшем цветовом пространстве. В этом случае, $space по умолчанию использует своё собственное пространство. Всегда рекомендуется явно указывать $space.
@use 'sass:color'; @debug color.invert(#b37399, $space: rgb); // #4c8c66 @debug color.invert(#550e0c, 20%, $space: display-p3); // rgb(103.4937692017, 61.3720912206, 59.430641338)
// SASS @use 'sass:color'; @debug color.invert(#b37399, $space: rgb) // #4c8c66 @debug color.invert(#550e0c, 20%, $space: display-p3) // rgb(103.4937692017, 61.3720912206, 59.430641338)
color.is-legacy($color) //=> boolean
- Dart Sass
- с версии 1.79.0
- LibSass
- ✗
- Ruby Sass
- ✗
Возвращает, находится ли $color в устаревшем цветовом пространстве.
@use 'sass:color'; @debug color.is-legacy(#b37399); // true @debug color.is-legacy(hsl(90deg 30% 90%)); // true @debug color.is-legacy(oklch(70% 10% 120deg)); // false
// SASS @use 'sass:color' @debug color.is-legacy(#b37399) // true @debug color.is-legacy(hsl(90deg 30% 90%)) // true @debug color.is-legacy(oklch(70% 10% 120deg)) // false
color.is-missing($color, $channel) //=> boolean
- Dart Sass
- с версии 1.79.0
- LibSass
- ✗
- Ruby Sass
- ✗
Возвращает, отсутствует ли $channel в $color. $channel должно быть строкой в кавычках.
@use 'sass:color'; @debug color.is-missing(#b37399, "green"); // false @debug color.is-missing(rgb(100 none 200), "green"); // true @debug color.is-missing(color.to-space(grey, lch), "hue"); // true
// SASS @use 'sass:color' @debug color.is-legacy(#b37399) // true @debug color.is-legacy(hsl(90deg 30% 90%)) // true @debug color.is-legacy(oklch(70% 10% 120deg)) // false
color.is-powerless($color, $channel, $space: null) //=> boolean
- Dart Sass
- с версии 1.79.0
- LibSass
- ✗
- Ruby Sass
- ✗
Возвращает, является ли $color’s $channel бессильным в $space, которое по умолчанию равно пространству $color. $channel должно быть строкой в кавычках, а $space — необрамённой строкой.
Каналы считаются бессильными в следующих случаях:
- В пространстве
hsl,hueбессилен, еслиsaturationравен 0%. - В пространстве
hwb,hueбессилен, еслиwhitenessплюсblacknessбольше 100%. - В пространствах
lchиoklch,hueбессилен, еслиchromaравен 0%.
@use 'sass:color'; @debug color.is-powerless(hsl(180deg 0% 40%), "hue"); // true @debug color.is-powerless(hsl(180deg 0% 40%), "saturation"); // false @debug color.is-powerless(#999, "hue", $space: hsl); // true
// SASS @use 'sass:color' @debug color.is-powerless(hsl(180deg 0% 40%), "hue") // true @debug color.is-powerless(hsl(180deg 0% 40%), "saturation") // false @debug color.is-powerless(#999, "hue", $space: hsl) // true
color.mix($color1, $color2, $weight: 50%, $method: null) mix($color1, $color2, $weight: 50%, $method: null) //=> color
- Dart Sass
- с версии 1.79.0
- LibSass
- ✗
- Ruby Sass
- ✗
Возвращает цвет, являющийся смесью $color1 и $color2 с использованием $method, что является именем цветового пространства, за которым необязательно следует метод интерполяции оттенка, если это полярное цветовое пространство (hsl, hwb, lch или oklch).
Для смешивания цветов используется тот же алгоритм, что и у функции CSS color-mix(). Это также означает, что если у одного из цветов отсутствует отсутствующий канал в пространстве интерполяции, он будет принимать соответствующее значение канала от другого цвета. Этот метод всегда возвращает цвет в пространстве $color1.
$weight должно быть числом от 0% до 100% (включительно). Большее значение веса означает, что больше используется $color1, а меньшее — что больше используется $color2.
По историческим причинам, $method является необязательным, если $color1 и $color2 оба находятся в устаревших цветовых пространствах. В этом случае смешивание цветов выполняется с использованием того же алгоритма, который Sass использовал ранее, в котором и $weight, и относительная непрозрачность каждого цвета определяют, сколько каждого цвета присутствует в результате.
@use 'sass:color'; @debug color.mix(#036, #d2e1dd, $method: rgb); // #698aa2 @debug color.mix(#036, #d2e1dd, $method: oklch); // rgb(87.864037264, 140.601918773, 154.2876826946) @debug color.mix( color(rec2020 1 0.7 0.1), color(rec2020 0.8 none 0.3), $weight: 75%, $method: rec2020 ); // color(rec2020 0.95 0.7 0.15) @debug color.mix( oklch(80% 20% 0deg), oklch(50% 10% 120deg), $method: oklch longer hue ); // oklch(65% 0.06 240deg)
// SASS @use 'sass:color'; @debug color.mix(#036, #d2e1dd, $method: rgb) // #698aa2 @debug color.mix(#036, #d2e1dd, $method: oklch) // rgb(87.864037264, 140.601918773, 154.2876826946) @debug color.mix(color(rec2020 1 0.7 0.1), color(rec2020 0.8 none 0.3), $weight: 75%, $method: rec2020) // color(rec2020 0.95 0.7 0.15) @debug color.mix(oklch(80% 20% 0deg), oklch(50% 10% 120deg), $method: oklch longer hue) // oklch(65% 0.06 240deg)
color.same($color1, $color2) //=> boolean
- Dart Sass
- с версии 1.79.0
- LibSass
- ✗
- Ruby Sass
- ✗
Возвращает, визуально ли $color1 и $color2 отображаются как один и тот же цвет. В отличие от ==, это рассматривает цвета как эквивалентные, даже если они находятся в разных цветовых пространствах, если они представляют одну и ту же цветовую величину в xyz цветовом пространстве. Отсутствующие каналы рассматриваются как эквивалентные нулю.
@use 'sass:color'; @debug color.same(#036, #036); // true @debug color.same(#036, #037); // false @debug color.same(#036, color.to-space(#036, oklch)); // true @debug color.same(hsl(none 50% 50%), hsl(0deg 50% 50%)); // true
// SASS @use 'sass:color' @debug color.same(#036, #036) // true @debug color.same(#036, #037) // false @debug color.same(#036, color.to-space(#036, oklch)) // true @debug color.same(hsl(none 50% 50%), hsl(0deg 50% 50%)) // true
color.scale($color, $red: null, $green: null, $blue: null, $saturation: null, $lightness: null, $whiteness: null, $blackness: null, $x: null, $y: null, $z: null, $chroma: null, $alpha: null, $space: null) scale-color(...) //=> color
- Dart Sass
- с 1.79.0
- LibSass
- ✗
- Ruby Sass
- ✗
- Dart Sass
- с 1.28.0
- LibSass
- ✗
- Ruby Sass
- ✗
Плавно масштабирует одно или несколько свойств $color.
Каждый ключевой аргумент должен быть числом от -100% до 100% (включительно). Это указывает, насколько соответствующее свойство должно быть смещено от своего исходного положения в сторону максимального значения (если аргумент положительный) или минимального (если аргумент отрицательный). Это означает, что, например, $lightness: 50% приблизит все цвета 50% к максимальной светлоте, не делая их полностью белыми. По умолчанию, это может масштабировать только цвета в пространстве $color, но можно указать другое цветовое пространство в качестве $space, чтобы вместо этого масштабировать каналы в этом пространстве. Результат всегда будет цветом в том же пространстве, что и $color.
По историческим причинам, если $color находится в устаревшем цветовом пространстве, могут быть масштабированы любые каналы устаревшего цветового пространства. Однако, ошибкой является одновременное указание канала RGB ($red, $green и/или $blue) и канала HSL ($saturation и/или $lightness), или же обоих этих каналов одновременно с каналом HWB ($hue, $whiteness и/или $blackness).
Даже так, рекомендуется явно указывать $space, даже для устаревших цветов.
См. также:
-
color.adjust()для изменения свойств цвета на фиксированные значения. -
color.change()для установки свойств цвета.
@use 'sass:color'; @debug color.scale(#6b717f, $red: 15%); // rgb(129.2, 113, 127) @debug color.scale(#d2e1dd, $lightness: -10%, $space: oklch); // rgb(181.2580722731, 195.8949200496, 192.0059024063) @debug color.scale(oklch(80% 20% 120deg), $chroma: 50%, $alpha: -40%); // oklch(80% 0.24 120deg / 0.6)
// SASS @use 'sass:color' @debug color.scale(#6b717f, $red: 15%) // rgb(129.2, 113, 127) @debug color.scale(#d2e1dd, $lightness: -10%, $space: oklch) // rgb(181.2580722731, 195.8949200496, 192.0059024063) @debug color.scale(oklch(80% 20% 120deg), $chroma: 50%, $alpha: -40%) // oklch(80% 0.24 120deg / 0.6)
color.space($color) //=> unquoted string
- Dart Sass
- с 1.79.0
- LibSass
- ✗
- Ruby Sass
- ✗
Возвращает имя пространства $color в виде необрамлённой строки.
@use 'sass:color'; @debug color.space(#036); // rgb @debug color.space(hsl(120deg 40% 50%)); // hsl @debug color.space(color(xyz-d65 0.1 0.2 0.3)); // xyz
// SASS @use 'sass:color' @debug color.space(#036) // rgb @debug color.space(hsl(120deg 40% 50%)) // hsl @debug color.space(color(xyz-d65 0.1 0.2 0.3)) // xyz
color.to-gamut($color, $space: null, $method: null) //=> color
- Dart Sass
- с 1.79.0
- LibSass
- ✗
- Ruby Sass
- ✗
Возвращает визуально похожий цвет на $color в диапазоне $space, по умолчанию в пространстве $color. Если $color уже находится в диапазоне $space, он возвращается как есть. Результат всегда возвращается в исходном пространстве $color. $space должно быть необрамлённой строкой.
$method указывает, как Sass должен выбрать "похожий" цвет:
-
local-minde: Этот метод в настоящее время рекомендован спецификацией CSS Colors 4. Он выполняет бинарный поиск в цветовом пространстве Oklch по значению хроматичности цвета, пока не найдет цвет, чье значение, ограниченное гаммой, как можно ближе к варианту с уменьшенной хроматичностью. -
clip: Это просто ограничивает все каналы гаммой$space, устанавливая их в минимальные или максимальные значения гаммы, если они находятся за её пределами.
Рабочая группа CSS и поставщики браузеров всё ещё активно обсуждают альтернативные варианты для рекомендуемого алгоритма отображения гаммы. До тех пор, пока они не придут к соглашению, параметр $method является обязательным в color.to-gamut(), чтобы мы могли в будущем сделать его значение по умолчанию таким же, как в CSS.
@use 'sass:color'; @debug color.to-gamut(#036, $method: local-minde); // #036 @debug color.to-gamut(oklch(60% 70% 20deg), $space: rgb, $method: local-minde); // oklch(61.2058838235% 0.2466052584 22.0773325274deg) @debug color.to-gamut(oklch(60% 70% 20deg), $space: rgb, $method: clip); // oklch(62.5026609544% 0.2528579741 24.1000466758deg)
// SASS @use 'sass:color' @debug color.to-gamut(#036, $method: local-minde) // #036 @debug color.to-gamut(oklch(60% 70% 20deg), $space: rgb, $method: local-minde) // oklch(61.2058838235% 0.2466052584 22.0773325274deg) @debug color.to-gamut(oklch(60% 70% 20deg), $space: rgb, $method: clip) // oklch(62.5026609544% 0.2528579741 24.1000466758deg)
color.to-space($color, $space) //=> color
- Dart Sass
- с 1.79.0
- LibSass
- ✗
- Ruby Sass
- ✗
Преобразует $color в указанное $space, которое должно быть необрамлённой строкой.
Если гамма исходного пространства $color шире гаммы $space, это может вернуть цвет, который находится за пределами гаммы $space. Вы можете преобразовать его в похожий цвет в пределах гаммы с помощью color.to-gamut().
Это может привести к цветам с отсутствующими каналами, либо если у $color есть аналогичный канал, который отсутствует, либо если канал неактивен в целевом пространстве. Чтобы убедиться, что преобразование в устаревшие цветовые пространства всегда приводит к цвету, совместимому со старыми браузерами, если $space устаревшее, это никогда не вернёт новый отсутствующий канал.
💡 Интересный факт:
Это единственная функция Sass, которая возвращает цвет в другом пространстве, отличном от переданного.
@use 'sass:color'; @debug color.to-space(#036, display-p3); // lch(20.7457453073% 35.0389733355 273.0881809283deg) @debug color.to-space(oklab(44% 0.09 -0.13)); // rgb(103.1328911972, 50.9728091281, 150.8382311692) @debug color.to-space(xyz(0.8 0.1 0.1)); // color(a98-rgb 1.2177586808 -0.7828263424 0.3516847577) @debug color.to-space(grey, lch); // lch(53.5850134522% 0 none) @debug color.to-space(lch(none 10% 30deg), oklch); // oklch(none 0.3782382429 11.1889160032deg)
// SASS @use 'sass:color' @debug color.to-space(#036, display-p3) // lch(20.7457453073% 35.0389733355 273.0881809283deg) @debug color.to-space(oklab(44% 0.09 -0.13)) // rgb(103.1328911972, 50.9728091281, 150.8382311692) @debug color.to-space(xyz(0.8 0.1 0.1)) // color(a98-rgb 1.2177586808 -0.7828263424 0.3516847577) @debug color.to-space(grey, lch) // lch(53.5850134522% 0 none) @debug color.to-space(lch(none 10% 30deg), oklch) // oklch(none 0.3782382429 11.1889160032deg)
Устаревшие функции
adjust-hue($color, $degrees) //=> color
Увеличивает или уменьшает оттенок HSL $color.
$hue должно быть числом от -360deg до 360deg (включительно) для добавления к оттенку $color. Оно может быть безразмерным или иметь любой угловой единицу. $color должно быть в устаревшем цветовом пространстве.
См. также color.adjust(), который может изменять любое свойство цвета.
Поскольку adjust-hue() избыточно с color.adjust(), она не включена непосредственно в новую систему модулей. Вместо adjust-hue($color, $amount), вы можете использовать color.adjust($color, $hue: $amount, $space: hsl).
// Hue 222deg becomes 282deg. @debug adjust-hue(#6b717f, 60deg); // #796b7f // Hue 164deg becomes 104deg. @debug adjust-hue(#d2e1dd, -60deg); // #d6e1d2 // Hue 210deg becomes 255deg. @debug adjust-hue(#036, 45); // #1a0066
// SASS // Hue 222deg becomes 282deg. @debug adjust-hue(#6b717f, 60deg) // #796b7f // Hue 164deg becomes 104deg. @debug adjust-hue(#d2e1dd, -60deg) // #d6e1d2 // Hue 210deg becomes 255deg. @debug adjust-hue(#036, 45) // #1a0066
color.alpha($color) alpha($color) opacity($color) //=> number
Возвращает альфа-канал $color как число от 0 до 1.
$color должно быть в устаревшем цветовом пространстве.
В качестве специального случая, поддерживается синтаксис Internet Explorer alpha(opacity=20), для которого возвращается необрамлённая строка.
Поскольку color.alpha() избыточно с color.channel(), она больше не рекомендуется. Вместо color.alpha($color), вы можете использовать color.channel($color, "alpha").
@use 'sass:color'; @debug color.alpha(#e1d7d2); // 1 @debug color.opacity(rgb(210, 225, 221, 0.4)); // 0.4 @debug alpha(opacity=20); // alpha(opacity=20)
// SASS @use 'sass:color' @debug color.alpha(#e1d7d2) // 1 @debug color.opacity(rgb(210, 225, 221, 0.4)) // 0.4 @debug alpha(opacity=20) // alpha(opacity=20)
color.blackness($color) blackness($color) //=> number
- Dart Sass
- с 1.28.0
- LibSass
- ✗
- Ruby Sass
- ✗
Возвращает черноту цвета HWB $color как число от 0% до 100%.
$color должно быть в устаревшем цветовом пространстве.
Поскольку color.blackness() избыточно с color.channel(), она больше не рекомендуется. Вместо color.blackness($color), вы можете использовать color.channel($color, "blackness").
@use 'sass:color'; @debug color.blackness(#e1d7d2); // 11.7647058824% @debug color.blackness(white); // 0% @debug color.blackness(black); // 100%
// SASS @use 'sass:color' @debug color.blackness(#e1d7d2) // 11.7647058824% @debug color.blackness(white) // 0% @debug color.blackness(black) // 100%
color.blue($color) blue($color) //=> number
Возвращает синюю составляющую канала $color в виде числа от 0 до 255.
$color должно быть в лексическом цветовом пространстве.
Поскольку color.blue() избыточно по отношению к color.channel(), его использование больше не рекомендуется. Вместо color.blue($color) можно использовать color.channel($color, "blue").
@use 'sass:color'; @debug color.blue(#e1d7d2); // 210 @debug color.blue(white); // 255 @debug color.blue(black); // 0
// SASS @use 'sass:color' @debug color.blue(#e1d7d2) // 210 @debug color.blue(white) // 255 @debug color.blue(black) // 0
darken($color, $amount) //=> color
Делает $color темнее.
$color должно быть в лексическом цветовом пространстве.
$amount должно быть числом от 0% до 100% (включительно). Уменьшает светлоту HSL цвета $color на это значение.
Функция darken() уменьшает светлоту на фиксированное значение, что часто не является желаемым эффектом. Чтобы сделать цвет на определенный процент темнее, используйте color.scale().
Поскольку darken() обычно не является лучшим способом затемнения цвета, она не включена напрямую в новую систему модулей. Однако, если необходимо сохранить существующее поведение, darken($color, $amount) можно записать как color.adjust($color, $lightness: -$amount, $space: hsl).
@use 'sass:color'; // #036 has lightness 20%, so when darken() subtracts 30% it just returns black. @debug darken(#036, 30%); // black // scale() instead makes it 30% darker than it was originally. @debug color.scale(#036, $lightness: -30%); // #002447
// SASS @use 'sass:color' // #036 has lightness 20%, so when darken() subtracts 30% it just returns black. @debug darken(#036, 30%) // black // scale() instead makes it 30% darker than it was originally. @debug color.scale(#036, $lightness: -30%) // #002447
// Lightness 92% becomes 72%. @debug darken(#b37399, 20%); // #7c4465 // Lightness 85% becomes 45%. @debug darken(#f2ece4, 40%); // #b08b5a // Lightness 20% becomes 0%. @debug darken(#036, 30%); // black
// SASS // Lightness 92% becomes 72%. @debug darken(#b37399, 20%) // #7c4465 // Lightness 85% becomes 45%. @debug darken(#f2ece4, 40%) // #b08b5a // Lightness 20% becomes 0%. @debug darken(#036, 30%) // black
desaturate($color, $amount) //=> color
Делает $color менее насыщенным.
$color должно быть в лексическом цветовом пространстве.
$amount должно быть числом от 0% до 100% (включительно). Уменьшает насыщенность HSL цвета $color на это значение.
Функция desaturate() уменьшает насыщенность на фиксированное значение, что часто не является желаемым эффектом. Чтобы сделать цвет менее насыщенным на определенный процент, используйте color.scale() вместо этого.
Поскольку desaturate() обычно не является лучшим способом уменьшить насыщенность цвета, она не включена напрямую в новую систему модулей. Однако, если необходимо сохранить существующее поведение, desaturate($color, $amount) можно записать как color.adjust($color, $saturation: -$amount, $space: hsl).
@use 'sass:color'; // #d2e1dd has saturation 20%, so when desaturate() subtracts 30% it just // returns gray. @debug desaturate(#d2e1dd, 30%); // #dadada // scale() instead makes it 30% less saturated than it was originally. @debug color.scale(#6b717f, $saturation: -30%); // #6e727c
// SASS @use 'sass:color' // #6b717f has saturation 20%, so when desaturate() subtracts 30% it just // returns gray. @debug desaturate(#d2e1dd, 30%) // #dadada // scale() instead makes it 30% less saturated than it was originally. @debug color.scale(#6b717f, $saturation: -30%) // #6e727c
// Saturation 100% becomes 80%. @debug desaturate(#036, 20%); // #0a335c // Saturation 35% becomes 15%. @debug desaturate(#f2ece4, 20%); // #eeebe8 // Saturation 20% becomes 0%. @debug desaturate(#d2e1dd, 30%); // #dadada
// SASS // Saturation 100% becomes 80%. @debug desaturate(#036, 20%) // #0a335c // Saturation 35% becomes 15%. @debug desaturate(#f2ece4, 20%) // #eeebe8 // Saturation 20% becomes 0%. @debug desaturate(#d2e1dd, 30%) // #dadada
color.green($color) green($color) //=> number
Возвращает зелёную составляющую канала $color в виде числа от 0 до 255.
$color должно быть в лексическом цветовом пространстве.
Поскольку color.green() избыточно по отношению к color.channel(), его использование больше не рекомендуется. Вместо color.green($color) можно использовать color.channel($color, "green").
@use 'sass:color'; @debug color.green(#e1d7d2); // 215 @debug color.green(white); // 255 @debug color.green(black); // 0
// SASS @use 'sass:color' @debug color.green(#e1d7d2) // 215 @debug color.green(white) // 255 @debug color.green(black) // 0
color.hue($color) hue($color) //=> number
Возвращает оттенок $color в виде числа от 0deg до 360deg.
$color должно быть в лексическом цветовом пространстве.
Поскольку color.hue() избыточно по отношению к color.channel(), его использование больше не рекомендуется. Вместо color.hue($color) можно использовать color.channel($color, "hue").
@use 'sass:color'; @debug color.hue(#e1d7d2); // 20deg @debug color.hue(#f2ece4); // 34.2857142857deg @debug color.hue(#dadbdf); // 228deg
// SASS @use 'sass:color' @debug color.hue(#e1d7d2) // 20deg @debug color.hue(#f2ece4) // 34.2857142857deg @debug color.hue(#dadbdf) // 228deg
lighten($color, $amount) //=> color
Делает $color светлее.
$color должно быть в лексическом цветовом пространстве.
$amount должно быть числом от 0% до 100% (включительно). Увеличивает светлоту HSL цвета $color на это значение.
Функция lighten() увеличивает светлоту на фиксированное значение, что часто не является желаемым эффектом. Чтобы сделать цвет светлее на определенный процент, используйте scale().
Поскольку lighten() обычно не является лучшим способом осветления цвета, она не включена напрямую в новую систему модулей. Однако, если необходимо сохранить существующее поведение, lighten($color, $amount) можно записать как color.adjust($color, $lightness: $amount, $space: hsl).
@use 'sass:color'; // #e1d7d2 has lightness 85%, so when lighten() adds 30% it just returns white. @debug lighten(#e1d7d2, 30%); // white // scale() instead makes it 30% lighter than it was originally. @debug color.scale(#e1d7d2, $lightness: 30%); // #eae3e0
// SASS @use 'sass:color' // #e1d7d2 has lightness 85%, so when lighten() adds 30% it just returns white. @debug lighten(#e1d7d2, 30%) // white // scale() instead makes it 30% lighter than it was originally. @debug color.scale(#e1d7d2, $lightness: 30%) // #eae3e0
// Lightness 46% becomes 66%. @debug lighten(#6b717f, 20%); // #a1a5af // Lightness 20% becomes 80%. @debug lighten(#036, 60%); // #99ccff // Lightness 85% becomes 100%. @debug lighten(#e1d7d2, 30%); // white
// SASS // Lightness 46% becomes 66%. @debug lighten(#6b717f, 20%) // #a1a5af // Lightness 20% becomes 80%. @debug lighten(#036, 60%) // #99ccff // Lightness 85% becomes 100%. @debug lighten(#e1d7d2, 30%) // white
color.lightness($color) lightness($color) //=> number
Возвращает светлоту HSL цвета $color в виде числа от 0% до 100%.
$color должно быть в лексическом цветовом пространстве.
Поскольку color.lightness() избыточно по отношению к color.channel(), его использование больше не рекомендуется. Вместо color.lightness($color) можно использовать color.channel($color, "lightness").
@use 'sass:color'; @debug color.lightness(#e1d7d2); // 85.2941176471% @debug color.lightness(#f2ece4); // 92.1568627451% @debug color.lightness(#dadbdf); // 86.4705882353%
// SASS @use 'sass:color' @debug color.lightness(#e1d7d2) // 85.2941176471% @debug color.lightness(#f2ece4) // 92.1568627451% @debug color.lightness(#dadbdf) // 86.4705882353%
opacify($color, $amount) fade-in($color, $amount) //=> color
Делает $color более непрозрачным.
$color должно быть в лексическом цветовом пространстве.
$amount должно быть числом от 0 до 1 (включительно). Увеличивает альфа-канал $color на это значение.
Функция opacify() увеличивает альфа-канал на фиксированное значение, что часто не является желаемым эффектом. Чтобы сделать цвет более непрозрачным на определенный процент, используйте scale().
Поскольку opacify() обычно не является лучшим способом сделать цвет более непрозрачным, она не включена напрямую в новую систему модулей. Однако, если необходимо сохранить существующее поведение, opacify($color, $amount) можно записать как color.adjust($color, $alpha: -$amount).
@use 'sass:color'; // rgba(#036, 0.7) has alpha 0.7, so when opacify() adds 0.3 it returns a fully // opaque color. @debug opacify(rgba(#036, 0.7), 0.3); // #036 // scale() instead makes it 30% more opaque than it was originally. @debug color.scale(rgba(#036, 0.7), $alpha: 30%); // rgba(0, 51, 102, 0.79)
// SASS @use 'sass:color' // rgba(#036, 0.7) has alpha 0.7, so when opacify() adds 0.3 it returns a fully // opaque color. @debug opacify(rgba(#036, 0.7), 0.3) // #036 // scale() instead makes it 30% more opaque than it was originally. @debug color.scale(rgba(#036, 0.7), $alpha: 30%) // rgba(0, 51, 102, 0.79)
@debug opacify(rgba(#6b717f, 0.5), 0.2); // rgba(107, 113, 127, 0.7) @debug fade-in(rgba(#e1d7d2, 0.5), 0.4); // rgba(225, 215, 210, 0.9) @debug opacify(rgba(#036, 0.7), 0.3); // #036
// SASS @debug opacify(rgba(#6b717f, 0.5), 0.2) // rgba(107, 113, 127, 0.7) @debug fade-in(rgba(#e1d7d2, 0.5), 0.4) // rgba(225, 215, 210, 0.9) @debug opacify(rgba(#036, 0.7), 0.3) // #036
color.red($color) red($color) //=> number
Возвращает красную составляющую канала $color в виде числа от 0 до 255.
$color должно быть в лексическом цветовом пространстве.
Поскольку color.red() избыточно по отношению к color.channel(), его использование больше не рекомендуется. Вместо color.red($color) можно использовать color.channel($color, "red").
@use 'sass:color'; @debug color.red(#e1d7d2); // 225 @debug color.red(white); // 255 @debug color.red(black); // 0
// SASS @use 'sass:color' @debug color.red(#e1d7d2) // 225 @debug color.red(white) // 255 @debug color.red(black) // 0
saturate($color, $amount) //=> color
Делает $color более насыщенной.
$color должно быть в пространстве цветов устаревшего типа.
$amount должно быть числом от 0% до 100% (включительно). Увеличивает насыщенность HSL цвета $color на эту величину.
Функция saturate() увеличивает насыщенность на фиксированное значение, что часто не является желаемым эффектом. Чтобы сделать цвет на определённый процент более насыщенным, чем он был до этого, используйте scale() вместо этого.
Так как saturate() обычно не является лучшим способом сделать цвет более насыщенным, он не включён непосредственно в новую систему модулей. Однако, если необходимо сохранить существующее поведение, saturate($color, $amount) можно записать color.adjust($color, $saturation: $amount, $space: hsl).
@use 'sass:color'; // #0e4982 has saturation 80%, so when saturate() adds 30% it just becomes // fully saturated. @debug saturate(#0e4982, 30%); // #004990 // scale() instead makes it 30% more saturated than it was originally. @debug color.scale(#0e4982, $saturation: 30%); // #0a4986
// SASS @use 'sass:color' // #0e4982 has saturation 80%, so when saturate() adds 30% it just becomes // fully saturated. @debug saturate(#0e4982, 30%) // #004990 // scale() instead makes it 30% more saturated than it was originally. @debug color.scale(#0e4982, $saturation: 30%) // #0a4986
// Saturation 50% becomes 70%. @debug saturate(#c69, 20%); // #e05299 // Saturation 35% becomes 85%. @debug desaturate(#f2ece4, 50%); // #ebebeb // Saturation 80% becomes 100%. @debug saturate(#0e4982, 30%) // #004990
// SASS // Saturation 50% becomes 70%. @debug saturate(#c69, 20%); // #e05299 // Saturation 35% becomes 85%. @debug desaturate(#f2ece4, 50%); // #ebebeb // Saturation 80% becomes 100%. @debug saturate(#0e4982, 30%) // #004990
color.saturation($color) saturation($color) //=> number
Возвращает насыщенность HSL цвета $color как число от 0% до 100%.
$color должно быть в пространстве цветов устаревшего типа.
Так как color.saturation() избыточно по отношению к color.channel(), его использование больше не рекомендуется. Вместо color.saturation($color) вы можете использовать color.channel($color, "saturation").
@use 'sass:color'; @debug color.saturation(#e1d7d2); // 20% @debug color.saturation(#f2ece4); // 30% @debug color.saturation(#dadbdf); // 7.2463768116%
// SASS @use 'sass:color' @debug color.saturation(#e1d7d2) // 20% @debug color.saturation(#f2ece4) // 30% @debug color.saturation(#dadbdf) // 7.2463768116%
transparentize($color, $amount) fade-out($color, $amount) //=> color
Делает $color более прозрачным.
$color должно быть в пространстве цветов устаревшего типа.
$amount должно быть числом от 0 до 1 (включительно). Уменьшает альфа-канал цвета $color на эту величину.
Функция transparentize() уменьшает альфа-канал на фиксированное значение, что часто не является желаемым эффектом. Чтобы сделать цвет на определённый процент более прозрачным, чем он был до этого, используйте color.scale() вместо этого.
Так как transparentize() обычно не является лучшим способом сделать цвет более прозрачным, он не включён непосредственно в новую систему модулей. Однако, если необходимо сохранить существующее поведение, transparentize($color, $amount) можно записать color.adjust($color, $alpha: -$amount, $space: hsl).
@use 'sass:color'; // rgba(#036, 0.3) has alpha 0.3, so when transparentize() subtracts 0.3 it // returns a fully transparent color. @debug transparentize(rgba(#036, 0.3), 0.3); // rgba(0, 51, 102, 0) // scale() instead makes it 30% more transparent than it was originally. @debug color.scale(rgba(#036, 0.3), $alpha: -30%); // rgba(0, 51, 102, 0.21)
// SASS @use 'sass:color' // rgba(#036, 0.3) has alpha 0.3, so when transparentize() subtracts 0.3 it // returns a fully transparent color. @debug transparentize(rgba(#036, 0.3), 0.3) // rgba(0, 51, 102, 0) // scale() instead makes it 30% more transparent than it was originally. @debug color.scale(rgba(#036, 0.3), $alpha: -30%) // rgba(0, 51, 102, 0.21)
@debug transparentize(rgba(#6b717f, 0.5), 0.2); // rgba(107, 113, 127, 0.3) @debug fade-out(rgba(#e1d7d2, 0.5), 0.4); // rgba(225, 215, 210, 0.1) @debug transparentize(rgba(#036, 0.3), 0.3); // rgba(0, 51, 102, 0)
// SASS @debug transparentize(rgba(#6b717f, 0.5), 0.2) // rgba(107, 113, 127, 0.3) @debug fade-out(rgba(#e1d7d2, 0.5), 0.4) // rgba(225, 215, 210, 0.1) @debug transparentize(rgba(#036, 0.3), 0.3) // rgba(0, 51, 102, 0)
color.whiteness($color) //=> number
- Dart Sass
- с версии 1.28.0
- LibSass
- ✗
- Ruby Sass
- ✗
Возвращает белизну HWB цвета $color как число от 0% до 100%.
$color должно быть в пространстве цветов устаревшего типа.
Так как color.whiteness() избыточно по отношению к color.channel(), его использование больше не рекомендуется. Вместо color.whiteness($color) вы можете использовать color.channel($color, "whiteness").
@use 'sass:color'; @debug color.whiteness(#e1d7d2); // 82.3529411765% @debug color.whiteness(white); // 100% @debug color.whiteness(black); // 0%
// SASS @use 'sass:color' @debug color.whiteness(#e1d7d2) // 82.3529411765% @debug color.whiteness(white) // 100% @debug color.whiteness(black) // 0%
© 2006–2025 the Sass team, and numerous contributors
Licensed under the MIT License.
https://sass-lang.com/documentation/modules/color