Snackbar

Dictionary

役割と種類

スナックバーは、システムが実行した結果をユーザーにフィードバックします。画面の下部に一時的に表示されます。一定時間の経過によって自動で消えることで、比較的重要度の低い内容であることを醸し出しつつユーザーへのフィードバックを表現します。

スナックバーには、実行された操作に直接関連する1行のテキストが含まれています。自動で消えても構わない簡素な内容をフィードバックします。テキストに加え、1つまでアクションのトリガーを配置できます。

いつ使うべきか / 使わないべきか

操作結果がGUI上に現れず、システム側に隠蔽された場面で、何かフィードバックとして知覚できる情報を受け取れた方がいい場合にはSnackbarを用いたフィードバックを検討しましょう。

ユーザーの操作に対する結果がそのままオブジェクトの変化として現れるように設計した方が、自然で率直なGUIになります。そしてSnackbarを用いる必然性も低くなります。

詳しく読解する必要のない単純な内容のフィードバックのみSnackbarで表現しましょう。エラーのような重要なフィードバックには不適切です。エラーが解消されるまで消えないテキストのような、揮発性の低い表現でエラーに関するフィードバックを受け取れるようにしましょう。

アイテム1を削除しました

Color

色(状態)を指定します。

Modifier class
Neutral*.-color-neutral
Positive.-color-positive
Negative.-color-negative
Notice.-color-notice
Neutral


Positive


Negative


Notice

Inline

inline要素として表示します。

Modifier class
Inline.-inline
Inline


Block (default)

Active

表示/非表示を切り替えます。

Modifier class
Active.—active

Code

Mixin-based

HTML

<div
  class='snackbar-component'
  aria-live="polite"
>
  <span class="icon-component" data-icon="check" />
  <span>アイテム1を削除しました</span>
  <div class="trailing">
    <button class="button-component">
      <div class="_body">もとに戻す</div>
    </button>
  </div>
</div>

SCSS

@use '@pepabo-inhouse/components-web' as inhouse;

.snackbar-component {
  @include inhouse.snackbar-style(
    $options: (
      color: positive,
      size: l,
    )
  );

  > .trailing {
    margin-left: auto;
  }
}

Class-based

HTML

<div
  class='in-snackbar -color-neutral --active -inline'
  aria-live="polite"
>
  <span class="in-icon" data-icon="check" />
  <span>アイテム1を削除しました</span>
  <div class="_trailing">
    <button class="in-button -size-s -appearance-transparent">
      <div class="_body">もとに戻す</div>
    </button>
  </div>
</div>

SCSS

@use '@pepabo-inhouse/components-web' as inhouse;

@include inhouse.snackbar-export;