Funções Personalizadas em CSS: Expandindo as Possibilidades

1. Introdução às Funções Personalizadas

As funções personalizadas permitem estender o CSS com lógica própria, criando:

2. Sintaxe Básica

@function --minha-funcao($param1, $param2) {
        @return calc($param1 * $param2 / 100%);
    }
    
    .elemento {
        width: --minha-funcao(300px, 50);
    }

3. Casos de Uso Comuns

Aplicação Exemplo
Cálculos responsivos font-size: --responsive-size(viewport-width);
Manipulação de cores background: --contrast-color(#fff);
Layouts complexos grid-template: --adaptive-grid(5, 200px);

4. Comparação: Funções Nativas vs Personalizadas

Característica Nativas (ex: calc()) Personalizadas
Reutilização Limitada Alta
Complexidade Estática Dinâmica
Manutenção Direta Centralizada

5. Exemplo Prático: Função de Contraste

@function --auto-contrast($base-color) {
        @if (lightness($base-color) > 50%) {
            @return #000;
        } @else {
            @return #fff;
        }
    }
    
    .card {
        background: var(--cor-fundo);
        color: --auto-contrast(var(--cor-fundo));
    }

6. Melhores Práticas

Atenção: Funções complexas podem impactar performance
  1. Prefira nomes descritivos
  2. Documente suas funções
  3. Teste em diferentes navegadores
  4. Use fallbacks para compatibilidade

7. Referências