Socket
Socket
Sign inDemoInstall

columns3000

Package Overview
Dependencies
67
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    columns3000

A simple flex-based column/grid component for React.


Version published
Weekly downloads
1
decreased by-50%
Maintainers
1
Created
Weekly downloads
 

Readme

Source

Columns3000

A simple flex-based column/grid component for React.

Preview

Use it

yarn add columns3000

import {Columns, Column} from 'columns3000';

// in render
<Columns
  columns={12}
  justify="flex-start"
  // Gutter With units! use px, rem, vw, etc, even css variables or calc()!
  gutter="16px"
  breakpoint="720px"
>
  <Column span={6}>This is column spans 6!</Column>
  <Column span={6}>This is column spans 6 too!</Column>
</Columns>;

Responsive gutters, span or columns?

I suggest using useMedia from react-use like below:

import {Columns, Column} from 'columns3000';
import {useMedia} from 'react-use';

const isNarrow = useMedia('(max-width: 1024px)');
const span = isNarrow ? 2 : 4;
const gutter = isNarrow ? '16px' : 'var(--gutterLarge)';

// in render
<Columns
  columns={12}
  justify="flex-start"
  // Gutter With units! use px, rem, vw, etc, even css variables or calc()!
  gutter={gutter}
  breakpoint="720px"
>
  <Column span={span}>Spans 4 on width > 1024 and 2 below!</Column>
  <Column span={span}>Same!</Column>
  <Column span={span}>Same!</Column>
  <Column span={span}>Same!</Column>
</Columns>;

Columns props

PropertyTypeDescriptionDefault value
columnsnumbertotal number of columns of the grid system12
justifystringcss property justify-content, alignment of inner columnsflex-start
gutterstringthe horizontal/vertical spacing between columns16px
breakpointstringthe viewport width where single/multi-column layout is toggled720px

Column props

PropertyTypeDescriptionDefault value
spannumberamount of columns the columns spans horizontallyrequired prop
growbooleanflex-grows the columnfalse

Why

If you're like me who:

  • Works with React most the time
  • Usually going for css-in-js, particularly emotion. (Note: this uses emotion!)
  • Finds themselves considering to reach out for a no-frills super simple column/grid layout wrappers
  • Likes it simple and cute

Look no further! I tried to basically make a component to make myself happy for most of the use cases I do/would encounter. This does not use any other classNames or some imported css. I think it's "clean" in it just uses emotion generated classnames, and takes advantage of css variables to make it do its thing.

What

A Columns parent and Column wrapper components. Togehter they do these things:

  • Define a grid layout based on a number of columns and gutter size
  • Each column (child) within the grid layout would span a specified number of columns
  • When a breakpoint is reached, toggle between single-column ("mobile") or multi-column configurations

That's it!


Enjoy 🌸

FAQs

Last updated on 16 Sep 2021

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc