Saltar al contenido principal

Elementos HTML · @luz-ds/core

Elementos HTML

Esta traducción la ha escrito una IA y todavía no la ha revisado ninguna persona. Leer esta página en inglés

Cómo aplica LUZ estilos a cada uno de los 116 elementos HTML actuales, agrupados en 14 categorías, con un ejemplo en vivo y el marcado que puedes copiar.

La lista sigue la referencia de MDN. Se excluyen deliberadamente los elementos obsoletos: aquí tienes alternativas.

La mayoría de los elementos tienen estilo sin clase. Mira cuáles, y cuáles quedan en tus manos, y cómo cambiar los estilos por defecto.

Cómo leer una ficha

  • Ejemplo en vivo. El elemento real, con los estilos de LUZ. Cambia el modo de color en el pie de página para comprobarlo en los tres modos.
  • Marcado. El código exacto del ejemplo. El botón para copiar copia lo que ves.
  • Nota de LUZ. Indica si el elemento tiene estilo sin clase, si se deja al navegador o si no tiene estilo porque solo agrupa contenido. Cuando una clase añade algo, la nota dice qué.

Las reglas que dan estilo a elementos sin clase tienen especificidad cero: cualquier clase .luz-* o regla propia prevalece.

Qué elementos tienen estilo sin clase

Escribe el HTML y LUZ le da estilo, sin ponerle ninguna clase. La estructura es la excepción: la maquetación de la página es tuya.

Con estilo sin clase
GrupoElementos
Textoh1 a h6, p, ul, ol, menu, li, dl, dt, dd, blockquote, pre, hr, figure, figcaption, address. Tipografía, color y el espacio entre bloques.
Texto en líneaa, abbr, b, strong, code, kbd, samp, var, mark, small, sub, sup, time, dfn, s, u, del, ins, rt.
Controlesbutton, input, textarea, select, label, fieldset, legend, output, meter, progress. Los campos de archivo y de color conservan el aspecto del navegador; .luz-input les da estilo.
Tablastable, caption, tr, th, td. Al ancho completo del contenedor.
Desplegables y diálogosdetails, summary, dialog.
Imágenes y mediosimg, picture, video, audio, canvas, svg, iframe, embed, object.
La páginahtml, body. body fija la tipografía, el color y el fondo de la página. No tiene maquetación: ni contenedor ni centrado.
Sin estilo
GrupoElementos
Estructuradiv, span, section, article, aside, header, footer, main, search, form, nav, hgroup, col, colgroup. Solo agrupan contenido. Maquétalos con los objetos o-*, como .o-stack y .o-grid, o con tu propio CSS.
El aspecto del navegadoroption, optgroup, datalist, em, i, cite, q, br, wbr, bdi, bdo, ruby, rp, data, map, area, slot, source, math, thead, tbody, tfoot. LUZ los deja como los dibuja el navegador. thead, tbody y tfoot solo agrupan filas: las filas y las celdas llevan el aspecto de la tabla.
No se muestranhead, title, meta, link, style, base, script, noscript, template, selectedcontent, geolocation. Llevan información para el navegador, no para quien lee.

El único elemento que falta, track, recibe estilo del reproductor de vídeo y necesita su clase.

El HTML dice la variante

No hace falta una clase para distinguir un aspecto de otro cuando el HTML ya lo dice:

  • Un button sin type, o con type="submit", es la acción principal. type="button" y type="reset" son la secundaria.
  • aria-invalid="true" marca un campo con un error.
  • disabled marca un control que no se puede usar.
  • aria-current="page" marca el enlace de la página en la que estás.

Una clase añade lo que el HTML no puede decir: un enlace con aspecto de botón, los papeles de peligro y fantasma, los tamaños y las partes que necesitan su propio marcado. La ficha de cada elemento dice qué añade su clase. Un elemento con una clase luz-* toma el aspecto de su componente.

Todos los elementos, de la A a la Z

Cada elemento, su categoría y cómo le aplica estilos LUZ. Selecciona un nombre para abrir su ficha.

ElementoCategoríaEstilo de LUZEn esta página
aTexto en líneaelements/inline.cssEjemplo en vivo
abbrTexto en líneaelements/inline.cssEjemplo en vivo
addressEstructura de páginaelements/sections.cssEjemplo en vivo
areaImágenes y mediosAspecto nativoEjemplo en vivo
articleEstructura de páginaAspecto nativoEjemplo en vivo
asideEstructura de páginaAspecto nativoEjemplo en vivo
audioImágenes y medioselements/media.cssEjemplo en vivo
bTexto en líneaelements/inline.cssEjemplo en vivo
baseMetadatos de páginaAspecto nativoSolo marcado
bdiTexto en líneaAspecto nativoEjemplo en vivo
bdoTexto en líneaAspecto nativoEjemplo en vivo
blockquoteBloques de textoelements/text.cssEjemplo en vivo
bodyRaíz del documentoelements/document.cssSolo marcado
brTexto en líneaAspecto nativoEjemplo en vivo
buttonFormularioselements/forms.cssEjemplo en vivo
canvasScript y canvaselements/media.cssEjemplo en vivo
captionTablaselements/tables.cssEjemplo en vivo
citeTexto en líneaAspecto nativoEjemplo en vivo
codeTexto en líneaelements/inline.cssEjemplo en vivo
colTablasAspecto nativoEjemplo en vivo
colgroupTablasAspecto nativoEjemplo en vivo
dataTexto en líneaAspecto nativoEjemplo en vivo
datalistFormulariosAspecto nativoEjemplo en vivo
ddBloques de textoelements/text.cssEjemplo en vivo
delEdiciones registradaselements/inline.cssEjemplo en vivo
detailsWidgets integradoselements/interactive.cssEjemplo en vivo
dfnTexto en líneaelements/inline.cssEjemplo en vivo
dialogWidgets integradoselements/interactive.cssEjemplo en vivo
divBloques de textoAspecto nativoEjemplo en vivo
dlBloques de textoelements/text.cssEjemplo en vivo
dtBloques de textoelements/text.cssEjemplo en vivo
emTexto en líneaAspecto nativoEjemplo en vivo
embedMarcos e incrustacioneselements/media.cssEjemplo en vivo
fieldsetFormularioselements/forms.cssEjemplo en vivo
figcaptionBloques de textoelements/text.cssEjemplo en vivo
figureBloques de textoelements/text.cssEjemplo en vivo
footerEstructura de páginaAspecto nativoEjemplo en vivo
formFormulariosAspecto nativoEjemplo en vivo
geolocationWidgets integradosAspecto nativoSolo marcado Experimental
h1Estructura de páginaelements/sections.cssEjemplo en vivo
h2Estructura de páginaelements/sections.cssEjemplo en vivo
h3Estructura de páginaelements/sections.cssEjemplo en vivo
h4Estructura de páginaelements/sections.cssEjemplo en vivo
h5Estructura de páginaelements/sections.cssEjemplo en vivo
h6Estructura de páginaelements/sections.cssEjemplo en vivo
headMetadatos de páginaAspecto nativoSolo marcado
headerEstructura de páginaAspecto nativoEjemplo en vivo
hgroupEstructura de páginaAspecto nativoEjemplo en vivo
hrBloques de textoelements/text.cssEjemplo en vivo
htmlRaíz del documentoelements/document.cssSolo marcado
iTexto en líneaAspecto nativoEjemplo en vivo
iframeMarcos e incrustacioneselements/media.cssEjemplo en vivo
imgImágenes y medioselements/media.cssEjemplo en vivo
inputFormularioselements/forms.cssEjemplo en vivo
insEdiciones registradaselements/inline.cssEjemplo en vivo
kbdTexto en líneaelements/inline.cssEjemplo en vivo
labelFormularioselements/forms.cssEjemplo en vivo
legendFormularioselements/forms.cssEjemplo en vivo
liBloques de textoelements/text.cssEjemplo en vivo
linkMetadatos de páginaAspecto nativoSolo marcado
mainEstructura de páginaAspecto nativoSolo marcado
mapImágenes y mediosAspecto nativoEjemplo en vivo
markTexto en líneaelements/inline.cssEjemplo en vivo
mathSVG y MathMLAspecto nativoEjemplo en vivo
menuBloques de textoelements/text.cssEjemplo en vivo
metaMetadatos de páginaAspecto nativoSolo marcado
meterFormularioselements/forms.cssEjemplo en vivo
navEstructura de páginaAspecto nativoEjemplo en vivo
noscriptScript y canvasAspecto nativoSolo marcado
objectMarcos e incrustacioneselements/media.cssEjemplo en vivo
olBloques de textoelements/text.cssEjemplo en vivo
optgroupFormulariosAspecto nativoEjemplo en vivo
optionFormulariosAspecto nativoEjemplo en vivo
outputFormularioselements/forms.cssEjemplo en vivo
pBloques de textoelements/text.cssEjemplo en vivo
pictureMarcos e incrustacioneselements/media.cssEjemplo en vivo
preBloques de textoelements/text.cssEjemplo en vivo
progressFormularioselements/forms.cssEjemplo en vivo
qTexto en líneaAspecto nativoEjemplo en vivo
rpTexto en líneaAspecto nativoEjemplo en vivo
rtTexto en líneaelements/inline.cssEjemplo en vivo
rubyTexto en líneaAspecto nativoEjemplo en vivo
sTexto en líneaelements/inline.cssEjemplo en vivo
sampTexto en líneaelements/inline.cssEjemplo en vivo
scriptScript y canvasAspecto nativoSolo marcado
searchEstructura de páginaAspecto nativoEjemplo en vivo
sectionEstructura de páginaAspecto nativoEjemplo en vivo
selectFormularioselements/forms.cssEjemplo en vivo
selectedcontentFormulariosAspecto nativoSolo marcado Experimental
slotWeb ComponentsAspecto nativoEjemplo en vivo
smallTexto en líneaelements/inline.cssEjemplo en vivo
sourceMarcos e incrustacionesAspecto nativoEjemplo en vivo
spanTexto en líneaAspecto nativoEjemplo en vivo
strongTexto en líneaelements/inline.cssEjemplo en vivo
styleMetadatos de páginaAspecto nativoSolo marcado
subTexto en líneaelements/inline.cssEjemplo en vivo
summaryWidgets integradoselements/interactive.cssEjemplo en vivo
supTexto en líneaelements/inline.cssEjemplo en vivo
svgSVG y MathMLelements/media.cssEjemplo en vivo
tableTablaselements/tables.cssEjemplo en vivo
tbodyTablasAspecto nativoEjemplo en vivo
tdTablaselements/tables.cssEjemplo en vivo
templateWeb ComponentsAspecto nativoEjemplo en vivo
textareaFormularioselements/forms.cssEjemplo en vivo
tfootTablasAspecto nativoEjemplo en vivo
thTablaselements/tables.cssEjemplo en vivo
theadTablasAspecto nativoEjemplo en vivo
timeTexto en líneaelements/inline.cssEjemplo en vivo
titleMetadatos de páginaAspecto nativoSolo marcado
trTablaselements/tables.cssEjemplo en vivo
trackImágenes y medioscomponents/player.css (clase)Ejemplo en vivo
uTexto en líneaelements/inline.cssEjemplo en vivo
ulBloques de textoelements/text.cssEjemplo en vivo
varTexto en líneaelements/inline.cssEjemplo en vivo
videoImágenes y medioselements/media.cssEjemplo en vivo
wbrTexto en líneaAspecto nativoEjemplo en vivo

Elementos obsoletos y qué usar en su lugar

Los 23 elementos siguientes se excluyen deliberadamente de la referencia: están obsoletos o se han eliminado, y LUZ no aplica estilos a ninguno. Usa la alternativa indicada.

ElementoUsa en su lugarMotivoFuente
acronym
abbr
La misma función con el nombre que sigue vigente.
big
CSS: font-size, o strong o em cuando aporten énfasis
El tamaño es una cuestión de presentación.
center
CSS: text-align: center para texto, margin-inline: auto para un bloque
La alineación es una cuestión de presentación.
content
slot, de Shadow DOM versión 1
Formaba parte de la primera versión de Shadow DOM, que los navegadores eliminaron.
dir
ul
Una lista de archivos es una lista.
fencedframe
iframe
Un experimento obsoleto de Privacy Sandbox.
font
CSS: font-family, font-size y color
Las fuentes y los colores son cuestiones de presentación.
frame
iframe y CSS, o inclusiones del lado del servidor
Los marcos dividen una ventana en documentos; una maquetación lo hace con CSS.
frameset
iframe y CSS, o inclusiones del lado del servidor
Como con frame.
image
img
Nunca formó parte de un estándar: los navegadores solo lo mantuvieron por compatibilidad con páginas antiguas.
marquee
Animación CSS que respete prefers-reduced-motion
El texto en movimiento que no se puede pausar incumple WCAG 2.2.2.
menuitem
Un script en el evento contextmenu o un popover con botones
El marcado del menú contextual nunca llegó a implementarse de forma generalizada y se eliminó.
nobr
CSS: white-space: nowrap
El salto de línea es una cuestión de presentación.
noembed
object en lugar de embed, con contenido alternativo dentro
embed no tiene contenido alternativo propio.
noframes
iframe y CSS, o inclusiones del lado del servidor
Como con frame.
param
El atributo data de object, que establece la URL del recurso
Parámetros de un plug-in que ningún navegador ejecuta.
plaintext
El tipo text/plain de la respuesta
No se podía cerrar: el resto de la página se convertía en texto.
rb
El texto base directamente dentro de ruby
El texto base de ruby no necesita un contenedor.
rtc
Elementos ruby anidados
Como con rb.
shadow
slot, de Shadow DOM versión 1
Formaba parte de la primera versión de Shadow DOM, que los navegadores eliminaron.
strike
del para una edición, s para texto que ya no es aplicable
El elemento indica qué significa el texto, no cómo se representa.
tt
code, kbd, samp o var, según su significado, o CSS font-family: monospace
La anchura fija es una cuestión de presentación.
xmp
pre con code, escapando < y &
No podía contener su propia etiqueta de cierre.

Cambiar los estilos por defecto

Toda regla que da estilo a un elemento sin clase tiene especificidad cero, así que la tuya gana sin pelea.

  • Cambia los tokens. Es la forma de cambiar el aspecto de todo el sitio: colores, tipografía, espacio y radio. Copia themes/_template.css y cambia los valores. Hazlo tuyo explica cómo.
  • Escribe tu propio CSS. El CSS sin capa gana a todas las capas de LUZ. No necesitas !important ni un selector más largo. Lo que no tocas se queda: si solo cambias el color de un h1, conserva el tamaño que le da LUZ.
  • Usa LUZ en una región de una página que ya tiene diseño. Carga luz.conditional.css en lugar de luz.css y pon data-luz en el elemento que contiene la región. El reset y los elementos sin clase se aplican solo dentro de ella. ¿Qué nivel necesito? dice cuándo elegirla.
CSS
/* Your CSS has no layer, so it beats every layer of LUZ. */
h1 {
  font-weight: 600;
}

button {
  border-radius: 0;
}

Los tokens, tu CSS y la región funcionan juntos: los tokens cambian lo que dibuja LUZ, tu CSS tiene la última palabra y la región limita dónde dibuja LUZ.

Elementos base

elements/*.css generic/_reset.css

Los encabezados usan ET Book

Los párrafos usan la fuente sans del sistema y los enlaces usan el color de marca.


Un elemento de revelado nativo

El elemento details no necesita JavaScript.

Usa mark para resaltar y Ctrl K para las teclas.

Publicado el .

Un figure sin clase es una superficie con relleno.

Y este es su figcaption.

42 resultados

6 de 10

Todos los elementos HTML actuales, con un ejemplo en vivo, están en la referencia de elementos HTML.

El restablecimiento aplica el modelo de caja border-box, elimina los márgenes predeterminados, afina las barras de desplazamiento y reduce el movimiento cuando se solicita.