jotis.meRegula

StreamAlert

Alerta de un evento del directo (seguidor, suscripción, renovación, regalo, raid, bits o donación) en una tarjeta de 480px.

Cuándo usarlo

Props. type (follow, sub, resub, gift, raid, bits, donation), user (obligatorio), amount, months, tier, message, detail (sustituye al texto por defecto), label, icon, state (enter o exit).

Cuándo usarla. En OBS, como fuente de navegador con fondo transparente, de una en una y en cola. El icono va en bg-brand-solid para todos los tipos: el tipo lo dicen la etiqueta y el icono, no el color. Los textos por defecto llevan la voz de la suite; si el evento merece algo mejor, pásalo en detail.

Movimiento. state="enter" entra con fundido y 8px de subida en 250 ms; state="exit" sale en 200 ms. Con prefers-reduced-motion solo hay fundido. Es la única animación de la tarjeta.

Evita. Más de una alerta a la vez. Un color por tipo de evento. Signos de exclamación, salvo que el evento sea realmente bueno. Mensajes de espectadores sin moderar: message se pinta tal cual.

Entrada sin JavaScript. La entrada sale del CSS (@starting-style) y se ve al montar la tarjeta: para enseñar la siguiente alerta de la cola, móntala con otra key. La salida es una transición al pasar state a exit; quita la tarjeta pasados 200 ms. La cola es cosa de la app del overlay, no del componente.

Diferencias con la guía. message es texto (string) y no un nodo: llega del público y el tipo ya impide pasarle marcado.

Accesibilidad. Es una región de estado (role="status", aria-live="polite"): un lector de pantalla anuncia cada alerta nueva.

Ejemplos

Nuevo seguidorlucia_pixelYa no hay vuelta atrás.
Nueva suscripciónnachoXLSuscripción de nivel 1.Primera vez que me suscribo a algo que no es una plataforma de series.
Raid entranteTioBigotes1.284 espectadores acaban de aterrizar.
DonaciónMarta_en_Directo5,00 €Para el café. Que se note la ojera.

Props

PropTipoPor defectoDescripción
type"follow" · "sub" · "resub" · "gift" · "raid" · "bits" · "donation"followTipo de evento: decide la etiqueta, el icono y el texto por defecto.
userobligatoriaReactNode—Quien provoca el evento, en Bricolage 24/32 semibold.
amountnumber—Cifra del evento: suscripciones regaladas, espectadores del raid, bits o euros donados.
monthsnumber—Meses de una renovación.
tierstring | number—Nivel de una suscripción.
messagestring—Mensaje del espectador. Siempre texto plano: llega del público y se pinta tal cual, nunca como HTML (por eso es string y no un nodo). Modéralo antes.
detailReactNode—Sustituye al texto por defecto del tipo ("Ya no hay vuelta atrás.", "5,00 €"…).
labelReactNode—Sustituye a la etiqueta del tipo ("Nuevo seguidor"…).
iconIconName—Sustituye al icono del tipo.
state"enter" · "exit"—enter entra con fundido y 8px de subida en 250 ms; exit sale en 200 ms. Con menos movimiento, solo fundido.
classNamestring—

Código

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

export default function Page() {
	return (
		<>
			<StreamAlert key={alerta.id} type="raid" user="TioBigotes" amount={1284} state="enter" />
		</>
	);
}