blob: 5b8ba4fe5ab45a4aa66badd724c27a251f0f506d [file] [log] [blame]
<link rel="import" href="../../html/polymer.html">
<link rel="import" href="../cr_icons_css.html">
<link rel="import" href="../cr_toolbar/cr_toolbar_search_field.html">
<link rel="import" href="../hidden_style_css.html">
<link rel="import" href="../shared_vars_css.html">
<link rel="import" href="chrome://resources/polymer/v1_0/iron-media-query/iron-media-query.html">
<link rel="import" href="chrome://resources/polymer/v1_0/paper-icon-button/paper-icon-button-light.html">
<dom-module id="cr-toolbar">
<template>
<style include="cr-icons cr-hidden-style">
:host {
--cr-toolbar-height: 56px;
--paper-icon-button-ink-color: white;
align-items: center;
/* TODO(dbeam): default background-color instead of external styling. */
color: #fff;
display: flex;
height: var(--cr-toolbar-height);
}
:host-context([dark]) {
color: var(--cr-secondary-text-color);
}
h1 {
flex: 1;
font-size: 123%;
font-weight: 400;
letter-spacing: .25px;
line-height: normal;
margin-inline-start: 6px;
padding-inline-end: 12px;
}
:host-context([dark]) :-webkit-any(h1, #menuButtonContainer) {
color: var(--cr-primary-text-color);
}
#leftContent {
/* margin-start here must match margin-end on #rightContent. */
margin-inline-start: 12px;
position: relative;
transition: opacity 100ms;
}
#leftSpacer {
align-items: center;
display: flex;
margin-inline-start: 6px;
}
#menuButtonContainer {
height: 32px;
min-width: 32px;
padding: 6px 0;
width: 32px;
}
#centeredContent {
display: flex;
flex: 1 1 0;
justify-content: center;
}
#rightContent {
margin-inline-end: 12px;
}
:host([narrow]) #centeredContent {
justify-content: flex-end;
}
:host([has-overlay]) {
transition: visibility var(--cr-toolbar-overlay-animation-duration);
visibility: hidden;
}
:host([narrow][showing-search_]) #leftContent {
opacity: 0;
position: absolute;
}
:host(:not([narrow])) #leftContent {
flex: 1 1 var(--cr-toolbar-field-margin, 0);
}
:host(:not([narrow])) #rightContent {
flex: 1 1 0;
text-align: end;
}
#menuPromo {
align-items: center;
background: #616161;
border-radius: 2px;
color: white;
display: flex;
font-size: 92.3%;
font-weight: 500;
opacity: 0;
padding-bottom: 6px;
padding-inline-end: 12px;
padding-inline-start: 8px;
padding-top: 6px;
position: absolute;
top: var(--cr-toolbar-height);
white-space: nowrap;
z-index: 2;
}
#menuPromo::before {
background: inherit;
/* Up arrow. 105% in Y coordinates fixes glitch at 110/125% zoom. */
clip-path: polygon(0 105%, 100% 105%, 50% 0);
content: '';
display: block;
height: 6px;
left: 10px;
position: absolute;
top: -6px;
width: 12px;
}
:host-context([dir=rtl]) #menuPromo::before {
left: auto;
right: 10px;
}
#closePromo {
-webkit-appearance: none;
background: none;
border: none;
color: inherit;
font-size: 20px; /* Shouldn't change if default font-size changes. */
line-height: 20px;
margin-inline-start: 12px;
padding: 0;
width: 20px;
}
</style>
<div id="leftContent">
<div id="leftSpacer">
<!-- Note: showing #menuPromo relies on this dom-if being [restamp]. -->
<template is="dom-if" if="[[showMenu]]" restamp>
<paper-icon-button-light id="menuButtonContainer"
class="icon-toolbar-menu no-overlap">
<button id="menuButton"
on-tap="onMenuTap_"
title="[[titleIfNotShowMenuPromo_(menuLabel, showMenuPromo)]]"
aria-label$="[[menuLabel]]">
</button>
</paper-icon-button-light>
<template is="dom-if" if="[[showMenuPromo]]">
<div id="menuPromo" role="tooltip">
[[menuPromo]]
<button id="closePromo" on-tap="onClosePromoTap_"
aria-label$="[[closeMenuPromo]]">&#x2715;</button>
</paper-tooltip>
</template>
</template>
<h1>[[pageName]]</h1>
</div>
</div>
<div id="centeredContent" hidden$="[[!showSearch]]">
<cr-toolbar-search-field id="search" narrow="[[narrow]]"
label="[[searchPrompt]]" clear-label="[[clearLabel]]"
spinner-active="[[spinnerActive]]"
showing-search="{{showingSearch_}}">
</cr-toolbar-search-field>
<iron-media-query query="(max-width: [[narrowThreshold]]px)"
query-matches="{{narrow}}">
</iron-media-query>
</div>
<div id="rightContent">
<slot></slot>
</div>
</template>
<script src="cr_toolbar.js"></script>
</dom-module>