Já quis ajustar variáveis CSS em tempo real durante uma apresentação ou enquanto experimenta estilos? Enquanto ferramentas como o Tweakpane existem, o CodePen agora oferece sua própria solução nativa: o slideVars. Este guia vai te mostrar a configuração, o uso básico e a configuração avançada para turbinar seus protótipos interativos. Você pode conferir a inspiração original neste material fonte.

Web developer coding on a laptop with CSS code on screen IT Technology Image

Começando em Duas Linhas

A funcionalidade principal é incrivelmente simples. Importe o módulo e inicialize-o no painel JavaScript do seu CodePen. Ele detectará automaticamente as variáveis CSS definidas nos seus estilos e gerará um painel de controle.

// Adicione isso ao seu painel JS
import { slideVars } from "@codepen/slidevars";
slideVars.init();

Nota Importante: No modo padrão (automático), suas variáveis devem ser declaradas no :root com valores padrão. Aqui está o CSS correspondente:

/* Adicione isso ao seu painel CSS */
:root {
  --cor-principal: #ff6b6b; /* Ajustável via slider */
  --espacamento: 20px; /* Ajustável via slider */
  --rotacao: 0deg; /* Ajustável via slider */
}

.caixa {
  background-color: var(--cor-principal);
  padding: var(--espacamento);
  transform: rotate(var(--rotacao));
}

Uma vez adicionado, um painel com sliders para --cor-principal, --espacamento e --rotacao aparecerá no canto superior direito do seu pen.

Interactive UI design with sliders and controls System Abstract Visual

Avançado: Configuração Manual

Para mais controle, você pode definir manualmente as propriedades de cada variável, incluindo seu escopo, intervalo e unidade. Passe um objeto de configuração para slideVars.init().

import { slideVars } from "@codepen/slidevars";

slideVars.init({
  variables: [
    {
      name: "--largura",
      value: 150,
      unit: "px", // Unidade CSS
      min: 10,
      max: 500,
      scope: "#container" // Seletor CSS onde a var é usada
    },
    {
      name: "--intensidade",
      value: 0.7,
      unit: "", // Valor sem unidade (unit-less)
      min: 0,
      max: 1
      // step: 0.05 // Nota: O controle de incremento não é totalmente suportado no modo manual ainda
    }
  ]
});

Limitação Atual: A propriedade step para controle de incremento fino parece não estar totalmente operacional no modo manual. Valores sem unidade incrementam em números inteiros. Incrementos decimais funcionam no modo automático.

Modern developer desk setup with multiple monitors Developer Related Image

Dicas Práticas e Conclusão

  • Reposicione o Painel: Coloque um elemento customizado <slide-vars> em qualquer lugar do seu HTML para renderizar os controles lá. Por padrão, ele é colocado no final do HTML.
  • Estilize: Você pode aplicar CSS ao elemento <slide-vars> para combinar com a aparência da sua demo.
  • Use Fora do CodePen: O módulo @codepen/slidevars pode ser importado em projetos fora do CodePen.

O slideVars é uma ferramenta poderosa para prototipagem, ensino ou simplesmente para explorar o impacto das propriedades CSS em tempo real. Sua maior força é permitir demos interativas e ricas com configuração mínima. Experimente no seu próximo projeto no CodePen! 🚀