Skip to component
GGamma

Toast

A compact, dismissible confirmation for completed actions.

New
Live previewUse keyboard to interact

Implementation

1"use client";2import { useEffect, useState } from "react";3import { Check } from "lucide-react";4import { GammaButton } from "./GammaButton";5 6export function GammaToast() {7  const [visible, setVisible] = useState(false);8  const [paused, setPaused] = useState(false);9  useEffect(() => {10    if (!visible || paused) return;11    const timeout = window.setTimeout(() => setVisible(false), 5000);12    return () => window.clearTimeout(timeout);13  }, [visible, paused]);14  return (15    <div className="toast-demo">16      <GammaButton onClick={() => setVisible(true)}>Show toast</GammaButton>17      {visible && (18        <div19          className="demo-toast"20          role="status"21          onMouseEnter={() => setPaused(true)}22          onMouseLeave={() => setPaused(false)}23          onFocus={() => setPaused(true)}24          onBlur={() => setPaused(false)}25        >26          <Check size={17} />27          <span>28            <strong>Changes saved</strong>