English

アラート

タイトルと説明を持つ、メッセージ用の枠線付きのボックスです。

実行結果

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

項目概要
alertalert_title と alert_description を入れる、メッセージ用の枠線付きのボックス
alert_titlealert の最初の行
alert_descriptionalert のタイトルの下のテキスト
AlertVariantアラートの見た目と緊急度