jotis.meRegula

Banner

Aviso de ancho de página o flotante para anunciar algo a toda la app: novedades, mantenimiento, captación de correo, cuenta atrás.

Cuándo usarlo

Props. title, description, icon (icono destacado de 48px: modern en el tema por defecto y light en brand), actions, email ({placeholder, buttonLabel, hint, onSubmit(value)}: campo de 360px con botón), countdown (fecha objetivo; now congela el reloj para capturas), theme (default · brand), layout (floating · full), slim (una línea, centrada, sin icono), onClose.

Visual. default: bg-secondary, borde border-secondary_alt, título text-secondary semibold 14, apoyo text-tertiary. brand: bg-brand-section_subtle, borde border-brand_alt, título text-primary_on-brand, apoyo text-tertiary_on-brand. Flotante con radius-xl y shadow-lg, padding 12; full pegado al borde superior, sin radio.

Reglas. Uno a la vez. Siempre descartable salvo que el aviso bloquee algo de verdad. Para un problema dentro de una vista, Alert; para una invitación dentro de la página, InlineCTA. En móvil (hasta 720px) el banner se apila y oculta el icono.

El icono. La ficha de la guía dice 40px modern, pero sus vistas previas lo pintan a 48px y con light en el tema de marca. Aquí se sigue a las vistas previas.

Cuenta atrás en brand. Las unidades (días, horas…) van en text-primary_on-brand y no en text-tertiary_on-brand como en la guía: sobre la celda de la cuenta atrás este último se queda en 4,4:1, por debajo del 4,5:1 que pide un texto de 11px.

Accesibilidad. Es una región con nombre (el título, o aria-label). La cuenta atrás es un timer cuyo nombre dice el tiempo entero ("3 días, 2 horas, 29 min, 45 seg"). El correo es un campo email obligatorio. La X se llama "Cerrar aviso" (se cambia con closeLabel).

Ejemplos

Nueva versión de Pecunia.Ahora con presupuestos compartidos.
Activa la verificación en dos pasos.Tarda un minuto.
Resumen semanal por correo.Un correo los lunes, nada más.

Puedes darte de baja cuando quieras.

Fin de la beta.Exporta tus datos antes del cierre.
Mantenimiento programado el domingo a las 03:00.Duración estimada: 2 horas.
Estás viendo datos de ejemplo.Conecta tu banco para ver los tuyos.

Props

PropTipoPor defectoDescripción
titleobligatoriaReactNode—
descriptionReactNode—
iconIconName—Icono destacado de 48px: modern en el tema por defecto y light en brand.
actionsReactNode—
emailBannerEmail—Campo de correo de 360px con botón, para captar suscripciones.
countdownDate—Fecha objetivo de una cuenta atrás (días, horas, minutos y segundos).
nowDate—Congela el reloj de la cuenta atrás en esta fecha (capturas y vistas previas).
theme"default" · "brand"defaultdefault: bg-secondary. brand: bg-brand-section_subtle con textos on-brand.
layout"floating" · "full"floatingfloating: con radio y sombra. full: pegado al borde superior, a todo el ancho y sin radio.
slimboolean—Una línea, centrada y sin icono.
onClose(() => void)—Muestra la X. Un banner siempre se puede descartar salvo que el aviso bloquee algo de verdad.
closeLabelstring"Cerrar aviso"Nombre de la X.
aria-labelstring—Nombre de la región. Por defecto, el título si es texto, o "Aviso".
classNamestring—

Código

import { Banner } from "@jotis-me/react";

export default function Page() {
	return (
		<>
			<Banner
				icon="zap"
				title="Nueva versión de Pecunia."
				description="Ahora con presupuestos compartidos."
				actions={<Button size="sm">Ver novedades</Button>}
				onClose={ocultar}
			/>
		</>
	);
}

La cuenta atrás, el formulario de correo y onClose necesitan JavaScript: úsalo en una isla .tsx con client:load.