Home | History | Annotate | Download | only in paper-shadow
      1 <!doctype html>
      2 <!--
      3 Copyright 2013 The Polymer Authors. All rights reserved.
      4 Use of this source code is governed by a BSD-style
      5 license that can be found in the LICENSE file.
      6 -->
      7 <html>
      8 <head>
      9   <title>paper-shadow</title>
     10   <meta charset="utf-8">
     11   <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
     12   <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
     13   <script src="../platform/platform.js"></script>
     14   <link href="paper-shadow.html" rel="import">
     15   <style>
     16     body {
     17       font-family: RobotoDraft, 'Helvetica Neue', Helvetica, Arial;
     18       transform: translateZ(0);
     19       -webkit-transform: translateZ(0);
     20       transform: translateZ(0);
     21       padding: 16px;
     22       user-select: none;
     23       -webkit-user-select: none;
     24     }
     25 
     26     section {
     27       display: flex;
     28       display: -webkit-flex;
     29       width: 80%;
     30       margin: 16px;
     31     }
     32 
     33     aside {
     34       flex: 1 1 auto;
     35       -webkit-flex: 1 1 auto;
     36       padding: 48px 16px;
     37       user-select: text;
     38       -webkit-user-select: text;
     39     }
     40 
     41     .card {
     42       background: white;
     43       width: 300px;
     44       height: 300px;
     45       position: relative;
     46       margin: 16px;
     47       border-radius: 2px;
     48     }
     49 
     50     .card-inner {
     51       position: absolute;
     52       left: 0;
     53       top: 0;
     54       right: 0;
     55       bottom: 0;
     56       border-radius: 2px;
     57     }
     58 
     59   </style>
     60 </head>
     61 <body unresolved>
     62 
     63   <paper-shadow></paper-shadow>
     64 
     65   <section>
     66     <div>
     67       <div class="card">
     68       </div>
     69     </div>
     70     <aside>
     71       z-depth = 0
     72     </aside>
     73   </section>
     74 
     75   <section>
     76     <!-- Example of using paper-shadow to add a shadow to an element -->
     77     <div>
     78       <div class="card">
     79         <paper-shadow z="1"></paper-shadow>
     80       </div>
     81     </div>
     82     <aside>
     83       z-depth = 1
     84     </aside>
     85   </section>
     86 
     87   <section>
     88     <!-- Example of using paper-shadow as part of a Polymer element -->
     89     <polymer-element name="x-card" attributes="z">
     90       <template>
     91         <style>
     92           :host {
     93             display: block;
     94           }
     95         </style>
     96         <paper-shadow z="{{z}}"></paper-shadow>
     97       </template>
     98       <script>
     99         Polymer('x-card', {
    100           publish: {
    101             z: {value: 1, reflect: true}
    102           }
    103         });
    104       </script>
    105     </polymer-element>
    106     <div>
    107       <x-card class="card" z="2"></x-card>
    108     </div>
    109     <aside>
    110       z-depth = 2
    111     </aside>
    112   </section>
    113 
    114   <section>
    115     <!-- Example of using paper-shadow by adding a class directly -->
    116     <div>
    117       <div class="card paper-shadow-top-z-3">
    118         <div class="card-inner paper-shadow-bottom-z-3">
    119         </div>
    120       </div>
    121     </div>
    122     <aside>
    123       z-depth = 3
    124     </aside>
    125   </section>
    126 
    127   <section>
    128     <div>
    129       <div class="card paper-shadow-top-z-4">
    130         <div class="card-inner paper-shadow-bottom-z-4">
    131         </div>
    132       </div>
    133     </div>
    134     <aside>
    135       z-depth = 4
    136     </aside>
    137   </section>
    138 
    139   <section>
    140     <div>
    141       <div class="card paper-shadow-top-z-5">
    142         <div class="card-inner paper-shadow-bottom-z-5">
    143         </div>
    144       </div>
    145     </div>
    146     <aside>
    147       z-depth = 5
    148     </aside>
    149   </section>
    150 
    151   <br>
    152   <br>
    153   <br>
    154   <br>
    155 
    156   <polymer-element name="x-shadow" attributes="z" on-tap="{{tapAction}}">
    157     <template>
    158       <style>
    159         :host,
    160         .paper-shadow-bottom {
    161           display: block;
    162           background: white;
    163           color: #ccc;
    164         }
    165 
    166         :host(.fab),
    167         :host(.fab) .paper-shadow-bottom {
    168           width: 48px;
    169           height: 48px;
    170           border-radius: 24px;
    171         }
    172       </style>
    173       <paper-shadow z="{{z}}" animated></paper-shadow>
    174     </template>
    175     <script>
    176       Polymer('x-shadow', {
    177         publish: {
    178           z: {value: 0, reflect: true}
    179         },
    180         up: true,
    181         zChanged: function() {
    182           this.fire('shadow-z-changed');
    183         },
    184         tapAction: function() {
    185           if (this.up) {
    186             if (this.z < 5) {
    187               this.z += 1;
    188             } else {
    189               this.z -= 1;
    190               this.up = false;
    191             }
    192           } else {
    193             if (this.z > 0) {
    194               this.z -= 1;
    195             } else {
    196               this.z += 1;
    197               this.up = true;
    198             }
    199           }
    200         }
    201       });
    202     </script>
    203   </polymer-element>
    204 
    205   <section>
    206     <div>
    207       <x-shadow id="card" z="0" class="card"></x-shadow>
    208     </div>
    209     <aside>
    210       Tap to lift/drop the card.
    211       <br>
    212       Current z-index = <span id="card-z">0</span>
    213     </aside>
    214     <script>
    215       document.addEventListener('polymer-ready', function() {
    216         var fab = document.getElementById('card');
    217         fab.addEventListener('shadow-z-changed', function() {
    218           document.getElementById('card-z').textContent = fab.z;
    219         });
    220       });
    221     </script>
    222   </section>
    223 
    224   <section>
    225     <div>
    226       <style>
    227         x-shadow.fab {
    228           margin: 48px 142px;
    229         }
    230       </style>
    231       <x-shadow id="fab" z="0" class="fab"></x-shadow>
    232     </div>
    233     <aside>
    234       Tap to lift/drop the button.
    235       <br>
    236       Current z-index = <span id="fab-z">0</span>
    237     </aside>
    238     <script>
    239       document.addEventListener('polymer-ready', function() {
    240         var fab = document.getElementById('fab');
    241         fab.addEventListener('shadow-z-changed', function() {
    242           document.getElementById('fab-z').textContent = fab.z;
    243         });
    244       });
    245     </script>
    246   </section>
    247 
    248 </body>
    249 </html>
    250