container-query-toolkit
TypeScript icon, indicating that this package has built-in type declarations

0.1.3 • Public • Published

container-query-toolkit

🔧 Basic utilities to work with container query.

Install

npm i -S container-query-toolkit

Usage

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.

Readme

Keywords

none

Package Sidebar

Install

npm i container-query-toolkit

Weekly Downloads

19,432

Version

0.1.3

License

MIT

Last publish

Collaborators

  • daiweilu