All Projects → pearofducks → svelte-match-media

pearofducks / svelte-match-media

Licence: MIT license
a matchMedia plugin for svelte 3

Programming Languages

javascript
184084 projects - #8 most used programming language
Svelte
593 projects
CSS
56736 projects
HTML
75241 projects

Projects that are alternatives of or similar to svelte-match-media

plate-app
🍛 What's on your Plate?
Stars: ✭ 49 (+28.95%)
Mutual labels:  svelte, svelte-v3
svelte-progressbar
A multiseries, SVG progressbar component made with Svelte
Stars: ✭ 85 (+123.68%)
Mutual labels:  svelte, svelte-v3
svelte-typescript
Typescript monorepo for Svelte v3 (preprocess, template, types)
Stars: ✭ 214 (+463.16%)
Mutual labels:  svelte, svelte-v3
svelte-meteor-data
Reactively track Meteor data inside Svelte components
Stars: ✭ 14 (-63.16%)
Mutual labels:  svelte, svelte-v3
svelte-template-hot
Copy of official Svelte template with added HMR support
Stars: ✭ 61 (+60.53%)
Mutual labels:  svelte, svelte-v3
rollup-plugin-svelte-hot
Fork of official rollup-plugin-svelte with added HMR support (for both Nollup or Rollup)
Stars: ✭ 49 (+28.95%)
Mutual labels:  svelte, svelte-v3
ui-svelte
A component library for Svelte
Stars: ✭ 18 (-52.63%)
Mutual labels:  svelte, svelte-v3
svelte-multistep-form
Svelte MultiStep Form like, this component is still in beta stage
Stars: ✭ 29 (-23.68%)
Mutual labels:  svelte, svelte-v3
svelte-color-picker
A color picker component for svelte
Stars: ✭ 96 (+152.63%)
Mutual labels:  svelte, svelte-v3
BeatHub
Small, simple, and fast custom beatmap browser & downloader built with Svelte
Stars: ✭ 13 (-65.79%)
Mutual labels:  svelte, svelte-v3
svelte-hash-router
tienpv222.github.io/svelte-hash-router
Stars: ✭ 37 (-2.63%)
Mutual labels:  svelte, svelte-v3
s-date-range-picker
📅 A date range picker built with Svelte
Stars: ✭ 13 (-65.79%)
Mutual labels:  svelte, svelte-v3
svelte-cordova-template
A degit template for a mobile svelte app using cordova and svelte-cordova
Stars: ✭ 25 (-34.21%)
Mutual labels:  svelte, svelte-v3
svelte-toy
A toy for svelte data stores
Stars: ✭ 73 (+92.11%)
Mutual labels:  svelte
wordpress-svelte
Frontend writen on svelt
Stars: ✭ 17 (-55.26%)
Mutual labels:  svelte
svelte-tailwind-snowpack
TailwindCSS with Svelte and Snowpack v3
Stars: ✭ 100 (+163.16%)
Mutual labels:  svelte
svelte-simple-icons
📦 This package provides the Simple Icons packaged as a set of Svelte components.
Stars: ✭ 27 (-28.95%)
Mutual labels:  svelte
templates
tsParticles website templates collection
Stars: ✭ 42 (+10.53%)
Mutual labels:  svelte
color-color
Website to generate color palettes in HSLuv color space
Stars: ✭ 17 (-55.26%)
Mutual labels:  svelte
svelte-cordova-boilerplate
📱 Create a mobile app with this friendly Svelte boilerplate for apache cordova. Made easy your android app and ios app
Stars: ✭ 23 (-39.47%)
Mutual labels:  svelte

svelte-match-media

a matchMedia plugin for svelte 3

install

npm install --save-dev svelte-match-media
yarn add --dev svelte-match-media

use

First, in your main.js, set up your media queries

import { setup } from 'svelte-match-media'

setup({
  desktop: 'screen and (min-width: 769px)',
  mobile: 'screen and (max-width: 768px)'
})

// or if those are the exact media queries you want, just call setup()

Then use your media queries in your svelte components

<script>
import { media } from 'svelte-match-media'
</script>

<main class:foo={$media.mobile}>
  {#if $media.desktop}
    <nav />
  {/if}
</main>

api

queries (argument)

All queries specified below should be an object of the form { mediaName: mediaQuery }

setup(queries)

This sets up a Svelte store on the media export with queries mapped to their window.matchMedia result

media

The store initialized by setup above

createMedia(queries)

If you'd like to compartmentalize your media queries, or for whatever reason create multiple stores, this will create a standalone media object

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].