Administración pública y servicios públicos · Nuevo recurso

Sistema de diseño NHS.

Usa la tipografía de NHS.UK, espaciado adaptable, opciones de radio agrupadas y detalles contextuales para crear un recorrido claro de preferencias de cita.

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

Vista previa de la interfaz de sistema de diseño NHS

Selecciona un método, consulta la ayuda opcional, corrige una pregunta sin responder y modifica la preferencia.

Preferencia de cita y revisión localAbrir ejemplo completo
NHS.UK frontend 10.6.1 nativo con CSS/JS, Arial como fuente alternativa y estado local original; sin integración con servicios clínicos. · Referencia de implementación
02

Referencia de diseño de sistema de diseño NHS

NHS.UK frontend 10.6.1 y manual de servicios digitales del NHS. La vista previa usa CSS/JS local oficial con Arial, no Frutiger con licencia ni el logotipo del NHS. Los valores adaptables se han comprobado con el paquete seleccionado; no se proporciona contenido clínico.

Tipografía e identidad

Fuente
Nombre / ReglaValor / ConfiguraciónUso
Font stackFrutiger W01, Arial, sans-serifFrutiger requiere la licencia correspondiente; este estudio usa Arial.
nhsuk-body16px small / 19px largeTexto de lectura predeterminado.
nhsuk-body-l26px desktopPárrafo destacado, no todas las frases introductorias.
nhsuk-body-s14px small / 16px largeInformación secundaria de uso moderado.
nhsuk-heading-lTransactional h1Usa heading-m para el h2 que le sigue.

Variables de color semánticas

Fuente
Nombre / ReglaValor / ConfiguraciónUso
$nhsuk-text-colour#212b32 Contenido principal
$nhsuk-secondary-text-colour#4c6272 Indicaciones
$nhsuk-link-colour#005eb8 Destinos de los enlaces
$nhsuk-focus-colour#ffeb3b Foco del teclado
$nhsuk-border-colour#d8dde0 Límites estructurales
$nhsuk-input-border-colour#4c6272 Límites de los campos de entrada
$nhsuk-error-colour#d5281b Mensajes de validación
$nhsuk-button-colour#007f3b Acción principal

Espaciado adaptable

Fuente
Nombre / ReglaValor / ConfiguraciónUso
nhsuk-u-margin-bottom-14px → 4pxPantalla pequeña → más de 768px; usa la clase en lugar de crear un duplicado local.
nhsuk-u-margin-bottom-28px → 8pxPantalla pequeña → más de 768px; usa la clase en lugar de crear un duplicado local.
nhsuk-u-margin-bottom-38px → 16pxPantalla pequeña → más de 768px; usa la clase en lugar de crear un duplicado local.
nhsuk-u-margin-bottom-416px → 24pxPantalla pequeña → más de 768px; usa la clase en lugar de crear un duplicado local.
nhsuk-u-margin-bottom-524px → 32pxPantalla pequeña → más de 768px; usa la clase en lugar de crear un duplicado local.
nhsuk-u-margin-bottom-632px → 40pxPantalla pequeña → más de 768px; usa la clase en lugar de crear un duplicado local.
nhsuk-u-margin-bottom-740px → 48pxPantalla pequeña → más de 768px; usa la clase en lugar de crear un duplicado local.
nhsuk-u-margin-bottom-848px → 56pxPantalla pequeña → más de 768px; usa la clase en lugar de crear un duplicado local.
nhsuk-u-margin-bottom-956px → 64pxPantalla pequeña → más de 768px; usa la clase en lugar de crear un duplicado local.

Composición de la página

Fuente
Nombre / ReglaValor / ConfiguraciónUso
nhsuk-width-container960px maximumContenedor exterior de ancho fijo.
nhsuk-main-wrapper--sSmaller vertical wrapperRecomendado para servicios transaccionales.
nhsuk-grid-column-two-thirdsDesktop column; mobile stackLos anchos de la cuadrícula se aplican a partir de 769px.
Breakpoints320 / 641 / 769 / 990pxMóvil, tableta, escritorio y escritorio grande.
nhsuk-u-reading-widthReadable content measureÚsalo cuando el contenedor que lo rodea sea ancho.
03

Guía completa de sistema de diseño NHS

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

DESIGN-nhs.md

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

Descargar la guía

Contexto y tipografía del NHS de sistema de diseño NHS

Una interfaz sanitaria sin falsa identidad

NHS.UK frontend proporciona la base visual y de interacción; no programa una consulta ni decide qué métodos de asistencia ofrece una clínica. El estudio muestra una cita ficticia y permite al visitante elegir una preferencia. El resultado es una revisión local, no una reserva.

De esta guía de OpenDesign

Frutiger es un recurso de marca del NHS sujeto a condiciones de licencia. Este recurso independiente usa Arial, la fuente alternativa documentada, y excluye el logotipo del NHS. Se mantiene intacto el CSS oficial; una sobrescritura local explícita de la fuente evita las solicitudes de Frutiger.

Consulta la especificación complementaria

Tipografía para transacciones de sistema de diseño NHS

Deja que la pregunta marque la jerarquía

Usa nhsuk-heading-l para la pregunta de la página y nhsuk-heading-m para una sección subordinada. Esto difiere de una página editorial extensa, donde la guía empieza con heading-xl. El grupo de botones de opción puede usar una leyenda del tamaño de un encabezado sin perder su semántica de grupo.

Las clases de párrafo distinguen entre texto principal, destacado y complementario pequeño. Un texto destacado de 26px resulta útil una vez al inicio de la página, mientras que las instrucciones de la cita deben conservar el tamaño normal del texto principal. La vista previa mantiene suficiente ancho de línea para que las fechas y los nombres de ubicaciones se ajusten.

Consulta la especificación complementaria

Espaciado y contenedor de sistema de diseño NHS

La escala de espaciado del NHS no es la de GOV.UK

Las unidades adaptables del NHS siguen una secuencia distinta y cambian por encima de 768px. Por ejemplo, la unidad 6 pasa de 32px a 40px. No transfieras al NHS el valor de la unidad 6 de GOV.UK solo porque los nombres de las utilidades parezcan relacionados.

La demostración usa el contenedor de 960px y una columna de lectura de dos tercios. La cuadrícula nativa crea una sola columna por debajo del escritorio. La biblioteca controla los cambios de disposición, mientras que la pequeña franja de identidad independiente se define mediante estilos de la aplicación.

scss
.appointment-section {
  @include nhsuk-responsive-margin(6, "bottom");
}

Referencia de código

Consulta la especificación complementaria

Puntos de ruptura adaptables

La documentación define 641px como tableta y 769px como escritorio. Los anchos de columna de la cuadrícula empiezan en el punto de escritorio; eso no significa que todas las reglas tipográficas esperen al mismo límite. Usa las clases nativas en lugar de implementar un único punto de interrupción global para todas las propiedades.

Consulta la especificación complementaria

Opciones de asistencia agrupadas de sistema de diseño NHS

Un grupo de campos, una respuesta

El ejemplo utiliza nhsuk-fieldset con una leyenda visible y el mismo atributo name en sus botones de opción. Cada botón tiene su propio id y una etiqueta. La ayuda se asocia al grupo mediante aria-describedby. Estas relaciones permiten que el navegador presente una única opción excluyente.

La estructura de cada opción coloca el control y la etiqueta dentro de nhsuk-radios__item. Los botones de opción estándar son adecuados para una pregunta principal; la variante pequeña está pensada para contextos de filtros más densos. Las opciones ficticias de asistencia siguen siendo excluyentes al recorrerlas con las teclas de flecha.

  • La leyenda indica qué decisión hay que tomar.
  • El nombre attendance compartido crea el grupo de selección.
  • Cada etiqueta apunta a un ID de control distinto.

Consulta la especificación complementaria

Sistema de diseño NHS Ayuda sin ocultar información esencial

Usa un elemento details nativo

El ejemplo de details incluye nhsuk-details__summary y un span summary-text, seguido de nhsuk-details__text. Se abre con el comportamiento nativo del navegador. Mantén visibles fuera del elemento desplegable la identidad de la cita y el hecho de que no se realiza ninguna reserva, ya que todos necesitan esa información.

En 10.6, Nunjucks API utiliza summary.text o summary.html; la opción antigua summaryText está obsoleta. Si utilizas macros, prefiere la nueva estructura del objeto. El ejemplo de HTML evita depender de un sistema de plantillas y conserva la misma estructura.

Consulta la especificación complementaria

Sistema de diseño NHS Errores de selección y revisión

Valida el grupo sin seleccionar una opción de antemano

Al inicio no hay ninguna opción seleccionada. Si se continúa sin responder, aparece un error en línea y se asocia el grupo con ese mensaje. A continuación, la vista previa enfoca el error. La selección sigue visible al volver desde la revisión. Estas decisiones sobre el estado de la aplicación se superponen a los controles nativos.

La revisión muestra el método elegido y la identidad de la cita ficticia. La acción indica «Cambiar preferencia». No hay ningún mensaje de confirmación que sugiera que un servicio clínico haya aceptado la preferencia, ni se inventan consejos de salud o requisitos de preparación.

  1. Continúa sin seleccionar un método de asistencia.
  2. Selecciona «Por teléfono» y abre la revisión local.
  3. Cambia la preferencia a «En persona» y comprueba la revisión actualizada.

Consulta la especificación complementaria

Sistema de diseño NHS Recursos locales de frontend

Utiliza el paquete y el módulo seleccionados

La configuración copia CSS 10.6.1 y el módulo de navegador a un directorio de recursos estáticos. El módulo exporta initAll; llámalo cuando exista el marcado del componente. El ejemplo independiente utiliza la misma distribución servida localmente y una sobrescritura de Arial aplicada a la página.

Los estilos incluyen reglas de componentes y bases adaptables. El pequeño script que cambia el panel de revisión es código independiente de la aplicación. En un servicio de producción, los datos ficticios de la cita se sustituirían por datos mantenidos y la solicitud de preferencia real se gestionaría mediante su propio backend.

Consulta la especificación complementaria

Sistema de diseño NHS Revisión de la composición

Comprueba el contexto del servicio de salud

Las comprobaciones clave son que la persona pueda identificar la cita, entender que todavía no se ha confirmado una preferencia de asistencia y cambiar el método elegido sin perder el contexto. Un aviso genérico de éxito ocultaría esta diferencia.

Prueba el uso del grupo de botones de opción y del resumen de details con el teclado; después, comprueba la vista estrecha con un nombre de clínica largo. El error por falta de selección debe llevar de vuelta al grupo. La biblioteca aporta comportamientos reutilizables, mientras que la organización sigue siendo responsable de las normas reales sobre citas y de la información clínica.

Consulta la especificación complementaria

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

Grupo de botones de opción para la asistencia

Un fieldset con etiqueta, controles nativos excluyentes y clases de componentes NHS.

HTML
<fieldset class="nhsuk-fieldset" aria-describedby="contact-hint">
  <legend class="nhsuk-fieldset__legend nhsuk-fieldset__legend--m">How would you prefer to attend?</legend>
  <div class="nhsuk-hint" id="contact-hint">Select one option.</div>
  <div class="nhsuk-radios" data-module="nhsuk-radios">
    <div class="nhsuk-radios__item">
      <input class="nhsuk-radios__input" id="in-person" name="attendance" type="radio" value="in-person">
      <label class="nhsuk-label nhsuk-radios__label" for="in-person">In person</label>
    </div>
    <div class="nhsuk-radios__item">
      <input class="nhsuk-radios__input" id="telephone" name="attendance" type="radio" value="telephone">
      <label class="nhsuk-label nhsuk-radios__label" for="telephone">Telephone</label>
    </div>
  </div>
</fieldset>

Referencia de código

Ayuda contextual opcional

El elemento details nativo muestra información adicional sin ocultar la tarea.

HTML
<details class="nhsuk-details">
  <summary class="nhsuk-details__summary">
    <span class="nhsuk-details__summary-text">About these example choices</span>
  </summary>
  <div class="nhsuk-details__text"><p>These are fictional options, not available appointment slots.</p></div>
</details>

Referencia de código

Ejemplo independiente completo

El documento completo incluye su estructura, controles e inicialización. Extrae el archivo de ejemplo enlazado para obtener los recursos del proveedor con sus rutas relativas exactas y luego sírvelo mediante HTTP.

HTML
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Appointment preference — OpenDesign study</title><link rel="stylesheet" href="vendor/nhsuk-10.6.1/nhsuk-frontend.min.css"><style>body,body *,body *::before,body *::after{font-family:Arial,sans-serif!important}[hidden]{display:none!important}.study-strip{background:white;border-bottom:1px solid #d8dde0;padding:16px}.study-strip p{margin:0}.study-card{background:#fff;border:1px solid #d8dde0;padding:24px;margin-bottom:32px}h1:focus{outline:none}.study-result{border-left:4px solid #005eb8;padding:16px 24px;background:white}button,a,input{touch-action:manipulation}</style></head><body><header class="study-strip"><p class="nhsuk-body-s"><strong>OpenDesign · NHS component study</strong><br>Fictional appointment. This page cannot book or change care.</p></header><main class="nhsuk-width-container nhsuk-main-wrapper nhsuk-main-wrapper--s" id="maincontent"><div class="nhsuk-grid-row"><div class="nhsuk-grid-column-two-thirds"><div class="study-card"><h2 class="nhsuk-heading-m">Example appointment</h2><p class="nhsuk-body">Community clinic · Alex Example<br>Tuesday, 20 October · 10:30am</p></div><section id="choice"><h1 class="nhsuk-heading-l">Choose an attendance preference</h1><form id="form" novalidate><div class="nhsuk-form-group" id="group"><fieldset class="nhsuk-fieldset" aria-describedby="contact-hint">
  <legend class="nhsuk-fieldset__legend nhsuk-fieldset__legend--m">How would you prefer to attend?</legend>
  <div class="nhsuk-hint" id="contact-hint">Select one option.</div>
  <div class="nhsuk-radios" data-module="nhsuk-radios">
    <div class="nhsuk-radios__item">
      <input class="nhsuk-radios__input" id="in-person" name="attendance" type="radio" value="in-person">
      <label class="nhsuk-label nhsuk-radios__label" for="in-person">In person</label>
    </div>
    <div class="nhsuk-radios__item">
      <input class="nhsuk-radios__input" id="telephone" name="attendance" type="radio" value="telephone">
      <label class="nhsuk-label nhsuk-radios__label" for="telephone">Telephone</label>
    </div>
  </div>
</fieldset></div><details class="nhsuk-details">
  <summary class="nhsuk-details__summary">
    <span class="nhsuk-details__summary-text">About these example choices</span>
  </summary>
  <div class="nhsuk-details__text"><p>These are fictional options, not available appointment slots.</p></div>
</details><button class="nhsuk-button" type="submit">Review preference</button></form></section><section id="review" hidden><h1 class="nhsuk-heading-l" tabindex="-1" id="review-title">Your preference</h1><div class="study-result"><p class="nhsuk-body" id="selected"></p><p class="nhsuk-body">This is a local example. The appointment has not changed.</p></div><button class="nhsuk-button nhsuk-button--secondary nhsuk-u-margin-top-5" id="change" type="button">Change preference</button></section><p class="nhsuk-body-s">Native 10.6.1 controls with Arial. <a href="vendor/nhsuk-10.6.1/LICENSE.txt">Frontend licence</a>.</p></div></div></main><script type="module">import{initAll}from './vendor/nhsuk-10.6.1/nhsuk-frontend.min.js';initAll();const form=document.getElementById('form'),group=document.getElementById('group'),fs=group.querySelector('fieldset');form.addEventListener('submit',e=>{e.preventDefault();document.getElementById('error')?.remove();group.classList.remove('nhsuk-form-group--error');fs.setAttribute('aria-describedby','contact-hint');const value=form.querySelector(':checked')?.value;if(!value){group.classList.add('nhsuk-form-group--error');const p=document.createElement('p');p.id='error';p.className='nhsuk-error-message';p.tabIndex=-1;p.textContent='Select how you would prefer to attend';fs.querySelector('.nhsuk-radios').before(p);fs.setAttribute('aria-describedby','contact-hint error');p.focus();return}document.getElementById('selected').textContent='Selected method: '+(value==='telephone'?'Telephone':'In person');document.getElementById('choice').hidden=true;document.getElementById('review').hidden=false;document.getElementById('review-title').focus()});document.getElementById('change').addEventListener('click',()=>{document.getElementById('review').hidden=true;document.getElementById('choice').hidden=false;form.querySelector(':checked').focus()});</script></body></html>

Referencia de código

  • Descarga el ejemplo completo desde Fuentes. El README contiene el comando exacto para ejecutarlo en local.
  • Mantén las rutas de los recursos del proveedor relativas a este documento; el archivo incluye todos los recursos que utiliza esta vista previa.
04

Sistema de diseño NHS Configuración del agente

Punto de partida para la implementación

Coloca los comandos de shell y HTML en sus respectivos archivos. Arial es una sobrescritura explícita para la vista previa independiente; las organizaciones del NHS deben seguir los requisitos reales de licencia tipográfica y marca. El ZIP completo del ejemplo funcional, incluido en Sources, también proporciona las dependencias exactas para la vista previa y el documento completo. Extráelo, ejecuta python3 -m http.server 8080 en ese directorio y abre http://localhost:8080/nhs.html. No abras ejemplos basados en módulos mediante file://.

sh / html
npm install [email protected]
mkdir -p public/assets
cp node_modules/nhsuk-frontend/dist/nhsuk/nhsuk-frontend.min.css public/assets/
cp node_modules/nhsuk-frontend/dist/nhsuk/nhsuk-frontend.min.js public/assets/

<link rel="stylesheet" href="/assets/nhsuk-frontend.min.css">
<style>body, body *, body *::before, body *::after { font-family: Arial, sans-serif !important; }</style>
<script type="module">
  import { initAll } from '/assets/nhsuk-frontend.min.js';
  initAll();
</script>

Una instrucción para tu proyecto

Instrucción para el agente
Crea una pregunta independiente sobre preferencias de asistencia a citas con NHS.UK Frontend 10.6.1. Utiliza un fieldset y una leyenda para los métodos de asistencia excluyentes, indicaciones asociadas a los botones de opción y un elemento Details nativo para la ayuda opcional. Mantén visibles la pregunta y las instrucciones esenciales. Si se intenta revisar sin responder, muestra un resumen del error enlazado y un error en línea; conserva el método seleccionado al volver de la revisión local. Carga el CSS correspondiente y ejecuta initAll del módulo, con la sobrescritura de Arial para este estudio, documentada explícitamente. No añadas búsquedas de citas, cambios reales de reservas, consejos clínicos ni afirmaciones de identidad del NHS.
05

Sistema de diseño NHS Fuentes y alcance

Estudio independiente sobre preferencias de asistencia a citas, basado en NHS.UK frontend 10.6.1. Sin logotipo del NHS, Frutiger con licencia, reservas reales, instrucciones clínicas ni respaldo implícito.