Atomic classes for space.
npm i --save space-css
I am a big fan of Basscss but recently working on a large project I decided that I needed more tools to work with height and width.
Enter Space
— a mobile-first set of atomic classes for working with height and width. It was designed to work with
Basscss, and follows the same coordinate-based mental model.
Space
operates on the x, y axes.
/*
width = x-axis
height = y-axis
*/
Use xf
or yf
to fill the element's width or height.
/* f = fill */
.xf { width: 100% }
.yf { height: 100% }
.xyf { width: 100%; height: 100% }
.zf { width: 100vh; 100vw; }
You can use either the shorthand, xf
, or the full classname, x-fill
.
There is a singler helper class for setting full screen that operates using the z-axis.
Like Basscss, Space
asks you to embrace a philosophy where you declare spacing variables ahead of time and work within them.
You can use whatever spacing strategy you want.
Space
comes with eight increments. You can see the defaults here. (Note
that they are different from the Basscss white space defaults.)
.x1 { width: var(--space-one) }
.x2 { width: var(--space-two) }
.y1 { height: var(--space-one) }
.y2 { height: var(--space-two) }
@media(--breakpoint-sm) {
.sm-x1 { width: var(--space-one) }
.sm-x2 { width: var(--space-two) }
.sm-y1 { height: var(--space-one) }
.sm-y2 { height: var(--space-two) }
}
etc...
Space
uses the same (three) default breakpoints as Basscss.
@custom-media --breakpoint-sm (min-width: 40em);
@custom-media --breakpoint-md (min-width: 52em);
@custom-media --breakpoint-lg (min-width: 64em);
License: MIT