Botão Neumorphism
Um botão no estilo Neumorphism implementado apenas com CSS, com uma aparência suave e tridimensional.
HTMLCSS
O Neumorphism (Neumorfismo) é uma tendência de design que simula a extrusão ou o afundamento de elementos em relação ao fundo, criando uma ilusão tridimensional sutil. Neste snippet, utilizamos exclusivamente HTML e CSS para construir um botão que exibe relevos realistas durante os estados de hover ou ativo (clique).
Código de Implementação
Copie o código abaixo e integre-o ao seu projeto.
<!-- HTML -->
<div class="neumorphism-wrapper">
<button class="neumorphism-btn">Neumorphism</button>
</div>/* CSS */
.neumorphism-wrapper {
background-color: #e0e5ec;
padding: 40px;
display: flex;
justify-content: center;
align-items: center;
}
.neumorphism-btn {
background-color: #e0e5ec;
color: #4a5568;
border: none;
padding: 16px 32px;
font-size: 16px;
font-weight: 600;
border-radius: 50px;
cursor: pointer;
transition: all 0.2s ease-in-out;
/* Estado normal: adiciona sombra externa para dar efeito de elevação */
box-shadow: 9px 9px 16px rgba(163, 177, 198, 0.6),
-9px -9px 16px rgba(255, 255, 255, 0.5);
}
.neumorphism-btn:hover {
/* Estado de hover: reduz a sombra para expressar a iminência de ser pressionado */
box-shadow: 5px 5px 10px rgba(163, 177, 198, 0.6),
-5px -5px 10px rgba(255, 255, 255, 0.5);
color: #2d3748;
}
.neumorphism-btn:active {
/* Estado ativo (clique): adiciona sombra interna para expressar reentrância */
box-shadow: inset 6px 6px 10px 0 rgba(163, 177, 198, 0.6),
inset -6px -6px 10px 0 rgba(255, 255, 255, 0.5);
} Explicação
- Cor de fundo uniforme: A base do Neumorphism consiste em alinhar a cor de fundo do elemento com a cor de fundo do contêiner (
#e0e5ec). - Sombra dupla (box-shadow): O efeito tridimensional é gerado ao aplicar uma sombra clara e esbranquiçada no canto superior esquerdo (simulando a fonte de luz) e uma sombra escura no canto inferior direito.
- Estado ativo: A utilização de
insetnobox-shadowproduz um efeito de reentrância, criando a impressão de que o botão foi pressionado.