01 · Entiende
HTML primero
Elige elementos por su significado y agrega clases para darles estilo.
Guía práctica · aprende construyendo
No es solo una galería de componentes: aquí vas a resolver pequeños retos, probar los cambios y construir una página desde cero.
01 · Entiende
Elige elementos por su significado y agrega clases para darles estilo.
02 · Combina
Combina tipografía, color, espacio y layout sin escribir cada regla desde cero.
03 · Construye
Termina con una landing page sencilla inspirada en los ejemplos del proyecto.
Tu recorrido
En cada etapa primero entiendes una idea, luego la aplicas y al final compruebas lo aprendido. Intenta el reto antes de mirar el ejemplo de código.
Tu avance en esta sesión: 0 de 6 retos completados
Paso 1 · prepara
Conecta el framework y verifica que el navegador lo cargó.
Paso 2 · practica
Decide qué elemento HTML expresa mejor cada contenido.
Paso 3 · experimenta
Prueba combinaciones y observa cómo se transforman.
Paso 4 · organiza
Elige cómo deben acomodarse los elementos de la página.
Paso 5 · compón
Selecciona componentes según lo que necesite hacer tu sitio.
Paso 6 · construye
Usa tus decisiones para terminar una página de principio a fin.
Lección 01 · preparación
El navegador lee el CSS para presentar la página. El JavaScript activa interacciones como el menú móvil y los sliders. Puedes usar el CDN oficial o descargar los archivos del proyecto.
Enlaza los archivos publicados. No necesitas copiarlos a tu carpeta.
https://trummerwork-project.web.app/style.csshttps://trummerwork-project.web.app/script.jsDescarga el framework y mantén rutas relativas correctas desde tu HTML.
Descargar TrummerWorkPrimero intenta · prepara tu archivo
index.html.<!doctype html>
<html lang="es">
<head>
<!-- Codificación y adaptación al ancho del dispositivo -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Mi primera página</title>
<!-- Hoja de estilos del framework -->
<link rel="stylesheet"
href="https://trummerwork-project.web.app/style.css">
</head>
<body>
<!-- Tu contenido comienza aquí -->
<h1 class="titulo titulo-grande texto-primario">Hola, mundo</h1>
<p class="texto texto-mediano">Mi primera página con TrummerWork.</p>
<!-- Necesario para componentes interactivos -->
<script src="https://trummerwork-project.web.app/script.js"></script>
</body>
</html>
<!-- En el head: ajusta la ruta a donde guardaste el CSS -->
<link rel="stylesheet" href="Example Pags/style.css">
<!-- Antes de cerrar body: ajusta la ruta al JavaScript -->
<script src="Example Pags/script.js"></script>
¿Qué archivo necesito?
style.css contiene estilos, utilidades y componentes. script.js es necesario para los sliders y otros comportamientos interactivos; los estilos básicos no dependen de JavaScript.
Lección 02 · los fundamentos
El elemento HTML expresa qué es el contenido; las clases agregan presentación y distribución. Puedes combinar varias clases en un solo atributo, separadas por espacios.
Primero intenta · estructura una idea
Imagina una página para una cafetería. Anota qué elemento usarías para su nombre y cuál para describirla. Luego decide qué clase cambia el tamaño y cuál cambia el color.
Este párrafo combina clases para el tamaño y el color del texto.
Continuar aprendiendo<!-- h2 conserva la jerarquía de encabezados -->
<h2 class="titulo titulo-mediano texto-primario">
Un mensaje que destaca
</h2>
<!-- Las clases se separan con espacios -->
<p class="texto texto-grande texto-secundario">
Este párrafo combina tamaño y color.
</p>
<!-- Un enlace que parece botón sigue siendo navegación -->
<a class="boton boton-primario texto-blanco" href="#componentes">
Continuar aprendiendo
</a>
h1 para el título principal, p para un párrafo y button para una acción— y luego ajusta su apariencia.
Lección 03 · presentación
Usa elementos de encabezado en orden y añade las clases de TrummerWork para definir tamaño, familia tipográfica, alineación y énfasis.
Subtítulo para introducir una idea.
Un párrafo de tamaño normal.
Una nota o metadato en menor tamaño.
Inter · Texto para interfaces
Lato · Texto para interfaces
Merriweather · Texto editorial
Poppins · Títulos expresivos
Bebas Neue · Impacto visual
Alineado al inicio
Alineado al centro
Alineado al final
Negrita para destacar.
Cursiva para dar énfasis.
Texto en mayúsculas.
Texto subrayado.
Texto con sombra.
<!-- Un h1 para el tema principal de la página -->
<h1 class="titulo titulo-largo texto-primario">Título principal</h1>
<!-- Encabezados secundarios mantienen el orden semántico -->
<h2 class="titulo titulo-mediano">Título de una sección</h2>
<h3 class="titulo titulo-pequeño">Título de un bloque</h3>
<!-- El texto puede combinar tamaño, familia y color -->
<p class="texto texto-grande texto-inter texto-secundario">
Una idea <strong class="texto-negrita">importante</strong>.
</p>
<!-- Alineación y transformación son clases independientes -->
<p class="texto-centro texto-mayusculas">Aviso centrado</p>
Texto blanco sobre fondo primario
Texto blanco sobre fondo secundario
Texto negro sobre gris
Prueba utilidades como texto-primario, texto-secundario, texto-negro, texto-blanco, fondo-primario, fondo-secundario y las variantes texto-resaltado-*.
Laboratorio · cambia el estilo
Antes de leer el código siguiente, prueba los controles. Cada menú añade una clase al mismo texto: una controla el tamaño y otra el color. Fíjate en que el contenido no cambia, solo su presentación.
Una frase de ejemplo que tú puedes transformar.
Clases aplicadas: texto texto-mediano texto-primario
<!-- Color de texto sin cambiar su fondo -->
<p class="texto-primario">Un título o enlace importante</p>
<!-- Combina un fondo con texto de buen contraste -->
<div class="fondo-azul texto-blanco padding-mediano">
Texto claro sobre una superficie azul
</div>
<!-- Resalta solo la parte importante del párrafo -->
<p>Revisa esta <span class="texto-resaltado-amarillo">idea clave</span>.</p>
Comprueba el contraste
Una combinación puede ser difícil de leer aunque sus colores sean bonitos. Verifica el contraste especialmente en texto pequeño y botones.
Lección 04 · distribución
Usa un contenedor para el ancho general, Grid para grupos bidimensionales y Flexbox para alinear elementos en una fila o columna.
contenedor centra el contenido y controla su ancho. Prueba contenedor-completo, contenedor-grande, contenedor-mediano y contenedor-pequeño según el espacio que necesitas.
Divide una meta en acciones.
Combina las clases necesarias.
Prueba en distintos anchos.
<!-- El padre define el grid, las columnas y la separación -->
<section class="display-grid columna-3 espacio-entre-2">
<!-- Cada hijo ocupa una celda de la cuadrícula -->
<article class="tarjetas fondo-blanco">
<div class="contenedor-cuerpo-tarjeta">
<h2 class="titulo titulo-pequeño">Planifica</h2>
<p>Divide una meta en acciones.</p>
</div>
</article>
<!-- Repite el patrón para los otros bloques -->
<article class="tarjetas fondo-blanco">
<div class="contenedor-cuerpo-tarjeta">
<h2 class="titulo titulo-pequeño">Construye</h2>
<p>Combina las clases necesarias.</p>
</div>
</article>
<article class="tarjetas fondo-blanco">
<div class="contenedor-cuerpo-tarjeta">
<h2 class="titulo titulo-pequeño">Revisa</h2>
<p>Prueba en distintos anchos.</p>
</div>
</article>
</section>
<!-- Activa Flexbox en el padre y alinea sus hijos -->
<div class="display-flex fila centro-vertical espacio-entre-2">
<strong>Nombre del equipo</strong>
<a class="boton boton-primario texto-blanco" href="#proyecto">
Ver proyecto
</a>
</div>
Laboratorio · cambia la cuadrícula
Un catálogo tiene dos tipos de contenido y una pantalla grande puede mostrar ambos en paralelo. Cambia las columnas y observa qué controla la clase del padre.
Descripción breve.
Descripción breve.
Descripción breve.
Observa la clase del contenedor: columna-3. La misma clase en cada tarjeta no organizaría la cuadrícula.
Combina clases como margen-abajo, padding-mediano, borde y borde-redondo-mediano.
Las cuadrículas del framework se ajustan mediante media queries. Revisa el resultado en escritorio, tablet y móvil.
Breakpoints usados por el framework: 1024, 900, 768, 640 y 576 píxeles.
Lección 05 · piezas reutilizables
Los componentes son estructuras HTML con clases que trabajan juntas. Para aprender a elegirlos, parte de la necesidad de la persona que usará el sitio; no empieces por buscar una clase al azar.
La estructura enlaza un control de menú con la lista de navegación. El script cierra el menú móvil al seleccionar un enlace.
<!-- El header permite que la navbar sticky se mantenga visible -->
<header class="navbar-contenedor-seguimiento">
<nav class="navbar navbar-blue navbar-seguimiento"
aria-label="Navegación principal">
<!-- Marca o nombre del sitio -->
<a class="navbar-brand" href="#inicio">Mi sitio</a>
<!-- Control móvil asociado a la etiqueta mediante id y for -->
<input type="checkbox" id="menu"
class="navbar-toggle" aria-controls="enlaces">
<label class="navbar-toggle-label" for="menu"
aria-label="Abrir o cerrar navegación">
<span class="navbar-toggle-icon"></span>
</label>
<!-- Enlaces que aparecen en la barra y el menú móvil -->
<ul class="navbar-menu" id="enlaces">
<li><a class="navbar-link" href="#producto">Producto</a></li>
<li><a class="navbar-link" href="#contacto">Contacto</a></li>
</ul>
</nav>
</header>
Usa un botón para una acción y un enlace para navegar. Las variantes comparten la misma estructura básica.
Combina tarjetas, una imagen opcional y contenedor-cuerpo-tarjeta.
<!-- article agrupa una pieza de contenido independiente -->
<article class="tarjetas fondo-blanco">
<!-- Imagen opcional con texto alternativo descriptivo -->
<img class="tarjetas-imagen" src="proyecto.jpg"
alt="Personas trabajando en un proyecto">
<!-- Este contenedor aplica espacio al contenido de la tarjeta -->
<div class="contenedor-cuerpo-tarjeta">
<p class="texto texto-pequeño texto-primario">PROYECTO</p>
<h2 class="titulo titulo-pequeño">Una idea en marcha</h2>
<p>Describe el proyecto en una frase corta.</p>
<a class="link" href="#detalles">Leer más</a>
</div>
</article>
Conecta cada label con el campo correspondiente usando for e id. Las clases dan estilo, pero no envían los datos por sí solas.
Vista previa
Solo es visual
Para enviar un formulario necesitas conectar un servicio o escribir la lógica que procese los datos. No publiques información privada en esta demostración.
<!-- El formulario agrupa etiquetas y campos relacionados -->
<form class="formulario-simple fondo-blanco">
<!-- for debe coincidir con el id del campo -->
<label class="labeltxt" for="correo">Correo</label>
<input class="form-input" id="correo" type="email"
autocomplete="email" placeholder="tu@ejemplo.com">
<label class="labeltxt" for="mensaje">Mensaje</label>
<textarea class="message-input" id="mensaje"
placeholder="Escribe tu mensaje"></textarea>
<!-- El servidor o servicio debe procesar el envío -->
<button class="send-boton" type="submit">Enviar</button>
</form>
Consejo de diseño
Usa un aviso para una recomendación importante; usa una cita para destacar una nota o fragmento breve.
“Una página clara ayuda a que cada idea encuentre su lugar.”
<!-- Aviso con título y mensaje -->
<aside class="aviso fondo-azul texto-blanco">
<p class="titulo-aviso">Consejo de diseño</p>
<p>Destaca una recomendación que el usuario debe notar.</p>
</aside>
<!-- Cita para una nota o fragmento breve -->
<blockquote class="cita cita-pequeña">
Una idea destacada para recordar.
</blockquote>
Las diapositivas requieren una pista común. La variante con indicadores genera los controles de puntos automáticamente. El script del framework activa los controles y la transición.
<!-- Hero define la presentación; indicadores controlan la navegación -->
<section class="slider slider-con-indicadores slider-hero"
aria-label="Presentación del proyecto">
<!-- El script desplaza esta pista entre diapositivas -->
<div class="slider-pista">
<!-- Una diapositiva contiene imagen y texto -->
<article class="slider-diapositiva">
<img src="equipo.jpg" alt="Equipo colaborando en una mesa">
<!-- Combina una apariencia y una posición para el texto -->
<div class="slider-texto slider-texto-oscuro slider-texto-izquierda-abajo">
<h1 class="titulo-largo texto-blanco">Empieza con una idea.</h1>
<p class="texto-grande texto-blanco">Descripción breve.</p>
<a class="boton boton-primario texto-blanco" href="#contenido">
Conocer más
</a>
</div>
</article>
<!-- Duplica article para añadir otra diapositiva -->
<article class="slider-diapositiva">
<img src="proyecto.jpg" alt="Equipo revisando un proyecto">
<div class="slider-texto slider-texto-vidrio slider-texto-centro">
<h2 class="titulo-grande texto-blanco">Otra idea.</h2>
</div>
</article>
</div>
<!-- Controles anterior y siguiente -->
<button class="slider-anterior" type="button"
aria-label="Diapositiva anterior">‹</button>
<button class="slider-siguiente" type="button"
aria-label="Siguiente diapositiva">›</button>
<!-- El script añade un indicador por diapositiva -->
<div class="slider-indicadores"></div>
</section>
También existen slider-basico, slider-fundido, slider-zoom y slider-compacto. Encuentra estructuras y variantes adicionales en la documentación de sliders.
Tu reto · elige el componente adecuado
Escribe en una hoja qué componente usarías para cada necesidad antes de revisar la respuesta:
Lección 06 · práctica final
Ahora aplicarás las decisiones de las lecciones anteriores a una página para una idea propia. No empieces copiando el ejemplo: primero organiza tu contenido y construye una versión sencilla en tu editor.
h1 y encabezados en orden?Tu entrega
Construye al menos estas cuatro partes en tu archivo: una cabecera con navegación, una presentación con llamada a la acción, tres tarjetas de beneficios y un footer. Cuando funcione, cambia el ancho de la pantalla y corrige lo que se rompa.
Cuando ya tengas un primer intento, compara tu orden de secciones con este ejemplo y modifica el contenido para que represente tu idea.
Una idea para el futuro
Una descripción breve y una acción clara para empezar.
Descubrir beneficiosUna promesa clara.
Beneficios concretos.
Una acción para continuar.
<!-- Navbar: identidad y enlaces a secciones -->
<header class="navbar-contenedor-seguimiento">
<nav class="navbar navbar-green navbar-seguimiento"
aria-label="Navegación principal">
<a class="navbar-brand" href="#inicio">VERDE</a>
<ul class="navbar-menu">
<li><a class="navbar-link" href="#beneficios">Beneficios</a></li>
<li><a class="navbar-link" href="#contacto">Contacto</a></li>
</ul>
</nav>
</header>
<!-- Main contiene el tema principal de la página -->
<main id="inicio">
<!-- Hero: propuesta principal y llamada a la acción -->
<section class="fondo-secundario texto-blanco padding-grande texto-centro">
<p class="texto texto-mayusculas texto-blanco">Una idea para el futuro</p>
<h1 class="titulo titulo-grande texto-blanco">Cultiva algo mejor.</h1>
<p class="texto texto-grande texto-blanco">Descripción de tu proyecto.</p>
<a class="boton fondo-blanco texto-primario" href="#beneficios">
Descubrir beneficios
</a>
</section>
<!-- Grid: presenta beneficios en tarjetas -->
<section id="beneficios" class="contenedor display-grid columna-3 espacio-entre-2">
<article class="tarjetas fondo-blanco">
<div class="contenedor-cuerpo-tarjeta">
<h2 class="titulo titulo-pequeño">Simple</h2>
<p>Un beneficio concreto.</p>
</div>
</article>
<!-- Duplica tarjetas para más beneficios -->
</section>
</main>
<!-- Footer: marca, navegación y créditos -->
<footer class="footer">
<div class="footer-contenido">
<div class="footer-superior">
<section class="footer-marca">
<h2>VERDE</h2>
<p>Descripción corta del proyecto.</p>
</section>
<nav class="footer-columna" aria-label="Enlaces">
<h2>Explorar</h2>
<a href="#beneficios">Beneficios</a>
</nav>
</div>
<div class="footer-inferior">
<p>© Mi proyecto</p>
<a href="#inicio">Volver arriba</a>
</div>
</div>
</footer>
Siguiente paso
Abre Nexo para ver otro ejemplo completo del framework y usa la documentación como referencia de clases.
Sigue experimentando: reemplaza el contenido, prueba las combinaciones de clases y revisa cómo cambia cada componente en distintos tamaños de pantalla.