Skip to content

Accessibility: Full

Translations: Not Needed

Button Group

Button group component for grouping related buttons together

Default

Vue
html
<template>
  <HLButtonGroup>
    <HLButton id="group-1">Button 1</HLButton>
    <HLButton id="group-2">Button 2</HLButton>
    <HLButton id="group-3">Button 3</HLButton>
  </HLButtonGroup>
</template>
<script setup lang="ts">
  import { HLButtonGroup, HLButton } from '@platform-ui/highrise'
</script>

Primary Buttons

Vue
html
<template>
  <HLButtonGroup>
    <HLButton id="primary-blue" color="blue" variant="primary">Blue</HLButton>
    <HLButton id="primary-green" color="green" variant="primary">Green</HLButton>
    <HLButton id="primary-gray" color="gray" variant="primary">Gray</HLButton>
    <HLButton id="primary-orange" color="orange" variant="primary">Orange</HLButton>
    <HLButton id="primary-red" color="red" variant="primary">Red</HLButton>
  </HLButtonGroup>
</template>
<script setup lang="ts">
  import { HLButtonGroup, HLButton } from '@platform-ui/highrise'
</script>

Secondary Buttons

Vue
html
<template>
  <HLButtonGroup>
    <HLButton id="secondary-blue" color="blue">Blue</HLButton>
    <HLButton id="secondary-green" color="green">Green</HLButton>
    <HLButton id="secondary-gray" color="gray">Gray</HLButton>
    <HLButton id="secondary-orange" color="orange">Orange</HLButton>
    <HLButton id="secondary-red" color="red">Red</HLButton>
  </HLButtonGroup>
</template>
<script setup lang="ts">
  import { HLButtonGroup, HLButton } from '@platform-ui/highrise'
</script>

Tertiary Buttons

Vue
html
<template>
  <HLButtonGroup>
    <HLButton id="tertiary-blue" color="blue" variant="tertiary">Blue</HLButton>
    <HLButton id="tertiary-green" color="green" variant="tertiary">Green</HLButton>
    <HLButton id="tertiary-gray" color="gray" variant="tertiary">Gray</HLButton>
    <HLButton id="tertiary-orange" color="orange" variant="tertiary">Orange</HLButton>
    <HLButton id="tertiary-red" color="red" variant="tertiary">Red</HLButton>
  </HLButtonGroup>
</template>
<script setup lang="ts">
  import { HLButtonGroup, HLButton } from '@platform-ui/highrise'
</script>

Ghost Buttons

Vue
html
<template>
  <HLButtonGroup>
    <HLButton id="ghost-blue" color="blue" variant="ghost">Blue</HLButton>
    <HLButton id="ghost-green" color="green" variant="ghost">Green</HLButton>
    <HLButton id="ghost-gray" color="gray" variant="ghost">Gray</HLButton>
    <HLButton id="ghost-orange" color="orange" variant="ghost">Orange</HLButton>
    <HLButton id="ghost-red" color="red" variant="ghost">Red</HLButton>
  </HLButtonGroup>
</template>
<script setup lang="ts">
  import { HLButtonGroup, HLButton } from '@platform-ui/highrise'
</script>

Text Buttons

Vue
html
<template>
  <HLButtonGroup class="flex gap-3">
    <HLButton id="text-blue" color="blue" variant="text">Blue</HLButton>
    <HLButton id="text-green" color="green" variant="text">Green</HLButton>
    <HLButton id="text-gray" color="gray" variant="text">Gray</HLButton>
    <HLButton id="text-orange" color="orange" variant="text">Orange</HLButton>
    <HLButton id="text-red" color="red" variant="text">Red</HLButton>
  </HLButtonGroup>
</template>
<script setup lang="ts">
  import { HLButtonGroup, HLButton } from '@platform-ui/highrise'
</script>

Different Sizes

Large
Medium
Small
Extra Small
Double Extra Small
Triple Extra Small
Vue
html
<template>
  <HLButtonGroup>
    <HLButton id="size-example-1" :size="size" color="blue">Left</HLButton>
    <HLButton id="size-example-2" :size="size" color="blue">Middle</HLButton>
    <HLButton id="size-example-3" :size="size" color="blue">Right</HLButton>
  </HLButtonGroup>
</template>
<script setup lang="ts">
  import { HLButtonGroup, HLButton } from '@platform-ui/highrise'
</script>

With Icons

Vue
html
<template>
  <HLButtonGroup>
    <HLButton id="icon-left" color="blue">
      <template #iconLeft>
        <UserPlus01Icon class="w-3" />
      </template>
      Left Icon
    </HLButton>
    <HLButton id="icon-right" color="blue">
      Right Icon
      <template #iconRight>
        <UserPlus01Icon class="w-3" />
      </template>
    </HLButton>
    <HLButton id="icon-only" color="blue">
      <template #icon>
        <UserPlus01Icon class="w-3" />
      </template>
    </HLButton>
  </HLButtonGroup>
</template>
<script setup lang="ts">
  import { HLButtonGroup, HLButton } from '@platform-ui/highrise'
  import { UserPlus01Icon } from '@gohighlevel/ghl-icons/24/outline'
</script>

Disabled and Loading States

Vue
html
<template>
  <HLButtonGroup>
    <HLButton id="disabled-1" color="blue" disabled>Disabled</HLButton>
    <HLButton id="disabled-2" color="green" disabled>Disabled</HLButton>
    <HLButton id="disabled-3" color="red" disabled>Disabled</HLButton>
  </HLButtonGroup>

  <HLButtonGroup>
    <HLButton id="loading-1" color="blue" loading>Loading</HLButton>
    <HLButton id="loading-2" color="green" loading>Loading</HLButton>
    <HLButton id="loading-3" color="red" loading>Loading</HLButton>
  </HLButtonGroup>
</template>
<script setup lang="ts">
  import { HLButtonGroup, HLButton } from '@platform-ui/highrise'
</script>

Mixed Variants

Vue
html
<template>
  <HLButtonGroup>
    <HLButton id="mixed-primary" color="blue" variant="primary">Primary</HLButton>
    <HLButton id="mixed-secondary" color="blue">Secondary</HLButton>
    <HLButton id="mixed-tertiary" color="blue" variant="tertiary">Tertiary</HLButton>
    <HLButton id="mixed-ghost" color="blue" variant="ghost">Ghost</HLButton>
  </HLButtonGroup>
</template>
<script setup lang="ts">
  import { HLButtonGroup, HLButton } from '@platform-ui/highrise'
</script>

Imports

ts
import { HLButtonGroup, HLButton } from '@platform-ui/highrise'

Props

HLButtonGroup

The ButtonGroup component does not have specific props beyond standard HTML div attributes.

HLButton Props

See the Button component documentation for all available button props.