Components

Stack

Vertical layout container based on flexbox column

Overview

Stack is a vertical layout container. display: flex and flex-direction: column are applied by default.

  • Polymorphic — Render as any HTML element via the as prop
  • Interaction States — Supports state-based styling with _hover, _active, _focus, etc.
  • Sprinkles support — All design token props available

It is the vertical counterpart of Inline. The API is identical.

Basic Usage

import { Stack } from '@illog/ui'
;<Stack gap="400">
  <Text textStyle="heading">Title</Text>
  <Text textStyle="bodyBase">Body content goes here.</Text>
  <Button variant="primary">Confirm</Button>
</Stack>

Direction

// Reverse order
<Stack direction="column-reverse" gap="300">
  <Text>First (displayed at bottom)</Text>
  <Text>Second (displayed at top)</Text>
</Stack>

Props

PropTypeDefaultDescription
asElementType'div'HTML element to render
direction'column' | 'column-reverse''column'Layout direction
gapSprinkles['gap']—Gap between child elements
alignSprinkles['alignItems']—Cross-axis alignment
justifySprinkles['justifyContent']—Main-axis alignment
wrapSprinkles['flexWrap']'nowrap'Whether to wrap
_hoverobject—Hover state styles
_activeobject—Active state styles
_focusobject—Focus state styles
_focusVisibleobject—Focus-visible state styles
_disabledobject—Disabled state styles
isActiveboolean—Force active state
isDisabledboolean—Force disabled state
...sprinklesSprinkles—Design token props

Guidelines

  • Use Stack for listing form fields or arranging content inside cards
  • direction="column-reverse" is useful for reverse-scroll UIs like chat
  • Combining Inline and Stack allows building complex layouts with token-based spacing