caesura
Version:
A reasonable breakpoint scale using @custom-media
65 lines (47 loc) • 2.54 kB
Markdown
# Caesura <img src="https://rawgit.com/jonathantneal/media-expressions-spec/gh-pages/css-logo.svg" alt="CSS Logo" width="90" height="90" align="right">
[](https://badge.fury.io/js/caesura)
Caesura is a reasonable breakpoint scale using [@custom-media](https://github.com/postcss/postcss-custom-media).
> **Note:** This project is in early development, and versioning is a little different. [Read this](http://markup.im/#q4_cRZ1Q) for more details.
```css
.foo {
border: 1px solid green;
@media (--above-l) {
border: 3px solid red
}
```
### Installation
Install with npm:
`npm install caesura`
Make sure you have [postcss-import](https://github.com/postcss/postcss-import) and [@custom-media](https://github.com/postcss/postcss-custom-media) (or cssnext) installed, then import caesura at the top of your css:
```
@import 'caesura';
<!-- Your css code here -->
```
That's it!
### The scale
```
Breakpoint: 320px 448px 768px 1024px 1280px 1800px
──────┬───────────┬─────────────┬─────────────┬─────────────┬──────────────────┬─────
Name: '--xs' '--s' '--m' '--l' '--xl' '--hd'
```
```
:root {
@custom-media --xs (width < 20em);
@custom-media --s (width < 28em);
@custom-media --m (width < 48em);
@custom-media --l (width < 64em);
@custom-media --xl (width < 80em);
@custom-media --hd (width < 112.5em);
@custom-media --above-xs (width >= 20em);
@custom-media --above-s (width >= 28em);
@custom-media --above-m (width >= 48em);
@custom-media --above-l (width >= 64em);
@custom-media --above-xl (width >= 80em);
@custom-media --above-hd (width >= 112.5em);
@custom-media --retina (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi);
@custom-media --landscape (orientation: landscape);
@custom-media --portrait (orientation: portrait);
}
```
I've yet to find a great use-case for needing `below` or `at` rules for media queries. I'm happy to add/revise if there are other examples people need. Furthermore, [content should dictate breaking points](https://github.com/jescalan/gps#breakpoints), but sometimes it's just nice to have your trusty standby stops.
Feel free to point out any issues, or open a PR!