paletas
El motor de temas de Ignite UI for Angular proporciona varias funciones y mezclas potentes para generar y recuperar colores.
Descripción general
Las paletas en el contexto de Ignite UI for Angular se declaran como mapas Sass y las claves de esos mapas son los colores de la paleta (primary
, secondary
, surface
, etc.). Cada color es a su vez un mapa en sí mismo y tiene todas las variantes de color enumeradas como claves. Los valores asignados a esas variantes de color son los colores reales utilizados en todos los temas de componentes. Todos los mapas de paleta son generados mediante programación por la función de paleta. La función acepta argumentos para primary
,,, surface
gray
, info
, success
,, warn
, y error
secondary
colores. El primary
color suele ser el color de tu marca. Se utiliza principalmente para diseñar elementos estáticos, como el igx-navbar
componente. El secondary
color es el que se utiliza en los elementos que se pueden accionar, como botones, interruptores, controles deslizantes, etc. El surface
color es el que se utiliza para el color de fondo de algunos componentes, como tarjetas, menús, selectores de fecha / hora, hojas de banners, etc. Los únicos argumentos necesarios son los unos para,y primary
secondary
surface
colores. De forma predeterminada, los colores para surface
, gray
, info
, success
, warn
, y error
a un conjunto predefinido de nuestra elección.
Para empezar con tu primera paleta de colores, crea un archivo scss que sería el archivo base de tu tema global. Yo llamaré a la mía_variables.scss
.
// _variables.scss
$melon-palette: palette(
$primary: #2ab759,
$secondary: #f96a88,
$surface: #e5e5e5
);
scss
El valor que pase a $primary
y surface
/ $secondary
o cualquier otro color debe ser de tipo color. No puede pasar variables CSS como argumentos, ya que no se pueden resolver en tiempo de compilación de Sass.
Creamos una paleta que contiene variantes para todos los colores, incluidos los colores de contraste de texto creados automáticamente para cada variante. Si no ha consultado la documentación sobre paletas con variables CSS, consúltela ahora. Contiene información sobre todas las variantes de color de una paleta.
La función palette
hace mucho internamente para ayudarlo a crear colores en el momento de la compilación que puede reutilizar en sus documentos.scss
. La función es buena porque creará un enorme mapa de colores para usted, pero el algoritmo para generar las variantes de color es muy obstinado y puede no satisfacer sus necesidades exactas. A nuestros temas componentes no les importa cómo se genera la paleta, solo les importa la forma del mapa.
En caso de que desee crear su paleta manualmente o crear la función de generación de paleta usted mismo, esto es lo que esperamos obtener como mapa de paleta.
$handmade-palette: (
'primary': (
'50': #e6eff8,
'50-contrast': black,
'100': #bfd7f2,
'100-contrast': black,
'200': #98bfec,
'200-contrast': black,
'300': #85b5e9,
'300-contrast': white,
'400': #73a6e4,
'400-contrast': white,
'500': #6797de,
'500-contrast': white,
'600': #3681dd,
'600-contrast': white,
'700': #357fda,
'700-contrast': white,
'800': #306dc8,
'800-contrast': white,
'900': #284ea8,
'900-contrast': white,
'A100': #98bfec,
'A100-contrast': white,
'A200': #73a6e4,
'A200-contrast': white,
'A400': #3681dd,
'A400-contrast': white,
'A700': #284ea8,
'A700-contrast': white
),
'secondary': (
'50': #fef7e2,
'50-contrast': black,
'100': #fdeab7,
'100-contrast': black,
'200': #fbdd89,
'200-contrast': black,
'300': #fad15c,
'300-contrast': black,
'400': #f9c63f,
'400-contrast': black,
'500': #f7bd32,
'500-contrast': white,
'600': #f6b02d,
'600-contrast': white,
'700': #f49e2a,
'700-contrast': white,
'800': #f38e28,
'800-contrast': white,
'900': #f38e28,
'900-contrast': white,
'A100': #fbdd89,
'A100-contrast': black,
'A200': #f9c63f,
'A200-contrast': black,
'A400': #f6b02d,
'A400-contrast': white,
'A700': #f38e28,
'A700-contrast': white
),
'gray': (
'50': #fff,
'50-contrast': black,
'100': #fafafa,
'100-contrast': black,
'200': #f5f5f5,
'200-contrast': black,
'300': #f0f0f0,
'300-contrast': black,
'400': #dedede,
'400-contrast': black,
'500': #b3b2b2,
'500-contrast': black,
'600': #979696,
'600-contrast': white,
'700': #7b7a7a,
'700-contrast': white,
'800': #404040,
'800-contrast': white,
'900': #1a1a1a,
'900-contrast': white
),
'info': (
'500': rgb(18, 118, 211),
'500-contrast': black
),
'success': (
'500': rgb(76, 184, 96),
'500-contrast': black
),
'warn': (
'500': rgb(251, 178, 60),
'500-contrast': black
),
'error': (
'500': rgb(255, 20, 75),
'500-contrast': black
),
'surface': (
'500': rgb(255, 255, 255),
'500-contrast': black
)
);
scss
Es importante establecer las claves de mapa como cadenas, explícitamente entre comillas - 'primary'
, 'secondary'
, 'gray'
, etc. Lo mismo se aplica a todas las variantes de color -500
, 500-contrast
, etc.
Predefined Palettes
Proporcionamos paletas claras y oscuras predefinidas, que puede usar junto con nuestros esquemas para crear temas para sus componentes:
- Paletas de luz
$light-material-palette
$light-fluent-excel-palette
$light-fluent-word-palette
$light-fluent-palette
$light-bootstrap-palette
$light-indigo-palette
- Paletas oscuras
$dark-material-palette
$dark-fluent-excel-palette
$dark-fluent-word-palette
$dark-fluent-palette
$dark-bootstrap-palette
$dark-indigo-palette
Puede mezclar y combinar todas las paletas claras con un esquema claro de su elección y viceversa: todas las paletas oscuras con un esquema oscuro que crea que se adaptará mejor a sus necesidades y visión.
Grayscale Colors
De manera similar a los primary
colores, secondary
surface
puede proporcionar otro color a la palette
función que se utilizará para generar tonos de gris. El color por defecto que se utiliza para generar la gray
paleta en todos los temas de luz es #000
, o mejor conocido como black
. Las gray
variantes de color se utilizan principalmente para establecer los colores del texto en los componentes. Modificar el valor es útil cuando se cambian los colores de fondo o de superficie de la aplicación. Por ejemplo, si la aplicación usa un fondo de superficie más oscuro, establecer el gray
color en white
es sensato y obligará a que todos los colores del texto se basen en tonos de white
.
Para generar una paleta que utilice white
para sus tonos grises:
// Import the Ignite UI themes library first
$company-color: #2ab759; /* Some green shade I like */
$secondary-color: #f96a88; /* Watermelon pink */
$surface-color: #e5e5e5 /* Light gray for backgrounds/ */
$grayscale-base: #fff; /* Used to generate shades of gray */
$my-color-palette: palette(
$primary: $company-color,
$secondary: $secondary-color,
$surface: $surface-color,
$gray: $grayscale-base
);
scss
Colors Variants
Proporcionamos una función que es fácil de recordar y usar. color
Puede tomar hasta cuatro argumentos -palette
, color
,y variant
opacity
;
// Get the primary color as CSS variable reference to the 500 color variant
$my-primary-500: color();
// Get the primary color as CSS variable reference to the 600 color variant
$my-primary-600: color($variant: 600);
// Get the primary color as CSS variable reference to the 600 color variant with .5 opacity
$my-primary-600-opacity: color($variant: 600, $opacity: .5);
// Get the secondary A700 color variant as a HEX value from $my-palette
$my-primary-A700: color($my-palette, 'secondary', 'A700');
// Get the warn 500 color variant as HEX value from $my-palette
$my-warning-color: color($my-palette, 'warn');
.my-awesome-class {
background: $my-primary-600;
border-color: $my-primary-A700;
}
.warning-bg {
background: $my-warning-color;
}
scss
Si omite el argumento $palette
, obtendrá una cadena que hace referencia a la variante de variable CSS correspondiente. Si no proporciona $color
y/o $variant
, se asignarán a primary
y 500
respectivamente.
Contrast Text Colors
De manera similar a cómo recuperamos variantes de color, hay una manera de obtener el color de texto de contraste para cada una de las variantes de color en la paleta con la función contrast-color
, acepta el mismo tipo y número de argumentos que la color
función.
$my-primary-800: color($my-palette, 'primary', 600);
$my-primary-800-text: contrast-color($my-palette, 'primary', 600);
// sample usage
.my-awesome-article {
color: $my-primary-800-text;
background: $my-primary-800;
}
scss
Color Classes
Entendemos que algunas personas prefieren usar clases CSS para aplicar colores a elementos web, ya sea texto o fondo. Tenemos un mixin que te permite generar clases CSS para cada color de la paleta.
El mixin toma algunos argumentos que le permiten controlar el nombre de la clase CSS así como la propiedad CSS a la que pasarle el color de la paleta;
$prop
: la propiedad CSS a la que asignar el color.$prefix
: una cadena de prefijo que se adjuntará al nombre de la clase generada. El valor predeterminado es 'igx'.$suffix
: una cadena de sufijo que se adjuntará al nombre de la clase generada.$palette
: la paleta a utilizar.
Por ejemplo, si desea generar clases CSS que apliquen color de fondo a los elementos, puede hacer lo siguiente:
@include color-classes(
$prop: 'background-color',
$prefix: 'bg'
);
scss
El código anterior generará clases CSS para cada variante de color en la paleta. Por ejemplo, a la variante de 500
colores de la paleta primary
se le asignará la siguiente clase.bg-primary-500
;
<div class="bg-primary-500">...</div>
html
CSS Variables
Al leer sobre la paleta de colores en la sección Variables CSS de la documentación, habrás notado que todos los colores de la paleta se incluyen como variables CSS. Hacemos esto internamente cada vez que generamos un tema usando el mixin theme
. El theme
llama a otro mixin en su palette
corporal. Toma una paleta y convierte los colores que contiene en variables CSS.
Utilice este mixin cuando desee que los colores de su paleta personalizada se incluyan como variables CSS.
He aquí un ejemplo:
$my-palette: palette(
$primary: #2ab759,
$secondary: #f96a88,
$surface: #e5e5e5
);
@include palette($my-palette);
scss
API Reference
Additional Resources
Nuestra comunidad es activa y siempre da la bienvenida a nuevas ideas.