Saltar al contenido
Curso de CSS
Todos los cursos Ir al ejercicio →

Color, unidades y tipografía

  • ⏱ 40 minutos
  • 📶 Nivel: principiante
  • 🧩 Incluye ejercicio

💡 🎯 Al terminar esta lección podrás…

  • Elegir y ajustar colores con hsl() y transparencia.
  • Usar la unidad correcta en cada caso (rem, px, %, vw, ch).
  • Dar un aspecto cómodo y legible al texto.
  • Cargar fuentes web con buen rendimiento y crear tamaños fluidos con clamp().

1.Formas de escribir un color

CSS ofrece varias notaciones para el mismo color. Todas funcionan; cada una es cómoda para algo distinto:

FormatoEjemploCuándo usarlo
Nombrecrimson, teal, tomatoPruebas rápidas (hay 140 nombres)
Hexadecimal#4f46e5, #fff, #4f46e580El más común; lo dan las herramientas de diseño
RGBrgb(79 70 229), rgb(79 70 229 / 50%)Cuando necesitas transparencia
HSLhsl(243 75% 59%)El más fácil de ajustar a mano: tono, saturación, luminosidad
currentColorborder: 1px solid currentColorReutiliza el color del texto del elemento
transparentbackground: transparentSin color

HSL merece atención: el primer número es el tono (0–360, la rueda de colores), el segundo la saturación (0% gris, 100% vivo) y el tercero la luminosidad (0% negro, 100% blanco). Para hacer un tono más claro u oscuro solo cambias el último número.

✏️ Experimenta con HSL

⚠️ Importante · Contraste

Un color bonito no sirve si el texto no se lee. Recuerda el mínimo de contraste: 4.5 : 1 para texto normal. Puedes comprobarlo con el comprobador de la lección de accesibilidad.

2.Unidades: absolutas y relativas

UnidadRelativa a…Úsala para…
pxNada (píxel de pantalla)Bordes finos, sombras, detalles que no deben escalar
remTamaño de letra de la raíz (html, normalmente 16px)Tamaños de texto y espacios: respeta la preferencia de la persona
emTamaño de letra del propio elementoEspacios que deben crecer con el texto (botones)
%La propiedad del padreAnchos fluidos
vw / vh1% del ancho / alto de la ventanaSecciones a pantalla completa, texto fluido
dvhAlto visible real en móvil (descuenta la barra del navegador)Mejor que vh en celulares
chAncho del carácter «0»Limitar el ancho de un texto a ~65 caracteres
frFracción del espacio libre (Grid)Columnas flexibles

💡 Consejo · La regla práctica

Texto y espacios: rem. Bordes y sombras: px. Anchos fluidos: %, fr o min()/clamp(). Si alguien aumenta el tamaño de letra de su navegador, solo lo que está en rem se agranda.

✏️ rem frente a px

Cambia el font-size de html y observa qué textos se mueven. Esto es lo que ocurre cuando una persona ajusta el tamaño de texto en su navegador.

3.Tipografía: las propiedades que importan

PropiedadQué controlaValores útiles
font-familyLa familia de letra (con alternativas)system-ui, sans-serif
font-sizeTamaño1rem, 1.25rem, clamp(1rem, 2.5vw, 1.5rem)
font-weightGrosor400 (normal), 600, 700 (negrita)
font-styleCursivaitalic, normal
line-heightAltura de línea1.6 sin unidad para texto corrido
letter-spacingEspacio entre letras0.05em en mayúsculas, -0.02em en titulares grandes
text-alignAlineaciónleft, center, right, justify
text-transformMayúsculas y minúsculasuppercase, capitalize
text-decorationSubrayado, tachadonone, underline, line-through
text-wrapReparto de líneasbalance en titulares, pretty en párrafos
white-spaceSaltos y espaciosnowrap, pre-wrap

Pilas de fuentes (font-family)

Escribes varias familias, de preferida a alternativa. El navegador usa la primera que tenga. Termina siempre con una familia genérica: serif, sans-serif, monospace, system-ui.

Tres pilas útiles
body { font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }
h1   { font-family: Georgia, "Times New Roman", serif; }
code { font-family: ui-monospace, "Cascadia Code", Consolas, monospace; }

📌 Nota · Las comillas

Los nombres de fuente con espacios ("Segoe UI") van entre comillas. Los de una palabra (Georgia) no las necesitan.

4.Un texto cómodo de leer

Casi todo el contenido de un sitio es texto, y pequeñas decisiones lo cambian todo. Estos números funcionan casi siempre:

AjusteValor recomendadoPor qué
Tamaño de texto corrido1rem a 1.125rem (16–18px)Más pequeño cansa; en móvil es el mínimo cómodo
line-height del párrafo1.5 a 1.7Da aire entre líneas
line-height de títulos1.1 a 1.3Los títulos grandes con mucha altura se ven sueltos
Ancho del textomax-width: 65ch (45–75 caracteres)Líneas muy largas pierden al lector
Contraste4.5:1 como mínimoAccesibilidad
JerarquíaEscala de tamaños: 1, 1.25, 1.5, 2, 2.5 remTamaños consistentes y proporcionados
✏️ Antes y después

5.Fuentes web: Google Fonts y @font-face

Las fuentes del sistema (system-ui, Georgia) son rápidas y siempre disponibles. Si quieres otra tipografía, hay dos caminos:

Opción 1: Google Fonts

  1. Elige una fuente en fonts.google.com y selecciona solo los pesos que vas a usar (cada peso es un archivo más).
  2. Copia las líneas <link> en el <head> de tu HTML.
  3. Úsala en tu CSS con una alternativa por si falla la descarga.
En el head del HTML
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap">
En tu CSS
body { font-family: "Inter", system-ui, sans-serif; }

Opción 2: @font-face (fuente propia)

Cargar un archivo de fuente
@font-face {
  font-family: "MiFuente";
  src: url("../fonts/mifuente.woff2") format("woff2");
  font-weight: 400;
  font-display: swap;
}

body { font-family: "MiFuente", system-ui, sans-serif; }

⚠️ Importante · Rendimiento y privacidad

Cada fuente web es una descarga más y retrasa la página. Usa máximo dos familias y pocos pesos. Además, descargar desde Google puede compartir datos de los visitantes con un tercero: si te importa, descarga los archivos y alójalos tú con @font-face.

6.Texto que se adapta: clamp()

Con la función clamp(mínimo, ideal, máximo) un tamaño crece con la pantalla pero nunca baja del mínimo ni sube del máximo:

Un título fluido
h1 { font-size: clamp(1.75rem, 1rem + 3vw, 3rem); }

Lee: «intenta 1rem + 3vw, pero no menos de 1.75rem ni más de 3rem». En una pantalla angosta el título vale 1.75rem; en una grande, 3rem; en medio crece suave. Verás más funciones de este tipo en la lección 11.

✏️ Título fluido

7.Errores frecuentes

📒 Apuntes para llevar

  • Los colores se escriben con nombre, hexadecimal, rgb() o hsl() (el más fácil de ajustar); / 50% añade transparencia.
  • rem para texto y espacios (respeta la preferencia de la persona), px para bordes finos, %/fr/clamp() para anchos.
  • vw, vh y dvh dependen de la ventana; ch limita el ancho de un texto en caracteres.
  • font-family es una pila terminada en una familia genérica.
  • Texto cómodo: 16–18px, line-height: 1.5–1.7 (sin unidad), max-width: 65ch y buen contraste.
  • text-wrap: balance mejora los titulares.
  • Google Fonts: pocos pesos y display=swap; o @font-face con woff2 y font-display: swap.
  • clamp(min, ideal, max) crea tamaños fluidos sin media queries.

8.Glosario

TérminoSignificado
HSLNotación de color por tono, saturación y luminosidad.
remUnidad relativa al tamaño de letra de la raíz (html).
emUnidad relativa al tamaño de letra del propio elemento.
chUnidad igual al ancho del carácter «0»; útil para limitar anchos de texto.
Familia genéricaAlternativa final de una pila: serif, sans-serif, monospace…
font-displayDefine cómo se muestra el texto mientras carga una fuente web.
clamp()Función que limita un valor entre un mínimo y un máximo.
Fuente variableArchivo de fuente que contiene todos los pesos y anchos.

🧠 Comprueba lo aprendido

Elige una respuesta en cada pregunta. Verás al instante si acertaste y por qué.

¿Qué unidad es mejor para tamaños de texto, pensando en accesibilidad?

¿Cuál es la forma más fácil de obtener una versión más clara de un color?

¿Cuál es la manera correcta de escribir un interlineado de 1.6 veces el texto?

¿Qué hace clamp(1rem, 4vw, 2rem)?

¿Para qué sirve font-display: swap?

Tu progreso se guarda en este navegador y se refleja en el índice del curso.

💡 🚀 ¡Ahora te toca!

La práctica fija lo aprendido. Pasa al ejercicio de esta lección.

Ir al ejercicio