
Radix Colors
Tudo o que você precisa saber
Radix Colors é uma biblioteca de cores cuidadosamente projetada para fornecer escalas de cores acessíveis, harmoniosas e altamente configuráveis para aplicações web. Nesta postagem, vamos explorar como instalar a biblioteca, como utilizá-la em diferentes soluções de estilização e como tirar o máximo proveito das cores que ela oferece para criar interfaces bonitas e funcionais.
Instalação
npm
Você pode instalar o Radix Colors diretamente pelo terminal usando npm
, yarn
ou pnpm
. A versão atual é a 3.0.0.
# com npm
npm install @radix-ui/colors
# com yarn
yarn add @radix-ui/colors
# com pnpm
pnpm add @radix-ui/colors
CDN
Se você deseja começar rapidamente, pode usar os arquivos CDN para prototipação. No entanto, o uso em produção não é recomendado.
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@radix-ui/colors@latest/gray.css" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@radix-ui/colors@latest/blue.css" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@radix-ui/colors@latest/green.css" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@radix-ui/colors@latest/red.css" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@radix-ui/colors@latest/gray-dark.css" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@radix-ui/colors@latest/blue-dark.css" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@radix-ui/colors@latest/green-dark.css" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@radix-ui/colors@latest/red-dark.css" />
Usando Radix Colors
Vanilla CSS
Radix Colors fornece cores empacotadas como arquivos CSS brutos. Você pode importá-los diretamente nos seus arquivos quando usar um empacotador, como Parcel ou Webpack.
@import "@radix-ui/colors/gray.css";
@import "@radix-ui/colors/blue.css";
@import "@radix-ui/colors/green.css";
@import "@radix-ui/colors/red.css";
@import "@radix-ui/colors/gray-dark.css";
@import "@radix-ui/colors/blue-dark.css";
@import "@radix-ui/colors/green-dark.css";
@import "@radix-ui/colors/red-dark.css";
.button {
background-color: var(--blue-4);
color: var(--blue-11);
border-color: var(--blue-7);
}
.button:hover {
background-color: var(--blue-5);
border-color: var(--blue-8);
}
Para o modo escuro, aplique uma classe .dark
no <body>
ou em um elemento pai.
<body class="dark">
<button class="button">Button</button>
</body>
styled-components
Para quem usa styled-components
, o Radix Colors é extremamente simples de integrar:
import { gray, blue, red, green, grayDark, blueDark, redDark, greenDark } from "@radix-ui/colors";
import styled, { ThemeProvider } from "styled-components";
// Criando tema
const theme = {
colors: {
...gray,
...blue,
...red,
...green
}
};
// Tema escuro
const darkTheme = {
colors: {
...grayDark,
...blueDark,
...redDark,
...greenDark
}
};
// Criando o botão com cores dinâmicas
const Button = styled.button`
background-color: ${props => props.theme.colors.blue4};
color: ${props => props.theme.colors.blue11};
border-color: ${props => props.theme.colors.blue7};
&:hover {
background-color: ${props => props.theme.colors.blue5};
border-color: ${props => props.theme.colors.blue8};
}
`;
export default function App() {
return (
<ThemeProvider theme={theme}>
<Button>Radix Colors</Button>
</ThemeProvider>
);
}
vanilla-extract
Caso esteja utilizando vanilla-extract
, o processo também é bem direto.
import { gray, blue, red, green, grayDark, blueDark, redDark, greenDark } from "@radix-ui/colors";
import { createTheme, style } from "@vanilla-extract/css";
export const [theme, vars] = createTheme({
colors: {
...gray,
...blue,
...red,
...green
}
});
export const darkTheme = createTheme(vars, {
colors: {
...grayDark,
...blueDark,
...redDark,
...greenDark
}
});
// Estilos do botão
export const buttonStyle = style({
backgroundColor: vars.colors.blue4,
color: vars.colors.blue11,
borderColor: vars.colors.blue7,
":hover": {
backgroundColor: vars.colors.blue5,
borderColor: vars.colors.blue8
}
});
Criação de Alias Semânticos
Uma prática comum ao usar Radix Colors é criar alias semânticos para cores, como primary
, secondary
, success
, danger
, etc. Isso é especialmente útil quando você deseja criar temas.
@import "@radix-ui/colors/blue.css";
@import "@radix-ui/colors/green.css";
@import "@radix-ui/colors/yellow.css";
@import "@radix-ui/colors/red.css";
:root {
--accent-1: var(--blue-1);
--accent-2: var(--blue-2);
--success-1: var(--green-1);
--success-2: var(--green-2);
--warning-1: var(--yellow-1);
--warning-2: var(--yellow-2);
--danger-1: var(--red-1);
--danger-2: var(--red-2);
}
Alias de Uso
Cada etapa nas escalas de Radix Colors foi projetada para um caso de uso específico. Aqui estão alguns exemplos comuns:
- Etapas 1 e 2: para fundo de aplicativos.
- Etapas 3, 4 e 5: fundos de componentes (normal, hover, ativo).
- Etapas 6 a 8: bordas.
- Etapas 9 e 10: fundos sólidos.
- Etapas 11 e 12: textos.
Por exemplo, ao estilizar componentes interativos como botões, você pode usar --blue-9
para o fundo e --blue-11
para o texto.
Conclusão
O Radix Colors é uma ferramenta poderosa para desenvolvedores que desejam criar UIs com cores consistentes e acessíveis. Ele oferece flexibilidade ao trabalhar com escalas de cores, permitindo a criação de temas claros e escuros, e pode ser integrado a diversas soluções de estilização, como styled-components
, vanilla-extract
e CSS puro. Use-o para melhorar a estética e a usabilidade do seu projeto.
Por último, lembre-se de explorar os alias semânticos para criar temas intuitivos e fáceis de manter em sua base de código!