forked from googlearchive/paper-shadow
-
Notifications
You must be signed in to change notification settings - Fork 0
/
paper-shadow.html
86 lines (67 loc) · 2.26 KB
/
paper-shadow.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
<!--
Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
-->
<!--
`paper-shadow` is a container that renders two shadows on top of each other to
create the effect of a lifted piece of paper.
Example:
<paper-shadow z="1">
... card content ...
</paper-shadow>
@group Paper Elements
@class paper-shadow
-->
<link href="../polymer/polymer.html" rel="import">
<link href="paper-shadow.css" rel="stylesheet" shim-shadowdom>
<polymer-element name="paper-shadow">
<template>
<div id="shadow-bottom" fit animated?="[[animated]]" class="paper-shadow-bottom-z-[[z]]"></div>
<div id="shadow-top" fit animated?="[[animated]]" class="paper-shadow-top-z-[[z]]"></div>
<content></content>
</template>
<script>
Polymer({
publish: {
/**
* The z-depth of this shadow, from 0-5. Setting this property
* after element creation has no effect. Use `setZ()` instead.
*
* @attribute z
* @type number
* @default 1
*/
z: 1,
/**
* Set this to true to animate the shadow when setting a new
* `z` value.
*
* @attribute animated
* @type boolean
* @default false
*/
animated: false
},
/**
* Set the z-depth of the shadow. This should be used after element
* creation instead of setting the z property directly.
*
* @method setZ
* @param {Number} newZ
*/
setZ: function(newZ) {
if (this.z !== newZ) {
this.$['shadow-bottom'].classList.remove('paper-shadow-bottom-z-' + this.z);
this.$['shadow-bottom'].classList.add('paper-shadow-bottom-z-' + newZ);
this.$['shadow-top'].classList.remove('paper-shadow-top-z-' + this.z);
this.$['shadow-top'].classList.add('paper-shadow-top-z-' + newZ);
this.z = newZ;
}
}
});
</script>
</polymer-element>