Chuleta de Diseño de Interfaces Web
Flexbox, Grid, responsive, Sass, BEM, animaciones, multimedia, accesibilidad y usabilidad en una hoja.
Flexbox
| display: flex | Hijos en fila; flex-direction: column para columna |
|---|---|
| justify-content | Eje principal: flex-start, center, space-between, space-around |
| align-items | Eje cruzado: stretch, center, flex-start, baseline |
| flex-wrap: wrap · gap: 1rem | Saltar de línea · separación |
| flex: 1 | Crecer y repartir el espacio (1 1 0) |
| flex: 0 0 200px | Ancho fijo que no crece ni encoge |
| margin-left: auto | Empujar un elemento al final |
| order · align-self | Reordenar · alinear un solo hijo |
Grid
.layout { display: grid; grid-template-columns: 240px 1fr; grid-template-areas: "cab cab" "menu main" "pie pie"; gap: 1rem;}.cabecera { grid-area: cab; }.tarjetas { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));}.destacada { grid-column: span 2; }Tema: Maquetación con Flexbox, Grid y Responsive Responsive
/* móvil primero */.menu { display: none; }@media (min-width: 48rem) { .menu { display: flex; } }h1 { font-size: clamp(1.5rem, 4vw, 3rem); }img { max-width: 100%; height: auto; }.tarjeta-contenedor { container-type: inline-size; }@container (min-width: 400px) { .tarjeta { display: flex; } }Necesita <meta name="viewport" content="width=device-width, initial-scale=1"> en el HTML. Unidades: rem (raíz), em (padre), % (contenedor), vw/vh (ventana), fr (fracción de grid).
Tema: Maquetación con Flexbox, Grid y ResponsiveVariables y Sass
:root { --primario: #2563eb; --espacio: 1rem; }.boton { background: var(--primario); padding: var(--espacio); } $acento: #f59e0b;$breakpoints: (md: 48rem, lg: 64rem);@mixin desde($bp) { @media (min-width: map-get($breakpoints, $bp)) { @content; } }.tarjeta { padding: 1rem; &__titulo { font-weight: 700; } &--destacada { border: 2px solid $acento; } &:hover { transform: translateY(-2px); } @include desde(md) { padding: 2rem; }}Parciales _variables.scss con @use "variables" as v; @extend %placeholder; funciones como color.adjust.
Tema: Estilos Homogéneos: Variables, Sass y BEMBEM
| .bloque | Componente independiente: .tarjeta |
|---|---|
| .bloque__elemento | Parte del bloque: .tarjeta__titulo |
| .bloque--modificador | Variante: .tarjeta--destacada |
| Especificidad baja | Solo clases, sin ids ni anidar selectores |
Transiciones y animaciones
.boton { transition: transform .2s ease, background-color .2s; }.boton:hover { transform: scale(1.05); }@keyframes aparecer { from { opacity: 0; transform: translateY(1rem); } to { opacity: 1; transform: none; }}.aviso { animation: aparecer .4s ease-out both; }@media (prefers-reduced-motion: reduce) { * { animation: none !important; transition: none !important; }}Anima transform y opacity: no recalculan la maquetación y van fluidos.
Tema: Multimedia y Animación en la WebMultimedia
| <picture><source type="image/avif" srcset> | Formato moderno con alternativa |
|---|---|
| srcset="a-400.jpg 400w, a-800.jpg 800w" sizes | Tamaño según pantalla |
| loading="lazy" · width y height | Carga diferida · sin saltos de maquetación |
| <video controls muted playsinline poster> | Vídeo con portada |
| <track kind="captions" srclang="es"> | Subtítulos |
| SVG · WebP · AVIF · JPEG · PNG | Iconos · fotos ligeras · fotos · transparencias |
Accesibilidad (WCAG 2.2)
| Perceptible · Operable · Comprensible · Robusto | Los cuatro principios |
|---|---|
| A · AA · AAA | Niveles de conformidad (AA es el habitual) |
| Contraste 4,5:1 · 3:1 | Texto normal · texto grande y componentes |
| alt="" | Imagen decorativa que el lector de pantalla ignora |
| :focus-visible | Foco visible al navegar con teclado |
| aria-label · aria-expanded · aria-live | Nombre · estado · avisos dinámicos |
| Primera regla de ARIA | Usa el elemento HTML nativo si existe |
| Objetivo táctil 24×24 px | Tamaño mínimo (2.5.8) |
Usabilidad
| Heurísticas de Nielsen | 10 principios para revisar una interfaz |
|---|---|
| Patrón F y Z | Cómo se recorre una página con la vista |
| Test con 5 usuarios | Encuentra la mayoría de problemas |
| Prueba A/B | Comparar dos versiones con datos reales |
| Card sorting | Organizar el menú como lo piensa el usuario |
| Tiempo, éxito, errores, satisfacción (SUS) | Métricas de usabilidad |
Diseño visual
| Wireframe · mockup · prototipo | Estructura · aspecto final · interactivo |
|---|---|
| Regla 60-30-10 | Color dominante, secundario y de acento |
| Escala tipográfica | Tamaños con una proporción fija (1,25) |
| Rejilla de 8 px | Espaciados múltiplos de 8 |
| Gestalt | Proximidad, semejanza, continuidad, cierre |
| Guía de estilos | Colores, tipografías, componentes y tono |
apuntesdam.com/subject/diw/chuleta
Chuletas de otras asignaturas
Entornos de DesarrolloProgramaciónLenguajes de MarcasBases de DatosSistemas InformáticosAcceso a DatosDesarrollo de InterfacesProgramación Multimedia y Dispositivos MóvilesProgramación de Servicios y ProcesosSistemas de Gestión EmpresarialDesarrollo Web en Entorno ClienteDesarrollo Web en Entorno ServidorDespliegue de Aplicaciones Web