toolbar button updates

This commit is contained in:
Adam Bradley
2015-12-07 11:18:00 -06:00
parent 3f79316d81
commit 8b693ce836
45 changed files with 329 additions and 310 deletions

View File

@ -2,16 +2,16 @@
<ion-title>Buttons</ion-title> <ion-title>Buttons</ion-title>
<ion-nav-items primary> <ion-buttons start>
<button> <button>
<icon contact></icon> <icon contact></icon>
</button> </button>
</ion-nav-items> </ion-buttons>
<ion-nav-items secondary> <ion-buttons end>
<button> <button>
<icon search></icon> <icon search></icon>
</button> </button>
</ion-nav-items> </ion-buttons>
</ion-navbar> </ion-navbar>

View File

@ -1,8 +1,8 @@
<ion-navbar *navbar hide-back-button class="android-attr"> <ion-navbar *navbar hide-back-button class="android-attr">
<a menu-toggle="leftMenu"> <button menu-toggle="leftMenu">
<icon menu></icon> <icon menu></icon>
</a> </button>
<ion-title> <ion-title>
Events Events

View File

@ -1,8 +1,8 @@
<ion-navbar *navbar hide-back-button class="android-attr"> <ion-navbar *navbar hide-back-button class="android-attr">
<a menu-toggle="leftMenu"> <button menu-toggle="leftMenu">
<icon menu></icon> <icon menu></icon>
</a> </button>
<ion-title> <ion-title>
Friends Friends

View File

@ -1,8 +1,8 @@
<ion-navbar *navbar hide-back-button class="android-attr"> <ion-navbar *navbar hide-back-button class="android-attr">
<a menu-toggle="leftMenu"> <button menu-toggle="leftMenu">
<icon menu></icon> <icon menu></icon>
</a> </button>
<ion-title> <ion-title>
Menus Menus

View File

@ -1,8 +1,8 @@
<ion-navbar *navbar hide-back-button class="android-attr"> <ion-navbar *navbar hide-back-button class="android-attr">
<a menu-toggle="leftMenu"> <button menu-toggle="leftMenu">
<icon menu></icon> <icon menu></icon>
</a> </button>
<ion-title> <ion-title>
Places Places

View File

@ -2,14 +2,14 @@
<ion-title> <ion-title>
Description Description
</ion-title> </ion-title>
<ion-nav-items primary> <ion-buttons start>
<button (click)="close()" *ng-if=" currentPlatform === 'ios' "> <button (click)="close()" *ng-if=" currentPlatform === 'ios' ">
Cancel Cancel
</button> </button>
<button (click)="close()" *ng-if=" currentPlatform === 'android' "> <button (click)="close()" *ng-if=" currentPlatform === 'android' ">
<icon close></icon> <icon close></icon>
</button> </button>
</ion-nav-items> </ion-buttons>
</ion-toolbar> </ion-toolbar>

View File

@ -5,13 +5,13 @@ import {App, ActionSheet, IonicApp, IonicView, Register} from 'ionic/ionic';
@IonicView({ @IonicView({
template: '<ion-navbar *navbar primary>' + template: '<ion-navbar *navbar primary>' +
'<ion-title>Heading</ion-title>' + '<ion-title>Heading</ion-title>' +
'<a menu-toggle="menu">' + '<button menu-toggle="menu">' +
'<icon menu></icon>' + '<icon menu></icon>' +
'</a>' + '</button>' +
'<ion-nav-items secondary>' + '<ion-buttons end>' +
'<button><ion-icon md="ion-android-search" ios="ion-ios-search-strong"></i></button>' + '<button><ion-icon md="ion-android-search" ios="ion-ios-search-strong"></i></button>' +
'<button (click)="showMoreMenu()"><i class="icon ion-android-more-vertical"></i></button>' + '<button (click)="showMoreMenu()"><i class="icon ion-android-more-vertical"></i></button>' +
'</ion-nav-items>' + '</ion-buttons>' +
'</ion-navbar>' + '</ion-navbar>' +
'<ion-content>' + '<ion-content>' +
` `

View File

@ -1,9 +1,9 @@
<ion-navbar *navbar> <ion-navbar *navbar>
<a menu-toggle> <button menu-toggle>
<icon menu></icon> <icon menu></icon>
</a> </button>
<ion-title> <ion-title>
Menu Menu

View File

@ -1,9 +1,9 @@
<ion-navbar *navbar> <ion-navbar *navbar>
<a menu-toggle> <button menu-toggle>
<icon menu></icon> <icon menu></icon>
</a> </button>
<ion-title> <ion-title>
Menu Menu

View File

@ -73,7 +73,7 @@ export class ContactModal {
@Page({ @Page({
template: ` template: `
<ion-navbar *navbar><ion-title>First Page Header</ion-title><ion-nav-items primary><button (click)="closeModal()">Close</button></ion-nav-items></ion-navbar> <ion-navbar *navbar><ion-title>First Page Header</ion-title><ion-buttons start><button (click)="closeModal()">Close</button></ion-buttons></ion-navbar>
<ion-content padding> <ion-content padding>
<p> <p>
<button (click)="push()">Push (Go to 2nd)</button> <button (click)="push()">Push (Go to 2nd)</button>

View File

@ -4,9 +4,9 @@ import {IonicView, Battery} from 'ionic/ionic';
@IonicView({ @IonicView({
template: ` template: `
<ion-navbar *navbar> <ion-navbar *navbar>
<a menu-toggle> <button menu-toggle>
<icon menu></icon> <icon menu></icon>
</a> </button>
<ion-title>Battery</ion-title> <ion-title>Battery</ion-title>
</ion-navbar> </ion-navbar>
<ion-content padding> <ion-content padding>

View File

@ -5,9 +5,9 @@ import {Camera} from 'ionic/ionic';
@IonicView({ @IonicView({
template: ` template: `
<ion-navbar *navbar> <ion-navbar *navbar>
<a menu-toggle> <button menu-toggle>
<icon menu></icon> <icon menu></icon>
</a> </button>
<ion-title>Camera</ion-title> <ion-title>Camera</ion-title>
</ion-navbar> </ion-navbar>
<ion-content padding> <ion-content padding>

View File

@ -5,9 +5,9 @@ import {Contacts} from 'ionic/ionic';
@IonicView({ @IonicView({
template: ` template: `
<ion-navbar *navbar> <ion-navbar *navbar>
<a menu-toggle> <button menu-toggle>
<icon menu></icon> <icon menu></icon>
</a> </button>
<ion-title>Contacts</ion-title> <ion-title>Contacts</ion-title>
</ion-navbar> </ion-navbar>
<ion-content padding> <ion-content padding>

View File

@ -4,9 +4,9 @@ import {IonicView, DeviceMotion} from 'ionic/ionic';
@IonicView({ @IonicView({
template: ` template: `
<ion-navbar *navbar> <ion-navbar *navbar>
<a menu-toggle> <button menu-toggle>
<icon menu></icon> <icon menu></icon>
</a> </button>
<ion-title>Device Motion</ion-title> <ion-title>Device Motion</ion-title>
</ion-navbar> </ion-navbar>
<ion-content padding> <ion-content padding>

View File

@ -4,9 +4,9 @@ import {IonicView, DeviceOrientation} from 'ionic/ionic';
@IonicView({ @IonicView({
template: ` template: `
<ion-navbar *navbar> <ion-navbar *navbar>
<a menu-toggle> <button menu-toggle>
<icon menu></icon> <icon menu></icon>
</a> </button>
<ion-title>Device Orientation</ion-title> <ion-title>Device Orientation</ion-title>
</ion-navbar> </ion-navbar>
<ion-content padding> <ion-content padding>

View File

@ -4,9 +4,9 @@ import {IonicView, Device} from 'ionic/ionic';
@IonicView({ @IonicView({
template: ` template: `
<ion-navbar *navbar> <ion-navbar *navbar>
<a menu-toggle> <button menu-toggle>
<icon menu></icon> <icon menu></icon>
</a> </button>
<ion-title>Device</ion-title> <ion-title>Device</ion-title>
</ion-navbar> </ion-navbar>
<ion-content padding> <ion-content padding>

View File

@ -4,9 +4,9 @@ import {IonicView, Dialogs} from 'ionic/ionic';
@IonicView({ @IonicView({
template: ` template: `
<ion-navbar *navbar> <ion-navbar *navbar>
<a menu-toggle> <button menu-toggle>
<icon menu></icon> <icon menu></icon>
</a> </button>
<ion-title>Dialogs</ion-title> <ion-title>Dialogs</ion-title>
</ion-navbar> </ion-navbar>
<ion-content padding> <ion-content padding>

View File

@ -5,9 +5,9 @@ import {Geolocation} from 'ionic/ionic';
@IonicView({ @IonicView({
template: ` template: `
<ion-navbar *navbar> <ion-navbar *navbar>
<a menu-toggle> <button menu-toggle>
<icon menu></icon> <icon menu></icon>
</a> </button>
<ion-title>Geolocation</ion-title> <ion-title>Geolocation</ion-title>
</ion-navbar> </ion-navbar>
<ion-content padding> <ion-content padding>

View File

@ -5,9 +5,9 @@ import {StatusBar} from 'ionic/ionic';
@IonicView({ @IonicView({
template: ` template: `
<ion-navbar *navbar> <ion-navbar *navbar>
<a menu-toggle> <button menu-toggle>
<icon menu></icon> <icon menu></icon>
</a> </button>
<ion-title>StatusBar</ion-title> <ion-title>StatusBar</ion-title>
</ion-navbar> </ion-navbar>
<ion-content padding> <ion-content padding>

View File

@ -5,9 +5,9 @@ import {Vibration} from 'ionic/ionic';
@IonicView({ @IonicView({
template: ` template: `
<ion-navbar *navbar> <ion-navbar *navbar>
<a menu-toggle> <button menu-toggle>
<icon menu></icon> <icon menu></icon>
</a> </button>
<ion-title>Vibration</ion-title> <ion-title>Vibration</ion-title>
</ion-navbar> </ion-navbar>
<ion-content padding> <ion-content padding>

View File

@ -1,8 +1,8 @@
<ion-navbar *navbar> <ion-navbar *navbar>
<ion-title>Item Groups</ion-title> <ion-title>Item Groups</ion-title>
<ion-nav-items secondary> <ion-buttons end>
<button (click)="reload()">Reload</button> <button (click)="reload()">Reload</button>
</ion-nav-items> </ion-buttons>
</ion-navbar> </ion-navbar>
<ion-content class="outer-content"> <ion-content class="outer-content">

View File

@ -1,8 +1,8 @@
<ion-toolbar> <ion-toolbar>
<ion-title>Sliding Items</ion-title> <ion-title>Sliding Items</ion-title>
<ion-nav-items secondary> <ion-buttons end>
<button (click)="reload()">Reload</button> <button (click)="reload()">Reload</button>
</ion-nav-items> </ion-buttons>
</ion-toolbar> </ion-toolbar>
<ion-content> <ion-content>

View File

@ -1,29 +1,29 @@
<ion-navbar *navbar> <ion-navbar *navbar>
<a menu-toggle="leftMenu"> <button menu-toggle="leftMenu">
<icon menu></icon> <icon menu></icon>
</a> </button>
<ion-title> <ion-title>
Menu Menu
</ion-title> </ion-title>
<ion-nav-items secondary> <ion-buttons end>
<button> <button>
<icon football></icon> <icon football></icon>
</button> </button>
</ion-nav-items> </ion-buttons>
<ion-nav-items primary> <ion-buttons start>
<button> <button>
<icon baseball></icon> <icon baseball></icon>
</button> </button>
</ion-nav-items> </ion-buttons>
<a menu-toggle="rightMenu" secondary> <button menu-toggle="rightMenu" right>
<icon menu></icon> <icon menu></icon>
</a> </button>
</ion-navbar> </ion-navbar>

View File

@ -1,9 +1,9 @@
<ion-navbar *navbar> <ion-navbar *navbar>
<a menu-toggle="leftMenu"> <button menu-toggle="leftMenu">
<icon menu></icon> <icon menu></icon>
</a> </button>
<ion-title> <ion-title>
Menu Menu

View File

@ -5,9 +5,9 @@
Menu Menu
</ion-title> </ion-title>
<a menu-toggle="rightMenu" secondary> <button menu-toggle="rightMenu" right>
<icon menu></icon> <icon menu></icon>
</a> </button>
</ion-navbar> </ion-navbar>

View File

@ -1,9 +1,9 @@
<ion-navbar *navbar> <ion-navbar *navbar>
<a menu-toggle="leftMenu"> <button menu-toggle="leftMenu">
<icon menu></icon> <icon menu></icon>
</a> </button>
<ion-title> <ion-title>
Overlay Menu Overlay Menu

View File

@ -1,9 +1,9 @@
<ion-navbar *navbar> <ion-navbar *navbar>
<a menu-toggle="leftMenu"> <button menu-toggle="leftMenu">
<icon menu></icon> <icon menu></icon>
</a> </button>
<ion-title> <ion-title>
Push Menu Push Menu

View File

@ -1,9 +1,9 @@
<ion-navbar *navbar> <ion-navbar *navbar>
<a menu-toggle="leftMenu"> <button menu-toggle="leftMenu">
<icon menu></icon> <icon menu></icon>
</a> </button>
<ion-title> <ion-title>
Reveal Menu Reveal Menu

View File

@ -141,9 +141,9 @@ class ContactUs {
template: ` template: `
<ion-navbar *navbar> <ion-navbar *navbar>
<ion-title>First Page Header</ion-title> <ion-title>First Page Header</ion-title>
<ion-nav-items primary> <ion-buttons start>
<button class="e2eCloseMenu" (click)="closeModal()">Close</button> <button class="e2eCloseMenu" (click)="closeModal()">Close</button>
</ion-nav-items> </ion-buttons>
</ion-navbar> </ion-navbar>
<ion-content padding> <ion-content padding>
<p> <p>

View File

@ -16,12 +16,12 @@ class MyCmpTest{}
template: ` template: `
<ion-navbar *navbar> <ion-navbar *navbar>
<ion-title>{{title}}</ion-title> <ion-title>{{title}}</ion-title>
<ion-nav-items primary> <ion-buttons start>
<button><icon star></icon></button> <button><icon star></icon></button>
</ion-nav-items> </ion-buttons>
<ion-nav-items secondary> <ion-buttons end>
<button>S1</button> <button>S1</button>
</ion-nav-items> </ion-buttons>
</ion-navbar> </ion-navbar>
<ion-content> <ion-content>
<ion-list> <ion-list>

View File

@ -75,9 +75,9 @@ export class Account {
@Page({ @Page({
template: ` template: `
<ion-navbar *navbar primary> <ion-navbar *navbar primary>
<a menu-toggle> <button menu-toggle>
<icon menu></icon> <icon menu></icon>
</a> </button>
<ion-title>Account Dashboard</ion-title> <ion-title>Account Dashboard</ion-title>
</ion-navbar> </ion-navbar>
<ion-content padding> <ion-content padding>
@ -106,9 +106,9 @@ export class Dashboard {
@Page({ @Page({
template: ` template: `
<ion-navbar *navbar danger> <ion-navbar *navbar danger>
<a menu-toggle> <button menu-toggle>
<icon menu></icon> <icon menu></icon>
</a> </button>
<ion-title>Account Profile</ion-title> <ion-title>Account Profile</ion-title>
</ion-navbar> </ion-navbar>
<ion-content padding> <ion-content padding>

View File

@ -1,8 +1,8 @@
<ion-navbar *navbar> <ion-navbar *navbar>
<a menu-toggle> <button menu-toggle>
<icon menu></icon> <icon menu></icon>
</a> </button>
<ion-title>First View</ion-title> <ion-title>First View</ion-title>
</ion-navbar> </ion-navbar>

View File

@ -1,7 +1,7 @@
<ion-navbar *navbar primary> <ion-navbar *navbar primary>
<ion-title>Second View</ion-title> <ion-title>Second View</ion-title>
<ion-nav-items secondary> <ion-buttons end>
<button> <button>
<icon help></icon> <icon help></icon>
</button> </button>

View File

@ -71,9 +71,9 @@ class ToolbarBackground {
'<span class="back-default">{{bbText}}</span>' + '<span class="back-default">{{bbText}}</span>' +
'</span>' + '</span>' +
'</button>' + '</button>' +
'<ng-content select="[menu-toggle]"></ng-content>' + '<ng-content select="[menu-toggle],ion-buttons[left]"></ng-content>' +
'<ng-content select="ion-nav-items[primary]"></ng-content>' + '<ng-content select="ion-buttons[start]"></ng-content>' +
'<ng-content select="ion-nav-items[secondary]"></ng-content>' + '<ng-content select="ion-buttons[end],ion-buttons[right]"></ng-content>' +
'<div class="toolbar-content">' + '<div class="toolbar-content">' +
'<ng-content></ng-content>' + '<ng-content></ng-content>' +
'</div>', '</div>',

View File

@ -10,11 +10,11 @@
</ion-toolbar> </ion-toolbar>
<ion-toolbar> <ion-toolbar>
<ion-nav-items secondary> <ion-buttons end>
<button> <button>
<icon search></icon> <icon search></icon>
</button> </button>
</ion-nav-items> </ion-buttons>
<ion-segment secondary> <ion-segment secondary>
<ion-segment-button> <ion-segment-button>
Something Something

View File

@ -30,16 +30,16 @@
} }
</style> </style>
<ion-navbar *navbar> <ion-navbar *navbar>
<ion-nav-items primary> <ion-buttons start>
<button> <button>
Skip Skip
</button> </button>
</ion-nav-items> </ion-buttons>
<ion-nav-items secondary> <ion-buttons end>
<button (click)="next()"> <button (click)="next()">
Next Next
</button> </button>
</ion-nav-items> </ion-buttons>
<ion-title>Grid Icons</ion-title> <ion-title>Grid Icons</ion-title>
</ion-navbar> </ion-navbar>
<ion-slides pager (slide-changed)="onSlideChanged($event)" loop="true" autoplay="true"> <ion-slides pager (slide-changed)="onSlideChanged($event)" loop="true" autoplay="true">

View File

@ -71,9 +71,9 @@ class Tab2 {
@Page({ @Page({
template: ` template: `
<ion-navbar *navbar> <ion-navbar *navbar>
<a menu-toggle> <button menu-toggle>
<icon menu></icon> <icon menu></icon>
</a> </button>
<ion-title>Stopwatch</ion-title> <ion-title>Stopwatch</ion-title>
</ion-navbar> </ion-navbar>
<ion-content padding> <ion-content padding>

View File

@ -46,9 +46,9 @@ class Tab2 {
@Page({ @Page({
template: ` template: `
<ion-navbar *navbar> <ion-navbar *navbar>
<a menu-toggle> <button menu-toggle>
<icon menu></icon> <icon menu></icon>
</a> </button>
<ion-title>Stopwatch</ion-title> <ion-title>Stopwatch</ion-title>
</ion-navbar> </ion-navbar>
<ion-content padding> <ion-content padding>
@ -68,9 +68,9 @@ class Tab3 {
@Page({ @Page({
template: ` template: `
<ion-navbar *navbar> <ion-navbar *navbar>
<a menu-toggle> <button menu-toggle>
<icon menu></icon> <icon menu></icon>
</a> </button>
<ion-title>Quesarito</ion-title> <ion-title>Quesarito</ion-title>
</ion-navbar> </ion-navbar>
<ion-content padding> <ion-content padding>

View File

@ -1,11 +1,11 @@
<ion-toolbar> <ion-toolbar>
<ion-title>Inset Focus</ion-title> <ion-title>Inset Focus</ion-title>
<ion-nav-items secondary> <ion-buttons end>
<button (click)="reload()"> <button (click)="reload()">
Reload Reload
</button> </button>
</ion-nav-items> </ion-buttons>
</ion-toolbar> </ion-toolbar>

View File

@ -6,18 +6,20 @@
// -------------------------------------------------- // --------------------------------------------------
$toolbar-order-ios: ( $toolbar-order-ios: (
back-button: 10, back-button: 0,
menu-toggle-primary: 20, menu-toggle-start: 1,
primary: 30, buttons-left: 2,
secondary: 50, buttons-start: 3,
menu-toggle-secondary: 60, content: 4,
buttons-end: 5,
buttons-right: 6,
menu-toggle-end: 7,
); );
$toolbar-ios-padding: 4px !default; $toolbar-ios-padding: 4px !default;
$toolbar-ios-height: 4.4rem !default; $toolbar-ios-height: 4.4rem !default;
$toolbar-ios-button-font-size: 1.7rem !default; $toolbar-ios-button-font-size: 1.7rem !default;
$toolbar-ios-title-font-size: 1.7rem !default; $toolbar-ios-title-font-size: 1.7rem !default;
$navbar-ios-height: $toolbar-ios-height !default; $navbar-ios-height: $toolbar-ios-height !default;
@ -30,9 +32,73 @@ ion-navbar-section {
min-height: $navbar-ios-height; min-height: $navbar-ios-height;
} }
// iOS Toolbar Background
// --------------------------------------------------
.toolbar-background {
border-bottom-width: 1px;
border-bottom-style: solid;
border-color: $toolbar-ios-border-color;
background-color: $toolbar-ios-background-color;
}
&.hairlines .toolbar-background {
border-bottom-width: 0.55px;
}
// iOS Toolbar Content
// --------------------------------------------------
.toolbar-content {
flex: 1;
order: map-get($toolbar-order-ios, content);
}
.toolbar-title {
font-size: $toolbar-ios-title-font-size;
font-weight: 500;
text-align: center;
pointer-events: auto;
color: $toolbar-ios-text-color;
}
ion-title {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
padding: 0px 90px 1px 90px;
pointer-events: none;
transform: translateZ(0px);
}
// iOS Toolbar Buttons // iOS Toolbar Buttons
// -------------------------------------------------- // --------------------------------------------------
ion-buttons {
flex: 1;
order: map-get($toolbar-order-ios, buttons-start);
transform: translateZ(0px);
}
ion-buttons[left] {
order: map-get($toolbar-order-ios, buttons-left);
}
ion-buttons[end] {
text-align: right;
order: map-get($toolbar-order-ios, buttons-end);
}
ion-buttons[right] {
text-align: right;
order: map-get($toolbar-order-ios, buttons-right);
}
.bar-button { .bar-button {
margin-top: 0; margin-top: 0;
margin-bottom: 0; margin-bottom: 0;
@ -73,14 +139,14 @@ ion-navbar-section {
} }
// iOS Back Button // iOS Toolbar Back Button
// -------------------------------------------------- // --------------------------------------------------
.back-button { .back-button {
margin: 0; margin: 0;
min-height: 3.2rem; min-height: 3.2rem;
line-height: 1; line-height: 1;
order: map-get($toolbar-order-ios, 'back-button'); order: map-get($toolbar-order-ios, back-button);
overflow: visible; overflow: visible;
transform: translateZ(0px); transform: translateZ(0px);
} }
@ -93,16 +159,17 @@ ion-navbar-section {
} }
// iOS Menu Toggle // iOS Toolbar Menu Toggle
// -------------------------------------------------- // --------------------------------------------------
[menu-toggle] { [menu-toggle] {
order: map-get($toolbar-order-ios, menu-toggle-primary); order: map-get($toolbar-order-ios, menu-toggle-start);
cursor: pointer; cursor: pointer;
} }
[menu-toggle][secondary] { [menu-toggle][end],
order: map-get($toolbar-order-ios, menu-toggle-secondary); [menu-toggle][right] {
order: map-get($toolbar-order-ios, menu-toggle-end);
} }
ion-segment-button[button] { ion-segment-button[button] {
@ -112,55 +179,6 @@ ion-segment-button[button] {
} }
// iOS Toolbar Background
// --------------------------------------------------
.toolbar-background {
border-bottom-width: 1px;
border-bottom-style: solid;
border-color: $toolbar-ios-border-color;
background-color: $toolbar-ios-background-color;
}
&.hairlines .toolbar-background {
border-bottom-width: 0.55px;
}
// iOS Toolbar Content
// --------------------------------------------------
ion-title {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
padding: 0px 90px 1px 90px;
pointer-events: none;
transform: translateZ(0px);
}
.toolbar-title {
font-size: $toolbar-ios-title-font-size;
font-weight: 500;
text-align: center;
pointer-events: auto;
color: $toolbar-ios-text-color;
}
ion-nav-items {
flex: 1;
order: map-get($toolbar-order-ios, primary);
transform: translateZ(0px);
}
ion-nav-items[secondary] {
text-align: right;
order: map-get($toolbar-order-ios, secondary);
}
// iOS Toolbar Color Generation // iOS Toolbar Color Generation
// -------------------------------------------------- // --------------------------------------------------

View File

@ -5,41 +5,111 @@
// Material Design Toolbar // Material Design Toolbar
// -------------------------------------------------- // --------------------------------------------------
$toolbar-order-md: (
back-button: 0,
menu-toggle-start: 1,
buttons-left: 2,
content: 3,
buttons-start: 4,
buttons-end: 5,
buttons-right: 6,
menu-toggle-end: 7,
);
$toolbar-md-padding: 4px !default; $toolbar-md-padding: 4px !default;
$toolbar-md-height: 5.6rem !default; $toolbar-md-height: 5.6rem !default;
$toolbar-md-title-font-size: 2rem !default; $toolbar-md-title-font-size: 2rem !default;
$toolbar-md-button-font-size: 1.4rem !default; $toolbar-md-button-font-size: 1.4rem !default;
$navbar-md-height: $toolbar-md-height !default;
.toolbar { .toolbar {
padding: $toolbar-md-padding; padding: $toolbar-md-padding;
min-height: $toolbar-md-height; min-height: $toolbar-md-height;
}
button, ion-navbar-section {
[button], min-height: $navbar-md-height;
button.activated, }
[button].activated {
margin-top: 0;
margin-bottom: 0; // Material Design Toolbar Background
padding: 0 5px; // --------------------------------------------------
min-height: 32px;
.toolbar-background {
border-color: $toolbar-md-border-color;
background-color: $toolbar-md-background-color;
}
// Material Design Toolbar Content
// --------------------------------------------------
.toolbar-content {
flex: 1;
order: map-get($toolbar-order-md, content);
}
.toolbar-title {
color: $toolbar-md-text-color;
}
ion-title {
padding: 0 12px;
font-size: $toolbar-md-title-font-size;
font-weight: 500;
}
// Material Design Toolbar Buttons
// --------------------------------------------------
ion-buttons {
flex: 1;
order: map-get($toolbar-order-md, buttons-start);
transform: translateZ(0px);
}
ion-buttons[left] {
order: map-get($toolbar-order-md, buttons-left);
}
ion-buttons[left] .bar-button:first-child {
margin-left: 0;
}
ion-buttons[end] {
text-align: right;
order: map-get($toolbar-order-md, buttons-end);
}
ion-buttons[right] {
text-align: right;
order: map-get($toolbar-order-md, buttons-right);
}
// Material Design Toolbar Back Button
// --------------------------------------------------
.back-button {
margin: 0 0 0 12px;
box-shadow: none; box-shadow: none;
overflow: visible;
color: $toolbar-md-active-color;
} }
button.icon-only, .back-button-icon {
[button].icon-only { margin: 0;
padding-right: 0; min-width: 44px;
padding-left: 0; font-size: 2.4rem;
font-weight: normal;
text-align: left;
} }
button icon,
[button] icon {
padding: 0;
min-width: 28px;
}
// Material Design Toolbar Menu Toggle
// --------------------------------------------------
.toolbar {
[menu-toggle], [menu-toggle],
[menu-toggle].activated { [menu-toggle].activated {
padding: 0 2px; padding: 0 2px;
@ -55,34 +125,6 @@ $toolbar-md-button-font-size: 1.4rem !default;
margin: 0 2px; margin: 0 2px;
min-width: 28px; min-width: 28px;
} }
}
.toolbar button:hover:not(.disable-hover),
.toolbar [button]:hover:not(.disable-hover),
.toolbar button.activated,
.toolbar [button].activated {
color: $toolbar-md-active-color;
background-color: transparent;
}
.toolbar-background {
border-color: $toolbar-md-border-color;
background-color: $toolbar-md-background-color;
}
ion-title {
padding: 0 12px;
font-size: $toolbar-md-title-font-size;
font-weight: 500;
}
.toolbar-title {
color: $toolbar-md-text-color;
}
ion-nav-items[primary] button:first-child {
margin-left: 0;
} }
@ -96,20 +138,6 @@ ion-navbar-section {
min-height: $navbar-md-height; min-height: $navbar-md-height;
} }
.back-button {
margin: 0 0 0 12px;
box-shadow: none;
}
.back-button-icon {
margin: 0;
min-width: 44px;
font-size: 2.4rem;
font-weight: normal;
text-align: left;
}
// Material Design Toolbar Color Generation // Material Design Toolbar Color Generation
// -------------------------------------------------- // --------------------------------------------------

View File

@ -5,43 +5,43 @@
<ion-toolbar> <ion-toolbar>
<ion-nav-items primary> <ion-buttons start>
<button> <button>
<icon ios=contact></icon> <icon ios=contact></icon>
</button> </button>
<button> <button>
<icon search></icon> <icon search></icon>
</button> </button>
</ion-nav-items> </ion-buttons>
<ion-nav-items secondary> <ion-buttons end>
<button> <button>
<icon more></icon> <icon more></icon>
</button> </button>
</ion-nav-items> </ion-buttons>
<ion-title>Defaults</ion-title> <ion-title>Defaults</ion-title>
</ion-toolbar> </ion-toolbar>
<ion-toolbar> <ion-toolbar>
<ion-nav-items primary> <ion-buttons start>
<button class="activated"> <button class="activated">
<icon ios="contact"></icon> <icon ios="contact"></icon>
</button> </button>
<button class="activated"> <button class="activated">
<icon search></icon> <icon search></icon>
</button> </button>
</ion-nav-items> </ion-buttons>
<ion-nav-items secondary> <ion-buttons end>
<button class="activated"> <button class="activated">
<icon more></icon> <icon more></icon>
</button> </button>
</ion-nav-items> </ion-buttons>
<ion-title>Defaults.activated</ion-title> <ion-title>Defaults.activated</ion-title>
</ion-toolbar> </ion-toolbar>
<ion-toolbar> <ion-toolbar>
<ion-nav-items primary> <ion-buttons start>
<button clear> <button clear>
<icon contact></icon> <icon contact></icon>
</button> </button>
@ -49,19 +49,19 @@
<icon contact></icon> <icon contact></icon>
Clear Clear
</button> </button>
</ion-nav-items> </ion-buttons>
<ion-title>Clear</ion-title> <ion-title>Clear</ion-title>
<ion-nav-items secondary> <ion-buttons end>
<button clear secondary> <button clear secondary>
Help Help
<icon help-circle></icon> <icon help-circle></icon>
</button> </button>
</ion-nav-items> </ion-buttons>
</ion-toolbar> </ion-toolbar>
<ion-toolbar> <ion-toolbar>
<ion-nav-items primary> <ion-buttons start>
<button clear class="activated"> <button clear class="activated">
<icon contact></icon> <icon contact></icon>
</button> </button>
@ -69,19 +69,19 @@
<icon contact></icon> <icon contact></icon>
Clear Clear
</button> </button>
</ion-nav-items> </ion-buttons>
<ion-title>Clear</ion-title> <ion-title>Clear</ion-title>
<ion-nav-items secondary> <ion-buttons end>
<button clear secondary class="activated"> <button clear secondary class="activated">
Help Help
<icon help-circle></icon> <icon help-circle></icon>
</button> </button>
</ion-nav-items> </ion-buttons>
</ion-toolbar> </ion-toolbar>
<ion-toolbar> <ion-toolbar>
<ion-nav-items primary> <ion-buttons start>
<button outline> <button outline>
<icon contact></icon> <icon contact></icon>
</button> </button>
@ -89,18 +89,18 @@
<icon star></icon> <icon star></icon>
Star Star
</button> </button>
</ion-nav-items> </ion-buttons>
<ion-nav-items secondary> <ion-buttons end>
<button secondary outline> <button secondary outline>
<icon contact></icon> <icon contact></icon>
</button> </button>
</ion-nav-items> </ion-buttons>
<ion-title>Outline</ion-title> <ion-title>Outline</ion-title>
</ion-toolbar> </ion-toolbar>
<ion-toolbar> <ion-toolbar>
<ion-nav-items primary> <ion-buttons start>
<button outline class="activated"> <button outline class="activated">
<icon contact></icon> <icon contact></icon>
</button> </button>
@ -108,94 +108,94 @@
<icon star></icon> <icon star></icon>
Star Star
</button> </button>
</ion-nav-items> </ion-buttons>
<ion-nav-items secondary> <ion-buttons end>
<button secondary outline class="activated"> <button secondary outline class="activated">
<icon contact></icon> <icon contact></icon>
</button> </button>
</ion-nav-items> </ion-buttons>
<ion-title>Outline.activated</ion-title> <ion-title>Outline.activated</ion-title>
</ion-toolbar> </ion-toolbar>
<ion-toolbar> <ion-toolbar>
<ion-nav-items primary> <ion-buttons start>
<button> <button>
Btn Btn
</button> </button>
</ion-nav-items> </ion-buttons>
<ion-nav-items secondary> <ion-buttons end>
<button secondary> <button secondary>
Btn Btn
</button> </button>
</ion-nav-items> </ion-buttons>
<ion-title>ColorAttr</ion-title> <ion-title>ColorAttr</ion-title>
</ion-toolbar> </ion-toolbar>
<ion-toolbar> <ion-toolbar>
<ion-nav-items primary> <ion-buttons start>
<button class="activated"> <button class="activated">
Btn Btn
</button> </button>
</ion-nav-items> </ion-buttons>
<ion-nav-items secondary> <ion-buttons end>
<button secondary class="activated"> <button secondary class="activated">
Btn Btn
</button> </button>
</ion-nav-items> </ion-buttons>
<ion-title>ColorAttr.activated</ion-title> <ion-title>ColorAttr.activated</ion-title>
</ion-toolbar> </ion-toolbar>
<ion-toolbar> <ion-toolbar>
<ion-nav-items primary> <ion-buttons start>
<button> <button>
<icon contact></icon> <icon contact></icon>
Clear Clear
</button> </button>
</ion-nav-items> </ion-buttons>
<ion-nav-items secondary> <ion-buttons end>
<button> <button>
Edit Edit
<icon create></icon> <icon create></icon>
</button> </button>
</ion-nav-items> </ion-buttons>
<ion-title>Icon/Color Attr</ion-title> <ion-title>Icon/Color Attr</ion-title>
</ion-toolbar> </ion-toolbar>
<ion-toolbar> <ion-toolbar>
<a menu-toggle> <button menu-toggle>
<icon menu></icon> <icon menu></icon>
</a> </button>
<ion-nav-items primary> <ion-buttons start>
<button> <button>
<icon star></icon> <icon star></icon>
</button> </button>
</ion-nav-items> </ion-buttons>
<ion-title>Left side menu toggle</ion-title> <ion-title>Left side menu toggle</ion-title>
</ion-toolbar> </ion-toolbar>
<ion-toolbar> <ion-toolbar>
<ion-nav-items secondary> <ion-buttons end>
<button #button1 (click)="buttonClick(button1)"> <button #button1 (click)="buttonClick(button1)">
<icon star></icon> <icon star></icon>
</button> </button>
</ion-nav-items> </ion-buttons>
<ion-title>Right side menu toggle</ion-title> <ion-title>Right side menu toggle</ion-title>
<a menu-toggle secondary> <button menu-toggle right>
<icon menu></icon> <icon menu></icon>
</a> </button>
</ion-toolbar> </ion-toolbar>
<ion-toolbar> <ion-toolbar>
<ion-nav-items secondary> <ion-buttons end>
<button #button2 (click)="buttonClick(button2)"> <button #button2 (click)="buttonClick(button2)">
<icon search></icon> <icon search></icon>
</button> </button>
</ion-nav-items> </ion-buttons>
<ion-segment secondary> <ion-segment secondary>
<ion-segment-button> <ion-segment-button>
Something Something

View File

@ -39,14 +39,9 @@
margin: 0 6px; margin: 0 6px;
padding: 0; padding: 0;
min-width: 36px; min-width: 36px;
order: map-get($toolbar-order, menu-toggle-primary);
box-shadow: none; box-shadow: none;
} }
.toolbar [menu-toggle][secondary] {
order: map-get($toolbar-order, menu-toggle-secondary);
}
.toolbar [menu-toggle] icon { .toolbar [menu-toggle] icon {
padding: 0 6px; padding: 0 6px;
font-size: 2.8rem; font-size: 2.8rem;
@ -57,8 +52,6 @@
// -------------------------------------------------- // --------------------------------------------------
.back-button { .back-button {
order: map-get($toolbar-order, backButton);
display: none; display: none;
&.show-back-button { &.show-back-button {
display: flex; display: flex;

View File

@ -3,15 +3,6 @@
// Toolbar // Toolbar
// -------------------------------------------------- // --------------------------------------------------
$toolbar-order: (
backButton: 10,
menu-toggle-left: 20,
content: 30,
left: 40,
right: 50,
menu-toggle-right: 60,
);
.toolbar { .toolbar {
position: relative; position: relative;
@ -40,12 +31,6 @@ $toolbar-order: (
pointer-events: none; pointer-events: none;
} }
.toolbar-content {
display: block;
flex: 1;
order: map-get($toolbar-order, content);
}
.toolbar[position=bottom] { .toolbar[position=bottom] {
order: $flex-order-toolbar-bottom; order: $flex-order-toolbar-bottom;
} }
@ -64,27 +49,22 @@ ion-title {
overflow: hidden; overflow: hidden;
} }
ion-nav-items { ion-buttons {
display: block; display: block;
margin: 0 0.2rem; margin: 0 0.2rem;
pointer-events: none; pointer-events: none;
order: map-get($toolbar-order, left);
} }
ion-nav-items[secondary] { ion-buttons button,
order: map-get($toolbar-order, right); ion-buttons a,
} ion-buttons input,
ion-buttons textarea,
ion-nav-items button, ion-buttons div {
ion-nav-items a,
ion-nav-items input,
ion-nav-items textarea,
ion-nav-items div {
pointer-events: auto; pointer-events: auto;
} }
// TODO this is a temp hack to fix segment overlapping ion-nav-item // TODO this is a temp hack to fix segment overlapping ion-nav-item
ion-nav-items, ion-buttons,
[menu-toggle] { [menu-toggle] {
z-index: 99; z-index: 99;
} }

View File

@ -44,7 +44,7 @@ export class ToolbarBase extends Ion {
/** /**
* @private * @private
* A toolbar items include the left and right side `ion-nav-items`, * A toolbar items include the left and right side `ion-buttons`,
* and every `menu-toggle`. It does not include the `ion-title`. * and every `menu-toggle`. It does not include the `ion-title`.
* @returns {TODO} Array of this toolbar's item ElementRefs. * @returns {TODO} Array of this toolbar's item ElementRefs.
*/ */
@ -79,9 +79,9 @@ export class ToolbarBase extends Ion {
selector: 'ion-toolbar', selector: 'ion-toolbar',
template: template:
'<div class="toolbar-background"></div>' + '<div class="toolbar-background"></div>' +
'<ng-content select="[menu-toggle]"></ng-content>' + '<ng-content select="[menu-toggle],ion-buttons[left]"></ng-content>' +
'<ng-content select="ion-nav-items[primary]"></ng-content>' + '<ng-content select="ion-buttons[start]"></ng-content>' +
'<ng-content select="ion-nav-items[secondary]"></ng-content>' + '<ng-content select="ion-buttons[end],ion-buttons[right]"></ng-content>' +
'<div class="toolbar-content">' + '<div class="toolbar-content">' +
'<ng-content></ng-content>' + '<ng-content></ng-content>' +
'</div>', '</div>',
@ -149,7 +149,7 @@ export class ToolbarTitle extends Ion {
* @private * @private
*/ */
@Directive({ @Directive({
selector: 'ion-nav-items,[menu-toggle]' selector: 'ion-buttons,[menu-toggle]'
}) })
export class ToolbarItem extends Ion { export class ToolbarItem extends Ion {
constructor( constructor(