Saltar al contenido
Alea
Pro
  1. Alea
  2. Componentes
  3. Maquetación
  4. SettingsSection

Maquetación

SettingsSection

La estructura de una página de ajustes: grupos con un título y una línea de ayuda, y filas con el nombre y su ayuda a la izquierda y el control a la derecha. Las filas se apilan según el ancho de su propia sección.

import { SettingsSection, SettingRow } from '@alea-design/ui';

Ejemplos

Sección de ajustes

Un título, una línea de ayuda y filas: el nombre y su ayuda a la izquierda, el control a la derecha.

Simple, con acciones

appearance="plain" quita el panel para que la sección quepa dentro de una Card o un Modal. actions va a la derecha del título.

Filas con campos

El control va a la derecha y se pone su propio aria-label. En una sección estrecha pasa debajo del texto: cambia el tamaño de la ventana.

Tokens

Los tokens de diseño que usa este componente, con su valor en el tema actual. Cambia cualquiera para darle otro estilo.

Color

  • --alea-border…
  • --alea-surface…
  • --alea-text…
  • --alea-text-muted…

Space

  • --alea-space-0-5…
  • --alea-space-2…
  • --alea-space-3…

Radius

  • --alea-radius-md…

Type

  • --alea-font-family-body…
  • --alea-font-leading-normal…
  • --alea-font-size-base…
  • --alea-font-size-sm…
  • --alea-font-weight-semibold…

Props

SettingsSection props

Un grupo en una página de ajustes: un título, una línea de ayuda y las filas debajo en un solo panel. La región toma su nombre del título. Las filas son SettingRow.

PropTipoPor defectoDescripción
childrenobligatoriaReactNodeLas SettingRow, o cualquier contenido como un Form.
titleobligatoriaReactNodeEl nombre del grupo de ajustes ("Notificaciones").
actionsReactNodeningunoBotones o un menú a la derecha del título.
appearance"plain" | "card""card"card (predeterminado): las filas van en un panel con borde. plain: sin panel, solo líneas entre filas, para ajustes dentro de una Card o un Modal.
descriptionReactNodeningunoUna línea bajo el título que dice para qué sirve el grupo.
headingLevel2 | 3 | 4 | 52Nivel de encabezado del título. Por defecto 2.

SettingRow props

Un ajuste: el nombre y su ayuda a la izquierda, el control a la derecha. Se apila en secciones estrechas. Úsalo dentro de SettingsSection.

PropTipoPor defectoDescripción
titleobligatoriaReactNodeQué es el ajuste ("Resumen semanal").
childrenReactNodeningunoEl control: Switch, Select, Button, SegmentedControl, un campo. Va a la derecha y pasa debajo del texto cuando la sección es estrecha.
descriptionReactNodeningunoQué hace, en una frase.
htmlForstringningunoEl id del control, cuando hay un solo campo: el título pasa a ser su etiqueta. Omítelo para un Switch o un grupo y dale a ese control su propia etiqueta.

Especificaciones

Generado desde el código: las variantes de los tipos, los estados y tokens del CSS, y los patrones de motion que aplican. Las grillas muestran el componente real en ambos temas; los números se miden en la página.

SettingsSection

Variantes
appearanceplaincard
Oscuro y claro
Cada color viene de tokens del tema, así que sigue a data-theme (y a presets como Graphite) en la página o en cualquier contenedor. El contraste se revisa en ambos temas.
Clases para estilos
.alea-settings.alea-settings-head.alea-settings-text.alea-settings-title.alea-settings-desc.alea-settings-actions.alea-settings-rows
Atributos data
data-appearance=plain

SettingRow

Oscuro y claro
Cada color viene de tokens del tema, así que sigue a data-theme (y a presets como Graphite) en la página o en cualquier contenedor. El contraste se revisa en ambos temas.
Clases para estilos
.alea-setting.alea-setting-text.alea-setting-title.alea-setting-desc.alea-setting-control
Atributos data
data-appearance=plain

Accesibilidad

  • Cada sección es una región con el nombre de su título, y el título es un encabezado (nivel 2 por defecto; ajusta headingLevel al esquema de la página).
  • Una fila es un grupo con el nombre de su título y descrito por su texto de ayuda, así que un lector de pantalla dice ambos cuando el foco entra en un control dentro de ella.
  • Cuando una fila contiene un solo campo, htmlFor convierte el título en la etiqueta de ese campo. Si no, el control necesita su propio aria-label.
  • Las filas se apilan según el ancho de la sección, no el de la ventana, así que la estructura aguanta en un panel estrecho o con zoom al 400 por ciento.

Qué hacer y qué evitar

Hacer

  • Pon un tema en cada sección y limítala a unas siete filas.
  • Escribe el título como un sustantivo ("Resumen semanal") y la ayuda como una frase.
  • Usa appearance="plain" cuando la sección está dentro de una Card o un Modal, para no tener un panel dentro de un panel.
  • Pon una acción de peligro en su propia sección al final.

Evitar

  • No apiles una Card por cada ajuste.
  • No pongas formularios largos en una fila: usa un Form debajo de la sección.
  • No escondas la única forma de guardar: los ajustes que necesitan guardarse van en un Form con FormActions.
Probado con axe, teclado y roles de lector de pantalla