0.1.4 • Published 2 years ago

@nawt/flex v0.1.4

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

@nawt/flex

A flex-grid Styled Component with the option to define the number of columns for your flex grid.

Install

# For NPM
npm install @nawt/flex

# For Yarn
yarn add @nawt/flex

# For PNPM
pnpm install @nawt/flex

API

<FlexRow \/>

Typically used in lieu with FlexCol, you can also reverse the order of items with the isReverse prop with FlexRow.

ParameterDefault ValueTypeDescription
isReversefalsebooleanDefines whether to reverse item order
import { FlexRow, FlexCol } from '@nawt/flex';

// Typical FlexRow usage
export const MyFlexGrid = () => {
  return (
    <FlexRow>
      <FlexCol columnSize={[12, 6, 4]}>Column 1</FlexCol>
      <FlexCol columnSize={[12, 6, 4]}>Column 2</FlexCol>
      <FlexCol columnSize={[12, 6, 4]}>Column 3</FlexCol>
    </FlexRow>
  );
};

// FlexRow usage with 'isReverse'
export const MyReversedFlexGrid = () => {
  return (
    <FlexRow isReverse={true}>
      <FlexCol columnSize={[12, 6, 4]}>Column 1</FlexCol>
      <FlexCol columnSize={[12, 6, 4]}>Column 2</FlexCol>
      <FlexCol columnSize={[12, 6, 4]}>Column 3</FlexCol>
    </FlexRow>
  );
};

<FlexCol \/>

Staple flex column component where you can define the following:

ParameterDefault ValueTypeDescription
totalColumns12numberDefines the total number of columns as the basis for the calculation of 'columnSize'
columnSizen/anumber \| number[]Defines the size of the column
offsetn/anumber \| number[]Defines the size of the column
gutterWidthn/anumber \| number[]Defines the left/right padding of a column
gapn/anumberDefines the gap value of a column

Typical usage is as follows

import { FlexRow, FlexCol } from '@nawt/flex';

// Typical usage of FlexCol
export const MyFlexGrid = () => {
  return (
    <FlexRow>
      <FlexCol columnSize={[12, 6, 4]}>Column 1</FlexCol>
      <FlexCol columnSize={[12, 6, 4]}>Column 2</FlexCol>
      <FlexCol columnSize={[12, 6, 4]}>Column 3</FlexCol>
    </FlexRow>
  );
};

// Usage of FlexColwith offset
export const MyOffsetFlexGrid = () => {
  return (
    <FlexRow>
      <FlexCol columnSize={[1, 2, 3]} offset={[11, 10, 9]}>
        Column 1
      </FlexCol>

      <FlexCol columnSize={[1, 2, 3]} offset={[11, 10, 9]}>
        Column 2
      </FlexCol>

      <FlexCol columnSize={[1, 2, 3]} offset={[11, 10, 9]}>
        Column 3
      </FlexCol>
    </FlexRow>
  );
};

A custom total columns can be used as the basis for columnSize. This is to allow for a bit more flexibility to accommodate designs. Currently, it is required to create a wrapper for it for the sake of not repeating it everytime you need it.

import { FlexRow, FlexCol } from '@nawt/flex';

// Usage with totalColumns property, say a total of 16 columns as basis is required
export const Col = ({ children, totalColumns = 16 }) => {
  return <FlexCol totalColumns={totalColumns}>{children}</FlexCol>;
};

// Then Col can be used as per usual
export const MyFlexGrid = () => {
  return (
    <FlexRow>
      <Col columnSize={[16, 8, 4]}>Column 1</Col>
      <Col columnSize={[16, 8, 4]}>Column 2</Col>
      <Col columnSize={[16, 8, 4]}>Column 3</Col>
    </FlexRow>
  );
};