A Vue plugin helping you build CSS grid like layout system with the support of old browser like IE9.
vue-block can provide you:
- CSS grid like layout system.
- Really easy to use API, especially for new Vue beginner.
- Support IE9+ and other modern browser which support CSS calc.
- Functional component, which is stateless and instanceless.
Install with npm:
npm install --save-dev vue-block
Basicly vue-block
is a Vue plugin. Also you can use it as a Vue component.
Plugin Usage:
import 'vue-block/dist/block.css';
import block from 'vue-block';
import Vue from 'vue';
Vue.use(block);
new Vue({
el: '#app',
template: `<block>
<div slot="left"><div>
<div slot="right"><div>
</block>`
});
Component Usage:
import 'vue-block/dist/block.css';
import block from 'vue-block';
import Vue from 'vue';
new Vue({
el: '#app',
template: `<block>
<div slot="left"><div>
<div slot="right"><div>
</block>`,
components: { block }
});
vue-block
's API is provide by all kinds of vue slot. It provide some default slot to handle the basic layout function.
For Example:
<!-- left and right -->
<block>
<div slot="left">left<div>
<div slot="right">right<div>
</block>
<!-- horizontal center -->
<block>
<div slot="center">center 1<div>
<div slot="center">center 2<div>
</block>
<!-- middle of the block, both vertical and horizontal -->
<block>
<div slot="middle">middle 1<div>
<div slot="middle">middle 2<div>
</block>
And most excited thing is vue-block
support css grid like layout system.
For Example:
<block
cols="100px 2fr 1fr"
rows="100px 200px 100px"
pattern="header header right, side main right, side main right">
<div slot="header"></div>
<div slot="side"></div>
<div slot="main"></div>
<div slot="right"></div>
</block>
# install dependencies
npm install
# serve with hot reload at localhost:8080
npm run dev
# build for production with minification
npm run build
# build for doc
npm run doc