Skip to content

Stack

A vertical or horizontal stack layout component.

Basic Usage

blade
<x-basekit-ui::stack>
    <div>Item 1</div>
    <div>Item 2</div>
    <div>Item 3</div>
</x-basekit-ui::stack>

Props

PropTypeDefaultDescription
directionstring'vertical'Stack direction (vertical,horizontal)
spacingstring'md'Gap between items (xs,sm,md,lg,xl)
alignstring'stretch'Alignment (start,center,end,stretch)
justifystring'start'Justify (start,center,end,between,around)

Directions

Supported directions: vertical, horizontal.

blade
<x-basekit-ui::stack direction="horizontal">
    <div>Item 1</div>
    <div>Item 2</div>
</x-basekit-ui::stack>

Gap Sizes

Supported sizes: xs, sm, md, lg, xl.

blade
<x-basekit-ui::stack spacing="lg">
    <div>Item 1</div>
    <div>Item 2</div>
</x-basekit-ui::stack>

Alignment and Justification

Align: start, center, end, stretch.

Justify: start, center, end, between, around.

blade
<x-basekit-ui::stack direction="horizontal" align="center" justify="between">
    <span>Left</span>
    <span>Right</span>
</x-basekit-ui::stack>

Practical Example

A user row with name/email on the left and a status badge on the right:

blade
<x-basekit-ui::stack direction="horizontal" spacing="md" align="center" justify="between"
    class="rounded-lg border border-slate-200 bg-white p-4">
    <x-basekit-ui::stack direction="vertical" spacing="xs">
        <span class="text-sm font-medium text-slate-900">John Doe</span>
        <span class="text-xs text-slate-500">john@example.com</span>
    </x-basekit-ui::stack>
    <x-basekit-ui::badge variant="success">Active</x-basekit-ui::badge>
</x-basekit-ui::stack>

Form Stack Example

blade
<x-basekit-ui::stack spacing="lg">
    <x-basekit-ui::input name="name" label="Name" />
    <x-basekit-ui::input name="email" label="Email" />
    <x-basekit-ui::textarea name="message" label="Message" />
    <x-basekit-ui::button type="submit">Submit</x-basekit-ui::button>
</x-basekit-ui::stack>

Custom Classes

Override or extend styles with the class attribute:

blade
<x-basekit-ui::stack spacing="md" class="mt-4">
    <div>Item 1</div>
    <div>Item 2</div>
</x-basekit-ui::stack>

CSS Variables

Customize stack gap sizes via CSS variables:

css
:root {
  --stack-gap-xs: 0.25rem;
  --stack-gap-sm: 0.5rem;
  --stack-gap-md: 1rem;
  --stack-gap-lg: 1.5rem;
  --stack-gap-xl: 2rem;
}

Configuration

php
'stack' => [
    'enabled' => true,
    'spacing' => ['xs', 'sm', 'md', 'lg', 'xl'],
    'default_spacing' => 'md',
],

Released under the MIT License.