Logo de Código Facilito
  • Inicio
  • Replays
  • Iniciar sesión
  • Crear cuenta
  • Explorar cursos
  • Bootcamps
  • Precios
  • Blog

¡Califica el Curso de Diseño Web Frontend!

Selecciona la calificación de 1 a 5 estrellas

Reporta un error

Curso Curso de Diseño Web Frontend

Video Botones 3D con SASS

Tipo de error

Algo salió mal al cargar el vídeo

El vídeo no pudo cargarse, hemos enviado un reporte al equipo de desarrollo, para poder solucionarlo a la brevedad.

Mientras solucionamos el problema, intenta lo siguiente para solucionar el error:

  • Recarga la página
  • Intenta reiniciar tu navegador y luego vuelve a reproducir el vídeo
  • Vacía el caché de tu navegador
  • Intenta reproducir con las extensiones del navegador deshabilitadas
  • Intenta con un navegador distinto
  • Si el problema persiste contáctanos en Discord
home Ir al inicio report_problem Reportar falla star Valorar curso

Los botones 3D no son tan populares en un mundo donde las principales tendencias de diseño son Material Design y Flat, pero son un distintivo interesante, además de que sirven de manera excelente para resaltar una acción e indicarle a cualquier usuario que puede dar click ahí. Son un distintivo interesante para que tu diseño web no se vea igual al de todos y claro, para llamar la atención del usuario.

En el artículo de hoy veremos cómo hacer botones en 3D utilizando múltiples sombras, en un siguiente artículo, veremos cómo hacerlo con pseudo elementos :)

Sombras

Esta opción es particularmente buena tanto para cajas en 3D como para texto en 3D, además de que es más sencilla de modificar si tu botón tiene bordes redondeados o transformaciones.

La lógica es colocar múltiples sombras a distintas distancias, cada una de ellas más oscuras que la anterior, colocar múlitples sombras, y que cada una de ellas sea de diferente color es un proceso muy ineficiente, sobre todo si te piden que modifiques el color del botón. Veamos cómo funciona:

See the Pen vGNZMP by Uriel Hernández (urielhdz) on CodePen.

En este vista, podemos notar cómo funcionan las múltiples sombras, en la pestaña de CSS podrás ver que estamos asignando múltiples sombras separadas por coma a la propiedad box-shadow, veamos cómo funciona con otros tamaños:

See the Pen ZWbyNy by Uriel Hernández (urielhdz) on CodePen.

Son los mismos valores pero con cada sombra separada por 1px, tenemos entonces un efecto 3D más realista. Ahora, hay algunas cosas que quiero mencionar que hacen que el efecto sea más preciso:

button{
  /* Así funciona box-shadow */
  box-shadow: X Y blur spread;
}

En el snippet de código de arriba, vemos cómo la propiedad box-shadow se compone de 4 propiedades, la distancia en X, la distancia en Y, el desenfoque y el tamaño de la sombra. Nota como en el efecto utilizamos las 4 propiedades, parte de que el botón se vea realista en 3D es que no tiene blur. Intenta agregarle blur a la sombra para ver cómo cambia el botón

Como puedes ver en el siguiente demo, usar múltiples sobras podemos además transformar o cambiar el borde del elemento y el efecto 3D sigue funcionando:

See the Pen wGKeVa by Uriel Hernández (urielhdz) on CodePen.

El problema

¿Cuáles son las desventajas de usar múltiples sombras? En primer lugar, el efecto de los colores es fácil cuando hablamos de escala de grises, pero cualquier otro color complica las cosas, tendríamos que usar un editor gráfico e ir cambiando la oscuridad del mismo color para poder conservar lo realista del efecto, ahora imagina que a mitad del proyecto te piden que cambies el color... iugh, mucho tiempo desperdiciado.

En segundo lugar, cambiar el color significa hacer hasta 5 cambios, no es lo que quieres hacer con tu hoja de estilos.

SASS al rescate

SASS nos permite realizar este efecto de manera sencilla, SASS tiene funciones para procesar colores y ciclos, ambas utilidades solucionarán nuestros problemas :)

Esta es la forma SASS de hacerlo:

See the Pen XdmaWV by Uriel Hernández (@urielhdz) on CodePen.

Ahora estamos usando otro color, y aunque esta técnica tiene sus desventajas (complejidad, más código) es más fácil de mantener y reutilizar, solo necesitas cambiar el color base y todo cambia automáticamente. Intentemos con otro color:

See the Pen Myavav by Uriel Hernández (@urielhdz) on CodePen.

Una modificación y tenemos botones 3D en el color que queramos... claro, pero ¿qué pasó?


/* Declaración de variables, para cambiar el color, solo modifica la variable $base-color */
$base-color: #ff4081;
$shadow: "";


/* Iteramos con un ciclo del 1 al 4, cada iteración del siglo $i (una variable) va cambiando su valor */
@for $i from 1 through 4{

  /* La posición de la sombra la cambiamos con la variable $i que primero vale 1, luego 2 y así hasta el 4 */
  $shadow: $shadow + "#{$i}px #{$i}px 0px 2px " + darken($base-color,$i*5) + ",";

  /*  La función darken, nos permite oscurecer un color, el primer parámetro es el color y el segundo parámetro un valor del 1-100 de cuánto oscurecerá */

}

/*  Nuestro ciclo nos devuelve una cadena con una coma demás, con la línea de abajo removemos el último caracter para quitar dicha coma */

$shadow : str-slice($shadow,0,str-length($shadow)-1);

button{
  color:white;
  appearance: none;
  border:none;
  background: $base-color;
  /* $shadow es una variable string, necesitamos quitarle las comillas, la función unquote hace eso */
  box-shadow: unquote($shadow);
}
  • Módulo 1 | 4 clases

    Cómo Funciona la Web

    expand_more
    • play_circle_outline

      Clase 1

      Frontend y Backend

    • play_circle_outline

      Clase 2

      La función de una navegador y la diferencia entre ellos.

    • play_circle_outline

      Clase 3

      Sublime Text

    • play_circle_outline

      Clase 4

      Instalar XAMPP

  • Módulo 2 | 3 clases

    HTML

    expand_more
    • play_circle_outline

      Clase 1

      Hola mundo con HTML

    • play_circle_outline

      Clase 2

      Estructura básica de un documento HTML

    • play_circle_outline

      Clase 3

      Por qué es importante usar correctamente las etiquetas HTML

  • Módulo 3 | 3 clases

    Boilerplate

    expand_more
    • play_circle_outline

      Clase 1

      HTML5 Boilerplate

    • play_circle_outline

      Clase 2

      Condicionales Internet Explorer

    • play_circle_outline

      Clase 3

      Instalar SASS

  • Módulo 4 | 7 clases

    Navegación

    expand_more
    • play_circle_outline

      Clase 1

      Header, Nav, Ul, Li

    • play_circle_outline

      Clase 2

      CSS para la navegación

    • play_circle_outline

      Clase 3

      Figuras geométricas en CSS3

    • play_circle_outline

      Clase 4

      Mixins en SASS

    • play_circle_outline

      Clase 5

      Posicionar logo

    • play_circle_outline

      Clase 6

      Animar menú

    • play_circle_outline

      Clase 7

      Ciclos SASS y Fuentes personalizadas

  • Módulo 5 | 5 clases

    Slider

    expand_more
    • play_circle_outline

      Clase 1

      Slider semántico

    • play_circle_outline

      Clase 2

      Aplicando CSS

    • play_circle_outline

      Clase 3

      javaScript del Slider

    • play_circle_outline

      Clase 4

      Atributos data

    • play_circle_outline

      Clase 5

      Intérvalos de tiempo y opciones de animación

  • Módulo 6 | 11 clases

    Pantallas Inicio y Cuartos

    expand_more
    • play_circle_outline

      Clase 1

      Triángulos, Sombras y Más

    • play_circle_outline

      Clase 2

      Dividir pantalla

    • play_circle_outline

      Clase 3

      Círculos en CSS

    • play_circle_outline

      Clase 4

      Filtros en CSS3

    • play_circle_outline

      Clase 5

      Precios - Marcado (HTML)

    • play_circle_outline

      Clase 6

      Precios - Correcciones, Variables en SASS y más

    • play_circle_outline

      Clase 7

      Precios - Agregando el Ribbon

    • play_circle_outline

      Clase 8

      Precios - Rotar Elementos

    • play_circle_outline

      Clase 9

      Precios - Uso y Manejo de jQuery Templates

    • play_circle_outline

      Clase 10

      Precios - Revertir Giro

    • play_circle_outline

      Clase 11

      Galería con CSS y javaScript

  • Módulo 7 | 5 clases

    Google Maps

    expand_more
    • play_circle_outline

      Clase 1

      HTML y CSS

    • play_circle_outline

      Clase 2

      Desplegar Mapa

    • play_circle_outline

      Clase 3

      Geolocalización en HTML5

    • play_circle_outline

      Clase 4

      Colocar marcadores

    • play_circle_outline

      Clase 5

      Definir Rutas en el Mapa

  • Módulo 8 | 3 clases

    Parallax

    expand_more
    • play_circle_outline

      Clase 1

      Scroll en Navegación

    • play_circle_outline

      Clase 2

      StellarJS

    • play_circle_outline

      Clase 3

      Scrollorama

  • Módulo 9 | 4 clases

    Responsive Design

    expand_more
    • play_circle_outline

      Clase 1

      Explicación y el Viewport

    • play_circle_outline

      Clase 2

      Explicación sobre Media Queries

    • play_circle_outline

      Clase 3

      Aplicar Media Queries

    • play_circle_outline

      Clase 4

      Correcciones en JS para móviles

  • Módulo 10 | 3 clases

    Extra

    expand_more
    • play_circle_outline

      Clase 1

      Teoría Servidores

    • play_circle_outline

      Clase 2

      Subir Archivos

    • play_circle_outline

      Clase 3

      Preguntas y Respuestas

  • Módulo 11 | 2 clases

    Extras

    expand_more
    • play_arrow

      Clase 1

      Botones 3D con SASS

    • play_circle_outline

      Clase 2

      Mixins en SASS

Botones 3D con SASS

arrow_back Siguiente arrow_forward
Curso de Diseño Web Frontend