An open API service indexing awesome lists of open source software.

https://github.com/flatanimals/vue-media-queries

Vue 2.0 media query helpers
https://github.com/flatanimals/vue-media-queries

bootstrap bootstrap4 bulma materializecss media-queries vue vue-mixin

Last synced: 9 months ago
JSON representation

Vue 2.0 media query helpers

Awesome Lists containing this project

README

          

# vue-media-queries

Vue.js v 2.1+ plugin for using mediaMatch based queries.

Thanks to [AStaroverov]( https://github.com/AStaroverov ) for creating [v-media-query](https://github.com/AStaroverov/v-media-query) which was the inspiration for this package.

*Note: As of v0.0.5, Output is now minified*

## Basic Usage

##### Setup

```javascript
import Vue from 'vue';
import {MediaQueries} from 'vue-media-queries';
import App from './App';

const mediaQueries = new MediaQueries();

Vue.use(mediaQueries);

new Vue({
el: '#app',
template: '',
components: { App },
mediaQueries: mediaQueries
});
```

##### Vue Component

```vue



Screen Size:

Desktop

Tablet and Below

```

## Using common CSS Framework responsive bands

Currently, supported framework are:
- [Bootstrap 4](https://getbootstrap.com).
- [Bulma](https://bulma.io).
- [Materialize](https://materializecss.com/).
- [Tailwind](https://tailwindcss.com).
- [Spectre](https://picturepan2.github.io/spectre/).

PRs are welcome.

##### Bulma

```javascript
import Vue from 'vue';
import {MediaQueries, CommonBands} from 'vue-media-queries';
import App from './App';

const mediaQueries = new MediaQueries({
bands: CommonBands.Bulma
});

Vue.use(mediaQueries);

new Vue({
el: '#app',
template: '',
components: { App },
mediaQueries: mediaQueries,
mixins: [CommonBands.Bulma.mixin]
});
```
##### Bootstrap 4

```javascript
import Vue from 'vue';
import {MediaQueries, CommonBands} from 'vue-media-queries';
import App from './App';

const mediaQueries = new MediaQueries({
bands: CommonBands.Bootstrap4
});

Vue.use(mediaQueries);

new Vue({
el: '#app',
template: '',
components: { App },
mediaQueries: mediaQueries,
mixins: [CommonBands.Bootstrap4.mixin]
});
```
##### Materialize

```javascript
import Vue from 'vue';
import {MediaQueries, CommonBands} from 'vue-media-queries';
import App from './App';

const mediaQueries = new MediaQueries({
bands: CommonBands.Materialize
});

Vue.use(mediaQueries);

new Vue({
el: '#app',
template: '',
components: { App },
mediaQueries: mediaQueries,
mixins: [CommonBands.Materialize.mixin]
});
```
##### Tailwind

```javascript
import Vue from 'vue';
import {MediaQueries, CommonBands} from 'vue-media-queries';
import App from './App';

const mediaQueries = new MediaQueries({
bands: CommonBands.Tailwind
});

Vue.use(mediaQueries);

new Vue({
el: '#app',
template: '',
components: { App },
mediaQueries: mediaQueries,
mixins: [CommonBands.Tailwind.mixin]
});
```
##### Spectre

```javascript
import Vue from 'vue';
import {MediaQueries, CommonBands} from 'vue-media-queries';
import App from './App';
const mediaQueries = new MediaQueries({
bands: CommonBands.Spectre
});
Vue.use(mediaQueries);
new Vue({
el: '#app',
template: '',
components: { App },
mediaQueries: mediaQueries,
mixins: [CommonBands.Spectre.mixin]
});
```