SnippetUI

Botón Neumorphism

Un botón estilo Neumorfismo creado puramente con CSS, destacando por su volumen suave y textura tridimensional.

HTMLCSS

El Neumorfismo (Neumorphism) es una tendencia de diseño que genera la ilusión óptica de que los elementos están extruidos del mismo fondo o incrustados en él. Este snippet utiliza únicamente HTML y CSS para construir un botón con una textura volumétrica muy realista, incluyendo transiciones fluidas para los estados :hover y :active.

Código de Implementación

Copia el siguiente código e intégralo en tu proyecto.

<!-- 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: sombra exterior para elevarlo */
  box-shadow: 9px 9px 16px rgba(163, 177, 198, 0.6), 
             -9px -9px 16px rgba(255, 255, 255, 0.5);
}

.neumorphism-btn:hover {
  /* Estado hover: sombra un poco más pequeña para expresar el signo de presionar */
  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 activo (clic): sombra interior para expresar hundimiento */
  box-shadow: inset 6px 6px 10px 0 rgba(163, 177, 198, 0.6), 
              inset -6px -6px 10px 0 rgba(255, 255, 255, 0.5);
}

Explicación

  • Fondo monocromático: La regla de oro del neumorfismo es que el color de fondo del componente debe ser exactamente igual al color del contenedor (en este caso, #e0e5ec).
  • Doble sombra (box-shadow): El relieve tridimensional se consigue aplicando dos sombras simultáneas: una sombra clara (simulando la fuente de luz) en la esquina superior izquierda, y una sombra oscura en la esquina inferior derecha.
  • Estado activo (:active): Al añadir la palabra clave inset a la propiedad box-shadow, la sombra pasa a ser interna, simulando perfectamente el efecto físico de un botón al ser presionado.