Cool functions for media queries. Spec-compliant.
This package is available from the npm
registry.
npm install media-query-fns
Supports JavaScript + TypeScript:
import { compileQuery, matches, toEnglishString } from "media-query-fns";
// returns data that can be used to interpret the query
const maxWidthQuery = compileQuery(`(max-width: 1200px)`);
// (throws if invalid query syntax)
const testEnv = (widthPx = 1280, heightPx = 800) => ({
widthPx,
heightPx,
deviceWidthPx: widthPx,
deviceHeightPx: heightPx,
dppx: 2,
});
console.log(matches(maxWidthQuery, testEnv(1280))); // false
console.log(matches(maxWidthQuery, testEnv(1000))); // true
const complexQuery = compileQuery(`screen and (monochrome) and (orientation)`);
console.log(matches(complexQuery, testEnv()));
// true
console.log(toEnglishString(maxWidthQuery));
// 'if width ≤ 1200px'
console.log(toEnglishString(complexQuery));
// 'if (is screen AND monochrome)'
// note: (orientation) without "landscape" or "portrait" is always true, so it's removed for brevity
Can also be imported via require("media-query-fns")
.
- PRs welcome and accepted, simply fork and create
- Issues also very welcome
- Treat others with common courtesy and respect 🤝
Dev environment (for contributing) requires:
- node >= 16.14.0
- npm >= 6.8.0
- git >= 2.11
MIT