Como tailwindcss define variáveis no CSS

Eai tudo bem? Depois de alguns meses sem postar algo aqui, finalmente chegou a hora de esclarecer algo sobre o tailwindcss.

Abri um tópico no frontendbr/forum#2248 sobre o assunto e até consegui uma breve explicação do criador do tailwindcss.

Mas ficou no ar a tarefa de testar o que Adam disse para ver como realmente funciona e é isso que vou fazer abaixo.

Como o tailwindcss define custom properties

Ao abrir o código final do tailwindcss você verá as custom properties definidas no seletor * asterisco, que tem uma especifidade baixa, mas maior que :root e tem efeito sobre todos os elementos de uma página.

O que me chamou a atenção foi o seletor usado *,:after,:before porque não usar :root?

A natureza das propriedades definidas

Notei que todas as propriedades como --tw-scale-x, --tw-rotate, --tw-translate-x são usadas em propriedades de CSS que tem multiplos valores ou funções aplicáveis em uma só propriedade.

Por exemplo, a propriedade transform é usada com 1 ou mais funções como valor: