Skip to main content

Stacks

Stacks offer a shortcut for applying a number of flexbox properties to quickly and easily create layouts in Kyber. All credit for the concept and implementation goes to the open source Pylon project.

Vertical

Use .vstack to create vertical layouts. Stacked items are full-width by default. Use .gap-* utilities to add space between items.

Result
Loading...
Live Editor
<div className="bd-example-flex">
	<div className="vstack gap-3">
		<div className="p-2">First item</div>
		<div className="p-2">Second item</div>
		<div className="p-2">Third item</div>
	</div>
</div>

Horizontal

Use .hstack for horizontal layouts. Stacked items are vertically centered by default and only take up their necessary width. Use .gap-* utilities to add space between items.

Result
Loading...
Live Editor
<div className="bd-example-flex">
	<div className="hstack gap-3">
		<div className="p-2">First item</div>
		<div className="p-2">Second item</div>
		<div className="p-2">Third item</div>
	</div>
</div>

Using horizontal margin utilities like .ms-auto as spacers:

Result
Loading...
Live Editor
<div className="bd-example-flex">
	<div className="hstack gap-3">
		<div className="p-2">First item</div>
		<div className="p-2 ms-auto">Second item</div>
		<div className="p-2">Third item</div>
	</div>
</div>

And with vertical rules:

Result
Loading...
Live Editor
<div className="bd-example-flex">
	<div className="hstack gap-3">
		<div className="p-2">First item</div>
		<div className="p-2 ms-auto">Second item</div>
		<div className="vr"></div>
		<div className="p-2">Third item</div>
	</div>
</div>

Examples

Use .vstack to stack buttons and other elements:

Result
Loading...
Live Editor
<div className="vstack gap-2 col-md-5 mx-auto">
	<button type="button" className="btn btn-secondary">
		Save changes
	</button>
	<button type="button" className="btn btn-outline-secondary">
		Cancel
	</button>
</div>

Create an inline form with .hstack:

Result
Loading...
Live Editor
<div className="hstack gap-3">
	<input
		className="form-control me-auto"
		type="text"
		placeholder="Add your item here..."
		aria-label="Add your item here..."
	/>
	<button type="button" className="btn btn-secondary">
		Submit
	</button>
	<div className="vr"></div>
	<button type="button" className="btn btn-outline-danger">
		Reset
	</button>
</div>