アラート
タイトルと説明を持つ、メッセージ用の枠線付きのボックスです。
実行結果
alert.rs
use hypersig::html::{div, when};
use hypersig::style::pattern::stack;
use hypersig::style::value::rem;
use hypersig::{Page, Signals};
use hypersig_ui::{
AlertVariant, ButtonSize, ButtonVariant, alert, alert_description, alert_title, button,
};
use serde::{Deserialize, Serialize};
#[derive(Signals, Serialize, Deserialize)]
pub struct Builds {
failed: bool,
}
pub fn page() -> Page<Builds> {
let failed = Builds::failed();
Page::new(
"ビルド",
Builds { failed: false },
)
.child(
div()
.css(stack(rem(1)))
.child(
alert(AlertVariant::Default)
.child(alert_title().text("デプロイを停止しています"))
.child(alert_description().text("UTC の 18:00 に再開します。")),
)
.child(when(
failed,
alert(AlertVariant::Destructive)
.child(alert_title().text("ビルドに失敗しました"))
.child(alert_description().text("最新のコミットがコンパイルできません。")),
))
.child(
div().child(
button(ButtonVariant::Outline, ButtonSize::Sm)
.on_click(failed.toggle())
.text("エラーを切り替える"),
),
),
)
}アクセシビリティ
どちらのバリアントもライブリージョンです。destructive のアラートは role="alert" を持ち、ページに置かれたときにスクリーンリーダーが読み上げます。デモでは when でアラートをページに置いています。default のアラートは role="status" を持ち、テキストが変わったときに読み上げられます。最初からテキストが入った状態で現れた status を読み飛ばすスクリーンリーダーもあるので、status のボックスはページに置いたままにして、テキストを bind_text で変えてください。
API
| 項目 | 概要 |
|---|---|
alert | alert_title と alert_description を入れる、メッセージ用の枠線付きのボックス |
alert_title | alert の最初の行 |
alert_description | alert のタイトルの下のテキスト |
AlertVariant | アラートの見た目と緊急度 |