layout-blocks
v1.2.0
Published
Reusable layout components for your React project
Downloads
12
Readme
Layout Blocks
Reusable layout components for your React project
npm i layout-blocks
Components
All layout components support an as
prop to define the html element you want the block to render as (defaults to div
).
VStack
Renders children in a vertical stack with a prop to control horizontal alignment.
import { VStack } from 'layout-blocks'
| prop | values | description | default |
| --------- | --------------------------------------- | --------------------------------------------- | --------- |
| alignment | leading
center
trailing
stretch
| Controls the horizontal alignment of children | stretch
|
Screen
A special opinionated version of a vertical stack that assumes height and width of the viewport and also centers content both horizontally and vertically.
import { Screen } from 'layout-blocks'
HStack
Renders children in a horizontal stack with a prop to control vertical alignment.
import { HStack } from 'layout-blocks'
| prop | values | description | default |
| --------- | --------------------------------- | ------------------------------------------- | --------- |
| alignment | top
center
bottom
stretch
| Controls the vertical alignment of children | stretch
|
Flex
Useful for controlling how much space an item takes up within a HStack
, VStack
, or Screen
. Think of this as an abstraction over flex
properties. Use it to control growing, shrinking, and initial size.
import { Flex } from 'layout-blocks'
| prop | value | description | default |
| ------ | ------ | ------------------------------------ | ------- |
| grow | string | Specifies the flex-grow
property | 1
|
| shrink | string | Specifies the flex-shrink
property | 1
|
| basis | string | Specifies the flex-basis
property | 0%
|
Spacer
Shorthand for <Flex />
with no props. Useful to insert space within stacks to push surrounding content away.
import { Spacer } from 'layout-blocks'
Breakout
Useful when you have a restricting container (maybe in width) and you need an element to stretch to the width of the viewport without flowing the element outside of the container (like a callout section).
import { Breakout } from 'layout-blocks'
Tiles
Renders children in a grid with a prop to control the minimum width before rendering each child in a row of it's own.
import { Tiles } from 'layout-blocks'
| prop | value | description | default |
| ---- | ------ | ------------------------------------------------------------ | ------- |
| min | string | Minimum width of child before collapsing to one item per row | 250px
|