Alert
Alert 會顯示簡短的訊息給使用者,而不會中斷他們使用應用程式。
用法
alert 模式的一個主要特徵是,它不應中斷使用者的應用程式體驗。Alert 不應與 alert對話框 (ARIA) 混淆,後者旨在中斷使用者以取得回應。如果您需要此行為,請使用 Material UI Dialog 元件。
基本用法
import Alert from '@mui/material/Alert';
Alert 元件會包覆其內容,並延展以填滿其封閉容器。
嚴重性
severity
prop 接受四個值,代表不同的狀態—success
(預設值)、info
、warning
和 error
—每個狀態都有對應的圖示和顏色組合
Outlined
操作
使用 action
prop 將操作新增至您的 Alert。這可讓您在 Alert 的訊息之後插入任何元素—HTML 標籤、SVG 圖示或 React 元件 (例如 Material UI 按鈕)—靠右對齊。
如果您在未設定 action
prop 的情況下為 Alert 提供 onClose
回呼,則元件預設會顯示關閉圖示 (✕)。
圖示
使用 icon
prop 覆寫 Alert 的圖示。與 action
prop 相同,您的 icon
可以是 HTML 元素、SVG 圖示或 React 元件。將此 prop 設定為 false
可完全移除圖示。
如果您需要覆寫給定 severity
的圖示的所有實例,您可以使用 iconMapping
prop 來代替。您可以透過自訂應用程式的主題來全域定義此 prop。請參閱主題組件—預設 props 以取得詳細資訊。
客製化
標題
若要將標題新增至 Alert,請匯入 Alert Title 元件
import AlertTitle from '@mui/material/AlertTitle';
您可以將此元件巢狀於 Alert 中的訊息上方,以獲得整潔樣式且適當對齊的標題,如下所示
轉場效果
您可以使用 Transition 組件,例如 Collapse,為 Alert 的進入和退出新增動態效果。
無障礙功能
以下是一些需要考量的因素,以確保您的 Alert 具有無障礙功能
- 由於 alert 不應干擾應用程式的使用,因此您的 Alert 元件絕不應影響鍵盤焦點。
- 如果 alert 包含操作,則該操作必須具有
tabindex
of0
,以便僅使用鍵盤的使用者可以存取。 - 重要的 alert 不應自動消失—計時互動可能會使需要額外時間來理解或找到 alert 的使用者無法存取您的應用程式。
- 過於頻繁發生的 alert 會降低應用程式的可用性。
- 動態呈現的 alert 會由螢幕閱讀器宣告;當頁面載入時已存在的 alert 則不會宣告。
- 對於需要輔助技術的使用者來說,顏色不會為 UI 增加意義。您必須確保透過顏色傳達的任何資訊也以其他方式表示,例如在 alert 本身的文字中,或使用螢幕閱讀器讀取的其他隱藏文字。
結構
Alert 元件由根 Paper 元件 (呈現為 <div>
) 組成,其中包含圖示、訊息和選用的 操作
<div class="MuiPaper-root MuiAlert-root" role="alert">
<div class="MuiAlert-icon">
<!-- svg icon here -->
</div>
<div class="MuiAlert-message">This is how an Alert renders in the DOM.</div>
<div class="MuiAlert-action">
<!-- optional action element here -->
</div>
</div>