# VStack

Source: /tuil/docs/reference/components/layout/vstack
Locale: en

VStack component API, behavior, and executable example.





{/* Generated by tooling/docs/generate-reference.ts. */}

<PublishedStory storyId="component-acceptance" variant="Box" />

## API and events [#api-and-events]

Build capability-aware rows, columns, bounded containers, split panes, and keyboard-resizable regions.

```tsx
export function VStack(props: Omit<StackProps, "direction">): ReactNode;
```

### Props, functions, and events [#props-functions-and-events]

This declaration has no public members.

`ResizablePane` reports size changes through `onSizeChange`; other layout components are passive.

Callback props run after the documented input is accepted. Callbacks are not cancellable unless their return type or description states otherwise.

## Interaction and capabilities [#interaction-and-capabilities]

Resizable panes consume scoped arrow-key input while passive layout primitives only project Ink layout props.

The published manifest records keyboard, focus, pointer, theme, terminal, semantic, event, and dependency requirements.

## Complete import [#complete-import]

```tsx
import { VStack } from "@/components/tuil/primitives/box";
```
