Framework CSS · guía oficial

Diseña paso a paso con TrummerWork.

Aprende a construir páginas con clases CSS descriptivas: desde el primer párrafo hasta componentes interactivos y layouts completos.

CSS en español

Combina nombres fáciles de leer con elementos HTML semánticos.

Aprende construyendo

Cada sección explica las clases con ejemplos que puedes adaptar.

Consulta rápida

Filtra las clases disponibles directamente desde la hoja CSS.

Una nota antes de empezar: Gracias por usar TrummerWork. Estamos en desarrollo, pero ya puedes comenzar a construir con nuestras clases CSS. Si tienes alguna pregunta o comentario, no dudes en escribirnos. Página de contacto

01 · Primeros pasos

Instalación local

En este proyecto el framework se usa como archivos estáticos. Descarga los archivos y copia style.css y, si vas a utilizar componentes interactivos, script.js a tu proyecto (La carpeta donde tengas tu Index.html).

Dos formas de incluir el framework

Puedes enlazar los archivos locales de tu proyecto o cargarlos desde el CDN oficial. En ambos casos, mantén las rutas correctas.

Opción 1: usar el CDN

Agrega la hoja CSS en el <head> y el script antes de cerrar </body>. La hoja proporciona estilos y utilidades; el script activa el comportamiento de los componentes interactivos como navbar y sliders.

HTML · estructura completa usando CDN
<!doctype html>
<html lang="es">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="description" content="Mi sitio creado con TrummerWork">
  <link rel="stylesheet" href="https://trummerwork-project.web.app/style.css">
  <title>Mi proyecto</title>
</head>
<body class="texto-inter fondo-blancolight">
  <h1 class="titulo titulo-grande texto-primario">Hola, TrummerWork</h1>
  <p class="texto texto-mediano">Mi primera página con el framework.</p>
  <script src="https://trummerwork-project.web.app/script.js"></script>
</body>
</html>

Opción 2: archivos locales

Si descargaste los archivos y los guardaste junto a tu HTML, cambia las rutas del ejemplo por estas referencias locales:

HTML · referencias locales
<link rel="stylesheet" href="style.css">
<script src="script.js"></script>

¿Qué archivo necesito?

  • style.css: estilos base, variables, utilidades, componentes y reglas responsive.
  • script.js: lógica de los sliders y cierre del menú responsive. Inclúyelo cuando uses esos componentes interactivos.
  • Coloca tu hoja propia después de TrummerWork si necesitas sobreescribir algún estilo.

02 · Cómo funciona

Fundamentos de las clases

Una clase CSS se escribe en el atributo class. Puedes combinar varias clases separadas por espacios: por ejemplo, una determina el tamaño, otra el color y otra la alineación.

Este párrafo combina tres utilidades.

HTML · combinación de utilidades
<p class="texto-centro texto-primario texto-negrita texto-grande">
  Este párrafo combina tres utilidades.
</p>
Buena práctica: conserva el elemento adecuado para el contenido. Usa encabezados para títulos, enlaces para navegar y botones para acciones; las clases modifican su presentación, no su significado.

03 · Tipografía

Estilizar títulos y texto

TrummerWork combina los elementos de encabezado HTML con clases de tamaño, familia tipográfica, color, alineación y énfasis. Elige la jerarquía semántica por el contenido y después añade las clases visuales.

Título largo

Título grande

Título mediano

Título pequeño

Subtítulo para introducir una sección.

Párrafo de tamaño normal con énfasis en negrita y cursiva.

Texto pequeño para notas y metadatos.

HTML · jerarquía tipográfica
<h1 class="titulo titulo-largo texto-primario">Título largo</h1>
<h2 class="titulo titulo-grande">Título grande</h2>
<h3 class="titulo titulo-mediano">Título mediano</h3>
<h4 class="titulo titulo-pequeño">Título pequeño</h4>
<p class="subtitulo">Subtítulo para una sección.</p>
<p class="texto texto-mediano">
  Texto <span class="texto-negrita">destacado</span>.
</p>

Tamaños de texto

Texto muy pequeño · texto-muy-pequeño

Texto pequeño · texto-pequeño

Texto mediano · texto-mediano

Texto grande · texto-grande

Texto muy grande · texto-muy-grande

Familias tipográficas

Inter · Ideas que se convierten en proyectos.

Lato · Ideas que se convierten en proyectos.

Merriweather · Ideas que se convierten en proyectos.

Poppins · Ideas que se convierten en proyectos.

Bebas Neue · Ideas que se convierten en proyectos.

texto-inter · texto-lato · texto-Merriweather · texto-poppins · texto-bebasneue

Alineación

Alineado al inicio · texto-inicio

Alineado al centro · texto-centro

Alineado al final · texto-final

Transformación y énfasis

Texto en mayúsculas · texto-mayusculas

TEXTO EN MINÚSCULAS · texto-minusculas

texto capitalizado de ejemplo · texto-capitalizado

Texto subrayado · texto-subrayado

Texto en negrita · texto-negrita

Texto en cursiva · texto-cursiva

Texto con sombra · texto-sombra

Responsive: la hoja ajusta los encabezados semánticos y las clases de título en anchos de tableta y móvil. No uses un encabezado solo para obtener un tamaño; respeta el orden lógico de h1 a h6.

04 · Color y superficies

Colores de texto, fondos y resaltados

Las clases de color permiten aplicar tonos de marca o colores comunes. Los nombres concretos y sus valores se consultan en el CSS; el contraste depende de la combinación usada y debe verificarse en el contexto final.

fondo-primario

texto-blanco

fondo-secundario

texto-blanco

fondo-gris

texto-negro

HTML · color y resaltado
<p class="texto-primario">Texto del color principal</p>
<div class="fondo-azul texto-blanco padding-mediano">
  Texto claro sobre fondo azul
</div>
<span class="texto-resaltado texto-resaltado-amarillo">
  Una palabra importante
</span>

Clases de color

Colores de texto

La muestra enseña el color de texto aplicado.

    Fondos

    Cada muestra usa la clase de fondo indicada.

      Resaltados de texto

      Aplica texto-resaltado junto con una variante para destacar fragmentos breves:

        05 · Estructura

        Contenedores, Grid y Flexbox

        Contenedores

        Primero decide cuánto espacio necesita tu contenido. Los contenedores controlan el ancho; las clases de altura controlan cuánto mide un bloque.

        Elegir el ancho

        Usa estas clases en el elemento que contiene tu sección:

        • contenedor — centra el contenido y limita su ancho máximo a 1160 px.
        • contenedor-pequeño — ocupa el 25% del ancho disponible.
        • contenedor-mediano — ocupa el 50%.
        • contenedor-grande — ocupa el 75%.
        • contenedor-completo — ocupa el 100% y elimina el ancho máximo.

        Las variantes porcentuales se calculan respecto al elemento padre. En móvil, el CSS adapta las variantes de tamaño para aprovechar el ancho disponible.

        Elegir la altura

        Aplica una de estas clases al bloque cuya altura quieras definir:

        • altura-auto — deja que el contenido determine la altura.
        • altura-completa — ocupa el 100% de la altura del padre.
        • altura-pantalla — ocupa el alto del viewport.
        • altura-mini — 4 rem.
        • altura-pequeña — 8 rem.
        • altura-media — 12 rem.
        • altura-grande — 18 rem.
        • altura-max — 25 rem.

        La altura fija puede recortar o dejar espacio vacío si cambia el contenido. Comprueba el resultado en distintos tamaños de pantalla.

        HTML · sección con ancho limitado
        <main class="contenedor">
          <section>
            <h1 class="titulo titulo-grande">Mi proyecto</h1>
            <p>El contenedor centra esta sección y limita su ancho.</p>
          </section>
        </main>

        Grid

        Grid divide el espacio en filas y columnas. Añade display-grid al padre y una clase de columnas para elegir cómo ordenar a sus hijos.

        Columnas

        • columna-2 — dos columnas.
        • columna-3 — tres columnas.
        • columna-4, columna-5 y columna-6 — cuatro, cinco o seis columnas.

        Filas

        Las clases fila-1 a fila-6 definen de una a seis filas en la cuadrícula.

        Los breakpoints del framework reducen varias cuadrículas en pantallas pequeñas. Revisa la sección responsive para ver esos cambios.

        Columna A

        Un bloque dentro de la cuadrícula.

        Columna B

        Otro bloque con el mismo patrón.

        Columna C

        En pantallas estrechas, la cuadrícula se adapta.

        HTML · grid para tarjetas
        <section class="display-grid columna-3 espacio-entre-2">
          <article class="tarjetas fondo-blanco">
            <div class="contenedor-cuerpo-tarjeta">
              <h2 class="titulo titulo-pequeño">Proyecto A</h2>
              <p>Descripción del proyecto.</p>
            </div>
          </article>
          <!-- Repite el artículo para más elementos -->
        </section>

        Flexbox y alineación

        Flexbox organiza elementos en una fila o columna. Actívalo en el padre y combina las clases que indican dirección, alineación y espacio.

        Dirección y alineación

        • fila / fila-reversa — orden horizontal.
        • columna / columna-reversa — orden vertical.
        • inicio, centro-horizontal y final — alinean sobre el eje principal: horizontal en una fila y vertical en una columna.
        • arriba, centro-vertical y abajo — alinean sobre el eje transversal al de la dirección elegida.
        • centrado — centra en ambos ejes.

        Separación y crecimiento

        • espacio-entre-1 a espacio-entre-6 — aumenta el espacio entre elementos.
        • crecer-1 a crecer-6 — permite que un elemento flex ocupe el espacio sobrante.

        Añade display-flex al padre. Las clases de dirección, alineación y espacio van en ese padre; crecer-* va en el hijo que debe ocupar el espacio sobrante.

        HTML · Flexbox
        <div class="display-flex fila centro-vertical espacio-entre-2">
          <span>Nombre del equipo</span>
          <a class="link" href="#proyectos">Ver proyectos</a>
        </div>

        06 · Ajustes visuales

        Márgenes, padding, bordes y visibilidad

        Márgenes

        El margen crea espacio fuera del elemento, separándolo de lo que lo rodea.

        Área del contenedor

        Este bloque tiene margen vertical.
        Este bloque tiene margen horizontal.
        • margen-arriba y margen-abajo — 10 px en un lado.
        • margen-izquierdo y margen-derecho — 10 px en un lado.
        • margen-vertical y margen-horizontal — espacio en ambos lados del eje.
        • margen-0 — quita el margen.

        Padding

        El padding crea espacio dentro del elemento, entre su contenido y el borde.

        padding-0
        padding-muy-pequeño · 1.25 em
        padding-pequeño · 1.5 em
        padding-mediano · 1.75 em
        padding-grande · 2 em
        padding-muy-grande · 2.5 em

        Las medidas son las definidas en el CSS; revisa la vista previa para comparar el espacio que ocupa cada clase.

        Bordes

        Combina borde con una clase de radio para cambiar la forma de las esquinas.

        borde
        pequeño
        mediano
        grande
        círculo
        • borde — añade un borde sólido.
        • borde-redondo-pequeño, borde-redondo-mediano y borde-redondo-grande — redondean las esquinas con radios crecientes.
        • borde-circulo — aplica un radio de 50%; úsalo en elementos cuadrados para obtener un círculo.

        Visibilidad

        Estas clases controlan si un elemento aparece en la página.

        mostrar · este bloque se ve
        oculto · este bloque no aparece
        ocultar-celular · visible aquí; se oculta en móvil
        • mostrar — presenta el elemento como bloque.
        • oculto — quita el elemento de la presentación.
        • ocultar-celular — lo oculta en el breakpoint móvil definido por el framework.
        Prueba estas utilidades en el ejemplo: el margen cambia el espacio exterior; el padding cambia el espacio interior. El borde y la visibilidad modifican la presentación del mismo elemento.

        07 · Componentes listos

        Componentes de TrummerWork

        Los componentes combinan una estructura HTML reconocible con clases del framework. La página de Nexo es un ejemplo real dentro del proyecto: muestra navbar, hero-slider, tarjetas, formulario y footer trabajando juntos.

        Botones y enlaces

        La clase boton da forma e interacción. Añade boton-primario o boton-secundario para el color. Usa button para ejecutar una acción y un enlace a para navegar. link es un estilo de enlace para acciones secundarias dentro del contenido.

        Enlace de texto
        HTML · acciones
        <button class="boton boton-primario texto-blanco" type="button">
          Guardar
        </button>
        <a class="boton boton-secundario texto-blanco" href="#contacto">
          Contactar
        </a>
        <a class="link" href="#detalles">Ver detalles</a>

        Tarjetas

        tarjetas compone el contenedor. contenedor-cuerpo-tarjeta agrupa el texto y las acciones; tarjetas-imagen y tarjetas-imagen-completas son las variantes de imagen. tarjeta-ancha ofrece otra forma de presentación. Coloca las tarjetas en un grid y prueba su ancho con tu contenido real.

        Cuaderno y notas para planificar un proyecto

        PROYECTO ESCOLAR

        Organiza una idea

        Presenta el objetivo y el siguiente paso de tu equipo.

        Conocer el proyecto

        EN PROGRESO

        Una tarjeta sin imagen

        El cuerpo conserva una estructura clara para el contenido.

        Ver más
        HTML · tarjeta
        <article class="tarjetas fondo-blanco">
          <img class="tarjetas-imagen" src="foto.jpg" alt="Descripción">
          <div class="contenedor-cuerpo-tarjeta">
            <h2 class="titulo titulo-pequeño">Título del proyecto</h2>
            <p class="texto texto-mediano">Descripción breve.</p>
            <a class="link" href="#proyecto">Ver proyecto</a>
          </div>
        </article>

        Formularios

        formulario-simple crea un formulario vertical. Usa labeltxt para las etiquetas, form-input para campos, message-input para texto largo y send-boton para la acción. Asocia cada etiqueta con un id de control.

        Formulario de ejemplo

        HTML · formulario accesible
        <form class="formulario-simple">
          <label class="labeltxt" for="correo">Correo</label>
          <input class="form-input" id="correo" type="email" required>
          <label class="labeltxt" for="mensaje">Mensaje</label>
          <textarea class="message-input" id="mensaje"></textarea>
          <button class="send-boton" type="submit">Enviar</button>
        </form>

        Solo es visual

        Este formulario no envía ni guarda datos. En un proyecto real, implementa el servidor y explica cómo se procesan los datos.

        Avisos, citas y divisores

        aviso y titulo-aviso componen mensajes de estado. Combínalos con fondos y texto del framework. cita presenta una nota o cita; sus tamaños son cita-pequeña, cita-mediana y cita-grande. divisor dibuja un separador.

        Aviso informativo

        Este componente puede destacar una recomendación o estado útil.

        “Un buen diseño ayuda a que el contenido se entienda.”


        HTML · aviso y cita
        <aside class="aviso fondo-azul texto-blanco">
          <p class="titulo-aviso">Aviso informativo</p>
          <p>Texto claro y breve.</p>
        </aside>
        <blockquote class="cita cita-pequeña">
          Una cita o recomendación.
        </blockquote>

        Sliders y carruseles

        El framework incluye cinco variantes con pista y un carrusel compacto con estructura propia. Cada ejemplo de abajo se puede probar y copiar completo. Carga script.js para habilitar el cambio automático, los controles y los indicadores. Las muestras de esta guía reducen su altura y reorganizan las demostraciones de texto en pantallas estrechas para que no desborden las tarjetas.

        Cómo elegir: usa una sola variante de comportamiento (slider-basico, slider-con-indicadores, slider-fundido o slider-zoom). slider-hero es una presentación de portada y se combina con una de ellas. slider-compacto es independiente: no usa la estructura de pista.

        1. Slider básico

        Desplaza las diapositivas horizontalmente y avanza automáticamente. Los botones anterior y siguiente son opcionales.

        Slider básico

        Desplazamiento horizontal.

        Segunda diapositiva

        También puedes usar imágenes y contenido HTML.

        HTML · slider básico completo
        <!-- Contenedor y variante de desplazamiento horizontal -->
        <div class="slider slider-basico">
          <!-- Pista que el JavaScript mueve para cambiar de diapositiva -->
          <div class="slider-pista">
            <!-- Cada article es una diapositiva; aquí se combina con un fondo -->
            <article class="slider-diapositiva fondo-azul">
              <h2 class="titulo titulo-mediano texto-blanco">Primera diapositiva</h2>
            </article>
            <!-- Duplica este article para agregar otra diapositiva -->
            <article class="slider-diapositiva fondo-verde">
              <h2 class="titulo titulo-mediano texto-blanco">Segunda diapositiva</h2>
            </article>
          </div>
          <!-- Control opcional para retroceder -->
          <button class="slider-anterior" type="button"
                  aria-label="Diapositiva anterior">‹</button>
          <!-- Control opcional para avanzar -->
          <button class="slider-siguiente" type="button"
                  aria-label="Siguiente diapositiva">›</button>
        </div>

        2. Slider con indicadores

        Agrega el contenedor slider-indicadores. El script crea un botón por diapositiva; los puntos permiten saltar directamente a cada una.

        Indicadores

        Pulsa los puntos para cambiar de diapositiva.

        Navegación directa

        El script genera un indicador por cada elemento.

        HTML · slider con indicadores completo
        <!-- Variante que genera puntos de navegación automáticamente -->
        <div class="slider slider-con-indicadores">
          <!-- Pista con todas las diapositivas -->
          <div class="slider-pista">
            <!-- Primera diapositiva -->
            <article class="slider-diapositiva fondo-primario">
              <h2 class="titulo titulo-mediano texto-blanco">Primera diapositiva</h2>
            </article>
            <!-- Segunda diapositiva -->
            <article class="slider-diapositiva fondo-morado">
              <h2 class="titulo titulo-mediano texto-blanco">Segunda diapositiva</h2>
            </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 inserta aquí un punto por diapositiva -->
          <div class="slider-indicadores"></div>
        </div>

        3. Slider con fundido

        Usa slider-fundido para pasar de una diapositiva a otra con una transición de opacidad.

        Transición con fundido

        La siguiente diapositiva aparece suavemente.

        Segunda diapositiva

        El contenido puede ser texto, imágenes o ambos.

        HTML · slider con fundido completo
        <!-- Variante que cambia las diapositivas con opacidad -->
        <div class="slider slider-fundido">
          <!-- La pista contiene las diapositivas apiladas -->
          <div class="slider-pista">
            <!-- Diapositiva inicial -->
            <article class="slider-diapositiva fondo-naval">
              <h2 class="titulo titulo-mediano texto-blanco">Primera diapositiva</h2>
            </article>
            <!-- Diapositiva siguiente -->
            <article class="slider-diapositiva fondo-rojo">
              <h2 class="titulo titulo-mediano texto-blanco">Segunda diapositiva</h2>
            </article>
          </div>
          <!-- Controles opcionales para cambiar manualmente -->
          <button class="slider-anterior" type="button"
                  aria-label="Diapositiva anterior">‹</button>
          <button class="slider-siguiente" type="button"
                  aria-label="Siguiente diapositiva">›</button>
        </div>

        4. Slider con zoom

        Usa slider-zoom con imágenes dentro de las diapositivas. El script prepara cada imagen y aplica el acercamiento a la diapositiva activa.

        Espacio de trabajo luminoso
        Oficina colaborativa con luz natural
        HTML · slider con zoom completo
        <!-- Variante de zoom: necesita imágenes en las diapositivas -->
        <div class="slider slider-zoom">
          <!-- Pista que desplaza las diapositivas -->
          <div class="slider-pista">
            <!-- Imagen con texto alternativo descriptivo -->
            <article class="slider-diapositiva">
              <img src="foto-1.jpg" alt="Descripción de la primera imagen">
            </article>
            <!-- Duplica esta estructura para cada imagen adicional -->
            <article class="slider-diapositiva">
              <img src="foto-2.jpg" alt="Descripción de la segunda imagen">
            </article>
          </div>
          <!-- Controles para avanzar o retroceder -->
          <button class="slider-anterior" type="button"
                  aria-label="Diapositiva anterior">‹</button>
          <button class="slider-siguiente" type="button"
                  aria-label="Siguiente diapositiva">›</button>
        </div>

        5. Slider hero para portada

        slider-hero es un modificador visual: combínalo con una variante de comportamiento, por ejemplo slider-con-indicadores. Cada imagen incluye texto alternativo y una capa de contenido.

        Equipo de trabajo colaborando alrededor de una mesa

        Una frase introductoria

        Un título para tu portada.

        Explica brevemente qué ofrece tu proyecto.

        Conocer más
        Equipo revisando una propuesta de proyecto

        Otra idea importante

        Presenta otra sección o beneficio.

        Ver detalles
        HTML · portada hero completa
        <!-- Hero combina indicadores con el formato grande de portada -->
        <section class="slider slider-con-indicadores slider-hero"
                 aria-label="Presentación principal">
          <!-- Pista que agrupa las escenas de la portada -->
          <div class="slider-pista">
            <!-- Escena: imagen de fondo y texto sobrepuesto -->
            <article class="slider-diapositiva">
              <img src="foto-portada-1.jpg" alt="Descripción de la primera escena">
              <!-- Elige una apariencia y una posición para el texto -->
              <div class="slider-texto slider-texto-oscuro slider-texto-izquierda-abajo">
                <p class="texto-mayusculas texto-blanco">Frase introductoria</p>
                <h1 class="titulo-largo texto-blanco">Título de portada</h1>
                <p class="texto-grande texto-blanco">Descripción breve del proyecto.</p>
                <a class="boton boton-primario texto-blanco" href="#contenido">
                  Conocer más
                </a>
              </div>
            </article>
            <!-- Otra escena puede usar una apariencia y posición diferentes -->
            <article class="slider-diapositiva">
              <img src="foto-portada-2.jpg" alt="Descripción de la segunda escena">
              <div class="slider-texto slider-texto-vidrio slider-texto-centro">
                <h2 class="titulo-grande texto-blanco">Otra idea importante</h2>
                <p class="texto-grande texto-blanco">Otro mensaje breve.</p>
                <a class="boton fondo-verde texto-blanco" href="#contenido">
                  Ver detalles
                </a>
              </div>
            </article>
          </div>
          <!-- Controles para navegar entre escenas -->
          <button class="slider-anterior" type="button"
                  aria-label="Diapositiva anterior">‹</button>
          <button class="slider-siguiente" type="button"
                  aria-label="Siguiente diapositiva">›</button>
          <!-- El script crea los puntos de navegación -->
          <div class="slider-indicadores"></div>
        </section>

        Las apariencias disponibles para la capa son slider-texto-oscuro, slider-texto-claro, slider-texto-blanco y slider-texto-vidrio. Las posiciones son slider-texto-centro, slider-texto-izquierda-arriba, slider-texto-izquierda-abajo, slider-texto-derecha-arriba y slider-texto-derecha-abajo. Combina una apariencia y una posición junto a slider-texto.

        Modelos y posiciones del texto

        La capa slider-texto puede combinarse con una apariencia y una posición. Estas muestras enseñan los cuatro modelos visuales y las cinco ubicaciones disponibles.

        Panel oscuro

        Izquierda · arriba

        slider-texto-oscuro · slider-texto-izquierda-arriba

        Panel claro

        Izquierda · abajo

        slider-texto-claro · slider-texto-izquierda-abajo

        Panel blanco

        Centro

        slider-texto-blanco · slider-texto-centro

        Efecto vidrio

        Derecha · arriba

        slider-texto-vidrio · slider-texto-derecha-arriba

        Texto a la derecha

        Derecha · abajo

        slider-texto-derecha-abajo

        HTML · capa de texto para una diapositiva
        <!-- La diapositiva posiciona la imagen y la capa de texto -->
        <article class="slider-diapositiva">
          <!-- Imagen de fondo con descripción accesible -->
          <img src="foto.jpg" alt="Descripción de la escena">
          <!-- Combina slider-texto + una apariencia + una posición -->
          <div class="slider-texto slider-texto-oscuro slider-texto-izquierda-abajo">
            <!-- Título y descripción del contenido -->
            <h2 class="texto-blanco">Título sobre la imagen</h2>
            <p class="texto-blanco">Una descripción breve y legible.</p>
            <!-- Acción opcional de la diapositiva -->
            <a class="boton boton-primario texto-blanco" href="#contenido">
              Conocer más
            </a>
          </div>
        </article>
        
        <!-- Apariencias: slider-texto-oscuro, slider-texto-claro,
             slider-texto-blanco o slider-texto-vidrio.
             Posiciones: slider-texto-centro, slider-texto-izquierda-arriba,
             slider-texto-izquierda-abajo, slider-texto-derecha-arriba
             o slider-texto-derecha-abajo. -->

        6. Slider compacto

        El compacto usa una lista ul con elementos li; marca inicialmente una diapositiva con active. Sus controles usan las clases slider-compacto-anterior y slider-compacto-siguiente.

        Galería de proyectos

        Una galería compacta con controles propios.

        • Espacio de trabajo luminoso
        • Mesa de trabajo creativa
        • Oficina colaborativa con luz natural
        HTML · slider compacto completo
        <!-- Carrusel compacto; usa una lista en vez de slider-pista -->
        <div class="slider-compacto">
          <!-- Capa opcional de título y descripción sobre las imágenes -->
          <div class="slider-compacto-texto">
            <h2>Galería de proyectos</h2>
            <p>Una descripción breve de la galería.</p>
          </div>
          <!-- El elemento activo inicia con la clase active -->
          <ul>
            <li class="active">
              <img src="foto-1.jpg" alt="Descripción de la primera imagen">
            </li>
            <li>
              <img src="foto-2.jpg" alt="Descripción de la segunda imagen">
            </li>
            <li>
              <img src="foto-3.jpg" alt="Descripción de la tercera imagen">
            </li>
          </ul>
          <!-- Botones de navegación propios del slider compacto -->
          <button class="slider-compacto-anterior" type="button"
                  aria-label="Imagen anterior">‹</button>
          <button class="slider-compacto-siguiente" type="button"
                  aria-label="Siguiente imagen">›</button>
        </div>

        Requisitos y movimiento

        Incluye script.js después del contenido o con defer. Los sliders se reproducen automáticamente y se pausan al pasar el puntero; el script respeta la preferencia del sistema por movimiento reducido. Añade siempre texto alternativo descriptivo a las imágenes.

        08 · Adaptación de pantalla

        Responsive design

        El CSS ajusta sus componentes y cuadrículas mediante consultas de medios. Los puntos de corte encontrados en la hoja son anchos máximos: 1024, 900, 768, 640 y 576 píxeles. No son nombres de breakpoint configurables.

        1024 px

        Reduce las cuadrículas de cuatro o más columnas.

        900 px

        Adapta cuadrículas de tres o más columnas a dos.

        768 px

        Ajusta navbar, tipografía, tarjetas y grids.

        640 / 576 px

        Apila columnas y adapta componentes para móviles.

        • Incluye meta name="viewport" para que el ancho CSS coincida con el dispositivo.
        • Usa columna-2 o columna-3 y prueba cómo se apilan en una pantalla estrecha.
        • ocultar-celular oculta un elemento en el breakpoint móvil; no lo uses para esconder información esencial.
        • Comprueba el zoom, el foco por teclado y que no aparezca desplazamiento horizontal.

        09 · Tu identidad visual

        Personalización con variables CSS

        Las variables de :root centralizan la paleta, las fuentes, el espaciado y las esquinas. Sobrescríbelas en tu propia hoja después de cargar TrummerWork para conservar una escala coherente.

        CSS · tema propio
        /* personalizacion.css, cargado después de style.css */
        :root {
          --color-primario: #174b8e;
          --color-secundario: #348653;
          --fuente-primaria: "Inter", sans-serif;
          --espaciado-mediano: 16px;
          --radio-del-borde-mediano: 8px;
        }

        Colores

        --color-primario, --color-primario-oscuro, --color-primario-claro, --color-secundario, --fondo, --fondo-alterno, --texto, --muteado y --color-borde.

        Fuentes y dimensiones

        --fuente-primaria, --fuente-secundaria, variables --espaciado-*, --radio-del-borde-*, --tw-sidebar-width y --navbar-height.

        Las fuentes se declaran en CSS con alternativas genéricas. Algunas familias se importan de Google Fonts; si el proyecto necesita funcionar sin red, añade una fuente local y actualiza la variable. El CSS no define un tema oscuro general listo para activar.

        10 · De las clases a una página

        Ejemplo práctico: perfil de estudiante

        Este pequeño layout junta contenedor, texto, grid, tarjetas y botones. La página de Nexo ofrece un ejemplo más extenso de landing page con hero, navegación, beneficios, planes, formulario y footer.

        ESTUDIANTE · DESARROLLO WEB

        Hola, soy Alex.

        Estoy aprendiendo HTML y CSS, y aquí comparto lo que voy construyendo.

        Ver proyectos

        PROYECTO RECIENTE

        Una web para mi curso

        Una descripción breve y un enlace para conocer el trabajo.

        Ver un ejemplo real
        HTML · perfil
        <main class="contenedor">
          <section class="display-grid columna-2 espacio-entre-2 centro-vertical">
            <div class="display-flex columna espacio-entre-1">
              <p class="titulo-resaltado">ESTUDIANTE · DESARROLLO WEB</p>
              <h1 class="titulo titulo-grande texto-primario">Hola, soy Alex.</h1>
              <p class="texto texto-grande">Comparto mis proyectos.</p>
              <a class="boton boton-primario texto-blanco" href="#proyectos">
                Ver proyectos
              </a>
            </div>
            <article class="tarjetas fondo-blanco">
              <div class="contenedor-cuerpo-tarjeta">Contenido de tarjeta</div>
            </article>
          </section>
        </main>

        Abrir el ejemplo Nexo construido con TrummerWork

        11 · Consulta rápida

        Índice completo de clases

        Busca una clase o escribe qué necesitas hacer, por ejemplo texto grande, centrar, tarjeta o menú móvil.

        12 · Ayuda

        Preguntas frecuentes

        No veo los estilos, ¿qué reviso?

        Verifica la ruta relativa de style.css y la respuesta de red en las herramientas del navegador. Revisa también que las clases estén escritas igual que en el CSS.

        ¿Necesito JavaScript para usar TrummerWork?

        Las utilidades y estilos visuales son CSS. Navbar y sliders usan el script del proyecto para parte de su comportamiento.

        ¿Hay CDN o paquete npm?

        Sí. Puedes usar el CDN oficial enlazando la hoja de estilos en el <head> y el script antes de cerrar </body>. También puedes ver la estructura completa de instalación.

        ¿Puedo escribir CSS propio?

        Sí. Puedes añadir una hoja separada después de TrummerWork para sobrescribir variables o selectores concretos. Si descargas los archivos del framework, también puedes modificarlos directamente. Si publicas tu proyecto con esas modificaciones, debes mencionar que fue construido con TrummerWork y crear un fork público del proyecto de TrummerWork en GitHub con el código modificado.

        Mi tarjeta no encaja en el grid, ¿por qué?

        Algunas clases de tarjeta tienen dimensiones y márgenes propios. Prueba el layout con el contenido real y sobrescribe el ancho en una clase de tu proyecto cuando sea necesario.

        ¿Cómo reviso accesibilidad?

        Usa etiquetas asociadas a los campos, botones con nombre claro, enlaces descriptivos, contraste suficiente y navegación por teclado. Las clases por sí solas no garantizan accesibilidad.

        ¿Tengo otra pregunta o necesito ayuda?

        Escríbenos desde la página de contacto para conversar directamente con el equipo de TrummerWork.