Variáveis ​​CSS e tema de cores para o site em várias linhas

Uma maneira de usar variáveis ​​CSS hoje


Crie um site que suporte dinamicamente temas claros, escuros e coloridos.


Demonstração interativa



Crie uma cor de base que será alterada. Vincule-o ao tema de dados em html.


exemplos de código usam a sintaxe & from less / scss


html[data-theme='green'] { --theme-color: 110; } 

Agora precisamos das cores em si. Ou melhor, seu brilho e saturação. Para fazer isso, usaremos o esquema hsl. Colocamos todas as variáveis ​​em: root.


 :root { --color: ~'hsl(var(--theme-color), 15%, 44%)'; --background-color: ~'hsl(var(--theme-color), 30%, 10%)'; } 

Bem aqui. Estojo para pequenas. Pegue o elemento desejado e aplique nossa variável a ele.


 .class-name { color: var(--color); background-color: var(--background-color); } 

Agora vamos mudar o contraste. Substitua: root com html [with attribute].


 // :root = html html { &[data-theme-style='normal'] { } &[data-theme-style='dark'] { } } 

Agora, para cada tópico, assumimos nossos valores s, l.


 html { &[data-theme-style='normal'] { --color: ~'hsl(var(--theme-color), 15%, 44%)'; --background-color: ~'hsl(var(--theme-color), 30%, 10%)'; } &[data-theme-style='dark'] { --color: ~'hsl(var(--theme-color), 70%, 31%)'; --background-color: ~'hsl(var(--theme-color), 3%, 3%)'; } } 



Ligações:
Demonstração interativa
Obrigado Marcin Wichary pela idéia.

Source: https://habr.com/ru/post/pt466587/


All Articles