Index
escape(@string); // URL codifica una cadena
e(@string); // escapa el contenido de una cadena
%(@string, values...); // formatea un string
unit(@dimension, [@unit: ""]); // elimina o cambia la unidad de una dimensión
color(@string); // parsea un string a un color
data-uri([mimetype,] url); // * codifica un recurso y devuelve la url()
ceil(@number); // redondea hacia arriba un entero
floor(@number); // redondea hacia abajo un entero
percentage(@number); // convierte un número en un porcentaje %, por ejemplo 0.5 -> 50%
round(number, [places: 0]); // redondea un número un número de posiciones
sqrt(number); // * calcula la raiz cuadrada de un número
abs(number); // * valor absoluto de un número
sin(number); // * función seno
asin(number); // * función arcoseno - inversa del seno
cos(number); // * función coseno
acos(number); // * función arcocoseno - inverso de coseno
tan(number); // * función tangente
atan(number); // * función arcotangente - inverso de tangente
pi(); // * devuelve pi
pow(@base, @exponent); // * primer argumento elevado al segundo argumento
mod(number, number); // * resto de la división entre el primer argumento y el segundo
convert(number, units); // * conversión entre tipos de números
unit(number, units); // * cambio de unidades sin convertir el número
color(string); // convierte un string o un valor de escape en un color
rgb(@r, @g, @b); // convierte en un color
rgba(@r, @g, @b, @a); // convierte en un color
argb(@color); // crea un #AARRGGBB
hsl(@hue, @saturation, @lightness); // crea un color
hsla(@hue, @saturation, @lightness, @alpha); // crea un color
hsv(@hue, @saturation, @value); // crea un color
hsva(@hue, @saturation, @value, @alpha); // crea un color
hue(@color); // devuelve el tono de @color en el espacio HSL
saturation(@color); // devuelve la saturación de @color en el espacio HSL
lightness(@color); // devuelve la luminosidad de @color en el espacio HSL
hsvhue(@color); // * devuelve el tono de @color en el espacio HSV
hsvsaturation(@color); // * devuelve la saturación de @color en el espacio HSV
hsvvalue(@color); // * devuelve la luminosidad de @color en el espacio HSV
red(@color); // devuelve el canal rojo de @color
green(@color); // devuelve el canal verde de @color
blue(@color); // devuelve el canal azul de @color
alpha(@color); // devuelve el canal alfa de @color
luma(@color); // devuelve la luma (brillo porceptual) de @color
saturate(@color, 10%); // devuelve un color un 10% *más* saturado
desaturate(@color, 10%); // devuelve un color un 10% *menos* saturado
lighten(@color, 10%); // devuelve un color un 10% *más iluminado*
darken(@color, 10%); // devuelve un color un 10% *más oscuro*
fadein(@color, 10%); // devuelve un color un 10% *menos" transparente
fadeout(@color, 10%); // devuelve un color un 10% *más* transparente
fade(@color, 50%); // devuelve @color con una transparencia del 50%
spin(@color, 10); // devuelve un color con 10 grados más de tono
mix(@color1, @color2, [@weight: 50%]); // devuelve la mezcla de @color1 y @color2
tint(@color, 10%); // devuelve un color mezclado con blanco al 10%
shade(@color, 10%); // devuelve un color mezclado con negro al 10%
greyscale(@color); // devuelve el color en la escala de grises, 100% desaturado
contrast(@color1, [@darkcolor: black], [@lightcolor: white], [@threshold: 43%]);
// devuelve @darkcolor si @color1 es > 43% de luma
// en otro caso devuelve @lightcolor, ver notas
multiply(@color1, @color2);
screen(@color1, @color2);
overlay(@color1, @color2);
softlight(@color1, @color2);
hardlight(@color1, @color2);
difference(@color1, @color2);
exclusion(@color1, @color2);
average(@color1, @color2);
negation(@color1, @color2);
iscolor(@colorOrAnything); // devuelve true si se le pasa un color, incluyendo las palabras claves de colores
isnumber(@numberOrAnything); // devuelve true si se le pasa un número en cualquier unidad
isstring(@stringOrAnything); // devuelve true si se le pasa un string
iskeyword(@keywordOrAnything); // devuelve true si se le pasa una palabra clave
isurl(@urlOrAnything); // devuelve true si se le pasa una url
ispixel(@pixelOrAnything); // devuelve true si se le pasa una dimensión en px
ispercentage(@percentageOrAnything); // devuelve true si se le pasa una dimensión en %
isem(@emOrAnything); // devuelve true si se le pasa una dimensión en em
isunit(@numberOrAnything, "rem"); // * devuelve true si el primer parámetro es un número y está en la unidad especificada
// * Estas funciones solo están disponibles en la versión 1.4.0 beta
Operaciones con strings
escape
Realiza el URL-encoding a los caracteres especiales encontrado en el string de entrada.
- Los siguientes caracteres son excepciones que no serán codificados::
,
, /
, ?
, @
, &
, +
, '
, ~
, !
y $
.
- Los caracteres codificados más comunes son:
<space>
, #
, ^
, (
, )
, {
, }
, |
, :
, >
, <
, ;
, ]
, [
y =
.
Parámetros:
string
: Un string a escapar
Devuelve: el contenido de string
a escapar sin comillas.
Ejemplo:
escape('a=1')
Salida:
a%3D1
Nota: El comportamiento de la función para parámetros que no son strings no está definido. La función devuelve undefined
si se le pasa un color y la entrada no cambia para cualquier otro tipo de argumento. Este comportamiento no está asegurado y podría cambiar en el futuro.
e
Escape CSS similar a la sintáxis de ~"value"
. Se le pasa un string como parámetro y devuelve su contenido pero sin comillas. Puede usarse para obtener un valor CSS que todavía no es código CSS válido, o usa sintáxis propietaria que LESS no reconoce.
Parámetros:
string
: Un string a escapar
Devuelve: contenido del string
sin comillas.
Ejemplo:
filter: ~"ms:alwaysHasItsOwnSyntax.For.Stuff()";
Salida:
filter: ms:alwaysHasItsOwnSyntax.For.Stuff();
Nota: La función también acepta valores escapados ~""
y números. Cualquier otro tipo de parámetro produce un error.
% format
La función %("format", arguments ...)
formatea un string. El primer argumento es un string con marcadores. Todos los marcadores comienzan con el símbolo %
seguido de una letra s
,S
,d
,D
,a
, o A
. Los argumentos restantes contienen las expresiones que van a reemplazar a los marcadores. Si necesitas imprimir un símbolo de porcentaje, puedes hacerlo añadiendo otro símbolo de porcentaje %%
.
Usa marcadores en mayúsculas si necesitas escapar caracteres especiales usando su código en utf-8. La función escapa un carácter especial salvo ()'~!
. El espacio se condifica como %20
. Los marcadores en miníscula no convertirán los caracteres especiales.
Marcadores:
* d, D, a, A - pueden ser remplazados por cualquier tipo de argumento (color, número, valor de escape, expresión, …). Si las usas con un string, se usará el string completo - incluyendo las comillas. Sin embargo, las comillas no serán modificadas ni escapadas por “/” ni nada similar. * s, S - puede ser remplazado por cualquier tipo oo argumento excepto por colores. Si las usas en combinación con un string, solo el valor del string será usado - las comillas del string se omitirán
Parámetros:
string
: string a formatear con marcadores,
anything
* : valores que van a reemplazar a los marcadores.
Devuelve: string
formateado.
Ejemplo:
format-a-d: %("repetitions: %a file: %d", 1 + 2, "directory/file.less");
format-a-d-upper: %('repetitions: %A file: %D', 1 + 2, "directory/file.less");
format-s: %("repetitions: %s file: %s", 1 + 2, "directory/file.less");
format-s-upper: %('repetitions: %S file: %S', 1 + 2, "directory/file.less");
Salida:
format-a-d: "repetitions: 3 file: "directory/file.less"";
format-a-d-upper: "repetitions: 3 file: %22directory%2Ffile.less%22";
format-s: "repetitions: 3 file: directory/file.less";
format-s-upper: "repetitions: 3 file: directory%2Ffile.less";
Otras funciones
color
Parsea un color, convierte un string cuyo contenido representa un color en ese color.
Parámetros:
string
: Un string que representa un color
Ejemplo:
color("#aaa");
Salida:
#aaa
unit
Elimina o cambia la unidad de una dimensión
Parámetros:
dimension
: Un número, con o sin una dimensión
unit
: Opcional: la unidad a la que se va a convertir, si se omite se eliminará la unidad
Ejemplo:
unit(5, px)
Salida:
5px
Ejemplo:
unit(5em)
Salida:
5
data-uri
Permite la inclusión de pequeños elementos de datos en línea, como si fueran referenciados a una fuente externa url()
si la opción ieCompat esta activada y el recurso es demasiado grande, o si usas la función en el navegador. Si no se proporciona un tipo mime, node usa el paquete mime para determinar el tipo mime correcto.
Parámetros:
mimetype
: un string que representa el tipo mime. Opcional
url
: La URL del fichero a incluir.
Ejemplo:
data-uri('../data/image.jpg');
Salida:
url('data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg==');
Salida en el navegador:
url('../data/image.jpg');
Ejemplo:
data-uri('image/jpeg;base64', '../data/image.jpg');
Salida:
url('data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg==');
Operaciones matemáticas
ceil
Redondea el entero inmediatamente superior.
Parámetros:
number
: Un número decimal.
Devuelve: integer
Ejemplo:
ceil(2.4)
Salida:
3
floor
Redondea el entero inmediatamente inferior.
Parámetros:
number
: Un número decimal
Devuelve: integer
Ejemplo:
floor(2.6)
Salida:
2
percentage
Representa un número decimal como un porcentaje.
Parámetros:
number
: Un número decimal
Devuelve: string
Ejemplo:
percentage(0.5)
Salida:
50%
round
Redondea un número.
Parámetros:
number
: Un número decimal.
decimalPlaces
: Opcional: El número de decimales a redondear. Por defecto es 0.
Devuelve: number
Ejemplo:
round(1.67)
Salida:
2
Ejemplo:
round(1.67, 1)
Salida:
1.7
sqrt
Calcula la raiz cuadrada de un número. No modifica las unidades.
Parámetros:
number
: Un número decimal.
Devuelve: number
Ejemplo:
sqrt(25cm)
Salida:
5cm
Ejemplo:
sqrt(18.6%)
Salida:
4.312771730569565%;
abs
Calcula el valor absoluto de un número. No modifica las unidades.
Parámetros:
number
: Un número decimal.
Salida: number
Ejemplo:
abs(25cm)
Salida:
25cm
Ejemplo:
abs(-18.6%)
Salida:
18.6%;
sin
Calcula la función seno. Usa radianes si se le pasa un número sin unidades.
Parámetros:
number
: Un número decimal.
Salida: number
Ejemplo:
sin(1); // seno de 1 radian
sin(1deg); // seno de 1 grado
sin(1grad); // seno de 1 gradian
Salida:
0.8414709848078965; // seno de 1 radian
0.01745240643728351; // seno de 1 grado
0.015707317311820675; // seno de 1 gradian
asin
Calcula la función arcoseno (inversa del seno). Devuelve un número en radianes, un número entre -π/2 and π/2.
Parámetros:
number
: Un número decimal comprendido en el intervalo [-1, 1].
Salida: number
Ejemplo:
asin(-0.8414709848078965)
asin(0)
asin(2)
Salida:
-1rad
0rad
NaNrad
cos
Calcula la función coseno. Usa radianes si no se especifica ninguna unidad.
Parámetros:
number
: Un número decimal.
Salida: number
Ejemplo:
cos(1) // coseno de 1 radian
cos(1deg) // coseno de 1 grado
cos(1grad) // coseno de 1 gradian
Salida:
0.5403023058681398 // coseno de 1 radian
0.9998476951563913 // coseno de 1 grado
0.9998766324816606 // coseno de 1 gradian
acos
Calcula la función arcocoseno (inverso del coseno). Devuelve un número en radianes, un número entre 0 y π.
Parámetros:
number
: Un número decimal en el intervalo [-1, 1].
Salida: number
Ejemplo:
acos(0.5403023058681398)
acos(1)
acos(2)
Salida:
1rad
0rad
NaNrad
tan
Calcula la función tangente. Usa radianes si no se especifica ninguna unidad.
Parámetros:
number
: Un número decimal.
Salida: number
Ejemplo:
tan(1) // tangente de 1 radian
tan(1deg) // tangente de 1 grado
tan(1grad) // tangente de 1 gradian
Salida:
1.5574077246549023 // tangente de 1 radian
0.017455064928217585 // tangente de 1 grado
0.015709255323664916 // tangente de 1 gradian
atan
Calcula la función arcotangente (inversa de la tangente). Devuelve un número en radianes, un número entre -π/2 and π/2.
Parámetros:
number
: Un número decimal.
Salida: number
Ejemplo:
atan(-1.5574077246549023)
atan(0)
round(atan(22), 6) // arcotangente de 22 redondeado a 6 decimales
Salida:
-1rad
0rad
1.525373rad;
pi
Devuelve el valor de π (pi);
Parámetros:
Salida: number
Ejemplo:
pi()
Salida:
3.141592653589793
pow
Devuelve el valor del primer argumento elevado a la potencia del segundo argumento. El resultado es devuelto en la misma unidad del primer argumento ignorando la del segundo parámetro.
Parámetros:
number
: base - un número decimal.
number
: exponente - un número decimal.
Salida: number
Ejemplo:
pow(0cm, 0px)
pow(25, -2)
pow(25, 0.5)
pow(-25, 0.5)
pow(-25%, -0.5)
Salida:
1cm
0.0016
5
NaN
NaN%
mod
Devuelve el resto de la división entera entre el primer argumento y el segundo argumento. El resultado es devuelto en la misma unidad del primer argumento ignorando la del segundo parámetro. La función es capaz de manejar números negativos y decimales.
Parámetros:
number
: un número decimal.
number
: un número decimal.
Salida: number
Ejemplo:
mod(0cm, 0px)
mod(11cm, 6px);
mod(-26%, -5);
Salida:
NaNcm;
5cm
-1%;
convert
Pasa de una unidad a otra. El primer argumento contiene un número con unidades y el segundo argumento contiene una nueva unidad. Si ambas unidades son compatibles, el número sera convertido. Si no son compatibles, la función devuelve el primer argumento sin modificar.
Unidades compatibles:
* longitud: m
, cm
, mm
, in
, pt
y pc
,
* tiempo: s
y ms
,
* ángulo: rad
, deg
, grad
y turn
.
Parámetros:
number
: un número decimal con unidades.
identifier
, string
o escaped value
: unidades
Salida: number
Ejemplo:
convert(9s, "ms")
convert(14cm, mm)
convert(8, mm) // unidades incompatibles
Salida:
9000ms
140mm
8
Unit
Cambia la unidad de un número. Únicamente se modifica las unidades, el número no se convierte. La función asume que el segundo parámetro contienen un tipo de unidad válido.
Parámetros:
number
: un número decimal con unidades.
identifier
or escaped value
: unidades.
Salida: number
Ejemplo:
unit(9s, ~"ms")
unit(-9, m)
Salida:
9ms
-9m
Color
Convierte un string o valor escapado en un color. La entrada debe contener un color en hexadecimal o una representación acortada.
Parámetros:
identifier
o escaped value
con un color válido en hexadecimal o representación acortada.
Salida: color
Ejemplo:
color("#445566")
color(~"#123")
Salida:
#445566
#112233
Funciones Color
Definición de Color
rgb
Crea un color opaco a partir de valores decimales para los componentes rojo, verde y azul (RGB). También se puede usar los valores de color en HTML/CSS estándar, por ejemplo #ff0000
.
Parámetros:
red
: Un entero entre 0-255 o un porcentaje entre 0-100%.
green
: Un entero entre 0-255 o un porcentaje entre 0-100%.
blue
: Un entero entre 0-255 o un porcentaje entre 0-100%.
Salida: color
Ejemplo:
rgb(90, 129, 32)
Salida:
#5a8120
rgba
Crea un color transparente a partir de valores decimales para los componentes rojo, verde, azul y alfa (RGBA).
Parámetros:
red
: Un entero entre 0-255 o un porcentaje entre 0-100%.
green
: Un entero entre 0-255 o un porcentaje entre 0-100%.
blue
: Un entero entre 0-255 o un porcentaje entre 0-100%.
alpha
: Un número decimal entre 0-1 o un porcentaje entre 0-100%.
Salida: color
Ejemplo:
rgba(90, 129, 32, 0.5)
Salida:
rgba(90, 129, 32, 0.5)
argb
Genera el código hexadecimal de un color en formato #AARRGGBB
(NO #RRGGBBAA
!). Este formato es usado en Internet Explorer, .NET y Android.
Parámetros:
Salida: string
Ejemplo:
argb(rgba(90, 23, 148, 0.5));
Salida:
#805a1794
hsl
Crea un color opaco a partir de los valores de tono, saturación y luminosidad (HSL).
Parámetros:
hue
: Un entero entre 0-360 representando un grado.
saturation
: Un porcentaje entre 0-100% o un número entre 0-1.
lightness
: Un porcentaje entre 0-100% o un número entre 0-1.
Salida: color
Ejemplo:
hsl(90, 100%, 50%)
Salida:
#80ff00
Es útil si deseas crear un color basado en el canal de otro color, por ejemplo:
@new: hsl(hue(@old), 45%, 90%);
@new
tendrá el tono de @old
, y su propios valores de saturación y luminosidad.
hsla
Crea un color transparente a partir de los valores de tono, saturación, luminosidad y alfa (HSL).
Parámetros:
hue
: Un entereo entre 0-360 representando un grado.
saturation
: Un porcentaje entre 0-100% o un número entre 0-1.
lightness
: Un porcentaje entre 0-100% o un número entre 0-1.
alpha
: Un porcentaje entre 0-100% o un número entre 0-1.
Salida: color
Ejemplo:
hsl(90, 100%, 50%, 0.5)
Salida:
rgba(128, 255, 0, 0.5)
hsv
Crea un color opaco a partir de los valores de tono, saturación y valor (HSV). Nótese que es diferente a hsl
, y es un modelo de color disponible en Photoshop.
Parámetros:
hue
: Un entereo entre 0-360 representando un grado.
saturation
: Un porcentaje entre 0-100% o un número entre 0-1.
value
: Un porcentaje entre 0-100% o un número entre 0-1.
Salida: color
Ejemplo:
hsv(90, 100%, 50%)
Salida:
#408000
hsva
Crea un color transparente a partir de los valores de tono, saturación, valor y alfa (HSVA). Note que es diferente a hsl
, y es un modelo de color disponible en Photoshop.
Parámetros:
hue
: Un entereo entre 0-360 representando un grado.
saturation
: Un porcentaje entre 0-100% o un número entre 0-1.
value
: Un porcentaje entre 0-100% o un número entre 0-1.
alpha
: Un porcentaje entre 0-100% o un número entre 0-1.
Salida: color
Ejemplo:
hsva(90, 100%, 50%, 0.5)
Salida:
rgba(64, 128, 0, 0.5)
Información sobre el canal de color
hue
Obtiene el tono de un color.
Parámetros:
Salida: integer
0-360
Ejemplo:
hue(hsl(90, 100%, 50%))
Salida:
90
saturation
Obtiene la saturación de un color.
Parámetros:
Salida: percentage
0-100
Ejemplo:
saturation(hsl(90, 100%, 50%))
Salida:
100%
lightness
Obtiene la luminosidad de un color.
Parámetros:
Salida: percentage
0-100
Ejemplo:
lightness(hsl(90, 100%, 50%))
Salida:
50%
hsvhue
Obtiene el tono de un color en el modelo HSV.
Parámetros:
Salida: integer
0-360
Ejemplo:
hsvhue(hsv(90, 100%, 50%))
Salida:
90
hsvsaturation
Obtiene la saturación de un color en el modelo HSV.
Parámetros:
Salida: percentage
0-100
Ejemplo:
hsvsaturation(hsv(90, 100%, 50%))
Salida:
100%
hsvvalue
Obtiene el valor de un color en el modelo HSV.
Parámetros:
Salida: percentage
0-100
Ejemplo:
hsvvalue(hsv(90, 100%, 50%))
Salida:
50%
red
Obtiene el componente rojo de un color.
Parámetros:
Salida: integer
0-255
Ejemplo:
red(rgb(10, 20, 30))
Salida:
10
green
Obtiene el componente verde de un color.
Parámetros:
Salida: integer
0-255
Ejemplo:
green(rgb(10, 20, 30))
Salida:
20
blue
Obtiene el componente azul de un color.
Parámetros:
Salida: integer
0-255
Ejemplo:
blue(rgb(10, 20, 30))
Salida:
30
alpha
Obtiene el componente alfa de un color.
Parámetros:
Salida: float
0-1
Ejemplo:
alpha(rgba(10, 20, 30, 0.5))
Salida:
0.5
luma
Calcula la luma (brillo perceptual) de un color. Usa coeficientes SMPTE C / Rec. 709, como se recomienda en WCAG 2.0. Este calculo también se usa en el contraste de funciones.
Parámetros:
Salida: percentage
0-100%
Ejemplo:
luma(rgb(100, 200, 30))
Salida:
65%
Operaciones con colores
Las operaciones con colores generalmente aceptan parámetros en las mismnas unidades cuando los valores van a cambiar, y los porcentajes que se manejan son absolutos, por lo que incrementar un 10% de un valor un 10% supone un incremento del 20% y no un 11%, y los valores estan dentro de los rangos permmitidos. Cuando se muestran los valores, también se muestran los formatos para aclarar lo que cada función ha realizado, además del código hexadecimal que normalmente se usa.
saturate
Incrementa la saturación de un color en una cantidad absoluta.
Parámetros:
color
: Un color.
amount
: Un porcentaje 0-100%.
Salida: color
Ejemplo:
saturate(hsl(90, 90%, 50%), 10%)
Salida:
#80ff00 // hsl(90, 100%, 50%)
desaturate
Decrementa la saturación de un color en una cantidad absoluta.
Parámetros:
color
: Un color.
amount
: Un porcentaje 0-100%.
Salida: color
Ejemplo:
desaturate(hsl(90, 90%, 50%), 10%)
Salida:
#80e51a // hsl(90, 80%, 50%)
lighten
Incrementa la luminosidad de un color en una cantidad absoluta.
Parámetros:
color
: Un color.
cantidad
: Un porcentaje 0-100%.
Salida: color
Ejemplo:
lighten(hsl(90, 90%, 50%), 10%)
Salida:
#99f53d // hsl(90, 90%, 60%)
darken
Decrementa la luminosidad de un color en una cantidad absoluta.
Parámetros:
color
: Un color.
cantidad
: Un porcentaje 0-100%.
Salida: color
Ejemplo:
darken(hsl(90, 90%, 50%), 10%)
Salida:
#66c20a // hsl(90, 90%, 40%)
fadein
Reduce la transparencia (o incrementa la opacidad) de un color, haciéndolo más opaco. No tiene efecto en colores opacos. El método fadeout
realiza la función opuerta.
Parámetros:
color
: Un color.
cantidad
: Un porcentaje 0-100%.
Salida: color
Ejemplo:
fadein(hsla(90, 90%, 50%, 0.5), 10%)
Salida:
rgba(128, 242, 13, 0.6) // hsla(90, 90%, 50%, 0.6)
fadeout
Incrementa la transparencia (o reducir la opacidad) de un color, haciéndolo menos opaco. El método fadein
realiza la función opuerta.
Parámetros:
color
: Un color.
cantidad
: Un porcentaje 0-100%.
Salida: color
Ejemplo:
fadeout(hsla(90, 90%, 50%, 0.5), 10%)
Salida:
rgba(128, 242, 13, 0.4) // hsla(90, 90%, 50%, 0.6)
fade
Fija la transparencia absoluta de un color. Puede ser aplicado tanto a colores opacos como transparentes.
Parámetros:
color
: Un color.
amount
: Un porcentaje 0-100%.
Salida: color
Ejemplo:
fade(hsl(90, 90%, 50%), 10%)
Salida:
rgba(128, 242, 13, 0.1) // hsla(90, 90%, 50%, 0.1)
spin
Rota el ángulo del tono de un color en cualquier dirección. Aunque el valor del ángulo es 0-360, se aplica un modulo de 360 al valor especificado, asi se puede usar valores más grandes (incluso negativos), por ejemplo, si se especifica un ángulo de 360 y 720 el resultado será el mismo. Nótese que los colores son pasados a través de una conversión RGB que no conserva el tono para colores grises (porque el tono no tiene sentido cuando no existe saturación), así puedes asegurarte de aplicar funciones de forma que el tono no sea modificado, por ejemplo prueba ésto:
@c: saturate(spin(#aaaaaa, 10), 10%);
Haz prueba esto:
@c: spin(saturate(#aaaaaa, 10%), 10);
Los colores siempre son devueltos según el modelo RGB, asi que aplicar spin
a un valor grís no servirá de nada.
Parámetros:
color
: Un color.
angle
: Número de grados a rotar (+ or -).
Salida: color
Ejemplo:
spin(hsl(10, 90%, 50%), 20)
spin(hsl(10, 90%, 50%), -20)
Salida:
#f27f0d // hsl(30, 90%, 50%)
#f20d33 // hsl(350, 90%, 50%)
mix
Mezcla dos colores en una proporción variable. Se incluye la opacidad en los cálculos.
Parámetros:
color1
: Un color.
color1
: Un color.
weight
: Opcional, un balance de porcentajes entre los dos colores, por defecto será el 50%.
Salida: color
Ejemplo:
mix(#ff0000, #0000ff, 50%)
mix(rgba(100,0,0,1.0), rgba(0,100,0,0.5), 50%)
Salida:
#800080
rgba(75, 25, 0, 0.75)
greyscale
Elimina la saturación de un color; similar al método desaturate(@color, 100%)
. Al no verse afectada por el tono la saturación, el color resultante puede estar algo apagado o turbio; luma
puede porpociona un mejor resultado cuando se extrae un valor porcentual en vez de un brillo linear, por ejemplo greyscale('#0000ff')
devolverá el mismo valor que greyscale('#00ff00')
, aunque puedan parecer bastante diferentes en brillo para el ojo humano.
Parámetros:
Salida: color
Ejemplo:
greyscale(hsl(90, 90%, 50%))
Salida:
#808080 // hsl(90, 0%, 50%)
contrast
Elige cual de los dos colores proporciona un mayor contraste. Es útil cuando se quiere asegurar que un color es legible contra un fondo, lo cual es necesario para asegurar la accesibilidad de la página. Este método funciona de la misma manera que la función constrast en Compass para SASS. De acuerdo con WCAG 2.0, los colores son comparado usando su valor de luma, no por su luminosidad.
Los parámetros de luz y oscuridad pueden ser proporcionado en cualquier orden - la función calculará su valores de luma y asigna la luz y la oscuridad apropiadamente.
Parámetros:
color
: Un color con el que comparar.
oscuridad
: opcional - color que delimita la oscuridad (por defecto negro).
luz
: opcional - color que delimita la luz (por defecto blanco).
umbral
: opcional - Un porcentaje entre 0-100% especificando la transición de “oscuridad” a “luz” (por defecto 43%). Se usa para predisponer el contraste de una forma u otra, por ejemplo para permitirte decidir si el fondo gris 50% debería resultar en texto blanco y negro. Generalmente deberías fijarlo en el valor más bajo para los colores más claros y altos para los más oscuros. Por defecto al 43%.
Salida: color
Ejemplo:
contrast(#aaaaaa)
contrast(#222222, #101010)
contrast(#222222, #101010, #dddddd)
contrast(hsl(90, 100%, 50%),#000000,#ffffff,40%);
contrast(hsl(90, 100%, 50%),#000000,#ffffff,60%);
Salida:
#000000 // black
#ffffff // white
#dddddd
#000000 // black
#ffffff // white
Combinación de colores
Estas operaciones son similares a los modos de mezcla encontrados en editores de imágenes como Photoshop, Firework o GIMP, por lo que podrás usar estos métodos para hacer que tus colores CSS encajen con tus imágenes.
multiply
Multiplica dos colores. Se multiplican los valores de los colores en el canal RGB y luego se divide el resultado entre 255. El resultado será un color más ocuro.
Parámetros:
color1
: Un color.
color2
: Un color.
Salida: color
Ejemplos:
multiply(#ff6600, #000000);

multiply(#ff6600, #333333);

multiply(#ff6600, #666666);

multiply(#ff6600, #999999);

multiply(#ff6600, #cccccc);

multiply(#ff6600, #ffffff);

multiply(#ff6600, #ff0000);

multiply(#ff6600, #00ff00);

multiply(#ff6600, #0000ff);

screen
Aplica el efecto contrario de multiply
. El resultado es un color más brillante.
Parámetros:
color1
: Un color.
color2
: Un color.
Salida: color
Ejemplo:
screen(#ff6600, #000000);

screen(#ff6600, #333333);

screen(#ff6600, #666666);

screen(#ff6600, #999999);

screen(#ff6600, #cccccc);

screen(#ff6600, #ffffff);

screen(#ff6600, #ff0000);

screen(#ff6600, #00ff00);

screen(#ff6600, #0000ff);

overlay
Combina el efecto de las funciones multiply
y screen
. Condicionalmente hace los canales claros más luminosos y los canales oscuros más oscuros. Nota: Los resultados de las condiciones están determinados por el primer color que se le pasa como parámetro.
Parámetros:
color1
: Un color con el que cubrir el otro. Tambien es el color determinante que hace que el color resultante sea mas claro o más oscuro.
color2
: Un color para ser cubierto.
Salida: color
Ejemplo:
overlay(#ff6600, #000000);

overlay(#ff6600, #333333);

overlay(#ff6600, #666666);

overlay(#ff6600, #999999);

overlay(#ff6600, #cccccc);

overlay(#ff6600, #ffffff);

overlay(#ff6600, #ff0000);

overlay(#ff6600, #00ff00);

overlay(#ff6600, #0000ff);

softlight
Similar a overlay
pero evita que el negro puro resulte negro puro, y el blanco puro resulte blanco puro.
Parámetros:
color1
: Un color para suavizar la luz en el otro.
color2
: Un color cuya luz será suavizada.
Salida: color
Ejemplo:
softlight(#ff6600, #000000);

softlight(#ff6600, #333333);

softlight(#ff6600, #666666);

softlight(#ff6600, #999999);

softlight(#ff6600, #cccccc);

softlight(#ff6600, #ffffff);

softlight(#ff6600, #ff0000);

softlight(#ff6600, #00ff00);

softlight(#ff6600, #0000ff);

hardlight
Similar a overlay
pero usa el segundo color para detectar los canales de luz y de oscuridad en vez del primer color.
Parámetros:
color1
: Un color para cubrir el otro.
color2
: Un color que será cubierto. También es el que determina si el color resultante es más claro o más oscuro.
Salida: color
Ejemplo:
hardlight(#ff6600, #000000);

hardlight(#ff6600, #333333);

hardlight(#ff6600, #666666);

hardlight(#ff6600, #999999);

hardlight(#ff6600, #cccccc);

hardlight(#ff6600, #ffffff);

hardlight(#ff6600, #ff0000);

hardlight(#ff6600, #00ff00);

hardlight(#ff6600, #0000ff);

difference
Elimina el segundo color del primero. La operación se realiza usando los canales RGB. El resultado es un color más oscuro.
Parámetros:
color1
: Un color que actua como minuendo.
color2
: Un color que actua como substraendo.
Salida: color
Ejemplo:
difference(#ff6600, #000000);

difference(#ff6600, #333333);

difference(#ff6600, #666666);

difference(#ff6600, #999999);

difference(#ff6600, #cccccc);

difference(#ff6600, #ffffff);

difference(#ff6600, #ff0000);

difference(#ff6600, #00ff00);

difference(#ff6600, #0000ff);

exclusion
Efecto similar a difference
con un contraste más bajo.
Parámetros:
color1
: Un color que actua como minuendo.
color2
: Un color que actua como substraendo.
Salida: color
Ejemplo:
exclusion(#ff6600, #000000);

exclusion(#ff6600, #333333);

exclusion(#ff6600, #666666);

exclusion(#ff6600, #999999);

exclusion(#ff6600, #cccccc);

exclusion(#ff6600, #ffffff);

exclusion(#ff6600, #ff0000);

exclusion(#ff6600, #00ff00);

exclusion(#ff6600, #0000ff);

average
Calcula la media de los dos colores. La operación se realiza usando los canales RGB.
Parámetros:
color1
: Un color.
color2
: Un color.
Salida: color
Ejemplo:
average(#ff6600, #000000);

average(#ff6600, #333333);

average(#ff6600, #666666);

average(#ff6600, #999999);

average(#ff6600, #cccccc);

average(#ff6600, #ffffff);

average(#ff6600, #ff0000);

average(#ff6600, #00ff00);

average(#ff6600, #0000ff);

negation
Tiene el efecto opuesto a difference
. El resultado es un color más brillante. Nota: El efecto opuesto no significa el efecto contrario al resultado a una operación de adición.
Parámetros:
color1
: Un color que actua como minuendo.
color2
: Un color que actua como substraendo.
Salida: color
Ejemplo:
negation(#ff6600, #000000);

negation(#ff6600, #333333);

negation(#ff6600, #666666);

negation(#ff6600, #999999);

negation(#ff6600, #cccccc);

negation(#ff6600, #ffffff);

negation(#ff6600, #ff0000);

negation(#ff6600, #00ff00);

negation(#ff6600, #0000ff);
