ボタン

ボタンは、ユーザーが定義されたアクションをトリガーできるようにする基本的なコンポーネントです。ボタンには 5 種類あります。次の表に、5 種類のボタンの外観と、使用する場所を示します。

タイプ デザイン 目的
塗りつぶし 背景が単色で、テキストがコントラストのある色で表示されます。 強調度の高いボタン。これは、アプリのプライマリ アクション([送信] や [保存] など)に使用します。シャドウ効果により、 ボタンの重要性が強調されます。
塗りつぶし(トーン) 背景色はサーフェスに合わせて変化します。 プライマリ アクションや重要なアクションにも使用します。塗りつぶし(トーン)ボタンは 視覚的な重みが大きく、[カートに追加] や [ログイン] などの機能に適しています。
浮き上がり シャドウが付いていて目立ちます。 トーンボタンと同様の目的で使用します。浮き上がりを大きくすると、 ボタンがさらに目立つようになります。
アウトライン 塗りつぶしなしの枠線が特徴です。 中強調ボタン。重要だが プライマリではないアクションが含まれます。他のボタンと組み合わせて、代替の サブアクション([キャンセル] や [戻る] など)を示すのに適しています。
テキスト 背景や枠線なしでテキストを表示します。 低強調ボタン。 ナビゲーション リンクなどの重要度の低いアクションや、[詳細] や [詳細を表示] などのサブ機能に最適です。

この画像は、マテリアル デザインの 5 種類のボタンを示しています。

5 つのボタン コンポーネントの例。それぞれの固有の特性が強調されています。
図 1. 5 つのボタン コンポーネント。

API サーフェス

onClick
ユーザーがボタンを押したときにシステムが呼び出す関数。
enabled
When false, このパラメータによりボタンが使用不可で 非アクティブになります。
colors
ボタンで使用する色を決定する ButtonColors のインスタンス。
contentPadding
ボタン内のパディング。

塗りつぶしボタン

塗りつぶしボタン コンポーネントは、基本的な Button コンポーザブルを使用します。デフォルトでは単色で塗りつぶされます。次のスニペットは、このコンポーネントを実装する方法を示しています。

@Composable
fun FilledButtonExample(onClick: () -> Unit) {
    Button(onClick = { onClick() }) {
        Text("Filled")
    }
}

この実装は次のように表示されます。

紫色の背景に「Filled」と書かれた塗りつぶしボタン。
図 2. 塗りつぶしボタン。

塗りつぶし(トーン)ボタン

塗りつぶし(トーン)ボタン コンポーネントは、FilledTonalButton コンポーザブルを使用します。 デフォルトではトーンカラーで塗りつぶされます。

次のスニペットは、このコンポーネントを実装する方法を示しています。

@Composable
fun FilledTonalButtonExample(onClick: () -> Unit) {
    FilledTonalButton(onClick = { onClick() }) {
        Text("Tonal")
    }
}

この実装は次のように表示されます。

「Tonal」と書かれた薄紫色の背景のトーンボタン。
図 3. トーンボタン。

アウトライン ボタン

アウトライン ボタン コンポーネントは、OutlinedButton コンポーザブルを使用します。デフォルトではアウトラインが表示されます。

次のスニペットは、このコンポーネントを実装する方法を示しています。

@Composable
fun OutlinedButtonExample(onClick: () -> Unit) {
    OutlinedButton(onClick = { onClick() }) {
        Text("Outlined")
    }
}

この実装は次のように表示されます。

「Outlined」と書かれた、枠線が黒い透明なボタン。
図 4. アウトライン ボタン。

浮き上がりボタン

浮き上がりボタン コンポーネントは、ElevatedButton コンポーザブルを使用します。デフォルトでは、浮き上がり効果を表すシャドウが付いています。シャドウを含む塗りつぶしボタンです。

次のスニペットは、このコンポーネントを実装する方法を示しています。

@Composable
fun ElevatedButtonExample(onClick: () -> Unit) {
    ElevatedButton(onClick = { onClick() }) {
        Text("Elevated")
    }
}

この実装は次のように表示されます。

「Elevated」と書かれた、グレーの背景の隆起したボタン。
図 5. 浮き上がりボタン。

テキストボタン

テキストボタン コンポーネントは、TextButton コンポーザブルを使用します。押されるまでテキストのみが表示されます。デフォルトでは、単色の塗りつぶしやアウトラインはありません。

次のスニペットは、このコンポーネントを実装する方法を示しています。

@Composable
fun TextButtonExample(onClick: () -> Unit) {
    TextButton(
        onClick = { onClick() }
    ) {
        Text("Text Button")
    }
}

この実装は次のように表示されます。

「テキスト ボタン」と表示されたテキスト ボタン 図 6. テキストボタン。

参考情報