Esquema de HTML y CSS

Lo imprescindible de Programación 1º en una sola página, para consultar mientras trabajas. Cada ficha enlaza al apartado de los apuntes donde está explicado con detalle.

HTML

Estructura, texto, enlaces, imágenes y formularios.

Estructura básica

<!DOCTYPE html>
<html lang="es">
<head>
  <meta charset="UTF-8">
  <meta name="viewport"
        content="width=device-width, initial-scale=1.0">
  <title>Título de la pestaña</title>
  <link rel="stylesheet" href="css/estilos.css">
</head>
<body>
  <!-- Todo lo visible -->
</body>
</html>

En VS Code: escribe ! y pulsa Tab. Cambia lang="en" por "es".

Ver en los apuntes de Programación I →

Estructura semántica

<header>   <!-- cabecera -->
<nav>      <!-- menú -->
<main>     <!-- contenido principal -->
<section>  <!-- parte de un tema -->
<article>  <!-- contenido independiente -->
<aside>    <!-- complementario -->
<footer>   <!-- pie -->

Cada etiqueta se cierra igual: </header>… Sólo hay un <main> por página. Elige cada etiqueta por lo que significa; <div> sólo si ninguna encaja.

Ver en los apuntes de Programación I →

Texto

<h1>Título principal (solo uno)</h1>
<h2>Sección</h2>
<h3>Subsección</h3>
<p>Un párrafo con <strong>algo importante</strong>
   y <em>énfasis</em>.</p>

No te saltes niveles de encabezado ni los elijas por su tamaño.

Ver en los apuntes de Programación I →

Listas

<ul>          <!-- sin orden -->
  <li>Lápiz</li>
  <li>Goma</li>
</ul>

<ol>          <!-- con orden -->
  <li>Abocetar</li>
  <li>Digitalizar</li>
</ol>

Los menús de navegación también son listas de enlaces.

Ver en los apuntes de Programación I →

Enlaces

<a href="contacto.html">Contacto</a>
<a href="https://web.com" target="_blank"
   rel="noopener">Externo</a>
<a href="#seccion">Ir a una sección</a>
<a href="mailto:hola@correo.es">Escríbeme</a>

El texto del enlace debe decir adónde lleva: nunca «haz clic aquí».

Ver en los apuntes de Programación I →

Rutas relativas

contacto.html     → misma carpeta
img/foto.jpg      → entrar en una carpeta
../index.html     → salir una carpeta
../img/logo.png   → salir y entrar en otra

Nombres de archivo en minúsculas, sin espacios ni tildes. Nunca rutas del tipo C:\Users\….

Ver en los apuntes de Programación I →

Imágenes

<img src="img/cartel.jpg"
     alt="Cartel del festival de jazz"
     width="800" height="1200">

<figure>
  <img src="…" alt="…">
  <figcaption>Pie de foto</figcaption>
</figure>

alt siempre (vacío si es decorativa). width y height con las medidas reales del archivo.

Ver en los apuntes de Programación I →

Formulario mínimo

<form>
  <label for="correo">Correo</label>
  <input type="email" id="correo"
         name="correo" required>

  <button type="submit">Enviar</button>
</form>

El for del label coincide con el id del campo. Sin name, el dato no se envía.

Ver en los apuntes de Programación I →

CSS: lo básico

Cómo se escribe CSS, cómo se seleccionan los elementos y la base que debe tener toda hoja de estilos.

La regla CSS

selector {
  propiedad: valor;
  otra-propiedad: valor;
}

/* Comentario */

Se enlaza desde el <head> con <link rel="stylesheet" href="css/estilos.css">.

Ver en los apuntes de Programación I →

Selectores

p           { }   /* todos los párrafos */
.tarjeta    { }   /* class="tarjeta" */
#cabecera   { }   /* id="cabecera" */
h1, h2      { }   /* varios a la vez */
nav a       { }   /* los a dentro de nav */
a:hover     { }   /* ratón encima */

Usa clases casi siempre. Si dos reglas chocan, gana la más concreta (id > clase > etiqueta) y, si empatan, la última.

Ver en los apuntes de Programación I →

Colores y unidades

color: #576F6F;           /* hexadecimal */
color: rgb(87, 111, 111);   /* RGB */
color: rgba(0,0,0,0.5);   /* con opacidad */

font-size: 1.5rem;   /* 1.5 × 16px */
width: 50%;          /* del contenedor */
height: 100vh;       /* alto de ventana */

En web, mejor medidas relativas (rem, %) que píxeles fijos.

Ver en los apuntes de Programación I →

Base recomendada

*, *::before, *::after {
  box-sizing: border-box;
}

body {
  margin: 0;
  font-family: Arial, sans-serif;
  line-height: 1.6;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

Empieza todas tus hojas de estilos con este bloque.

Ver en los apuntes de Programación I →

Cajas y texto

El modelo de caja, los bordes, fondos y sombras, la tipografía, las variables y las transiciones.

Modelo de caja

.caja {
  width: 300px;
  padding: 20px;      /* interior */
  border: 2px solid;  /* borde */
  margin: 30px;       /* exterior */
}

.contenedor {
  max-width: 1100px;
  margin: 0 auto;     /* centrar */
}

Valores por lados, en el sentido del reloj: arriba derecha abajo izquierda.

Ver en los apuntes de Programación I →

Bordes, fondos y sombras

.tarjeta {
  background: #FFFFFF;
  border: 1px dashed #DEDBD2;
  border-bottom: 3px solid #576F6F;
  border-radius: 8px;   /* 50% = círculo */
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

Estilos de borde: solid, dashed, dotted. Las sombras elegantes son suaves: poco desplazamiento, mucho difuminado.

Ver en los apuntes de Programación I →

Texto

body {
  font-family: "Inter", sans-serif;
  font-size: 1rem;      /* mínimo 16px */
  line-height: 1.6;     /* interlineado */
}

h1 {
  font-weight: 700;
  letter-spacing: -0.02em;
}

p {
  max-width: 65ch;      /* líneas legibles */
}

Fuentes web: copia el <link> de Google Fonts en el <head>, antes de tu CSS.

Ver en los apuntes de Programación I →

Variables

/* Definirlas */
:root {
  --color-principal: #576F6F;
  --fuente-titulos: Georgia, serif;
}

/* Usarlas */
h1 {
  color: var(--color-principal);
  font-family: var(--fuente-titulos);
}

Cambias el valor en un sitio y cambia en toda la web.

Ver en los apuntes de Programación I →

Transiciones

.boton {
  background: #576F6F;
  transition: background 0.3s ease;
}

.boton:hover {
  background: #21231F;
}

La transición va en el estado normal, no en el :hover. Entre 0,15 y 0,4 segundos.

Ver en los apuntes de Programación I →

Layout

Colocar los elementos en la página: en fila, en retícula o superpuestos.

Flexbox: en fila

.contenedor {
  display: flex;
  /* eje principal */
  justify-content: space-between;
  /* eje cruzado */
  align-items: center;
  gap: 16px;
  /* saltar de línea */
  flex-wrap: wrap;
}

Para menús, cabeceras y cosas en fila. Se aplica al padre y afecta a sus hijos directos.

Ver en los apuntes de Programación I →

Centrar cualquier cosa

.padre {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
}

Centra el contenido en horizontal y en vertical.

Ver en los apuntes de Programación I →

Grid: retícula

.galeria {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 12px;
}

.destacado {
  /* ocupa 2 columnas */
  grid-column: span 2;
}

fr reparte el espacio disponible: 2fr 1fr = la primera, el doble.

Ver en los apuntes de Programación I →

Posicionamiento

.tarjeta {
  /* el padre: referencia */
  position: relative;
}
.etiqueta {
  /* el hijo: encima */
  position: absolute;
  top: 12px;
  right: 12px;
}

header {
  /* se queda arriba */
  position: sticky;
  top: 0;
  z-index: 10;
}

Sólo para superponer o fijar. Para colocar y alinear, Flexbox y Grid.

Ver en los apuntes de Programación I →

Responsive

Que la web se adapte a cualquier pantalla.

Media queries (mobile first)

/* 1. Primero, el móvil */
.galeria {
  display: grid;
  grid-template-columns: 1fr;
}

/* 2. Después, pantallas más grandes */
@media (min-width: 600px) {
  .galeria {
    grid-template-columns: 1fr 1fr;
  }
}

Pon los puntos de ruptura donde tu diseño se rompe, no según dispositivos concretos.

Ver en los apuntes de Programación I →

Galería que se adapta sola

.galeria {
  display: grid;
  grid-template-columns:
    repeat(auto-fit, minmax(200px, 1fr));
  gap: 12px;
}

Tantas columnas de al menos 200px como quepan, sin media queries.

Ver en los apuntes de Programación I →

Cuando algo no funciona

Antes de nada: no hagas como Enjuto Mojamuto, que en cuanto algo deja de funcionar da por hecho que se ha roto internet entero. Casi nunca es internet. Casi siempre es una de estas cosas:

Leyes del diseño

Principios visuales y de uso que explican por qué un diseño funciona, con ejemplos que puedes probar en la pantalla.

Gestalt

La Gestalt («forma» en alemán) es una corriente de la psicología que nació en Alemania a principios del siglo XX. Estudió cómo percibimos: nuestro cerebro no ve elementos sueltos, sino que los agrupa y organiza automáticamente para darles sentido. Su idea central: el todo se percibe de forma distinta a la suma de sus partes.

Probablemente ya conoces estos principios del diseño gráfico. Aquí nos fijamos en cómo se aplican en una pantalla: casi todas las decisiones de espacio, color y agrupación de una interfaz se explican con ellos.

Proximidad

Los elementos que están cerca se perciben como un grupo. Mueve el control: con la misma cantidad de puntos, la separación decide si ves doce puntos, tres grupos o una rejilla.

En interfaces: el espacio es la herramienta de agrupación más potente. La etiqueta de un campo debe estar más cerca de su campo que del anterior; el espacio entre secciones, ser mayor que el espacio dentro de cada una.

En esta web: cada apartado de los apuntes está separado del siguiente por mucho más espacio que el que hay entre sus párrafos.

Ver en Laws of UX →

Semejanza

Los elementos que se parecen (en color, forma o tamaño) se perciben como relacionados, aunque estén mezclados con otros.

En interfaces: todo lo que funciona igual debe verse igual: todos los enlaces del mismo color, todos los botones principales con el mismo estilo. Si un elemento se ve como un botón, la gente intentará pulsarlo.

En esta web: todos los avisos («Ojo», «Truco», «Idea clave») comparten el mismo estilo, así que los reconoces al momento.

Ver en Laws of UX →

Región común

Los elementos dentro de un mismo contorno o fondo se perciben como un grupo, incluso con más fuerza que por proximidad.

En interfaces: las tarjetas, los paneles y las cajas con fondo agrupan contenido relacionado: una foto, su título y su descripción forman una unidad.

En esta web: las cajas «Resultado» enmarcan cada ejemplo para que se entienda que va con el código de arriba.

Ver en Laws of UX →

Cierre

Tendemos a completar las formas incompletas: vemos un círculo aunque esté hecho de trozos sueltos.

En interfaces: muchos logotipos e iconos juegan con el cierre para ser más simples. Y en un carrusel, mostrar la última tarjeta cortada sugiere que hay más contenido si desplazas.

Continuidad

El ojo sigue las líneas y las curvas: los elementos alineados en una trayectoria se perciben como relacionados y se leen en ese orden.

En interfaces: alinear los elementos guía la lectura. Un menú horizontal, una fila de tarjetas o una línea de tiempo funcionan porque el ojo sigue la línea que forman.

En esta web: la línea de tiempo del Tema 0 de Programación I conecta los años con una línea vertical.

Figura y fondo

Separamos automáticamente lo que está delante (la figura) de lo que está detrás (el fondo).

En interfaces: cuando se abre una ventana emergente o un menú, oscurecer o desenfocar lo de detrás deja claro qué es lo importante ahora y qué está en pausa.

En esta web: en el móvil, al abrir el menú de temas, el resto de la página se oscurece.

Prägnanz (simplicidad)

Interpretamos las formas complejas de la manera más sencilla posible. En el dibujo no vemos una figura rara, sino un círculo y un cuadrado superpuestos.

En interfaces: cuanto más simple es una forma, antes se entiende y mejor se recuerda. Por eso los iconos y los logotipos de las interfaces tienden a formas geométricas básicas.

Ver en Laws of UX →

Conectividad uniforme

Los elementos unidos por una línea o un conector se perciben como relacionados, con más fuerza que si sólo están cerca o se parecen.

En interfaces: las líneas que unen los pasos de un proceso, los conectores de una línea de tiempo o las pestañas unidas a su panel muestran qué va con qué.

En esta web: la línea vertical de la línea de tiempo del Tema 0 de Programación I une los años en una secuencia.

Ver en Laws of UX →

Leyes de UX

Las leyes de UX son principios, la mayoría salidos de la psicología, que explican cómo usamos las interfaces. No son reglas matemáticas, sino tendencias muy comprobadas que ayudan a tomar decisiones de diseño y a justificarlas ante un cliente o un equipo. La web Laws of UX las recoge todas, en español.

1. Pulsa el punto naranja pequeño

Ley de Fitts

Cuanto más grande y más cerca está un objetivo, más rápido y fácil es acertar. Pruébalo: pulsa primero el punto pequeño y después el botón grande. El ejemplo mide cuánto tardas en llegar a cada uno: al grande casi siempre se llega antes.

En interfaces: los botones importantes deben ser grandes y estar donde se espera. En el móvil, las zonas que se pueden tocar deben medir al menos unos 44 × 44 px. Y no pongas acciones opuestas (Guardar y Borrar) pegadas.

Ver en Laws of UX →

Ley de Hick

Cuantas más opciones hay, más se tarda en decidir. ¿En qué menú encuentras antes «Contacto»?

En interfaces: reduce las opciones visibles a las necesarias. Agrupa las demás (un submenú, una sección «Más») o divide las tareas largas en pasos, como un formulario por etapas.

Ver en Laws of UX →

Ley de Jakob

La gente pasa la mayor parte de su tiempo en otras webs, así que espera que la tuya funcione como ellas.

En interfaces: respeta las convenciones: el logotipo arriba a la izquierda lleva a la portada, el menú va arriba, el carrito de la compra arriba a la derecha y el texto subrayado es un enlace. Innovar está bien, pero no en lo que la gente necesita encontrar sin pensar.

En esta web: el logotipo de la cabecera, arriba a la izquierda, siempre te devuelve a la portada.

Ver en Laws of UX →

Efecto de aislamiento (Von Restorff)

Cuando hay varios elementos parecidos, el que es diferente es el que se recuerda.

En interfaces: destaca sólo la acción principal de cada pantalla (por ejemplo, «Comprar» o «Enviar») con un estilo diferente. Si lo destacas todo, no destacas nada.

En esta web: en la portada, el botón Classroom es el único relleno y oscuro: es la acción principal.

Ver en Laws of UX →

Ley de Miller

Sólo podemos retener unos pocos elementos a la vez en la memoria a corto plazo. Por eso un número largo se recuerda mejor en grupos.

En interfaces: agrupa la información en bloques fáciles de recordar (un teléfono en grupos de cifras, un formulario en secciones). Ojo: a menudo se cita como «los menús deben tener 7 opciones como máximo», pero eso no es lo que dice; lo útil es la idea de agrupar.

Ver en Laws of UX →

Efecto estética-usabilidad

Percibimos los diseños atractivos como más fáciles de usar, y somos más tolerantes con sus pequeños fallos.

En interfaces: el cuidado visual no es un adorno: genera confianza. Pero no tapa los problemas de verdad; un diseño bonito que no funciona acaba frustrando igual.

Ver en Laws of UX →

Carga cognitiva

Es la cantidad de esfuerzo mental que exige usar una interfaz. Cuanta más información, opciones o decisiones hay que procesar a la vez, más difícil resulta y más errores se cometen.

En interfaces: quita todo lo que no ayuda a la tarea, agrupa lo que va junto y muestra la información poco a poco. Una pantalla despejada no es sólo más bonita: es más fácil de usar.

Ver en Laws of UX →

Efecto de posición en serie

De una lista, recordamos mejor los primeros y los últimos elementos que los del medio.

En interfaces: coloca las opciones más importantes al principio y al final. Por eso muchas barras de navegación del móvil ponen «Inicio» a la izquierda y el perfil a la derecha.

Ver en Laws of UX →

Ley de Tesler

Toda tarea tiene una complejidad mínima que no se puede eliminar: sólo se puede decidir quién la asume, si el diseño o la persona usuaria.

En interfaces: que la interfaz haga el trabajo difícil: autocompletar una dirección, deducir la ciudad a partir del código postal, recordar los datos de la última vez. Cada campo que el sistema rellena es un esfuerzo que se ahorra quien lo usa.

Ver en Laws of UX →

Umbral de Doherty

Cuando una interfaz responde en menos de unos 0,4 segundos, la sensación es de fluidez y se mantiene la atención. Por encima, la espera se nota y aumenta el abandono.

En interfaces: si algo va a tardar, que se note que está pasando: un estado de «cargando», una barra de progreso o una animación breve. Y optimiza el peso de las imágenes para que la web cargue rápido.

En esta web: los ejemplos de código de Programación II responden al momento al pulsar «Ejecutar».

Ver en Laws of UX →

Regla del final pico

Recordamos una experiencia sobre todo por su momento más intenso (el pico) y por cómo termina, más que por la media de todo lo que pasó.

En interfaces: cuida especialmente los momentos clave y el final: una confirmación clara y amable después de enviar un formulario o de terminar una compra hace que se recuerde toda la experiencia como buena.

Ver en Laws of UX →

Idea clave: estas leyes son la mejor herramienta para defender tus decisiones de diseño. «Lo he hecho más grande porque me gusta» es una opinión; «lo he hecho más grande y lo he acercado al pulgar por la ley de Fitts» es un argumento.

Para profundizar en el Design Toolkit de la UOC, dos conceptos que no aparecen en Laws of UX:

Composición en pantalla

Cómo organizar los elementos de una web para que se lean en el orden que quieres.

Jerarquía visual

La jerarquía visual es el orden en el que el ojo recorre una página: qué se ve primero, qué después y qué al final. En una web, la gente no lee: escanea en busca de lo que le interesa. Una buena jerarquía hace que encuentre lo importante en un par de segundos.

Sin jerarquía

Taller de carteleríaSábado 14 de marzo · 10:00Aprende a diseñar carteles con tipografía e ilustración. Plazas limitadas.Inscribirme

Con jerarquía

Sábado 14 de marzo · 10:00Taller de carteleríaAprende a diseñar carteles con tipografía e ilustración. Plazas limitadas.Inscribirme

El contenido es el mismo. En la segunda versión, el título destaca por tamaño y peso, la fecha pasa a un segundo plano y el botón se reconoce como acción. Se entiende de un vistazo.

Las herramientas de la jerarquía

  • Tamaño: lo más grande se ve primero.
  • Peso y estilo: la negrita y las mayúsculas pequeñas separan niveles sin cambiar el tamaño.
  • Color y contraste: lo más contrastado atrae la mirada; los textos secundarios, en un gris más suave.
  • Posición: lo de arriba a la izquierda se ve antes (en idiomas que se leen de izquierda a derecha).
  • Espacio: un elemento rodeado de espacio en blanco destaca más.
  • Agrupación: lo que va junto se lee como una unidad (proximidad y región común, en Leyes del diseño).

Truco: la prueba de los ojos entrecerrados. Mira tu diseño entornando los ojos, o desenfócalo en Figma o Photoshop: lo que sigues distinguiendo es lo que domina la jerarquía. Si es lo importante, vas bien. Si todo pesa igual, o lo que destaca es un adorno, hay que reajustar.

Idea clave: la jerarquía funciona por contraste. Si todo es grande, nada es grande. Usa pocos niveles (tres o cuatro en una pantalla) y que la diferencia entre ellos sea clara.

Retículas en web

La retícula que usas en editorial funciona igual en pantalla, con una diferencia: en web no sabes el ancho del lienzo. Por eso las retículas web son fluidas: las columnas se estiran o se encogen con la pantalla, y el número de columnas cambia entre móvil y escritorio.

La retícula de 12 columnas

Es la más usada en web porque 12 se divide entre 2, 3, 4 y 6: permite composiciones de dos mitades, tres tercios, cuatro cuartos o combinaciones como 8 + 4.

1284444663333
  • Columnas: en escritorio, 12; en tableta, 8; en móvil, 4.
  • Medianil (gutter): el espacio entre columnas, normalmente entre 16 y 32px.
  • Márgenes: el espacio a los lados de la página, para que nada toque el borde de la pantalla.
  • Ancho máximo: en pantallas muy grandes, la retícula deja de crecer (por ejemplo, a 1200px) y se centra. Si no, las líneas de texto serían larguísimas.

De la retícula a CSS Grid

La retícula que dibujas en Figma se traslada casi literalmente a CSS con Grid, que viste en Programación I:

.contenedor {
  display: grid;
  grid-template-columns: repeat(12, 1fr);   /* 12 columnas */
  column-gap: 24px;                         /* medianil */
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;                          /* márgenes laterales */
}

.principal { grid-column: span 8; }   /* ocupa 8 de 12 */
.lateral   { grid-column: span 4; }   /* ocupa 4 de 12 */

/* En el móvil, todo ocupa las 12 columnas */
@media (max-width: 700px) {
  .principal, .lateral { grid-column: span 12; }
}

El sistema de 8 puntos

Muchos equipos de diseño usan medidas que son múltiplos de 8 (8, 16, 24, 32, 48, 64…) para todos los espacios: márgenes, rellenos, separaciones. Como un ritmo vertical en editorial, da coherencia sin tener que pensar cada medida, y encaja bien con la mayoría de tamaños de pantalla. En CSS se guarda como variables:

:root {
  --espacio-1: 8px;
  --espacio-2: 16px;
  --espacio-3: 24px;
  --espacio-4: 32px;
  --espacio-6: 48px;
  --espacio-8: 64px;
}

Fíjate: Figma tiene una opción para crear retículas de columnas en cada marco (Layout grid). Diseñar con la misma retícula que luego programarás hace que pasar del diseño al código sea mucho más fácil.

Patrones de lectura

Los estudios con seguimiento de la mirada (eye tracking) muestran que, en pantalla, recorremos las páginas siguiendo unos caminos bastante previsibles. Los dos más conocidos tienen forma de letra.

Patrón en F: páginas con mucho texto
Patrón en Z: páginas sencillas y portadas

Patrón en F

En páginas con mucho texto (artículos, resultados de búsqueda, listados), leemos la primera línea casi entera, después una parte de la segunda, y luego bajamos por el margen izquierdo leyendo sólo el principio de cada línea. Por eso:

  • Pon lo importante al principio: en los títulos, en los párrafos y en los elementos de las listas.
  • Usa subtítulos, listas y negritas para que el texto se pueda escanear.
  • Empieza los títulos y enlaces con las palabras que dan información («Horario de tutorías», no «Aquí puedes consultar el horario de tutorías»).

Patrón en Z

En páginas con poco texto y mucha imagen, como una portada o una página de presentación, la mirada va de arriba a la izquierda (el logotipo) a la derecha (el menú), baja en diagonal por el contenido central y termina abajo a la derecha. Por eso es un buen sitio para la llamada a la acción principal.

Ojo: los patrones de lectura describen lo que pasa cuando el diseño no guía la mirada. No son una plantilla obligatoria: con una buena jerarquía visual puedes llevar la atención adonde quieras. Úsalos para entender cómo leerá la gente tu página y para no esconder lo importante donde nadie mira.

Interfaces

Los componentes que forman cualquier interfaz y cómo diseñarlos para que se entiendan y funcionen para todo el mundo.

Patrones de interfaz

Un patrón de interfaz es una solución probada a un problema que aparece una y otra vez: cómo moverse por una web, cómo mostrar una colección de elementos, cómo pedir confirmación. No hace falta inventar cada vez cómo funciona un menú: la gente ya sabe usar los patrones habituales (ley de Jakob), y usarlos hace tu interfaz más fácil de entender.

Barra de navegación
Menú hamburguesa
Migas de pan
Pestañas
Tarjetas
Acordeón
Ventana modal
Notificación (toast)
PatrónCuándo usarloCuidado con…
Barra de navegaciónWebs con pocas secciones principales (hasta unas 6).En el móvil no caben muchas opciones: pasa a hamburguesa o a una barra inferior.
Menú hamburguesaAhorrar espacio en pantallas pequeñas.Esconde las opciones: lo que no se ve, se usa menos. En escritorio, mejor el menú visible.
Migas de panWebs con varios niveles (tienda, documentación).Son un complemento del menú, no lo sustituyen.
PestañasCambiar entre vistas del mismo contenido sin cambiar de página.Pocas pestañas y con nombres cortos. No sirven para pasos que hay que hacer en orden.
TarjetasColecciones de elementos parecidos: proyectos, productos, noticias.Todas con la misma estructura (semejanza). Que se sepa qué parte se puede pulsar.
AcordeónMucho contenido opcional: preguntas frecuentes, detalles.Si casi todo el mundo necesita leerlo, no lo escondas.
Ventana modalUna acción que exige atención inmediata: confirmar, iniciar sesión.Interrumpe. Úsala poco, que se cierre con Esc y fuera de la ventana, y nunca nada más entrar en la web.
Notificación (toast)Confirmar que algo ha pasado («Guardado», «Enviado»).Desaparece sola: no pongas en ella información que haya que leer con calma.

Truco: antes de diseñar un componente, mira cómo lo resuelven otras webs y aplicaciones. Galerías como Mobbin recogen capturas de interfaces reales ordenadas por patrón, y los sistemas de diseño de grandes empresas, como Material Design (Google), explican cuándo usar cada componente.

Estados de los componentes

Un botón no es una imagen fija: cambia según lo que pasa. Cada uno de esos cambios es un estado, y diseñarlos todos es lo que hace que una interfaz responda. Es la retroacción (feedback): la interfaz confirma que ha recibido la acción.

Enviar
Normal
Enviar
Hover
Enviar
Foco
Enviar
Activo
Enviar
Desactivado
Enviando…
Cargando
EstadoCuándoQué debe comunicar
NormalEn reposo.Que se puede pulsar (que parezca un botón).
HoverCon el ratón encima.«Esto responde». No existe en las pantallas táctiles: nunca escondas información sólo en el hover.
FocoSeleccionado con la tecla Tab.Dónde estás. Imprescindible para quien navega con el teclado: nunca lo elimines.
ActivoMientras se pulsa.«Te he oído». Un leve hundimiento o cambio de color.
DesactivadoNo se puede usar todavía.Que no está disponible, sin que parezca roto. Mejor aún si se explica por qué.
CargandoTras pulsar, mientras se procesa.Que algo está pasando, para que no se vuelva a pulsar.
Error y éxitoTras una acción.Qué ha pasado y qué hacer después.

En CSS, cada estado tiene su pseudoclase, como viste en Programación I:

.boton {
  background: #576F6F;
  color: white;
  transition: background 0.15s, transform 0.1s;
}

.boton:hover {                /* ratón encima */
  background: #475B5B;
}

.boton:focus-visible {        /* seleccionado con el teclado */
  outline: 3px solid #C0812E;
  outline-offset: 3px;
}

.boton:active {               /* mientras se pulsa */
  transform: scale(0.97);
}

.boton:disabled {             /* no se puede usar */
  background: #C9CBC4;
  color: #6B6D67;
  cursor: not-allowed;
}

De Figma al código: en Figma, los estados se diseñan como variantes de un mismo componente (propiedad «Estado» con los valores normal, hover, foco…). Si en el diseño sólo existe el estado normal, al programarlo tendrás que inventarte el resto. Diseña siempre, como mínimo, normal, hover, foco y desactivado.

Formularios

En un formulario, quien visita la web deja de sólo mirar y empieza a interactuar con ella: escribe un mensaje, se inscribe en un curso, hace una compra. Por eso es también uno de los puntos donde más gente abandona: cada campo que sobra o cada error mal explicado es una razón para dejarlo a medias.

Así no

Nombre correo TeléfonoEmpresa OK

Mejor

⚠ Falta la @. Ejemplo: nombre@correo.es Enviar mensaje

Buenas prácticas

  • Pide sólo lo imprescindible. Cada campo debe justificar su existencia.
  • Etiquetas visibles, encima del campo. El texto de ejemplo dentro del campo (placeholder) desaparece al escribir: no sustituye a la etiqueta.
  • Una sola columna. Se recorre de arriba abajo sin dudar qué va después.
  • El tamaño del campo, acorde al dato: un código postal no necesita el ancho de un mensaje.
  • Marca lo opcional (o lo obligatorio, lo que sea menos), siempre con texto.
  • Errores junto al campo, explicando cómo arreglarlos. «Falta la @» ayuda; «Campo no válido» no. Y no sólo en rojo: añade texto o un icono.
  • El botón dice lo que hace: «Enviar mensaje», «Crear cuenta». No «OK» ni «Enviar» a secas si puede ser más claro.
  • En el móvil, el teclado adecuado para cada dato, con el type correcto del <input> (Programación I, Tema 3).

Accesibilidad visual

Diseñar de forma accesible es diseñar para que todo el mundo pueda usar tu interfaz: personas con baja visión, daltonismo, temblor en las manos o, simplemente, alguien que mira el móvil a pleno sol. La mayoría de las decisiones de accesibilidad visual se toman en la fase de diseño, no al programar.

Contraste

Las pautas internacionales de accesibilidad (WCAG) piden una relación de contraste mínima entre el texto y su fondo. Pruébalo con el comprobador:

Texto grandeTexto normal de un párrafo, para comprobar si se lee bien.

– : 1

QuéContraste mínimo (nivel AA)
Texto normal4,5 : 1
Texto grande (desde unos 24px, o 19px en negrita)3 : 1
Iconos, bordes de campos y otros elementos que hay que ver para usar la interfaz3 : 1

El ejemplo empieza con el gris azulado claro de esta web sobre su fondo: es bonito, pero no llega para un texto. Por eso en la web ese color sólo se usa para detalles, nunca para párrafos.

No depender sólo del color

Alrededor de 1 de cada 12 hombres (y muchas menos mujeres) tiene algún tipo de daltonismo, y además el color se pierde en pantallas malas o al imprimir en blanco y negro. Si algo se comunica con color, comunícalo también de otra forma:

Sólo color

Color + icono + texto

⚠ El correo no es válido✓ Correcto

Lo mismo con los enlaces: si sólo se distinguen del texto por el color, márcalos además con subrayado.

Tamaños

  • Texto: al menos 16px para leer. Y que la página siga funcionando al ampliarla al 200 %.
  • Zonas táctiles: todo lo que se pueda tocar, de unos 44 × 44 px como mínimo recomendado, con espacio entre una zona y otra (ley de Fitts).

Otros puntos

  • Foco visible en todo lo interactivo (apartado de estados).
  • Nada de texto dentro de imágenes: no se puede ampliar ni traducir, y los lectores de pantalla no lo leen (salvo en el alt).
  • Movimiento con moderación, y respetando la preferencia de reducirlo.

Idea clave: la accesibilidad no es un añadido para unas pocas personas. Un buen contraste, botones grandes y errores claros hacen la interfaz mejor para todo el mundo. Y en muchas webs públicas y de empresas, en Europa, además es obligatoria.

De Figma al código

Cómo traducir a HTML y CSS lo que diseñas en Figma: las mismas ideas con otros nombres.

Auto Layout y Flexbox

Si has usado Auto Layout en Figma, ya sabes Flexbox: son la misma idea con otros nombres. Un marco con Auto Layout coloca sus elementos en fila o en columna, con un espacio entre ellos y un relleno alrededor, y se adapta a su contenido. Exactamente lo que hace display: flex.

✦Descargar
.boton {
  display: flex;               /* Auto Layout */
  flex-direction: row;         /* dirección: horizontal */
  gap: 8px;                    /* espacio entre elementos: 8 */
  padding: 12px 20px;          /* relleno: 12 vertical, 20 horizontal */
  align-items: center;         /* alineación: centrada */
  width: fit-content;          /* ancho: Hug */
}

El diccionario

En Figma (Auto Layout)En CSS
Añadir Auto Layoutdisplay: flex
Dirección horizontal / verticalflex-direction: row / column
Espacio entre elementosgap
Relleno (padding)padding
Alineación (el cuadro de 9 puntos)justify-content y align-items
Espaciado «Auto» (space between)justify-content: space-between
Ajuste de línea (wrap)flex-wrap: wrap
Ancho «Hug contents»el ancho de su contenido: width: fit-content (o nada)
Ancho «Fill container»flex: 1 en una fila, width: 100% en una columna
Ancho «Fixed»width con una medida fija
Auto Layout dentro de otro Auto Layoutun contenedor flex dentro de otro
.tarjeta {
  display: flex;
  flex-direction: column;      /* Auto Layout vertical */
  gap: 16px;
  padding: 24px;
}

.tarjeta .titulo {
  width: 100%;                 /* Fill container (en vertical) */
}

.fila .elemento {
  flex: 1;                     /* Fill container (en horizontal) */
}

Fíjate: las versiones recientes de Figma incluyen también un Auto Layout en cuadrícula, que equivale a CSS Grid. La lógica es la misma: lo que construyes con filas, columnas y espacios en Figma se traduce casi palabra por palabra a CSS.

Idea clave: diseña con Auto Layout siempre que puedas. Un diseño hecho con elementos sueltos colocados a mano se traduce mal al código (acaba lleno de posiciones absolutas que se rompen en el móvil). Un diseño hecho con Auto Layout ya está pensado como en CSS.

Restricciones y responsive

En Figma, cada marco tiene un ancho fijo. En la web, no. Hay dos herramientas de Figma que ayudan a pensar en cómo se adaptará el diseño.

Restricciones (constraints)

Indican a qué lado del marco se «engancha» un elemento cuando el marco cambia de tamaño. Se parecen a position: absolute con top, right, bottom y left:

Restricción en FigmaEquivalente aproximado en CSS
Izquierda / Arribaleft / top
Derecha / Abajoright / bottom
Izquierda y derechaleft y right a la vez: se estira con el marco
Centrocentrado (con Flexbox, o con left: 50% y translate)
Escalarmedidas en %

Úsalas para elementos superpuestos (una etiqueta sobre una imagen, un botón flotante). Para todo lo demás, mejor Auto Layout, igual que en código usamos Flexbox y Grid antes que position.

Mínimos y máximos

Los marcos con Auto Layout admiten ancho mínimo y máximo: equivalen a min-width y max-width. Un bloque de texto con ancho máximo es lo que en CSS hacemos con max-width: 65ch.

Un marco por tamaño de pantalla

Como Figma no tiene media queries, el diseño responsive se muestra con varios marcos: uno por cada punto de ruptura. Al programar, cada cambio entre un marco y otro se convierte en una media query.

  • Móvil: unos 375–390px de ancho.
  • Tableta: unos 768px.
  • Escritorio: 1280–1440px.

Truco: diseña primero el marco del móvil, igual que en CSS escribes primero los estilos del móvil (mobile first). Y prueba a estirar tus marcos en Figma: si al cambiar el ancho todo se descoloca, al programarlo pasará lo mismo.

Variables y estilos

En Figma, los estilos y las variables guardan las decisiones que se repiten: los colores de la marca, los estilos de texto, los espacios, las sombras. En CSS, eso mismo son las variables CSS (las custom properties que viste en Programación I). Si en Figma están bien organizadas, el CSS casi se escribe solo.

En FigmaEn CSS
Variable o estilo de colorvariable CSS de color: --color-acento
Variable numérica (espacios, radios)variable CSS con medida: --espacio-m
Estilo de textouna clase (o un grupo de variables) con tamaño, peso e interlineado
Estilo de efecto (sombra, desenfoque)variable con el valor de box-shadow o filter
Modos de las variables (claro / oscuro)redefinir las variables en prefers-color-scheme o con una clase
:root {
  /* Colores (variables de color de Figma) */
  --color-fondo: #F7F6F2;
  --color-texto: #21231F;
  --color-acento: #576F6F;

  /* Espacios (variables numéricas de Figma) */
  --espacio-s: 8px;
  --espacio-m: 16px;
  --espacio-l: 32px;

  /* Efectos (estilo de efecto de Figma) */
  --sombra-tarjeta: 0 4px 12px rgba(0, 0, 0, 0.1);
}

/* Estilos de texto de Figma → una regla por estilo */
.titulo-1 { font-size: 2.5rem; font-weight: 700; line-height: 1.1; }
.cuerpo   { font-size: 1rem;   font-weight: 400; line-height: 1.6; }
/* Modo «Oscuro» de las variables de Figma */
@media (prefers-color-scheme: dark) {
  :root {
    --color-fondo: #171815;
    --color-texto: #EDEBE4;
    --color-acento: #A5BEBE;
  }
}

Idea clave: pon a tus variables de Figma los mismos nombres que tendrán en CSS, y con nombre de función (color/fondo, color/acento), no de aspecto (verde, gris claro). Así diseño y código hablan el mismo idioma, y un cambio en la paleta se aplica igual en los dos lados.

Inspeccionar y exportar

Leer las medidas

Al seleccionar un elemento, Figma muestra sus medidas, colores y tipografía en el panel de la derecha. Con el modo para desarrolladores (Dev Mode) o la pestaña de inspección, según tu tipo de cuenta, ves además el CSS correspondiente.

  • Distancias: selecciona un elemento y mantén pulsada la tecla Alt (en Mac, Option) mientras pasas el ratón por encima de otro: Figma muestra la distancia entre los dos.
  • Tamaños de texto: Figma los da en píxeles. Para pasarlos a rem, divide entre 16: 24px son 1.5rem.
  • Colores: cópialos en hexadecimal y guárdalos como variables, no los repitas por todo el CSS.

Ojo: el CSS que genera Figma sirve de pista, pero no lo copies tal cual. Suele traer anchos y altos fijos, posiciones absolutas y medidas en píxeles que en una web real se rompen al cambiar el tamaño de la pantalla. Úsalo para consultar valores (colores, tamaños de letra, radios, sombras) y escribe tú la estructura con Flexbox y Grid.

Exportar imágenes e iconos

QuéFormatoConsejo
Logotipos e iconosSVGVectorial: nítido a cualquier tamaño y muy ligero. Convierte los textos en contornos antes de exportar.
FotografíasWebP o JPGExporta al doble del tamaño al que se verá (2x) para pantallas de alta densidad, y comprímelas después con Squoosh.
Gráficos con transparenciaPNG o WebPSólo si no pueden ser SVG.

El nombre de la capa será el nombre del archivo: ponlo ya en minúsculas, sin espacios ni tildes (icono-descarga.svg), como en Programación I.

Antes de pasar a código

Una lista para revisar tu archivo de Figma antes de empezar a programar:

UX: el proceso

El camino desde entender a las personas usuarias hasta comprobar que el diseño funciona.

El proceso de diseño

UX (user experience, experiencia de usuario) es todo lo que siente y vive una persona al usar un producto: si encuentra lo que busca, si le resulta fácil, si confía en él. La UI (la interfaz) es una parte de esa experiencia: lo que se ve y se toca. La UX abarca también lo que pasa antes y después.

El diseño de experiencia parte de una idea sencilla: no diseñamos para nosotros. Lo que a quien diseña le parece evidente puede no serlo para quien usa la web. Por eso el proceso se basa en conocer a las personas y en comprobar las ideas con ellas, en lugar de en suposiciones. Es lo que se llama diseño centrado en las personas.

El doble diamante

Es uno de los esquemas más usados para explicar el proceso. Tiene dos fases, y en cada una primero se abre (se exploran muchas posibilidades) y después se cierra (se elige):

El doble diamante: descubrir, definir, desarrollar y entregar DescubrirDefinir DesarrollarEntregar el problemala solución ↑ retodefinido
  • Descubrir: investigar sin prejuicios, hablar con personas, observar.
  • Definir: resumir lo aprendido en un reto concreto.
  • Desarrollar: generar y probar soluciones.
  • Entregar: quedarse con la mejor, pulirla y lanzarla.

El primer diamante sirve para asegurarse de que se diseña lo correcto; el segundo, para diseñarlo bien.

Design thinking

Otra forma muy extendida de describir el mismo proceso, en cinco fases:

  1. EmpatizarConocer a las personas para las que diseñas: qué necesitan, qué les cuesta, cómo usan lo que ya existe.
  2. DefinirConvertir lo aprendido en un problema concreto: «quien visita el portfolio no encuentra cómo contactar».
  3. IdearGenerar muchas soluciones posibles antes de quedarte con una.
  4. PrototiparConstruir versiones rápidas y baratas de las mejores ideas: bocetos, wireframes, prototipos en Figma.
  5. EvaluarProbarlas con personas reales, aprender de lo que falla y volver a la fase que haga falta.

Idea clave: el proceso no es una línea recta, sino un ciclo. Lo normal es que una prueba con usuarios te haga volver a idear, o incluso a redefinir el problema. Cada vuelta mejora el diseño: por eso se habla de diseño iterativo.

Usuarios y personas

Antes de diseñar hay que entender para quién. La investigación con usuarios no tiene por qué ser compleja ni cara: lo importante es salir de las suposiciones y escuchar a personas reales.

Técnicas de investigación

TécnicaEn qué consiste
EntrevistaConversar con personas del público al que te diriges sobre sus necesidades y su forma de hacer las cosas. Preguntas abiertas, sin dar ideas propias.
ObservaciónVer cómo usan de verdad una web o un servicio, en su contexto. Lo que la gente hace no siempre coincide con lo que dice.
EncuestaPreguntas cerradas a muchas personas, para obtener datos que se puedan contar.
Análisis de la competencia (benchmarking)Estudiar cómo resuelven el mismo problema otras webs: qué hacen bien y qué se puede mejorar.

Personas

Una persona (en inglés se usa la misma palabra) es un personaje ficticio que resume a un grupo de usuarios reales: sus objetivos, sus frustraciones y su contexto. Sirve para que todo el equipo tenga presente para quién diseña, y para decidir con preguntas concretas: «¿Lucía encontraría esto desde el móvil?».

Lucía, 34 añosDirectora de un pequeño festival de música
Objetivo
Encontrar a alguien que diseñe el cartel y la web del festival.
Frustraciones
Muchos portfolios no dicen claramente qué tipo de trabajos hacen ni cómo contactar.
Cómo busca
Desde el móvil, en ratos libres, entre una reunión y otra.

Ojo: una persona debe basarse en lo que has descubierto investigando, no en lo que imaginas. Una persona inventada sólo sirve para confirmar lo que ya pensabas.

Mapa de empatía

Ayuda a ponerse en el lugar de la persona usuaria ordenando lo que has observado en cuatro zonas: qué dice, qué piensa, qué hace y qué siente.

Dice«Necesito algo con personalidad, no otra plantilla.»
Piensa«¿Podrá cumplir los plazos?»
HaceMira portfolios en el móvil y guarda los que le gustan.
SientePrisa e inseguridad por elegir bien.

Viaje de usuario (user journey)

Describe paso a paso el recorrido de una persona para conseguir un objetivo (por ejemplo, desde que busca a alguien que le diseñe la web hasta que le encarga el trabajo), con lo que hace, lo que siente y los problemas que encuentra en cada momento. Los puntos donde aparecen problemas son las mejores oportunidades de diseño.

Wireframes y prototipos

Primero, la estructura

Antes de dibujar pantallas conviene decidir qué contenido habrá y cómo se organiza: es la arquitectura de la información, que se suele representar con un mapa del sitio. Una técnica útil para hacerlo es la clasificación de tarjetas (card sorting): escribes cada contenido en una tarjeta y pides a varias personas que las agrupen y pongan nombre a los grupos. Así descubres cómo esperan encontrar las cosas.

De menos a más detalle

Las ideas se prueban primero con poco detalle, porque cambiar un boceto cuesta minutos y cambiar un diseño acabado cuesta días. Es lo que se llama fidelidad:

Baja · boceto en papel
Media · wireframe
Festival de jazzEntradas
Alta · prototipo
  • Baja fidelidad: bocetos a mano. Rápidos, para explorar muchas ideas y decidir la distribución.
  • Media fidelidad (wireframe): la estructura de cada pantalla en grises, con cajas y textos de relleno. Sin colores ni tipografías definitivas, para que la conversación se centre en la organización y no en el aspecto.
  • Alta fidelidad (prototipo): el diseño con su aspecto final y, a menudo, interactivo: en Figma se pueden unir las pantallas para que, al pulsar un botón, se pase a la siguiente, como si fuera la web real.

Idea clave: un prototipo no es el producto final, es una pregunta: «¿funciona así?». Su objetivo es poder probar una idea con personas antes de dedicarle el tiempo de diseñarla al detalle y programarla.

Test con usuarios

Por mucho cuidado que pongas, sólo sabrás si un diseño funciona viendo a otras personas usarlo. Un test de usabilidad consiste en pedir a alguien que haga tareas concretas con tu prototipo o tu web mientras observas.

Cómo hacer un test sencillo

  1. Prepara tareas realistas: «Busca un proyecto de identidad y escribe a la autora para pedir presupuesto». No le digas dónde pulsar.
  2. Pide que piense en voz alta: que diga lo que ve, lo que espera y lo que le confunde.
  3. Observa sin ayudar. Es lo más difícil: si se atasca, apúntalo en lugar de explicarle. Ese atasco es justo lo que buscabas.
  4. Haz preguntas neutras: «¿Qué esperabas que pasara?» en lugar de «¿A que se entiende bien?».
  5. Apunta qué ocurre: si consigue la tarea, cuánto tarda, dónde duda y qué comenta.

No hacen falta muchas personas: con unas cinco ya aparecen la mayoría de los problemas importantes. Es más útil hacer varias rondas pequeñas, corrigiendo entre una y otra, que una sola ronda grande.

Evaluación heurística

Cuando no hay usuarios disponibles, se puede revisar el diseño comparándolo con unos principios de usabilidad (heurísticas). Los más conocidos son los diez de Jakob Nielsen:

  1. Visibilidad del estado del sistema. La interfaz informa de lo que está pasando (cargando, enviado, error).
  2. Relación con el mundo real. Usa palabras y conceptos que la gente conoce, no jerga técnica.
  3. Control y libertad. Se puede deshacer, volver atrás o cancelar.
  4. Coherencia y estándares. Lo que es igual se ve igual y funciona igual, y se respetan las convenciones.
  5. Prevención de errores. Mejor evitar el error que explicarlo después.
  6. Reconocer mejor que recordar. Las opciones están a la vista; no hay que memorizarlas.
  7. Flexibilidad y eficiencia. Atajos para quien ya sabe usarla, sin complicar a quien empieza.
  8. Diseño estético y minimalista. Cada elemento que sobra le resta protagonismo a lo importante.
  9. Ayudar a reconocer y corregir errores. Mensajes claros, que digan qué ha pasado y cómo arreglarlo.
  10. Ayuda y documentación. Si hace falta, ayuda fácil de encontrar y centrada en la tarea.

Idea clave: los problemas que encuentra un test no son un fracaso, son información. Cada problema detectado en un prototipo es uno que no sufrirá nadie en la web publicada.

Herramientas e inspiración

Webs para aprender, consultar, inspirarte y encontrar tipografías, iconos, imágenes y color. Junto a cada una se indica si está en español (ES) o en inglés (EN).

Para trabajar

Los programas que usarás en las prácticas de las distintas asignaturas, y algunas alternativas gratuitas.

Código

El editor para escribir el código y los validadores para comprobar que no tiene errores.

Imagen

Para editar fotos y dibujar en vectorial, como en Medios Informáticos I.

Diseño de interfaces

WordPress

Para crear sitios web con WordPress, como en Medios Informáticos II.

Fíjate: WordPress.org es el programa, que se descarga y se instala; WordPress.com es una empresa que te lo da ya instalado en sus servidores, con un plan gratuito muy limitado y planes de pago. Con el de .org tienes control total sobre tu web.

Color

Para crear paletas y comprobar que se leen bien.

Fíjate: en el apartado de accesibilidad visual de Recursos tienes también un comprobador de contraste integrado en esta web.

Programación creativa

Para explorar el código como herramienta de expresión, no sólo para hacer webs.

Glosario

Los términos que aparecen en los apuntes, explicados en una o dos frases. Cada uno enlaza al apartado donde se explica con más detalle.

Términos de la A a la Z

A

Accesibilidad UX
Que una web pueda usarla todo el mundo, incluidas las personas con discapacidad visual, auditiva, motriz o cognitiva, y en cualquier situación (al sol, con una mano, sin ratón). Ver en los apuntes →
Affordance UX
Lo que un objeto sugiere sobre cómo se usa. Un botón con aspecto de botón «invita» a pulsarlo. Ver en los apuntes →
Algoritmo JS
Serie de pasos ordenados y precisos para resolver un problema. Una receta de cocina es un algoritmo. Ver en los apuntes →
Arquitectura de la información UX
Organización del contenido de una web: qué secciones tiene, cómo se agrupan y cómo se llega a cada una. Ver en los apuntes →
Array JS
Lista de valores guardada en una sola variable, por ejemplo los colores de una paleta. Se escribe entre corchetes y se cuenta desde 0. Ver en los apuntes →
Atributo HTML
Información extra que se añade a una etiqueta de apertura, con la forma nombre="valor". Por ejemplo, href en un enlace o alt en una imagen. Ver en los apuntes →
Auto Layout Diseño
Función de Figma que coloca los elementos de un marco en fila o en columna, con espacios y rellenos. Equivale a Flexbox en CSS. Ver en los apuntes →

B

Bucle JS
Instrucción que repite un bloque de código varias veces, por ejemplo una vez por cada elemento de un array. Ver en los apuntes →
Buscador Web
Página web que sirve para encontrar otras páginas, como Google, Bing o DuckDuckGo. No hay que confundirlo con el navegador. Ver en los apuntes →

C

Caché Web
Copia que guarda el navegador de los archivos de una web para cargarla más rápido. A veces muestra una versión antigua: se soluciona recargando con Cmd/Ctrl + Mayús + R.
Card sorting UX
Técnica de investigación en la que las personas agrupan tarjetas con contenidos para descubrir cómo esperan encontrarlos organizados. Ver en los apuntes →
Cascada CSS
Regla de CSS que decide qué estilo gana cuando varios chocan: con la misma especificidad, gana el último. Ver en los apuntes →
Clase CSS
Nombre que se da a uno o varios elementos con el atributo class para poder darles estilo desde CSS con un punto delante (.tarjeta). Ver en los apuntes →
Cliente Web
El programa que pide las páginas, normalmente el navegador de quien visita la web. Ver en los apuntes →
CMS Web
Gestor de contenidos (Content Management System): aplicación para crear y editar una web desde un panel, sin escribir código. WordPress es el más usado. Ver en los apuntes →
Condicional JS
Instrucción que ejecuta un código u otro según se cumpla una condición (if, else). Ver en los apuntes →
Consola JS
Herramienta del navegador donde se puede escribir JavaScript y ver los mensajes y errores de una página. Ver en los apuntes →
Container query CSS
Regla que cambia los estilos de un componente según el tamaño de su contenedor, en lugar del de la pantalla.
Contraste Diseño
Diferencia de luminosidad entre el texto y su fondo. Las pautas de accesibilidad piden al menos 4,5:1 para el texto normal. Ver en los apuntes →
CSS CSS
Lenguaje que define el aspecto de una web: colores, tipografías, tamaños, espacios y distribución. Ver en los apuntes →

D

Design thinking UX
Forma de abordar el diseño en cinco fases (empatizar, definir, idear, prototipar y evaluar) que se repiten hasta dar con una buena solución. Ver en los apuntes →
DNS Web
Sistema que traduce los nombres de dominio (escuela.com) a la dirección IP del servidor donde está la web. Funciona como una agenda. Ver en los apuntes →
Doble diamante UX
Esquema del proceso de diseño en dos fases: descubrir y definir el problema, y desarrollar y entregar la solución. Ver en los apuntes →
DOM JS
Modelo en forma de árbol que construye el navegador a partir del HTML. JavaScript lo usa para leer y cambiar la página. Ver en los apuntes →
Dominio Web
Nombre fácil de recordar que identifica una web (escueladeartedezaragoza.com). Se alquila por años. Ver en los apuntes →

E

Editor de código Web
Programa para escribir código con ayudas como el resaltado de colores y el autocompletado. En clase usamos Visual Studio Code. Ver en los apuntes →
Elemento HTML
Una parte de la página formada por la etiqueta de apertura, el contenido y la etiqueta de cierre. Ver en los apuntes →
Especificidad CSS
Peso de un selector. Cuando dos reglas chocan, gana la más específica: id antes que clase, y clase antes que etiqueta. Ver en los apuntes →
Estado UX
Cada aspecto que toma un componente según lo que pasa: normal, hover, foco, activo, desactivado, cargando, error… Ver en los apuntes →
Etiqueta HTML
Marca de HTML que indica qué es cada parte del contenido, escrita entre los signos < y >, como <p> o <h1>. Ver en los apuntes →
Evaluación heurística UX
Revisión de un diseño comparándolo con unos principios de usabilidad, como las diez heurísticas de Nielsen. Ver en los apuntes →
Evento JS
Algo que ocurre en la página (un clic, una tecla, escribir en un campo) y a lo que JavaScript puede responder. Ver en los apuntes →

F

Feedback UX
Retroacción: la respuesta de la interfaz que confirma que ha recibido una acción (un botón que cambia al pulsarlo, un mensaje de «Enviado»). Ver en los apuntes →
Flexbox CSS
Sistema de CSS para colocar elementos en una fila o en una columna, repartiendo el espacio y alineándolos. Ver en los apuntes →
Foco UX
Indicación del elemento que está seleccionado al navegar con el teclado. Nunca debe eliminarse. Ver en los apuntes →
Framework Web
Conjunto de herramientas y código ya hecho que facilita construir webs grandes, como React o Vue. Ver en los apuntes →
Función JS
Bloque de código con nombre que se puede usar muchas veces, a veces con datos distintos (parámetros). Ver en los apuntes →

G

Gestalt Diseño
Corriente de la psicología que estudia cómo agrupamos y organizamos lo que vemos: proximidad, semejanza, cierre, continuidad… Ver en los apuntes →
Grid CSS
Sistema de CSS para colocar elementos en una retícula de filas y columnas a la vez. Ver en los apuntes →

H

Hipertexto Web
Texto con enlaces a otros textos, que cada persona recorre en el orden que quiere. Es la idea sobre la que se construye la web. Ver en los apuntes →
Hosting Web
Alojamiento: espacio en un servidor donde se guardan los archivos de una web para que esté disponible en internet. Ver en los apuntes →
Hotspot Diseño
Punto interactivo sobre una imagen que muestra información al pasar el ratón o al pulsarlo. Ver en los apuntes →
Hover CSS
Estado de un elemento cuando el ratón está encima. En CSS se selecciona con :hover. No existe en las pantallas táctiles. Ver en los apuntes →
HTML HTML
Lenguaje de marcado con el que se escribe el contenido de una web y se indica qué es cada parte. Ver en los apuntes →
HTTP / HTTPS Web
Protocolo con el que el navegador pide las páginas al servidor. HTTPS es su versión cifrada, la del candado. Ver en los apuntes →

I

Interacción UX
El diálogo entre una persona y un sistema: la persona hace algo y la interfaz responde. El centro de la gráfica interactiva.
Interfaz (UI) UX
La parte de un sistema con la que la persona se comunica: lo que ve y lo que toca en la pantalla. Ver en los apuntes →
IP Web
Dirección numérica que identifica a cada dispositivo conectado a internet. Ver en los apuntes →

J

JavaScript JS
El lenguaje de programación de la web. Añade comportamiento: decide, repite y reacciona a lo que hace el usuario. Ver en los apuntes →
Jerarquía visual Diseño
Orden en el que el ojo recorre una página, marcado con el tamaño, el peso, el color, la posición y el espacio. Ver en los apuntes →

L

Llamada a la acción Diseño
Elemento, normalmente un botón, que invita a hacer la acción principal de una página: «Inscribirme», «Comprar» (en inglés, call to action o CTA). Ver en los apuntes →

M

Media query CSS
Condición de CSS que aplica unos estilos sólo si la pantalla cumple algo, como medir más de 600px de ancho. Ver en los apuntes →
Medianil Diseño
Espacio entre las columnas de una retícula (en inglés, gutter). Ver en los apuntes →
Mobile first CSS
Forma de trabajar que diseña y programa primero para el móvil y después añade los cambios para pantallas más grandes. Ver en los apuntes →
Modelo de caja CSS
Idea de CSS según la cual todo elemento es una caja con contenido, relleno (padding), borde (border) y margen (margin). Ver en los apuntes →
Modo oscuro Diseño
Versión de una interfaz con fondo oscuro y texto claro, que se activa según la preferencia del sistema o con un botón.

N

Navegador Web
Programa con el que se visitan las webs (Chrome, Safari, Firefox, Edge): pide las páginas al servidor, interpreta su código y las dibuja en la pantalla. Ver en los apuntes →

P

Patrón de interfaz UX
Solución probada a un problema que se repite en muchas interfaces: menús, tarjetas, pestañas, ventanas modales… Ver en los apuntes →
Persona UX
Personaje ficticio que resume a un grupo de usuarios reales, con sus objetivos y frustraciones, basado en la investigación. Ver en los apuntes →
Prototipo UX
Versión de un diseño que se puede probar antes de construirlo. Puede ir desde un boceto en papel hasta una simulación interactiva en Figma. Ver en los apuntes →
Pseudoclase CSS
Selector que elige un elemento en un estado concreto, como :hover o :focus-visible. Ver en los apuntes →
Pseudocódigo JS
Algoritmo escrito en lenguaje normal pero con la estructura de un programa, para planificarlo antes de programarlo. Ver en los apuntes →
Pseudoelemento CSS
Elemento extra que crea CSS dentro de otro sin tocar el HTML, con ::before y ::after. Ver en los apuntes →
Punto de ruptura CSS
Ancho de pantalla en el que el diseño cambia de distribución mediante una media query (en inglés, breakpoint). Ver en los apuntes →

R

Responsive CSS
Diseño que se adapta a cualquier tamaño de pantalla con un mismo HTML y CSS. Ver en los apuntes →
Retícula Diseño
Estructura de columnas, medianiles y márgenes que organiza la composición. En web suele ser de 12 columnas. Ver en los apuntes →
Ruta relativa HTML
Camino desde el archivo actual hasta otro archivo de la misma web, como img/foto.jpg o ../index.html. Ver en los apuntes →

S

Selector CSS
La parte de una regla CSS que indica a qué elementos se aplica: p, .tarjeta, #cabecera, nav a… Ver en los apuntes →
Semántico HTML
HTML que elige cada etiqueta por lo que significa y no por cómo se ve (header, nav, main, article…). Ver en los apuntes →
Servidor Web
Ordenador siempre encendido y conectado que guarda los archivos de una web y los envía a quien los pide. Ver en los apuntes →

T

Terminal Web
Ventana de sólo texto en la que se escriben órdenes y el ordenador responde también con texto. También se llama consola o línea de comandos. Antes de la web, era la forma de usar Internet. Ver en los apuntes →
Test de usabilidad UX
Prueba en la que una persona realiza tareas con un diseño mientras se observa dónde duda o se equivoca. Ver en los apuntes →

U

URL Web
La dirección completa de un archivo en la web: protocolo, dominio y ruta. Ver en los apuntes →
Usabilidad UX
Facilidad con la que una persona consigue lo que quiere con una interfaz, sin errores ni esfuerzo innecesario. Ver en los apuntes →
User journey UX
Viaje de usuario: el recorrido paso a paso de una persona para lograr un objetivo, con lo que hace y siente en cada momento. Ver en los apuntes →
UX UX
Experiencia de usuario: todo lo que siente y vive una persona al usar un producto, antes, durante y después. Ver en los apuntes →

V

Validador Web
Herramienta que revisa el código y señala sus errores, como el validador de HTML del W3C. Ver en los apuntes →
Variable JS
Nombre que guarda un valor para usarlo después. Existen en JavaScript (let, const) y en CSS (--color-principal). Ver en los apuntes →
Viewport CSS
La zona de la ventana del navegador donde se ve la página. Las unidades vw y vh se miden respecto a ella. Ver en los apuntes →

W

Wireframe UX
Esquema de una pantalla con cajas y textos de relleno, sin colores ni tipografías definitivas, para decidir la estructura. Ver en los apuntes →
WYSIWYG Web
«Lo que ves es lo que obtienes»: herramientas en las que se diseña de forma visual y el programa escribe el código. Ver en los apuntes →

Para profundizar: el glosario del Design Toolkit de la UOC recoge más términos de experiencia de usuario y diseño de interacción.