@veams/plugin-media-query-handler
TypeScript icon, indicating that this package has built-in type declarations

1.1.0 • Public • Published

Veams Media Query Handler Plugin (@veams/plugin-media-query-handler)

The Media Query Handler Plugin provides to you the possibility to get the current media query name from your css.

TypeScript is supported.

Installation

NPM

npm install @veams/plugin-media-query-handler --save

Yarn

yarn add @veams/plugin-media-query-handler

Requirements

It makes sense to have the Veams Vent Plugin in place in order to work with that plugin. Otherwise you can not subscribe to a change of the media query handler and need to add this functionality manually.

Take a look at @veams/plugin-vent.

Usage

import Veams from '@veams/core';
import VeamsMediaQueryHandler from '@veams/plugin-media-query-handler';

// Intialize core of Veams
Veams.onInitialize(() => {
   	// Add plugins to the Veams system
	Veams.use(VeamsMediaQueryHandler, {
        delay: 200
    });
});

Options

You can pass a second parameter with an options object. Available options are:

  • mediaQueryProp {String} ['font-family'] - Define a media query property which you have added to the head element.
  • delay {Number} [300] - Define the delay value for the throttle handling which is responsible to trigger an event and set the currentMedia value.

SCSS

If you want to use the media query support then you can choose from 3 different approaches:

1. Add the following lines to a custom scss file and modify it like you want:

head {
	font-family: desktop;

	@include bp(1024px) {
		font-family: tablet-l;
	}

	@include bp(768px) {
		font-family: tablet-p;
	}

	@include bp(657px) {
		font-family: mobile-l;
	}

	@include bp(480px) {
		font-family: mobile-p;
	}

	@include bp(360px) {
		font-family: mobile-s;
	}
}

2. Automate it like that:

head {

	@if ($min-width) {
		font-family: unquote(nth(nth($breakpoints, 1), 1));
	} @else {
		font-family: unquote(nth(nth($breakpoints, length($breakpoints)), 1));
	}

	@each $breakpoint in $breakpoints {
		$name: nth($breakpoint, 1);
		$size: nth($breakpoint, 2);

		@include bp($size) {
			font-family: unquote($name);
		}
	}
}

Be sure you have the Veams Core imported for variables, maps and includes.

3. Import the file from that library:

@import "~@veams/plugin-media-query-handler/scss/media-query-handler";

Api

With that in place you can access the current media query breakpoint in your JavaScipt:

console.log(Veams.currentMedia);

Readme

Keywords

Package Sidebar

Install

npm i @veams/plugin-media-query-handler

Homepage

veams.org/

Weekly Downloads

46

Version

1.1.0

License

MIT

Unpacked Size

12 kB

Total Files

10

Last publish

Collaborators

  • andy-gutsche
  • sebastian-fitzner