Media Queries topic

Media Queries are a way to target browsers by certain characteristics, features, and user preferences, then apply styles, or run other code based on those things. They are a key part of responsive web design, as they allow you to create different layouts depending on the size of the viewport, but they can also be used to detect other things about the environment your site is running on, for example whether the user is using a touchscreen rather than a mouse. Media queries are used for the following:

  • conditionally apply styles with the CSS @media and @import at-rules
  • target specific media for the <style>, <link>, <source>, and other HTML elements with the media= attribute
  • test and monitor media states using the Window.matchMedia() and EventTarget.addEventListener() methods

A media query is composed of an optional media type and any number of media feature expressions, which may optionally be combined in various ways using logical operators.

  • Media types define the broad category of device for which the media query applies. The type is optional except when using the not or only logical operators.
    • all: Suitable for all devices.
    • print: Intended for paged material and documents viewed on a screen in print preview mode.
    • screen: Intended primarily for screens.
  • Media features describe a specific characteristic of the user agent, output device, or environment. Media Queries Level 4 groups 18 media features into 5 categories.
    • Viewport/Page Characteristics
    • Display Quality
    • Color
    • Interaction
    • Video-prefixed: The spec references user agents, including TVs, that render video and graphics in two separate planes that each have their own characteristics. (upcoming Media Queries Level 5)
  • Logical operators can be used to compose a complex media query: not, and, and only. You can also combine multiple media queries into a single rule by separating them with commas.

List Media Queries repositories

svelte-media-query

52
Stars
4
Forks
Watchers

CSS media queries in Svelte

react-breakpoints

72
Stars
2
Forks
Watchers

Respond to changes in a DOM element's size. With React Breakpoints, element queries are no longer "web design's unicorn" 🦄

styled-media-helper

76
Stars
2
Forks
Watchers

:nail_care: Helps manage media queries with styled components

vue-component-media-queries

74
Stars
1
Forks
Watchers

MatchMedia component library for Vue

postcss-inline-media

48
Stars
4
Forks
Watchers

Media queries shortcut, built on PostCSS, example: font-size: 20px @1200 18px @480 16px;

nuxt-viewport

108
Stars
7
Forks
Watchers

🌈 Define custom viewports for your Nuxt project

dhalsim-js

16
Stars
0
Forks
Watchers

Dhalsim is a media query for javascript

fine-mq

22
Stars
4
Forks
Watchers

A fine API to manage media queries in JS with ease. It has first-class integration with VueJS.

jest-matchmedia-mock

43
Stars
6
Forks
Watchers

🃏 Mock for fully testing any media queries with Jest