Gere um valor box-shadow de CSS
Informe o deslocamento, o desfoque, a expansão e a cor de uma sombra e receba um box-shadow de CSS pronto para colar: 4, 8, 16 e 0 viram 4px 8px 16px 0px seguidos da sua cor. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Deslocamento x
- 4
- Deslocamento y
- 8
- Desfoque
- 16
- Propagação
- 0
- Cor
- rgb(15 23 42 / 0.25)
- Sombra da caixa
- 4px 8px 16px 0px rgb(15 23 42 / 0.25)
Crie um valor box-shadow de CSS pronto para copiar com base em cinco entradas explícitas, sem montar a sintaxe manualmente. Informe os deslocamentos horizontal e vertical, o raio de desfoque, o raio de expansão e qualquer valor de cor compatível com CSS. O gerador valida os campos numéricos, rejeita valores negativos de desfoque ou expansão e retorna uma sombra formatada de modo consistente com unidades em pixels. Ele é útil em trabalhos interativos de design, pipelines de tokens de design, geradores de componentes e testes que precisam produzir sempre a mesma saída para a mesma entrada.
Defina a posição com os deslocamentos horizontal e vertical
Os dois valores aparecem em pixels CSS no resultado gerado. Um deslocamento horizontal positivo move a sombra para a direita, enquanto um valor negativo a move para a esquerda. Um deslocamento vertical positivo a leva para baixo; um valor negativo, para cima.
O zero mantém a sombra centralizada naquele eixo. Esses campos podem receber valores decimais quando o sistema de design usa espaçamento fracionário, e o gerador preserva o número validado sem arredondamento silencioso. Considere a fonte de luz aparente ao escolher os deslocamentos: uma luz acima e à esquerda normalmente produz uma sombra abaixo e à direita.
Deslocamentos pequenos costumam transmitir proximidade e sutileza, enquanto valores grandes podem fazer o elemento parecer elevado ou intencionalmente gráfico. A ferramenta não deduz a direção com base no desfoque, na cor ou no tipo de componente. Assim, os valores permanecem sob o controle do usuário e podem ser reproduzidos exatamente em folhas de estilo e builds.
Controle a suavidade e a área com desfoque e expansão
O raio de desfoque controla a transição gradual entre a parte mais intensa da sombra e a transparência. O valor zero cria uma borda rígida, enquanto valores maiores formam uma sombra mais suave e visualmente mais ampla. O raio de expansão aumenta a forma da sombra antes da aplicação do desfoque.
Zero acompanha a área original da sombra do elemento, e um valor positivo estende essa área para todos os lados. Digite cada valor como um número simples; o CSS retornado adiciona unidades px na ordem correta. Desfoque e expansão são controles diferentes, portanto aumentar um não substitui o aumento do outro.
Para uma sombra discreta de interface, combine um deslocamento moderado com desfoque médio e pouca ou nenhuma expansão. Para um anel de foco forte ou efeito semelhante a pôster, desfoque zero e expansão maior podem criar um contorno nítido. Visualize o resultado sobre a superfície real, pois a suavidade percebida varia conforme o contraste e as cores ao redor.
Escolha uma cor e aplique o valor gerado
O campo de cor aceita um único valor CSS não vazio, incluindo um nome de cor, uma notação hexadecimal ou uma forma funcional como rgb() ou hsl(). A transparência alfa costuma ser importante para sombras naturais, porque uma cor escura opaca pode parecer pesada em superfícies claras e turva em fundos coloridos. O gerador remove espaços externos desnecessários, verifica o equilíbrio dos parênteses e rejeita caracteres que poderiam quebrar a declaração.
Atribua esse valor à propriedade box-shadow, coloque-o em uma propriedade personalizada ou armazene-o como token de design. A resposta contém um valor, e não uma declaração completa; sua aplicação ainda escolhe o seletor e decide se combinará outras camadas de sombra. O gerador produz uma camada por solicitação.
Para várias sombras, gere e revise cada camada separadamente antes de unir os valores com vírgulas. A execução é determinística e não depende de rede, modelo, aleatoriedade, armazenamento ou relógio, sendo adequada para snapshots e automações de build reproduzíveis.
Casos de uso
Crie um token de sombra de componente
Transforme configurações estruturadas de design em um valor box-shadow estável para cartões, menus, caixas de diálogo e controles flutuantes.
Alimente um editor visual de estilos
Converta controles deslizantes e seletores de cor em CSS copiável e rejeite configurações negativas de desfoque ou expansão.
Gere folhas de estilo reproduzíveis
Use o resultado determinístico em scripts de build, geradores de componentes, testes de snapshot ou pipelines de configuração de temas.
Perguntas frequentes
O deslocamento horizontal ou vertical pode ser negativo?
Sim. Deslocamentos horizontais negativos movem a sombra para a esquerda, e os verticais negativos a levam para cima.
Quais unidades aparecem na saída?
Os quatro valores numéricos são emitidos em pixels. Forneça números finitos simples, sem acrescentar texto de unidade.
O gerador cria várias camadas de sombra?
Não. Cada solicitação gera uma camada. Gere as camadas separadamente e una os valores revisados com vírgulas quando o CSS exigir várias sombras.
Qual é a diferença entre desfoque e expansão na sombra?
O desfoque suaviza a borda: com zero ela fica nítida e com valores maiores vira uma transição mais suave e larga. A expansão aumenta a forma da sombra para todos os lados antes do desfoque, então aumentar um não substitui o outro.
Como deixo a sombra semitransparente?
Use uma cor com transparência, como um valor rgb() ou hsl() com canal alfa, por exemplo rgb(15 23 42 / 0.25). Uma cor escura opaca costuma pesar na tela; uma translúcida parece uma sombra natural.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/web/box-shadow-generate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"offset_x":4,"offset_y":8,"blur":16,"spread":0,"color":"rgb(15 23 42 / 0.25)"}'const res = await fetch("https://api.kit.forhosting.com/web/box-shadow-generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"offset_x": 4,
"offset_y": 8,
"blur": 16,
"spread": 0,
"color": "rgb(15 23 42 / 0.25)"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/box-shadow-generate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"offset_x": 4,
"offset_y": 8,
"blur": 16,
"spread": 0,
"color": "rgb(15 23 42 / 0.25)"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/box-shadow-generate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"offset_x":4,"offset_y":8,"blur":16,"spread":0,"color":"rgb(15 23 42 / 0.25)"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"offset_x":4,"offset_y":8,"blur":16,"spread":0,"color":"rgb(15 23 42 / 0.25)"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/box-shadow-generate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"offset_x": 4,
"offset_y": 8,
"blur": 16,
"spread": 0,
"color": "rgb(15 23 42 / 0.25)"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.box_shadow_generate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
timeout_sec | 30 |
max_crawl_pages | 25 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Defina a posição com os deslocamentos horizontal e vertical
Comece com offset_x e offset_y, que determinam para onde a sombra se desloca em relação ao elemento.
Controle a suavidade e a área com desfoque e expansão
Esta capacidade rejeita de propósito valores negativos de desfoque e expansão, oferecendo um contrato simples de números não negativos e um erro invalid_input claro em vez de um estilo inesperado.
Escolha uma cor e aplique o valor gerado
Ele retorna um campo box_shadow com as cinco partes na ordem canônica do CSS: deslocamento horizontal, deslocamento vertical, raio de desfoque, raio de expansão e cor.
Perguntas técnicas
Quanto custa cada valor gerado?
O executor no navegador é gratuito. Uma solicitação bem-sucedida à API custa US$ 0,002 por item gerado.
O desfoque ou a expansão podem ser negativos?
Não. Esta capacidade exige valores iguais ou superiores a zero e retorna um erro invalid_input caso contrário.