https://github.com/react-container-query/container-query-toolkit
:wrench: Basic utilities to work with container query.
https://github.com/react-container-query/container-query-toolkit
Last synced: 4 months ago
JSON representation
:wrench: Basic utilities to work with container query.
- Host: GitHub
- URL: https://github.com/react-container-query/container-query-toolkit
- Owner: react-container-query
- License: mit
- Created: 2016-10-14T11:08:01.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2018-02-05T00:01:14.000Z (about 8 years ago)
- Last Synced: 2025-09-18T08:47:57.795Z (5 months ago)
- Language: JavaScript
- Homepage:
- Size: 49.8 KB
- Stars: 1
- Watchers: 1
- Forks: 3
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# container-query-toolkit
:wrench: Basic utilities to work with container query.
## Install
```
npm i -S container-query-toolkit
```
## Usage
```js
const kit = require('container-query-toolkit');
// or
import * as kit from 'container-query-toolkit';
// or
import {matchQueries} from 'container-query-toolkit';
// or
import matchQueries from 'container-query-toolkit/lib/matchQueries';
const query = {
a: {minWidth: 400, maxWidth: 500, minHeight: 400, maxHeight: 500},
b: {minWidth: 500, maxWidth: 600, minHeight: 400, maxHeight: 500},
c: {minWidth: 400, maxWidth: 500, minHeight: 500, maxHeight: 600},
d: {minWidth: 500, maxWidth: 600, minHeight: 500, maxHeight: 600},
};
const result1 = matchQueries(query)({width: 300, height: 300});
expect(result1).toEqual({a: false, b: false, c: false, d: false});
const result2 = matchQueries(query)({width: 450, height: 450});
expect(result2).toEqual({a: true, b: false, c: false, d: false});
const result3 = matchQueries(query)({width: 450, height: 550});
expect(result3).toEqual({a: false, b: false, c: true, d: false});
const result4 = matchQueries(query)({width: 550, height: 450});
expect(result4).toEqual({a: false, b: true, c: false, d: false});
const result5 = matchQueries(query)({width: 550, height: 550});
expect(result5).toEqual({a: false, b: false, c: false, d: true});
const result6 = matchQueries(query)({width: 700, height: 700});
expect(result6).toEqual({a: false, b: false, c: false, d: false});
// {min|max}Height would be ignored if height is not provided.
const result7 = matchQueries(query)({width: 450});
expect(result7).toEqual({a: true, b: false, c: true, d: false});
// {min|max}Width would be ignored if width is not provided.
const result8 = matchQueries(query)({height: 450});
expect(result8).toEqual({a: true, b: true, c: false, d: false});
```
## API
### `matchQueries(rules)(contentSize)`
- `rules: {[key: string]: {minWidth?: number, maxWidth?: number, minHeight?: number, maxHeight?: number}}`
- `contentSize: {height?: number, width?: number}`
If `contentSize` is missing `height` or `width`, `{min|max}Height` or `{min|max}Width` rules will be ignored respectively.