Toast
الإشعار العائمrole="status"
also calledsnackbar، transient notification، flash message، toast notification، temporary alert، توست، إشعار مؤقت، رسالة عابرة، سناك بار، تنبيه منبثق، إشعار سريع
A toast is a short message that appears over the interface after the user did something, then dismisses itself after a few seconds. It has two defining traits: it is transient, since it carries a timer, and it is non-blocking, so it does not steal focus or stop you clicking the rest of the page. Three other elements look like it. An inline alert sits inside the page flow next to the field it belongs to and does not disappear; a banner spans the full width of the page and stays until dismissed; a modal blocks the page and demands a decision. If losing the message would hurt the user, it should not be a toast.
If you called it…
Live specimen
Interact with the demo. Every part is real and numbered.
تم حذف «تقرير-الربع.pdf»
Anatomy: every part, named
Hover a row to locate it in the demo above.
Build prompt
How it behaves right-to-left
This section is ours alone.
Where the toast sits
mirrorsA toast pinned bottom-right in English belongs bottom-left in Arabic. Use inset-inline-end: 1rem instead of right: 1rem, or it stays on the wrong side after the flip.
Entry animation
mirrorsA slide-in has to follow the logical edge. A hard-coded translateX(100%) makes the toast enter from the opposite side and fly across the screen. Use translateX(calc(100% * var(--dir))) with --dir set to -1 under [dir="rtl"].
The timer bar
mirrorsThe bar drains from the logical start to the logical end. In Arabic, transform-origin: left drains against the reading direction. Use transform-origin: inline-start, or flip it under [dir="rtl"].
The undo icon
mirrorsThe undo arrow is a directional icon, so it mirrors with the page. Status icons (check, error, warning), clocks, and spinners never mirror. Flipping them just makes them look broken.
Display duration
never mirrorsThis is a content note, not a layout one. The Arabic wording of the same message often runs about 20% longer in characters, so a 3-second duration tuned on English may not be enough to read the Arabic. Derive the duration from text length instead of hard-coding it.
In code
Each row is one framework's word for the same thing. Take the row your project speaks.
See also
Updated · 2026-08-19