Skip to Content
ComponentsFlex

Flex

Use Flex component to stack items vertically or horizontally.

Documentation

Usage

01

02

03

import { Flex } from "@optiaxiom/react"; import { Canvas } from "../Canvas"; export function App() { return ( <Canvas> <Flex> <div>01</div> <div>02</div> <div>03</div> </Flex> </Canvas> ); }

Direction

Use flexDirection prop to control whether children are stacked vertically or horizontally. By default flexDirection is set to column.

Use flexDirection="row" or flexDirection="row-reverse" to stack items horizontally:

01

02

03

import { Box, Flex } from "@optiaxiom/react"; import { Canvas } from "../Canvas"; export function App() { return ( <Canvas> <Flex flexDirection="row"> <Box p="12">01</Box> <Box p="16">02</Box> <Box p="12">03</Box> </Flex> </Canvas> ); }

Use flexDirection="column" or flexDirection="column-reverse" to stack items vertically:

01

02

03

import { Flex } from "@optiaxiom/react"; import { Canvas } from "../Canvas"; export function App() { return ( <Canvas> <Flex flexDirection="column"> <div>01</div> <div>02</div> <div>03</div> </Flex> </Canvas> ); }

Gap

Use gap prop to control the gap between flex items.

01

02

03

import type { ComponentPropsWithoutRef } from "react"; import { Box, Flex } from "@optiaxiom/react"; import { Canvas } from "../Canvas"; export function App({ gap = "16", }: Pick<ComponentPropsWithoutRef<typeof Flex>, "gap">) { return ( <Canvas> <Flex flexDirection="row" gap={gap}> <Box p="12">01</Box> <Box p="16">02</Box> <Box p="12">03</Box> </Flex> </Canvas> ); }

Alignment

Use alignItems and justifyContent prop to control the layout and alignment of flex items.

01

02

03

import type { ComponentPropsWithoutRef } from "react"; import { stripes } from "@/demos/stripes"; import { Box, Flex } from "@optiaxiom/react"; import { Canvas } from "../Canvas"; export function App({ alignItems = "center", flexDirection = "row", justifyContent = "center", }: Pick< ComponentPropsWithoutRef<typeof Flex>, "alignItems" | "flexDirection" | "justifyContent" >) { return ( <Canvas> <Flex alignItems={alignItems} flexDirection={flexDirection} h="224" justifyContent={justifyContent} rounded="md" style={stripes} > <Box p="12">01</Box> <Box p="16">02</Box> <Box p="12">03</Box> </Flex> </Canvas> ); }

Related

Box

Box is the base component for all our other components and provides a convenient way to use our design tokens and set element styles without having to write any custom CSS.

Grid

Use Grid component to place items in a grid using equal width columns.

Props

Flex

Supports all Box props in addition to its own. Renders a <div> element.

Prop

asChild

Change the default rendered element for the one passed as a child, merging their props and behavior.

Read the Composition guide for more details.

false | true

className

string

Changelog

0.1.0

  • Added component
Last updated on