1.0.1 • Published 7 years ago

flxbx v1.0.1

Weekly downloads
3
License
MIT
Repository
github
Last release
7 years ago

flxbx

A minimalistic flexbox library for React

Build Status npm version

Why?

Most react libraries for flexbox are bloated. I wrote this for myself as a utility to contain the minimal directives for flexbox to quickly prototype a custom layout with a container containing multiple children each with their own flex specifications.

Features

  • minimalistic and light weight
  • direct wrapper over flexbox specification see here

Getting Started

Use npm or yarn to add this as dependency

npm install -save flxbx

or

yarn add flxbx

Usage

Flxbx defines two components to describe the flexbox specification for parent container as well as child components.

Consider the layout below:

alt tag

This can be defined using the following DSL. Read through the values assigned to props to better understand the layout used. Note that Box is just an arbitrary component used to visually represent the effect of flex layout and is not part of the library.

<FlxBx reverse={true} justify='center' align='center'>
	<Box num={1} />
	<Box num={2} />
	<Box num={3} />
	<Box num={4} />
</FlxBx>

To tweak the position of individual child elements, read through the example below

alt tag

<FlxBx>
	<FlxEl element={Box} num={1} />
	<FlxEl element={Box} num={2} align='center' />
	<FlxEl element={Box} num={3} grow='0.4' />
	<FlxEl element={Box} num={4} align='flex-end'/>
</FlxBx>

FlxEl takes a component as element prop and passes all other props not relevant to flxbx library.

Please check the examples in the storybook for detailed documentation about possible prop values

Documentation

FlxBx

Parent component to define the container level flex properties

NameTypeDescription (default value)Flexbox Reference
directionstringHow flex items are placed in the flex container defining the main axis and the direction (row)flex-direction
reversebooleanReverse flex direction (false)-
justifystringDefines how the browser distributes space between and around content items along the main axis of their container (flex-start)justify-content
alignstringdefines how the browser distributes space between and around flex items along the cross-axis of their container (flex-start)align-items

FlxEl

Wrapper component for defining flex properties for child elements

NameTypeDescription (default value)Flexbox Reference
elementobjectActual component to be rendered as child-
alignstringaligns flex items of the current flex line overriding the align-items value (auto)align-self
basisstringspecifies the flex basis which is the initial main size of a flex item (auto)flex-basis
growstringspecifies the flex grow factor of a flex item. It specifies what amount of space inside the flex container the item should take up (0)flex-grow
shrinkstringspecifies the flex shrink factor of a flex item. Flex items will shrink to fill the container according to the flex-shrink number, when the default width of flex items is wider than the flex container (1)flex-shrink

License

MIT

1.0.1

7 years ago

1.0.0

7 years ago