Juan Jose Arcani
Joel Dominguez Merino
Luis Gerardo Lopez Perez
Dar los toques finales a un botón dentro de una tarjeta de precios marca la diferencia entre un diseño amateur y uno profesional. Aquí se recorre paso a paso cómo aplicar estilos CSS a un botón de call to action, ajustar tipografía, agregar íconos con background image y alinear elementos con vertical-align, todo dentro del flujo de maquetación de una sección de planes.
¿Cómo dar estilos al botón de call to action?
El proceso comienza tomando la clase asignada al botón en el HTML y llevándola a la hoja de estilos. Los estilos se dividen en dos partes: primero el botón como tal y después el span que contiene el ícono [1:00].
Para el botón se definen las siguientes propiedades:
El borde por defecto del botón se elimina y se reemplaza con un border de 2 píxeles, tipo solid, usando una variable CSS llamada bitcoin-orange [2:28]. Para redondear las esquinas se aplica un border-radius de 4 píxeles, logrando un aspecto más suave y consistente con el diseño original [2:50].
¿Qué ajustes de tipografía necesita el botón?
Una vez definida la estructura visual, el siguiente paso es trabajar la fuente interna del botón. Se configuran tres propiedades clave [3:08]:
El color del texto se asigna mediante la variable CSS black, verificando con las dev tools del navegador que coincida con el valor esperado [3:30].
Un detalle importante surge al inspeccionar la fuente: el botón no estaba tomando la font-family definida en el HTML (DM Sans), sino que usaba Arial como fallback. La solución consiste en declarar explícitamente la propiedad font-family dentro de los estilos del botón, copiando la misma línea usada en el documento principal [3:55]. Esto sucede porque los elementos <button> en HTML no heredan automáticamente la fuente del documento; es necesario forzar esa herencia.
¿Cómo agregar un ícono SVG dentro del botón?
Para el ícono de flecha junto al texto, se trabaja el span que vive dentro del botón. Las propiedades aplicadas son [4:30]:
inline-block para que el elemento sea visible y respete dimensiones.url() apuntando a la ruta del archivo SVG, en este caso assets/iconos/orange-right-arrow.svg.Al guardar y revisar en el navegador, el ícono aparece correctamente [5:08]. Sin embargo, queda un problema de alineación: el texto y el ícono no comparten la misma línea base. Para resolverlo se utiliza la propiedad vertical-align con el valor text-bottom, que alinea el borde inferior del ícono con la base del texto [5:30].
¿Qué pasa con el ancho de la tarjeta?
Al comparar la tarjeta terminada con el diseño de referencia, se nota que el tamaño no coincide del todo. El width configurado en 70% se evalúa contra un posible 65%, pero se decide mantenerlo en 70% porque al agregar las otras dos tarjetas el espacio se redistribuirá naturalmente [5:52].
La tarjeta también maneja límites con min-width de 230 píxeles y max-width de 300 píxeles, asegurando que no se deforme en pantallas muy pequeñas ni muy grandes.
¿Cuál es el reto para las tarjetas restantes?
Con una tarjeta completamente estilizada, el reto es replicar el proceso para las dos tarjetas faltantes. Esto implica posibles conflictos en CSS, ya que las dimensiones actuales están pensadas para una sola tarjeta [6:22]. Las tarjetas adicionales quedarán en disposición vertical inicialmente, y en la siguiente sesión se trabajará el contenedor con un slide horizontal para organizarlas de forma adecuada.
¿Ya terminaste tus dos tarjetas adicionales? Comparte cómo resolviste los conflictos de dimensiones en los comentarios.
Juan Jose Arcani
Joel Dominguez Merino
Luis Gerardo Lopez Perez
Marianna Guedez
Joel Dominguez Merino
Marianna Guedez
Juan Diego Loaiza Martinez
Stalin Badillo
Juan Diego Loaiza Martinez
David Aguilera
Victor Andres Castillo Zambrano
Michael Steven Viloria García
Obed Paz
Iván Raúl Mesco Benavente
Julián Ramírez
Kazumi UwU
Kazumi UwU
Cristian Acalo
Israel Gutierrez
Joel Dominguez Merino
José Luis Díaz Santos
Joel Dominguez Merino
Jesus Velasco
CRISTIAN BARBERO PÉREZ
Andres Gallego
José Luis Díaz Santos
Stalin Badillo
Ivonne Daniela Cristancho Vargas
John Cardenas
Ivonne Daniela Cristancho Vargas
Iván R. Artiles Bretón
Marina Mansueto
Iván R. Artiles Bretón
Yosef Enmanuel Blandin Rios
Joel Dominguez Merino
Oriol Fernando Palacios Durand
Luis Alberto Ducuara Blandón
Miguel Alejandro Hernández Gómez
Duarte Rosa
Me encanto el estilo de la ultima Card!!! Excelente trabajo Juan :D
Sería "Ilimitado" no?, buen diseño btw
Así a quedado mi sección de planes:
Esta increíble Mariana el verde se me hizo muy parecido a Spotify jaja En cuanto al plan anual me encanto demasiado!!! Como hiciste para colocar esa leyenda de Recomendado en esa forma inclinada?
Hola joel, lo que hice fue jugar con los position, a la etiqueta de mi titulo le coloque position relative para darte un mayor z-indez y asi ubicarlo mas alto que la etiqueda de mi recomendado y al contenedor de mi card le di overflow hidden de esta manera hago que mi recomendado se vea por debajo de mi titulo y que no se salga de la tarjeta, y para darle esa posicion inclinada le coloque un transform rotate con los grados de inclinación que queria.
<..plans__card { overflow: hidden; } plan__card--title { position: relative; z-index: 3; } .recommended { position: absolute; width: 14rem; top: 30px; right: -32px; transform: rotate(45deg); } >
Muy buena clase, así quedo el mío
Te quedó muy bien :)
Gracias hermano
Comparto mi ejercicio
buenisimo
prefiero el plan anual porque me sale $100 menos que el de 4 años xD y deberia ser al contrario, pero muy bueno el estilo que les diste aunque el color del borde del boton se pierde con el azul :D
letter-spacing: -0.8px;
Muchas gracias!!
Emocionado de pasar a la clase siguiente :D.
Te quedo RE Bien UwU , tengo que decir que tienes talento :3
Solo te falta arreglar lo de el Pago por que olvidaste cambiar por ejemplo Pago Semanal , Pago Mensual y Pago Anual o Pago Premium
🦄Amé los colores jaja
a mi me encantaron tambien, como le hiciste para proponerlos ____????
Adicionalmente al botón le añadí estas 2 propiedades:
cursor: pointer; outline: none;
Primero con cursor:pointer hacemos que aparezca la manita cuando estemos sobre el botón. Y con outline:none se elimine ese borde negro al hacer clic sobre el botón.
Gracias @Joel ;)
No hay de que @josluis :D
En vez de hacerlo con un background en un span use el pseudo elemento ::after para colocar la flecha.
.plan-card--ca { width: 150px; height: 48px; font-size: 1.4rem; font-weight: var(--bold); line-height: 1.8rem; color: var(--black); font-family: var(--font-sans); background-color: #faf8f7; border: 2px solid var(--bitcoin-orange); border-radius: 4px; } .plan-card--ca::after { content: url(/assets/icon/arrow_right_orange.svg); max-width: 20px; max-height: 20px; vertical-align: text-bottom; /* border: 1px solid red; */ display: inline-block; }
Simplemente replicando el article dos veces y borrando el recommended no me surgió ningún problema
En .plan-card--ca añadí el cursor: pointer para que cambie el cursos al pasar el mouse por encima
Buena idea :)
Así se quedaron mis tarjetas de planes :) Por si alguien quiere cambiar de color a sus flechas y no sabe como, puede intentar usar la propiedad filter en el ícono. Yo la usé así:
.plans-container__card:last-child button > span{ filter: hue-rotate(180deg); }
Alguien por favor me puede explicar como funciona el vertical-align: text-bottom;
Hola, Daniela
En este enlace puedes ver que hace la propiedades vertical-align junto a todos sus respectivos valores :D
Gracias
Tomando en cuenta que en el card de Recomendado pone que el usuario se ahorra $129 comparado con el plan mensual... tiré números pero daba $10,75, así que lo llevé hasta 11 para no batallar. lol La idea de los estilos (azul para el básico y negro para el otro) la tomé del aporte de Juan Jose Arcani; me pareció muy buena. Así que créditos para él.
$129 de ahorro es comparado con pagar mensualmente durante 1 año. Entonces en un año pagando por mes gastaría en total $129+$99=$228. Si dividimos $228 en 12 meses tenemos que el valor del plan mensual es $19
¡Tienes razón! Ahora no entiendo qué clase de cálculo hice hace 3 meses. 🙆♂️
No le cambie los colores realmente para no perder un poco el estilo dado. Pero viendo el de mis compañeros les quedaron increíbles!!!! Yo les comparto el resultado del mío :D
Ahí va mi modelo
Reto Cumplido!!!
Luego de un rato mirando mi HTML porque no quedaba bien el cuadro, después de descubrir que me comí un div todo quedó como iluminación.
Modifique el orden para poner el básico al extremo, el recomendado en el centro y el más caro al otro extremo.
Subí la fuente de 1.2 rem a 1.4rem porque a mi parecer era muy chica y quedaba muy lejana. Por lo demás emplee la misma paleta de colores que la colocada dentro del proyecto.
¡Tarjetas listas!