spacing
Version:
CSS spacing classes
165 lines (133 loc) • 2.37 kB
Markdown
# spacing
Opensource functional CSS spacing for modern web development
- [<b>setup</b>](#setup)
- [<b>classes</b>](#classes)
- [<b>data-spacing</b>](#data-spacing)
- [<b>scaling</b>](#scaling)
- [<b>files</b>](#files)
## setup
```
npm install spacing
```
### import whichever [file(s)](#files) meets your needs
- [`main.css`](main.css) is harcoded for CSS3 compatibility
- [`module.css`](module.css) uses CSS4 variables
```css
@import "node_modules/spacing/main";
```
## classes
Classes are listed in order from least to most precendence.
### `padding`
- `.p0`
- `.p1`
- `.p2`
- `.p3`
- `.p4`
### `padding-top`
- `.pt0`
- `.pt1`
- `.pt2`
- `.pt3`
- `.pt4`
### `padding-left`
- `.pl0`
- `.pl1`
- `.pl2`
- `.pl3`
- `.pl4`
### `padding-right`
- `.pr0`
- `.pr1`
- `.pr2`
- `.pr3`
- `.pr4`
### `padding-bottom`
- `.pb0`
- `.pb1`
- `.pb2`
- `.pb3`
- `.pb4`
### `margin`
- `.-m2`
- `.-m1`
- `.m0`
- `.m1`
- `.m2`
- `.m3`
- `.m4`
- `.m-auto`
### `margin-top`
- `.mt0`
- `.mt1`
- `.mt2`
- `.mt3`
- `.mt4`
- `.mt-auto`
### `margin-left`
- `.ml0`
- `.ml1`
- `.ml2`
- `.ml3`
- `.ml4`
- `.ml-auto`
### `margin-right`
- `.mr0`
- `.mr1`
- `.mr2`
- `.mr3`
- `.mr4`
- `.mr-auto`
### `margin-bottom`
- `.mb0`
- `.mb1`
- `.mb2`
- `.mb3`
- `.mb4`
- `.mb-auto`
### `:first-child`
- `.mt0-first`
- `.ml0-first`
- `.mr0-first`
- `.mb0-first`
### `:last-child`
- `.mt0-last`
- `.ml0-last`
- `.mr0-last`
- `.mb0-last`
## data-spacing
Alternative to [classes](#classes) you can also space via `[data-spacing]` with value(s) being any of the classes.
```html
<p data-spacing="p1 m0 mb2">
```
All `[data-spacing]` selectors come after the classes in the cascade.
## scaling
### spacing variables default to `rem` and therefore can be scaled responsively with the `rem` size
```css
:root {
font-size: 1em;
font-size: calc(.9em + .5vw + .5vh);
}
```
### in CSS4 you could scale via media queries
```css
:root {
--space-1: .5rem;
--space-2: 1rem;
--space-3: 1.5rem;
--space-4: 3rem;
}
@media (min-width: 30em) and (min-height: 20em) {
:root {
--space-1: .5rem;
--space-2: 1rem;
--space-3: 2rem;
--space-4: 4rem;
}
}
```
## files
- [main.css](main.css) css3+ bundle
- [module.css](module.css) css4+ bundle
- [class.css](class.css) class selectors
- [data.css](data.css) data selectors
- [root.css](root.css) default variables