View Demo
The demo is empowered by
vue-metro-tile
&vue-grid-layout
Vue Metro Tile is a Vue component for building Windows 10 like metro layout in modern browser. The component currently got the following features:
- Customized tile content
- 3D tile rotation
- Glare effect when hovering or clicking
- Tilt effect when mouse holds down
npm install vue-metro-tile --save
or
yarn add vue-metro-tile
support both cjs and umd
import MetroTile from 'vue-metro-tile';
or
<script src="/path/to/vue-metro-tile.umd.min.js"></script>
A blue metro tile with simple texts on 4 faces
<metro-tile
@click="handleClick($event)"
faceStyle="{'background-color': 'blue'}"
>
<div slot="front">
front
</div>
<div slot="back">
back
</div>
<div slot="top">
top
</div>
<div slot="bottom">
bottom
</div>
</metro-tile>
// style object for all 6 faces
// this prop has a lower priority than specific face style
faceStyle?: object;
// style object for front face
frontStyle?: object;
// style object for back face
backStyle?: object;
// style object for left face
leftStyle?: object;
// style object for right face
rightStyle?: object;
// style object for top face
topStyle?: object;
// style object for bottom face
bottomStyle?: object;
// the width of square prism in px
width?: number = 200;
// the height of square prism in px
height?: number = 200;
// the rotation along X axis in degree
rotateX?: number = 0;
// the perspective of square prism container in px
perspective?: number = 750;
// the max tilt angle in degree along the X axis
maxTiltX?: number = 20;
// the max tilt angle in degree along the Y axis
maxTiltY?: number = 10;
// the initial glare size when clicking
clickGlareSize?: number = 90;
// the glare opacity when clicking
clickGlareOpacity?: number = 0.15;
// the glare opacity when hovering
hoverGlareOpacity?: number = 0.3;
front
back
left
right
top
bottom
click
touchmove
Edge |
Firefox |
Chrome |
Safari |
Opera |
---|---|---|---|---|
latest | latest | latest | latest | latest |
Some older versions may be supported as well
MIT