0.0.2-alpha.3 • Published 8 years ago
css-managed-media v0.0.2-alpha.3
css-managed-media
Really custom media in CSS
CSS managed media runtime API.
Install
$ yarn add -D postcss-managed-media
$ yarn add css-managed-mediaUsage
postcss.config.js
const managedMedia = require('postcss-managed-media').default;
module.exports = {
plugins: [managedMedia],
};styles.less
// Assuming you use both `less-loader` and `postcss-loader`.
// Also assuming you transpile LESS vars to CSS vars.
@managed-media --light;
@bg: #000;
@fg: #fff;
.page {
background-color: @bg;
color: @fg;
}
@media (--light) {
@bg: #fff;
@fg: #000;
}media.js
import { setMedia } from 'css-managed-media';
import { store } from './store';
let { theme: current } = store.getState();
const setLight = setMedia('light', current === 'light');
setLight();
store.subscribe(() => {
const { theme: next } = store.getState();
if (current !== next) {
current = next;
setLight();
}
});API
setMedia
Signature: setMedia(media: string, value: boolean = false): void.
Arguments:
media: string— feature name.value?: boolean—trueto switch feature on,falseor nothing — to switch it off.
Roadmap
- Discrete features (
--theme: light,--theme: dark). - Integration with
postcss-custom-media.- Discrete custom media:
@custom-media --size { s: (max-width: 599px); m: (min-width: 600px) and (max-width: 1199px); l: (min-width: 1200px); }
- Discrete custom media:
matchMediasupport.- Future-proof
setMediaAPI. (E.g. onCSSglobal.) - Parametrized managed media (
--min-scrollbar-width: 10px).
License
MIT
0.0.2-alpha.3
8 years ago
0.0.2-alpha.2
8 years ago
0.0.2-alpha.1
8 years ago
0.0.2-alpha.0
8 years ago
0.0.1
8 years ago