Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(95)

Unified Diff: third_party/polymer/v0_8/components/paper-toolbar/paper-toolbar.html

Issue 1162563004: Upgrade to 1.0 and switch clients to dom-repeat where needed. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix a layout import and remove the gzipped webanimation in reproduce.sh Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/polymer/v0_8/components/paper-toolbar/paper-toolbar.html
diff --git a/third_party/polymer/v0_8/components/paper-toolbar/paper-toolbar.html b/third_party/polymer/v0_8/components/paper-toolbar/paper-toolbar.html
index c474f4462dd5f8c0753339bab42d1dade70a1daf..1bee9c32bc661798407ae94bb1e711f3eabcde66 100644
--- a/third_party/polymer/v0_8/components/paper-toolbar/paper-toolbar.html
+++ b/third_party/polymer/v0_8/components/paper-toolbar/paper-toolbar.html
@@ -7,6 +7,9 @@ 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="../paper-styles/paper-styles.html">
+
<!--
`paper-toolbar` is a horizontal bar containing items that can be used for
label, navigation, search and actions. The items place inside the
@@ -17,9 +20,9 @@ sizing.
Example:
<paper-toolbar>
- <paper-icon-button icon="menu" on-tap="{{menuAction}}"></paper-icon-button>
- <div flex>Title</div>
- <paper-icon-button icon="more" on-tap="{{moreAction}}"></paper-icon-button>
+ <paper-icon-button icon="menu" on-tap="menuAction"></paper-icon-button>
+ <div title>Title</div>
+ <paper-icon-button icon="more" on-tap="moreAction"></paper-icon-button>
</paper-toolbar>
`paper-toolbar` has a standard height, but can made be taller by setting `tall`
@@ -41,30 +44,31 @@ When `tall`, items can pin to either the top (default), middle or bottom. Use
<paper-toolbar class="tall">
<paper-icon-button icon="menu"></paper-icon-button>
- <div class="middle">Middle Title</div>
- <div class="bottom">Bottom Title</div>
+ <div title class="middle">Middle Title</div>
+ <div title class="bottom">Bottom Title</div>
</paper-toolbar>
For `medium-tall` toolbar, the middle and bottom contents overlap and are
pinned to the bottom. But `middleJustify` and `bottomJustify` attributes are
still honored separately.
-@group Polymer Core Elements
-@element paper-toolbar
-@homepage github.io
--->
+### Styling
-<link rel="import" href="../polymer/polymer.html">
-<link rel="import" href="../paper-styles/paper-styles.html">
+The following custom properties and mixins are available for styling:
+
+Custom property | Description | Default
+----------------|-------------|----------
+`--paper-toolbar-background` | Toolbar background color | `--default-primary-color`
+`--paper-toolbar-color` | Toolbar foreground color | `--text-primary-color`
+`--paper-toolbar` | Mixin applied to the toolbar | `{}`
-<style is="x-style">
+### Accessibility
- * {
+`<paper-toolbar>` has `role="toolbar"` by default. Any elements with the `title` attribute will
+be used as the label of the toolbar via `aria-labelledby`.
- --paper-toolbar-background: var(--default-primary-color);
- --paper-toolbar-color: var(--text-primary-color);
- }
-</style>
+@demo demo/index.html
+-->
<dom-module id="paper-toolbar">
@@ -79,11 +83,10 @@ still honored separately.
/* size */
height: 64px;
- background: var(--paper-toolbar-background);
- color: var(--paper-toolbar-color);
- mixin(--paper-font-title);
+ background: var(--paper-toolbar-background, --default-primary-color);
+ color: var(--paper-toolbar-color, --text-primary-color);
- mixin(--paper-toolbar);
+ @apply(--paper-toolbar);
}
:host(.animate) {
@@ -125,16 +128,21 @@ still honored separately.
.toolbar-tools {
height: 56px;
- padding: 0;
}
}
+ #topBar {
+ position: relative;
+ z-index: 1;
+ }
+
/* middle bar */
#middleBar {
position: absolute;
top: 0;
right: 0;
left: 0;
+ z-index: 2;
}
:host(.tall) #middleBar,
@@ -149,6 +157,7 @@ still honored separately.
right: 0;
bottom: 0;
left: 0;
+ z-index: 1;
}
/*
@@ -162,20 +171,62 @@ still honored separately.
pointer-events: auto;
}
+ .toolbar-tools > ::content [title] {
+ @apply(--paper-font-title);
+ @apply(--layout-flex);
+
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+
+ /*
+ * Polymer/polymer/issues/1525
+ * --paper-font-title defines a `font-weight`
+ * let's override its value, but we need `important!`
+ * because all mixins are resolved in rule's selector that has higher precedence
+ * than the current selector.
+ */
+ font-weight: 400 !important;
+ }
+
+ /**
+ * TODO: Refactor these selectors
+ * Work in progress.
+ */
+ .toolbar-tools > ::content paper-icon-button[icon=menu] {
+ margin-left: -8px;
+ margin-right: 24px;
+ }
+
+ .toolbar-tools > ::content paper-icon-button + paper-icon-button {
+ margin-right: -8px;
+ }
+
+ .toolbar-tools > ::content > [title],
+ .toolbar-tools > ::content[select=".middle"] > [title],
+ .toolbar-tools > ::content[select=".bottom"] > [title] {
+ margin-left: 56px;
+ }
+
+ .toolbar-tools > ::content > paper-icon-button + [title],
+ .toolbar-tools > ::content[select=".middle"] paper-icon-button + [title],
+ .toolbar-tools > ::content[select=".bottom"] paper-icon-button + [title] {
+ margin-left: 0;
+ }
</style>
<template>
- <div id="bottomBar" class$="[[_computeBarClassName(bottomJustify)]]">
- <content select=".bottom"></content>
+ <div id="topBar" class$="[[_computeBarClassName(justify)]]">
+ <content select=":not(.middle):not(.bottom)"></content>
</div>
<div id="middleBar" class$="[[_computeBarClassName(middleJustify)]]">
<content select=".middle"></content>
</div>
- <div id="topBar" class$="[[_computeBarClassName(justify)]]">
- <content></content>
+ <div id="bottomBar" class$="[[_computeBarClassName(bottomJustify)]]">
+ <content select=".bottom"></content>
</div>
</template>
@@ -203,7 +254,9 @@ still honored separately.
is: 'paper-toolbar',
- enableCustomStyleProperties: true,
+ hostAttributes: {
+ 'role': 'toolbar'
+ },
properties: {
@@ -250,6 +303,50 @@ still honored separately.
},
+ attached: function() {
+ this._observer = this._observe(this);
+ this._updateAriaLabelledBy();
+ },
+
+ detached: function() {
+ if (this._observer) {
+ this._observer.disconnect();
+ }
+ },
+
+ _observe: function(node) {
+ var observer = new MutationObserver(function() {
+ this._updateAriaLabelledBy();
+ }.bind(this));
+ observer.observe(node, {
+ childList: true,
+ subtree: true
+ });
+ return observer;
+ },
+
+ _updateAriaLabelledBy: function() {
+ var labelledBy = [];
+ var contents = Polymer.dom(this.root).querySelectorAll('content');
+ for (var content, index = 0; content = contents[index]; index++) {
+ var nodes = Polymer.dom(content).getDistributedNodes();
+ for (var node, jndex = 0; node = nodes[jndex]; jndex++) {
+ if (node.hasAttribute && node.hasAttribute('title')) {
+ if (node.id) {
+ labelledBy.push(node.id);
+ } else {
+ var id = 'paper-toolbar-label-' + Math.floor(Math.random() * 10000);
+ node.id = id;
+ labelledBy.push(id);
+ }
+ }
+ }
+ }
+ if (labelledBy.length > 0) {
+ this.setAttribute('aria-labelledby', labelledBy.join(' '));
+ }
+ },
+
_computeBarClassName: function(barJustify) {
var classObj = {
center: true,

Powered by Google App Engine
This is Rietveld 408576698