Skip to main content

Button group

Join related buttons and menu triggers into one compact horizontal or vertical control group.

Default

On this page

Installation

Copy this component and its required dependencies into the consumer-owned Components project.

dotnet fve add button-group --config src/Acme.Components/fve.json

The CLI resolves dependencies and preserves consumer-authored files. See Installation for project initialization and Tailwind source detection.

Usage

open System
open FSharp.ViewEngine
open Acme.Components
open type Html
open type Svg
open type Datastar

let defaultButtonGroup =
    ButtonGroup.create "Message actions" [
        Button.create (ButtonContent.Text "Archive") |> ButtonGroupItem.button
        Button.create (ButtonContent.Text "Report") |> ButtonGroupItem.button ]
    |> ButtonGroup.render id

Grouped actions

Vertical orientation

API reference

type ButtonGroupOrientation =
    | Horizontal
    | Vertical

type ButtonGroupItem<'destination>

type ButtonGroupConfig<'destination>

module ButtonGroup =
    val create : label:string -> items:ButtonGroupItem<'a> list -> ButtonGroupConfig<'a>
    val withOrientation : orientation:ButtonGroupOrientation -> config:ButtonGroupConfig<'destination> -> ButtonGroupConfig<'destination>
    val withAttributes : attributes:HtmlAttribute list -> config:ButtonGroupConfig<'destination> -> ButtonGroupConfig<'destination>
    val render : resolve:('destination -> string) -> config:ButtonGroupConfig<'destination> -> HtmlElement

module ButtonGroupItem =
    val button : config:ButtonConfig -> ButtonGroupItem<'destination>
    val menu : config:DropdownMenuConfig<'destination> -> ButtonGroupItem<'destination>