Estándares y conocimientos · Nuevo recurso

Sistema de diseño W3C.

Crea interfaces de lectura adaptables con tipografía fluida, roles de color semánticos y contenido plegable nativo que sigue siendo legible sin JavaScript.

Guía de OpenDesign8 capítulos25 entradas de referenciaGuía de aplicación original
01

Vista previa de la interfaz sistema de diseño W3C

Abre las sesiones individualmente o todas a la vez; el contenido sigue siendo legible cuando JavaScript está desactivado.

Explora círculos de aprendizaje en líneaAbrir ejemplo completo
CSS nativo de W3C y main.js, instantánea fechada del CDN; fuente del sistema como alternativa y contenido original. · Referencia de implementación
02

Referencia de diseño sistema de diseño W3C

Documentación oficial de W3C e instantánea pública del CDN descargada el 3 de octubre de 2026; se inspeccionaron CSS real y el script nativo.

Tipografía fluida

Fuente
Nombre / ReglaValor / ConfiguraciónUso
Web font / fallbackNoto Sans / Trebuchet MS, Geneva, sans-serifEl CSS nativo aplica Noto Sans cuando se cargan las fuentes; la demostración conserva la fuente alternativa del sistema.
Fluid range320–1120px viewportLos valores de clamp se mantienen constantes fuera de este intervalo; no hay saltos tipográficos bruscos.
--w3c-text-0clamp(.9375rem, .9125rem + .125vw, 1rem)Cuerpo: de 15px a 16px con el tamaño normal de la raíz.
--w3c-text-5clamp(1.6894rem, 1.6444rem + .2253vw, 1.802rem)Escala H1; aproximadamente de 27 a 28.8px.
--w3c-text-7clamp(2.1382rem, 2.0811rem + .2851vw, 2.2807rem)La escala más grande de text-xl, no el H1 predeterminado.
Body line height1.5En relación con el tamaño de fuente fluido.
Collapsible H3--w3c-text-1 / line-height 1.5Sobreescritura del componente: aproximadamente de 16.9 a 18px.

Colores semánticos

Fuente
Nombre / ReglaValor / ConfiguraciónUso
Text#111111 casi negro; texto normal de lectura.
Link#005a9c Azul W3C; distinto de los estados al pasar el cursor y visitado.
Hover / visited#002a56 / #75336cConserva la distinción entre estados.
Focus#f9dc4a Tratamiento amarillo para el foco con un límite visible.
Input border#545454 Función de contraste distinta a la de los separadores decorativos.
Success / error#046704 / #a82615Significado de estado, no acentos aleatorios.
Warning#c28605 Función del borde para notas de advertencia.

Diseño y espaciado

Fuente
Nombre / ReglaValor / ConfiguraciónUso
l-centermax-inline-size:70rem; padding-inline:5vwContenedor ancho nativo; la vista previa aplica un límite más estrecho de 55rem para la aplicación.
Reading measure41.25remAncho máximo del contenido dentro de los cuerpos desplegables.
Stack default1em between direct siblingsEl mixin oficial de Sass acepta una medida explícita; no es una escala fija de 8px.
Collapsible inset1.5625rem25px con el tamaño raíz normal.
Collapsible separation / radius1rem / .375remSeparación de 16px y esquinas de 6px.
Collapsible shadow-.0625rem .0625rem .25rem rgba(55,70,95,.12)Separación sutil entre superficies; CSS nativo.

Contrato de mejora progresiva

Fuente
Nombre / ReglaValor / ConfiguraciónUso
Outer hookdata-component="collapsibles"El script localiza la raíz de cada componente.
Heading hookdata-heading="collapsibles"El script inserta un botón real en cada encabezado.
Collapsed statearia-expanded=false; next sibling aria-hidden=trueCSS Avanzado requiere la marca html.js para ocultar el cuerpo.
data-anchor="no"Suppress automatic heading anchors for this subtreeEvita inyectar otro enlace en el encabezado desplegable.
No JavaScriptAll content remains visibleNo incluyas contenido oculto en el marcado inicial sin mejora progresiva.
03

Sistema de diseño W3C Guía completa

Una guía práctica para elegir, aplicar y revisar este sistema en una interfaz real.

DESIGN-w3c.md

Orientación completa, un punto de partida para la implementación y enlaces al código fuente.

Descargar la guía

Sistema de diseño W3C Mejora progresiva

El contenido precede a los controles

W3C separa los estilos básicos de los componentes avanzados. El componente desplegable comienza con encabezados normales seguidos del contenido. Sin script, se puede leer el esquema completo de cada sesión. main.js inserta botones y cambia el estado solo después de detectar los atributos de datos documentados. Este modelo de implementación es distinto al de publicar un acordeón ya oculto cuyos controles quizá nunca lleguen a inicializarse.

De esta guía de OpenDesign

La vista previa usa los archivos oficiales del CDN core.css, advanced.css y main.js, guardados como una copia local fechada. La marca html.js activa los selectores avanzados. Si se omite esa marca, cambian los atributos ARIA, pero los cuerpos siguen visibles; la vista previa comprueba explícitamente tanto la visibilidad real como aria-expanded.

Consulta la especificación complementaria

Sistema de diseño W3C Tipografía fluida y carga de fuentes

Una escala de lectura moderada

El tamaño del texto del cuerpo pasa de 15px en el límite inferior de la ventana gráfica a 16px a 1120px. La escala se basa en nueve propiedades personalizadas con nombre. H1 usa --w3c-text-5, no --w3c-text-7, el valor más grande; aplicar indiscriminadamente un título de presentación de 36px a todos los documentos no respetaría la jerarquía de encabezados estándar.

Noto Sans es la fuente web prevista. La pila de fuentes alternativas nativas usa Trebuchet MS y Geneva hasta que la ruta de carga de fuentes añade fonts-loaded a la raíz. Este ejemplo independiente mantiene activa la fuente alternativa y señala esa elección. El tamaño fluido y la altura de línea son nativos; la vista previa no afirma reproducir con exactitud las métricas de los glifos de Noto Sans.

Consulta la especificación complementaria

Sistema de diseño W3C Ancho de lectura y espaciado

Combina primitivas de diseño

La primitiva l-center proporciona un tamaño en línea máximo de 70rem y un relleno lateral de 5vw. La vista previa añade un límite de 55rem específico de la aplicación para mantener compactos los tres esquemas breves de aprendizaje. Ese límite no es un token nuevo de W3C. Dentro del cuerpo de cada componente desplegable, la medida de texto nativa de 41.25rem limita la longitud de las líneas.

El mixin Stack documentado crea una columna y aplica margin-top a los elementos hermanos directos posteriores al primero. Su medida predeterminada es 1em y se puede pasar otra unidad al invocarlo. Considéralo una relación entre bloques, en lugar de inventar una escala global de espaciado numerada. El componente desplegable tiene valores independientes, verificados por separado: un relleno interior de 25px, una separación de 16px y un radio de 6px.

Consulta la especificación complementaria

Sistema de diseño W3C Funciones semánticas del color

Mantén visibles el historial de enlaces y el foco

El sistema distingue entre el enlace azul predeterminado, el azul oscuro al pasar el cursor y el estado visitado en morado. Estas funciones son importantes en un sitio donde las personas vuelven a documentos extensos y navegan entre referencias. Reutilizar el alias de enlace para elementos decorativos no relacionados hace que futuros cambios de tema afecten superficies que no guardan relación.

El foco usa amarillo con un límite visible. La página de configuración distingue los bordes normales de la función de borde más oscuro de los campos de entrada. También asigna significados distintos a los colores de información, éxito, advertencia y error. Conserva la función y comprueba su combinación con el fondo real; una muestra de color por sí sola no demuestra que el contraste de un estado de componente sea suficiente.

Consulta la especificación complementaria

Sistema de diseño W3C Marcado y script del componente desplegable

Encabezado, botón y cuerpo adyacente

Cada elemento hijo directo contiene un encabezado seguido inmediatamente por el cuerpo de su contenido. El script usa nextElementSibling para encontrar ese cuerpo, por lo que insertar metadatos no relacionados entre ambos rompería la relación. Coloca la etiqueta de categoría dentro del intervalo del encabezado, como en el patrón documentado para listas de grupos. El script envuelve el contenido del encabezado en un botón.

El código nativo alterna aria-expanded en ese botón y aria-hidden en el cuerpo. La hoja de estilos avanzada oculta el cuerpo cuando está contraído. data-anchor="no" impide que la función independiente de anclaje de encabezados introduzca enlaces no deseados en este componente. Inicializa main.js una sola vez; aplicar la mejora varias veces anidaría botones adicionales en los encabezados.

HTML
<div class="component--collapsibles" data-component="collapsibles" data-anchor="no">
  <div>
    <h3 data-heading="collapsibles">Inclusive forms <span>Practical workshop</span></h3>
    <div>
      <p>Connect each field to its label, hint and recovery message.</p>
      <ul><li>Preserve entered values</li><li>Test keyboard recovery</li></ul>
    </div>
  </div>
</div>

Referencia de código

Consulta la especificación complementaria

Sistema de diseño W3C Controles masivos y uso del teclado

Extiende la funcionalidad mediante los botones existentes

Expandir todo y Contraer todo son controles originales de ejemplo. Revisan cada botón nativo y hacen clic solo cuando es necesario cambiar su estado. Así, la transición de estado nativa y la regla visual permanecen sincronizadas. No modifican directamente un atributo ARIA mientras dejan desactualizado el otro.

Los botones nativos permiten activarse con Intro y la barra espaciadora. La vista previa comprueba un botón individual, expande todo, contrae todo y vuelve a abrir una sección desde el teclado. Un mensaje de estado cortés describe la acción masiva. El componente de origen permite mantener abiertos varios esquemas a la vez; no es un acordeón que solo permite abrir una sección.

  1. Abre Formularios inclusivos y consulta su lista práctica.
  2. Expande todo para comparar las descripciones de las tres sesiones.
  3. Contrae todo y luego pulsa Intro en un encabezado para volver a abrir solo esa sección.

Consulta la especificación complementaria

Sistema de diseño W3C Recursos e integración

Sin instalaciones de paquetes inventadas

La página oficial de inicio rápido publica direcciones CDN estables para los estilos core, advanced e print, además de main.js y scripts opcionales para funciones adicionales. El bloque de configuración usa esas rutas reales. No se necesita un proveedor de React ni un paquete npm para esta implementación de HTML. La demostración local incluye copias de los archivos descargados para que el ejemplo no dependa de una conexión activa.

La integración en producción debe conservar la condición documentada CSS para las funciones avanzadas cuando sea necesario admitir el mismo conjunto de navegadores antiguos. La configuración compacta carga directamente los estilos avanzados en los navegadores modernos. Incluye la hoja de estilos para impresión en un sitio con el documento completo; la vista previa independiente se centra en el ejemplo interactivo en pantalla.

  • core.css: tipografía base, diseños y componentes sin mejoras.
  • advanced.css: reglas para los estados mejorados con JavaScript.
  • main.js: detecta los hooks de datos y mejora una sola vez los componentes compatibles.

Consulta la especificación complementaria

Sistema de diseño W3C Alcance y verificación

Sistema de diseño, no certificación de conformidad

Una página con estilos de W3C no cumple automáticamente con WCAG. Comprueba su contenido real, el orden del foco, el comportamiento al ampliar y los estados de recuperación. Este ejemplo verifica tres anchos de ventana y el funcionamiento básico sin scripts; no afirma tener una certificación ni haber pasado una auditoría exhaustiva con tecnologías de asistencia.

Los nombres y las descripciones de los círculos de aprendizaje son contenido ficticio original. No corresponden a grupos de trabajo oficiales, calendarios ni oportunidades de inscripción. El ejemplo evita deliberadamente los logotipos de W3C y cualquier afirmación de pertenencia. La reutilización de un recurso de estilo público debe mantenerse separada de cualquier insinuación de respaldo institucional.

Consulta la especificación complementaria

Sistema de diseño W3C Ejemplos de componentes del sistema de diseño

Esquema de sesiones con mejoras progresivas

El encabezado y el texto contiguo conforman la estructura necesaria; main.js añade el control de expansión.

HTML
<div class="component--collapsibles" data-component="collapsibles" data-anchor="no">
  <div>
    <h3 data-heading="collapsibles">Inclusive forms <span>Practical workshop</span></h3>
    <div>
      <p>Connect each field to its label, hint and recovery message.</p>
      <ul><li>Preserve entered values</li><li>Test keyboard recovery</li></ul>
    </div>
  </div>
</div>

Referencia de código

Lista de aprendizaje nativa completa

Incluye el marcador de mejora en la raíz, recursos oficiales, secciones desplegables nativas y controles para todas las secciones.

HTML
<!doctype html><html lang="en"><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><script>document.documentElement.classList.add("js")</script><title>Web learning circles</title><link rel="stylesheet" href="vendor/w3c-2026-10-03/core.css"><link rel="stylesheet" href="vendor/w3c-2026-10-03/advanced.css"><style>body{min-block-size:0;padding-block:2rem}.demo{max-inline-size:55rem}header{margin-bottom:2rem}.actions{display:flex;gap:1rem;flex-wrap:wrap;margin:1.5rem 0}.component--collapsibles{padding:1rem;background:#f8f8fb}footer{margin-top:2rem;border-top:1px solid #bdbdbd;padding-top:1rem;font-size:.875rem}#notice{min-height:1.5em}button{max-width:100%}</style><main class="l-center demo" data-anchor="no"><header><p>INDEPENDENT LEARNING PROGRAMME</p><h1>Web learning circles</h1><p class="lead">Explore three small-group sessions for people building a more usable web.</p></header><div class="actions"><button class="button button--ghost" id="expand">Expand all sessions</button><button class="button button--ghost" id="collapse">Collapse all sessions</button></div><p id="notice" role="status">Choose a session to read its outline.</p><div class="component--collapsibles" data-component="collapsibles" data-anchor="no"><div><h3 data-heading="collapsibles">Inclusive forms <span>Practical workshop</span></h3><div><p>Trace a form from its label to its hint, error message and recovery action. Compare the experience with a keyboard and with enlarged text.</p><ul><li>Associate labels and help text</li><li>Keep entered values after an error</li><li>Move focus only when it helps recovery</li></ul></div></div><div><h3 data-heading="collapsibles">Resilient reading <span>Discussion circle</span></h3><div><p>Examine document structure before adding interaction. The content in this example remains visible when JavaScript is unavailable.</p><p>Bring a short article and identify its heading hierarchy, reading measure and meaningful links.</p></div></div><div><h3 data-heading="collapsibles">International text <span>Peer review</span></h3><div><p>Review language declarations, long translated labels and mixed-direction text. A font choice alone cannot guarantee a usable multilingual interface.</p><p>All sessions are fictional examples, with no membership or registration service.</p></div></div></div><footer>Native W3C CDN styles and collapsible script, snapshot 3 October 2026. System font fallback; original learning content, no W3C affiliation.</footer></main><script src="vendor/w3c-2026-10-03/main.js"></script><script>document.querySelector('.component--collapsibles').addEventListener('click',()=>{const n=document.querySelectorAll('[data-heading] button[aria-expanded=true]').length;document.querySelector('#notice').textContent=n+' session outline'+(n===1?' is':'s are')+' expanded.'});function all(open){document.querySelectorAll('[data-heading="collapsibles"] button').forEach(b=>{if((b.getAttribute('aria-expanded')==='true')!==open)b.click()});document.querySelector('#notice').textContent=open?'All three session outlines are expanded.':'All session outlines are collapsed.'}document.querySelector('#expand').onclick=()=>all(true);document.querySelector('#collapse').onclick=()=>all(false);</script></html>

Referencia de código

04

Sistema de diseño W3C Configuración del agente

Punto de partida para la implementación

Rutas CDN oficiales reales. La vista previa local incluye estos recursos y conserva la fuente de sistema nativa como alternativa. El ZIP del ejemplo completo de Sources también incluye las dependencias exactas de la vista previa y el documento completo. Descomprímelo, ejecuta python3 -m http.server 8080 en ese directorio y abre http://localhost:8080/w3c.html. No abras ejemplos basados en módulos mediante file://.

HTML
<!-- Core is useful without JavaScript. -->
<link rel="stylesheet" href="https://www.w3.org/assets/website-2021/styles/core.css">
<link rel="stylesheet" href="https://www.w3.org/assets/website-2021/styles/advanced.css">
<link rel="stylesheet" href="https://www.w3.org/assets/website-2021/styles/print.css" media="print">
<script>document.documentElement.classList.add('js');</script>
<!-- Put component markup in the document, then load the script once. -->
<script defer src="https://www.w3.org/assets/website-2021/js/main.js"></script>

Una instrucción para tu proyecto

Instrucción para el agente
Usa los estilos core y advanced de W3C junto con main.js y el marcador de mejora html.js. Crea encabezados semánticos con contenido desplegable contiguo mediante los hooks de datos reales. Conserva una versión legible sin JavaScript, la tipografía fluida nativa y los colores semánticos para enlaces y foco. No inicialices dos veces ni deduzcas el cumplimiento de WCAG únicamente a partir de los estilos.
05

Sistema de diseño W3C Fuentes y alcance

Ejemplo independiente de OpenDesign que usa recursos públicos oficiales. No implica afiliación con W3C ni certificación de accesibilidad.