Todos los componentes (204)
Notificaciones
Capas · NotificationProvider · .amset-notifications
Qué es y cuándo usarlo
La cola de notificaciones: avisos cortos que salen en una esquina, se van solos y no cortan el paso. Se pone una vez, arriba del árbol (AmsetProvider ya lo trae), y se lanzan desde cualquier componente de dentro:
const { show } = useNotifications()
show({ title: 'Factura anulada', tone: 'warning', duration: 0,
action: { label: 'Deshacer', onPress: restaurar } })Cuándo usarlo
- Contar lo que ya ha pasado: «Clienta guardada», «Pedido enviado».
- Con
actionpara deshacer lo recién hecho, yduration: 0para que no se vaya sola hasta que se cierre a mano.textañade una línea debajo del título. tone: 'error'para un fallo que hay que oír ya; sintone,'info'. Duran 5 segundos por defecto.showdevuelve el id, por si hay que quitarla antes (close(id));closeAll()las quita todas.- En el proveedor,
positionelige la esquina ('bottom-end'por defecto) ymaxcuántas caben a la vez (4): al pasarse, se van las más viejas.
Cuándo no
- Lo que hay que corregir en un formulario: el
errordel campo, o unAlertal lado. - Algo de la aplicación entera que se queda a la vista:
GlobalAlert. - Una decisión:
ConfirmAction,useConfirmationoDialog.
Teclado: no se llevan el foco. Cada una tiene su botón de cerrar (y el de su acción), a los que se llega con Tab. Con el ratón encima o el foco dentro, el reloj se para; al salir, vuelve a contar su tiempo entero. La acción se ejecuta y cierra la notificación.
Accesibilidad: salen en una región con nombre (regionLabel, «Notificaciones»). Dentro hay dos regiones vivas que están desde que se monta el proveedor, vacías, porque una región que nace ya con el texto dentro puede no anunciarse: status para las normales, que esperan a que el lector de pantalla termine lo que estaba leyendo, y alert para los errores, que interrumpen (por eso los errores se apilan aparte, al final). Llevan aria-atomic="false": al llegar una se lee esa sola. Llevan icono además del color, y el botón de cerrar se llama «Cerrar: <título>».
Aspecto fino: variables CSS --amset-notifications-width y -margin para la cola, y --amset-notification-* (-tone, -slot, -padding-block, -padding-line, -background) para cada una. La cola va en --amset-layer-notification, lo último de la escalera. El botón de la acción es el Button de la librería y la equis, la de las capas: mismo hover, mismo foco y 44 px con el dedo.
Cómo se ve
<NotificationProvider>
<App />
</NotificationProvider>
// y dentro, desde cualquier sitio:
const { show } = useNotifications()
show({ tone: 'success', title: 'Guardado' })Props
Se importa con import { NotificationProvider } from '@amset/ui'. Las obligatorias van marcadas.
| Prop | Tipo | Para qué sirve |
|---|---|---|
childrenobligatoria | ReactNode | — |
max | number | Cuántas caben a la vez. Las más viejas se van cerrando. |
position | "bottom-end" | "bottom-start" | "top-end" | "top-start" | Dónde salen. Por defecto, abajo a la derecha. |
regionLabel | string | — |
Mandos
Estas variables CSS son la forma de adaptarlo. Se declaran sobre el selector del componente, no en :root: la hoja las redeclara en la propia regla y una declaración en el mismo elemento gana siempre.
| Variable | Por defecto |
|---|---|
--amset-notifications-width | 24rem |
--amset-notifications-margin | var(--amset-space-4) |
Cómo se cambia
.amset-notifications {
--amset-notifications-width: ...;
--amset-notifications-margin: ...;
}En el banco de pruebas
Cada estado y cada variante, para tocarlos de uno en uno, en su ficha de ui.amset.tech:
