Skip to content
Entangle UI v0.13.0

Spacer

A utility component that creates space between elements in flex layouts. By default, it grows to fill all available space, pushing siblings apart. It can also be given a fixed size for precise spacing control. Works with Stack, Flex, and any flex container.

Live Preview

import { Spacer } from 'entangle-ui';
<Stack direction="row">
<Button>Left</Button>
<Spacer />
<Button>Right</Button>
</Stack>

Without a size prop, the Spacer uses flex-grow: 1 to consume all available space. This is the most common usage for pushing elements to opposite sides of a container.

<Flex direction="row" align="center">
<Logo />
<Spacer />
<Navigation />
<Spacer />
<UserMenu />
</Flex>

Multiple Spacer components distribute space evenly between them, creating equal spacing between groups of elements.

Pass a size value to create a spacer with fixed dimensions. Accepts CSS strings or numbers (treated as pixels).

<Stack direction="column">
<Title>Header</Title>
<Spacer size="2rem" />
<Content>Body content</Content>
</Stack>
<Stack direction="row">
<Icon />
<Spacer size={8} />
<Text>Label</Text>
</Stack>

In fixed mode, both width and height are set to the same value. The parent flex container’s direction determines which dimension takes effect — the cross-axis dimension is typically overridden by align-items.

<Flex direction="row" align="center" gap={1}>
<IconButton icon={<UndoIcon />} />
<IconButton icon={<RedoIcon />} />
<Spacer />
<Button variant="filled">Save</Button>
</Flex>
<Stack direction="column">
<FormField label="Name" />
<FormField label="Email" />
<Spacer size={16} />
<FormField label="Password" />
<FormField label="Confirm Password" />
</Stack>
Prop Type Default Description
size string | number — Fixed size for the spacer. When omitted, the spacer expands to fill available space. Numbers are treated as pixels.
className string — Additional CSS class names.
style CSSProperties — Inline styles.
testId string — Test identifier for automated testing.
ref Ref<HTMLDivElement> — Ref to the underlying div element.

The component also accepts all standard HTML <div> attributes.

  • Renders an empty <div> element used purely for layout purposes
  • Has no semantic meaning and is invisible to assistive technologies
  • The Spacer component is memoized for performance