Skip to main content
Language日本語
基本5 分で読めます2026年10月

UI 状態とは何ですか?

簡潔な回答

UI 状態は、デフォルト、ホバー、フォーカス、押された、無効、読み込み、成功、エラー、空など、何が起こっているかに応じてインターフェイス要素がどのように見え、動作するかを表します。すべてのインタラクティブ コンポーネントには、その状態に応じた設計が必要です。状態の欠落は、製品が未完成に感じられる最も一般的な理由の 1 つです。

核心

  • インタラクションの状態: デフォルト、ホバー、フォーカス、押された (アクティブ)、無効
  • データの状態: 読み込み中、空、部分的、エラー、成功
  • フォーカス状態はキーボードとアクセシビリティ ユーザーにとって不可欠です
  • 州間の移行は州自体と同じくらい重要です
  • 状態をリスト (または状態マシン) として設計すると、状態が忘れられるのを防ぐことができます。

モックアップ内のボタンは通常、デフォルトの 1 つの状態を示します。実際の製品では、同じボタンがホバーされ、キーボードでフォーカスされ、押され、フォームが不完全な間は無効になり、リクエストの送信中にロードされます。これらはそれぞれ UI 状態であり、それぞれにデザインが必要です。

2 つのグループを分けるのに役立ちます。インタラクション状態は、ホバー、フォーカス、押下、無効などのユーザーから取得されます。データの状態はシステムから取得されます (読み込み中、空、部分データ、エラー、成功)。たとえば、リスト画面には、読み込み中、アイテムがないとき、アイテムが 1 つあるとき、アイテムが数百あるとき、およびリクエストが失敗したときのデザインが必要です。

フォーカス状態には特別な注意が必要です。キーボードやスイッチ デバイスを使用する人は、自分の位置を知るために目に見えるフォーカス インジケーターを頼りにしています。ブラウザーのフォーカス アウトラインを置き換えずに削除することは、最も一般的なアクセシビリティの問題の 1 つです。

状態間の変化も設計の一部です。デフォルトから押下状態への短く明確な遷移により、タップが確認されます。読み込み状態がスムーズに成功に変わると、人々は自分のアクションがうまくいったことを伝えます。突然のジャンプやアニメーションが遅すぎると、インターフェイスの信頼性が低く感じられます。

状態の欠落を回避する実際的な方法は、設計前にコンポーネントごとに状態のリストを作成するか、コンポーネントをステート マシン (状態のセットと状態間を移動するイベント) としてモデル化することです。私たちが作ったExodeUIはこのように動作します。各状態とそれらの間の遷移を 1 つのファイルで設計し、コードによって実際のアプリで状態を切り替えるイベントを送信します。

よくある質問

ボタンの状態は何ですか?

通常はデフォルト、ホバー、フォーカス、押下 (アクティブ)、無効、ロード中です。一部のボタンには、アクション後に成功状態とエラー状態が表示されます。

フォーカスとホバーの違いは何ですか?

ホバーは、マウス ポインタが要素の上にあるときに発生します。 Tab キーなどで要素がキーボード入力用に選択されると、フォーカスが発生します。どちらも目に見えるデザインが必要です。

無効化されたボタンを使用する必要がありますか?

慎重に使用してください。無効になっているボタンには、無効になっている理由が示されていません。多くの場合、ボタンをアクティブにしたままにし、ボタンを押したときに何が欠けているかを説明する方が明確です。

UI デザインにおけるステート マシンとは何ですか?

コンポーネントが取り得るすべての状態と、コンポーネントをある状態から別の状態に移動させるイベントをリストするモデル。これにより、欠落している状態や不可能な状態を簡単に見つけることができます。

関連ガイドと事例

実際のコンポーネントのあらゆる状態を確認する

ホバー、押下、読み込み、成功の各状態がすでに設計されている無料のアニメーション コンポーネントを開き、ブラウザで変更します。

ライブコンポーネントを参照する
ExodeUI

EXODEUI DESKTOP

A little space for good ideas.

Choose your platform to get the official ExodeUI installer.

Looking for Intel Mac or other builds? Explore the web studio or check all download options.

Prefer the browser? Try for free in your browser →