General

FieldGroup

Group related buttons and form elements together with connected borders and shared sizing.

Playground

Experiment with different props in real-time.

Basic Usage

Wrap buttons in a FieldGroup to connect them visually.

<script lang="ts">
  import { FieldGroup, Button } from 'sv5ui';
</script>

<FieldGroup>
  <Button variant="outline" label="Left" />
  <Button variant="outline" label="Center" />
  <Button variant="outline" label="Right" />
</FieldGroup>

Orientation

Stack buttons horizontally or vertically.

<!-- Horizontal (default) -->
<FieldGroup orientation="horizontal">
  <Button variant="outline" label="Left" />
  <Button variant="outline" label="Center" />
  <Button variant="outline" label="Right" />
</FieldGroup>

<!-- Vertical -->
<FieldGroup orientation="vertical">
  <Button variant="outline" label="Top" />
  <Button variant="outline" label="Middle" />
  <Button variant="outline" label="Bottom" />
</FieldGroup>

Sizes

The group's size prop applies to all child buttons.

<FieldGroup size="sm">
  <Button variant="outline" label="Small" />
  <Button variant="outline" label="Group" />
</FieldGroup>

<FieldGroup size="md">
  <Button variant="outline" label="Medium" />
  <Button variant="outline" label="Group" />
</FieldGroup>

<FieldGroup size="lg">
  <Button variant="outline" label="Large" />
  <Button variant="outline" label="Group" />
</FieldGroup>

Button Variants

Works with all button variants.

<FieldGroup>
  <Button variant="solid" label="Solid" />
  <Button variant="solid" label="Group" />
</FieldGroup>

<FieldGroup>
  <Button variant="outline" label="Outline" />
  <Button variant="outline" label="Group" />
</FieldGroup>

<FieldGroup>
  <Button variant="soft" label="Soft" />
  <Button variant="soft" label="Group" />
</FieldGroup>

Icon Groups

Create toolbar-style groups with icon-only buttons.

<FieldGroup>
  <Button variant="outline" icon="lucide:bold" />
  <Button variant="outline" icon="lucide:italic" />
  <Button variant="outline" icon="lucide:underline" />
  <Button variant="outline" icon="lucide:strikethrough" />
</FieldGroup>

<FieldGroup>
  <Button variant="outline" icon="lucide:align-left" />
  <Button variant="outline" icon="lucide:align-center" />
  <Button variant="outline" icon="lucide:align-right" />
  <Button variant="outline" icon="lucide:align-justify" />
</FieldGroup>

Mixed Buttons

Combine different button variants and styles within a group.

<FieldGroup>
  <Button variant="solid" leadingIcon="lucide:save" label="Save" />
  <Button variant="outline" icon="lucide:chevron-down" />
</FieldGroup>

<FieldGroup>
  <Button variant="outline" label="Main Action" />
  <Button variant="outline" label="Option A" />
  <Button variant="outline" label="Option B" />
  <Button variant="solid" label="Confirm" />
</FieldGroup>

UI Slots

Use the ui prop to override classes on internal elements.

SlotDescription
rootRoot container element — controls layout, spacing, alignment

Props

PropTypeDefault
orientation'horizontal' | 'vertical''horizontal'
size'xs' | 'sm' | 'md' | 'lg' | 'xl''md'
askeyof HTMLElementTagNameMap'div'
classstring-
uiRecord<Slot, Class>-