Przejdź do treści

Alert

Stabilny

Trwały komunikat osadzony w treści, który informuje o czymś ważnym dla bieżącej strony lub zadania.

Planowana przerwa techniczna
W niedzielę od 02:00 do 03:00 UTC pulpit będzie dostępny tylko do odczytu.

Anatomia

Zaplanowane prace serwisowe
W niedzielę od 02:00 do 03:00 UTC pulpit będzie dostępny tylko do odczytu.
  1. 1IkonaPozwala od razu rozpoznać rodzaj komunikatu. Przyjmuje kolor wariantu, ale nigdy nie niesie znaczenia sama.
  2. 2KontenerObramowana, lekko zabarwiona powierzchnia. Wariant ustala jej kolory i rolę: status w większości przypadków, alert przy ostrzeżeniach i błędach.
  3. 3TytułJeden wiersz, który mówi, co się stało lub co trzeba wiedzieć.
  4. 4OpisSzczegóły i — jeśli jest — następny krok. Linki dziedziczą kolor wariantu.

Instalacja

$ pnpm dlx shadcn@latest add https://www.prfct.dev/r/alert.json

Użycie

import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert"
<Alert variant="warning">
  <TriangleAlertIcon />
  <AlertTitle>Your trial ends in 3 days</AlertTitle>
  <AlertDescription>Add a payment method to keep your projects running.</AlertDescription>
</Alert>

Przykłady

Warianty

Pięć wariantów odpowiada skalom statusów. Każdy barwi tło stopniem 2, rysuje obramowanie stopniem 6, a tekstowi nadaje stopnie 11 i 12 — dzięki temu każdy wariant osiąga 4,5:1 w obu trybach bez dodatkowej pracy.

Nowa wersja CLI
Wersja 4.2 wprowadza przestrzenie nazw w rejestrze i szybszą instalację.
Zaproszenia wygasają po 7 dniach
Zaproszenie możesz w każdej chwili wysłać ponownie z listy członków.
Domena zweryfikowana
Domena acme.com jest gotowa. Certyfikaty odnawiają się automatycznie.
WariantZastosowanie
defaultNeutralny kontekst, który nie sugeruje żadnego statusu: ogłoszenia, wskazówki, informacje o wersji.
infoPrzydatne informacje, które wpływają na to, jak korzysta się ze strony.
successPomyślnie zakończony stan, który pozostaje istotny także po fakcie.
warningCoś, co stanie się problemem, jeśli nikt nie zareaguje: limity, wycofywane funkcje, wygasający dostęp.
destructiveCoś właśnie teraz nie działa lub jest zablokowane i wymaga uwagi.

Z akcją

Umieść jedną akcję uzupełniającą w AlertAction. Znajduje się po prawej stronie, wyśrodkowana w pionie, a alert rezerwuje dla niej miejsce, więc tekst nigdy pod nią nie wchodzi. Ogranicz się do jednego małego przycisku — alert z paskiem narzędzi to już karta.

Środowiska podglądowe są już dostępne
Każdy pull request dostaje teraz własny adres URL.

Linki w AlertDescription są podkreślone i dziedziczą kolor tekstu wariantu, więc pozostają czytelne na każdym zabarwionym tle.

Z listą

Gdy trzeba poprawić kilka rzeczy, wypunktuj je. Listę się przegląda, akapit — tylko przebiega wzrokiem.

Tylko tytuł

Krótki komunikat nie potrzebuje opisu. Ikona jest opcjonalna — pomiń ją w neutralnych notkach, które nie powinny przyciągać wzroku.

Zmiany zostały zapisane.
Szkice widzisz tylko Ty i Twoi redaktorzy.

Wytyczne

Kiedy używać

  • Aby wyjaśnić sytuację, która dotyczy całej strony lub sekcji: awarię, limit, oczekującą weryfikację.
  • Aby podsumować błędy formularza nad formularzem — jako uzupełnienie komunikatów o błędach przy poszczególnych polach.
  • Aby wyeksponować informację, która musi pozostać widoczna, dopóki sytuacja się nie zmieni.

Kiedy nie używać

  • Do potwierdzania czegoś, co ktoś właśnie zrobił — użyj komponentu Toast. Powiadomienie pojawia się tam, gdzie już skupia się uwaga, i samo znika.
  • Do błędów pojedynczego pola — użyj FieldError wewnątrz komponentu Field, tuż przy polu.
  • Do decyzji, które blokują dalsze działanie — użyj komponentu Alert Dialog.
  • Do treści marketingowych. Alert pożycza pilność od kolorów statusów; marnowanie jej na promocje uczy ludzi, że można go ignorować.

Wybieraj najłagodniejszy wariant, który oddaje sytuację

Kolory statusów to ograniczony budżet. Jeśli nic złego się nie dzieje, alert ma wariant default lub info — nawet gdy komunikat wydaje się ważny. Zachowaj warning dla rzeczy, które przestaną działać, a destructive dla tych, które już nie działają.

Tryb ciemny jest już dostępny
Motyw zmienisz w menu profilu.
Dobrze.Neutralna wiadomość, neutralny alert. Kolor zachowuje znaczenie na wypadek prawdziwych problemów.
Źle.Ogłaszanie nowej funkcji ostrzeżeniem uczy ludzi ignorować ostrzeżenia.

Treść

  • Zaczynaj od skutku, nie od przyczyny: Po osiągnięciu limitu kompilacje trafią do kolejki, a nie Wykorzystano 90% minut kompilacji.
  • Powiedz, co dalej. Każde ostrzeżenie i każdy błąd powinny wskazywać akcję albo prowadzić do niej linkiem.
  • Ogranicz tytuł do jednego wiersza, a opis do dwóch zdań. Dłuższa treść powinna trafić na osobną stronę.
  • Nie piętrz alertów. Dwa lub więcej alertów w jednym miejscu konkurują ze sobą; połącz je albo pokaż najpoważniejszy.

Dostępność

Alerty są regionami na żywo (live regions), więc ich treść jest ogłaszana w chwili pojawienia się, bez przenoszenia fokusu.

  • Pilność ogłoszenia zależy od wagi. destructivewarning renderują role="alert" i są ogłaszane natychmiast, przerywając to, co czytnik ekranu właśnie czytał. Pozostałe warianty renderują role="status" i czekają na przerwę. Przekaż role, aby to nadpisać — na przykład role="note" dla treści statycznej, która w ogóle nie powinna być ogłaszana.
  • Wstawiaj, nie odsłaniaj. Regiony na żywo ogłaszają zmiany. Alert obecny od załadowania strony jest odczytywany w kolejności dokumentu; alert dodany później — powiedzmy po nieudanym wysłaniu formularza — jest ogłaszany w chwili pojawienia się.
  • Kolor nigdy nie jest jedynym sygnałem. Łącz każdy wariant statusu z ikoną i tytułem, który nazywa status słowami.
  • Akcje pozostają w kolejności tabulacji. Przyciski i linki w alercie są osiągalne klawiszem Tab i nigdy nie przejmują fokusu, gdy alert się pojawia.

Dokumentacja API

Alert

Kontener. Renderuje <div>data-slot="alert" i atrybutem data-variant.

PropTypDomyślnie
variant

Barwi powierzchnię, obramowanie, tekst i ikonę odpowiednią skalą statusu.

"default" | "info" | "success" | "warning" | "destructive""default"
role

Domyślnie alert dla destructive i warning, w pozostałych przypadkach status. Nadpisz go dla statycznych notek.

string"alert" | "status"
className

Scalany z klasami wariantu. Używaj go do układu, nie do koloru.

stringBrak wartości domyślnej

AlertTitle

Pojedynczy wiersz, który wyraża sedno komunikatu. Renderuje <div>; gdy alert ma ikonę, tytuł zaczyna się w drugiej kolumnie.

PropTypDomyślnie
className

Dodatkowe klasy.

stringBrak wartości domyślnej

AlertDescription

Tekst uzupełniający, linki i listy. Ma kolor stopnia 11 ze skali wariantu.

PropTypDomyślnie
className

Dodatkowe klasy. Akapity wewnątrz otrzymują odstępy automatycznie.

stringBrak wartości domyślnej

AlertAction

Slot na jedną akcję uzupełniającą, przypięty do prawej krawędzi. Gdy akcja jest obecna, alert dodaje odstęp z prawej strony.

PropTypDomyślnie
className

Dodatkowe klasy, np. aby w wysokich alertach wyrównać akcję do góry.

stringBrak wartości domyślnej