Como obter ou alterar valores de variáveis do CSS com Javascript?
No CSS, é possível definir variáveis, contendo valores específicos, que podem ser reutilizadas e alteradas na sua folha de estilo. Além disso ter facilitado bastante a escrever um documento CSS, é possível obter ou alterar os valores dessas variáveis através do Javascript.
Obtendo o valor de uma variável CSS pelo Javascript
Primeiramente, vamos supor que você definiu pelo CSS uma variável no selector :root
. Para acessá-la pelo Javascript, é necessário utilizar document.documentElement
.
Veja:
:root{
--color-primary: #add555;
}
const value = getComputedStyle(document.documentElement).getPropertyValue('--color-primary');
console.log(value); // '#add555'
Você também pode obter o valor da variável definida pelo CSS utilizando um elemento filho, já que no CSS é possível sobrescrever a definição de uma variável.
Veja:
:root {
--color-primary: #add555;
}
.parent > .child {
--color-primary: #ff0000;
}
const el = document.querySelector('.parent > .child');
const value = getComputedStyle(el).getPropertyValue('--color-primary');
console.log(value); // '#ff0000'
Definindo ou modificando variáveis do CSS pelo Javascript
Você também pode modificar uma variável CSS através do Javascript. Você só precisa usar a boa e velha propriedade style
, presente nos elementos dos documentos e chamar setProperty
.
Veja:
body {
--color: pink;
}
document.body.style.setProperty('--color', 'green');