aboutsummaryrefslogtreecommitdiff
path: root/catapult/third_party/polymer/components/paper-card/paper-card.html
diff options
context:
space:
mode:
Diffstat (limited to 'catapult/third_party/polymer/components/paper-card/paper-card.html')
-rwxr-xr-xcatapult/third_party/polymer/components/paper-card/paper-card.html226
1 files changed, 226 insertions, 0 deletions
diff --git a/catapult/third_party/polymer/components/paper-card/paper-card.html b/catapult/third_party/polymer/components/paper-card/paper-card.html
new file mode 100755
index 00000000..20c462c4
--- /dev/null
+++ b/catapult/third_party/polymer/components/paper-card/paper-card.html
@@ -0,0 +1,226 @@
+<!--
+@license
+Copyright (c) 2015 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
+-->
+
+<link rel="import" href="../polymer/polymer.html">
+<link rel="import" href="../iron-flex-layout/iron-flex-layout.html">
+<link rel="import" href="../iron-image/iron-image.html">
+<link rel="import" href="../paper-material/paper-material.html">
+<link rel="import" href="../paper-styles/default-theme.html">
+
+<!--
+Material design: [Cards](https://www.google.com/design/spec/components/cards.html)
+
+`paper-card` is a container with a drop shadow.
+
+Example:
+
+ <paper-card heading="Card Title">
+ <div class="card-content">Some content</div>
+ <div class="card-actions">
+ <paper-button>Some action</paper-button>
+ </div>
+ </paper-card>
+
+Example - top card image:
+
+ <paper-card heading="Card Title" image="/path/to/image.png">
+ ...
+ </paper-card>
+
+### Accessibility
+
+By default, the `aria-label` will be set to the value of the `heading` attribute.
+
+### Styling
+
+The following custom properties and mixins are available for styling:
+
+Custom property | Description | Default
+----------------|-------------|----------
+`--paper-card-background-color` | The background color of the card | `--primary-background-color`
+`--paper-card-header-color` | The color of the header text | `#000`
+`--paper-card-header` | Mixin applied to the card header section | `{}`
+`--paper-card-header-text` | Mixin applied to the title in the card header section | `{}`
+`--paper-card-header-image` | Mixin applied to the image in the card header section | `{}`
+`--paper-card-header-image-text` | Mixin applied to the text overlapping the image in the card header section | `{}`
+`--paper-card-content` | Mixin applied to the card content section| `{}`
+`--paper-card-actions` | Mixin applied to the card action section | `{}`
+`--paper-card` | Mixin applied to the card | `{}`
+
+@group Paper Elements
+@element paper-card
+@demo demo/index.html
+-->
+
+<dom-module id="paper-card">
+ <template>
+ <style include="paper-material">
+ :host {
+ display: inline-block;
+ position: relative;
+ box-sizing: border-box;
+ background-color: var(--paper-card-background-color, --primary-background-color);
+ border-radius: 2px;
+
+ @apply(--paper-font-common-base);
+ @apply(--paper-card);
+ }
+
+ /* IE 10 support for HTML5 hidden attr */
+ [hidden] {
+ display: none !important;
+ }
+
+ .header {
+ position: relative;
+ border-top-left-radius: inherit;
+ border-top-right-radius: inherit;
+ overflow: hidden;
+
+ @apply(--paper-card-header);
+ }
+
+ .header iron-image {
+ display: block;
+ width: 100%;
+ --iron-image-width: 100%;
+ pointer-events: none;
+
+ @apply(--paper-card-header-image);
+ }
+
+ .header .title-text {
+ padding: 16px;
+ font-size: 24px;
+ font-weight: 400;
+ color: var(--paper-card-header-color, #000);
+
+ @apply(--paper-card-header-text);
+ }
+
+ .header .title-text.over-image {
+ position: absolute;
+ bottom: 0px;
+
+ @apply(--paper-card-header-image-text);
+ }
+
+ :host ::content .card-content {
+ padding: 16px;
+ position:relative;
+
+ @apply(--paper-card-content);
+ }
+
+ :host ::content .card-actions {
+ border-top: 1px solid #e8e8e8;
+ padding: 5px 16px;
+ position:relative;
+
+ @apply(--paper-card-actions);
+ }
+ </style>
+
+ <div class="header">
+ <iron-image hidden$="[[!image]]" src="[[image]]" preload$="[[preloadImage]]" fade$="[[fadeImage]]"></iron-image>
+ <div hidden$="[[!heading]]" class$="[[_computeHeadingClass(image)]]">[[heading]]</div>
+ </div>
+
+ <content></content>
+ </template>
+
+ <script>
+ Polymer({
+ is: 'paper-card',
+
+ properties: {
+ /**
+ * The title of the card.
+ */
+ heading: {
+ type: String,
+ value: '',
+ observer: '_headingChanged'
+ },
+
+ /**
+ * The url of the title image of the card.
+ */
+ image: {
+ type: String,
+ value: ''
+ },
+
+ /**
+ * When `true`, any change to the image url property will cause the
+ * `placeholder` image to be shown until the image is fully rendered.
+ */
+ preloadImage: {
+ type: Boolean,
+ value: false
+ },
+
+ /**
+ * When `preloadImage` is true, setting `fadeImage` to true will cause the
+ * image to fade into place.
+ */
+ fadeImage: {
+ type: Boolean,
+ value: false
+ },
+
+ /**
+ * The z-depth of the card, from 0-5.
+ */
+ elevation: {
+ type: Number,
+ value: 1,
+ reflectToAttribute: true
+ },
+
+ /**
+ * Set this to true to animate the card shadow when setting a new
+ * `z` value.
+ */
+ animatedShadow: {
+ type: Boolean,
+ value: false
+ },
+
+ /**
+ * Read-only property used to pass down the `animatedShadow` value to
+ * the underlying paper-material style (since they have different names).
+ */
+ animated: {
+ type: Boolean,
+ reflectToAttribute: true,
+ readOnly: true,
+ computed: '_computeAnimated(animatedShadow)'
+ }
+ },
+
+ _headingChanged: function(heading) {
+ var label = this.getAttribute('aria-label');
+ this.setAttribute('aria-label', heading);
+ },
+
+ _computeHeadingClass: function(image) {
+ var cls = 'title-text';
+ if (image)
+ cls += ' over-image';
+ return cls;
+ },
+
+ _computeAnimated: function(animatedShadow) {
+ return animatedShadow;
+ }
+ });
+ </script>
+</dom-module>