tab icons

This commit is contained in:
Adam Bradley
2015-04-06 14:52:27 -05:00
parent 89fa2d0002
commit 9a9ded1d81
10 changed files with 200 additions and 25 deletions

View File

@ -50,7 +50,6 @@
"../button/extensions/ios", "../button/extensions/ios",
"../card/extensions/ios", "../card/extensions/ios",
"../checkbox/extensions/ios", "../checkbox/extensions/ios",
"../content/extensions/ios",
"../list/extensions/ios", "../list/extensions/ios",
"../item/extensions/ios", "../item/extensions/ios",
"../radio/extensions/ios", "../radio/extensions/ios",

View File

@ -51,6 +51,7 @@ $button-small-icon-size: 2.1rem !default;
outline: none; outline: none;
cursor: pointer; cursor: pointer;
@include user-select(none);
&:after { &:after {
// used to create a larger button "hit" area // used to create a larger button "hit" area

View File

@ -1,10 +0,0 @@
// iOS Content
// --------------------------------------------------
$content-ios-background-color: #efeff4 !default;
.view-ios .pane-container {
background-color: $content-ios-background-color;
}

View File

@ -10,12 +10,13 @@ import {IonicComponent} from 'ionic2/config/component'
@Template({ @Template({
inline: ` inline: `
<div class="toolbar tab-bar toolbar-ios toolbar-bottom"> <div class="toolbar tab-bar toolbar-ios toolbar-bottom">
<div class="tab-bar-content"> <div class="tab-bar-container">
<a *for="#tab of tabs" <a *for="#tab of tabs"
class="tab-bar-item tab-active" class="tab-bar-item tab-active"
[class.active]="tab.isSelected" [class.active]="tab.isSelected"
(click)="onClickTabItem($event, tab)"> (^click)="onClickTabItem($event, tab)">
{{tab.title}} <icon class="tab-bar-item-icon ion-home"></icon>
<span class="tab-bar-item-text">{{tab.title}}</span>
</a> </a>
</div> </div>
</div> </div>

View File

@ -2,23 +2,79 @@
// Tabs // Tabs
// -------------------------------------------------- // --------------------------------------------------
$tab-bar-item-padding: 10px !default;
$tab-bar-item-min-width: 100px !default;
.tabs {
}
.toolbar.tab-bar { .toolbar.tab-bar {
@include flex-justify-content(center); @include flex-justify-content(center);
} }
.tab-bar-content { .tab-bar-container {
@include flex-display(); @include flex-display();
height: 100%;
overflow: hidden;
} }
.tab-bar-item { .tab-bar-item {
@include flex-display();
@include flex-justify-content(center);
@include flex-direction(column);
@include flex(1); @include flex(1);
min-width: 100px; @include flex-align-self(center);
padding: $tab-bar-item-padding;
min-width: $tab-bar-item-min-width;
text-align: center; text-align: center;
cursor: pointer;
@include user-select(none);
}
.tab-bar-icon-bottom .tab-bar-item {
.tab-bar-item-icon {
@include flex-order(10);
}
}
.tab-bar-icon-left .tab-bar-item {
@include flex-direction(row);
.tab-bar-item-icon {
text-align: right;
padding-right: 5px;
}
}
.tab-bar-icon-right .tab-bar-item {
@include flex-direction(row);
.tab-bar-item-icon {
@include flex-order(10);
text-align: left;
padding-left: 5px;
}
}
.tab-bar-item-text,
.tab-bar-item-icon {
@include flex-align-self(center);
min-width: 26px;
max-width: 100%;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.tab-bar-icon-only .tab-bar-item-text,
.tab-bar-text-only .tab-bar-item-icon {
display: none;
}
.tab-bar-item:hover {
opacity: 0.6;
} }
.tab-bar-item.active { .tab-bar-item.active {

View File

@ -1,4 +1,4 @@
<ion-view view-title="Tabs"> <ion-view>
<ion-tabs> <ion-tabs>
<ion-tab [initial]="tab1Initial" tab-title="Tab 1"> <ion-tab [initial]="tab1Initial" tab-title="Tab 1">
</ion-tab> </ion-tab>

View File

@ -22,7 +22,7 @@ export class TabsPage {
// //
@Component({ selector: 't1p1' }) @Component({ selector: 't1p1' })
@Template({ @Template({
inline: '<ion-view>Tab 1 Page 1.<br/><br/><button (click)="next()">Next</button></ion-view>', inline: '<ion-view nav-title="Tab 1 Page 1">Tab 1 Page 1.<br/><br/><button (click)="next()">Next</button></ion-view>',
directives: [View] directives: [View]
}) })
class Tab1Page1 { class Tab1Page1 {
@ -36,7 +36,7 @@ class Tab1Page1 {
@Component({ selector: 't1p2' }) @Component({ selector: 't1p2' })
@Template({ @Template({
inline: '<ion-view>Tab 1<br/>Page 2.<br/></br><button (click)="pop()">Pop</button></ion-view>', inline: '<ion-view nav-title="Tab 1 Page 2">Tab 1<br/>Page 2.<br/></br><button (click)="pop()">Pop</button></ion-view>',
directives: [View] directives: [View]
}) })
class Tab1Page2 { class Tab1Page2 {
@ -50,7 +50,7 @@ class Tab1Page2 {
// //
@Component({ selector: 't2p1' }) @Component({ selector: 't2p1' })
@Template({ @Template({
inline: '<ion-view><br/><br/>Tab 2 Page 1. <button (click)="next()">Next</button></ion-view>', inline: '<ion-view nav-title="Tab 2 Page 1"><br/><br/>Tab 2 Page 1. <button (click)="next()">Next</button></ion-view>',
directives: [View] directives: [View]
}) })
class Tab2Page1 { class Tab2Page1 {
@ -64,7 +64,7 @@ class Tab2Page1 {
@Component({ selector: 't2p2' }) @Component({ selector: 't2p2' })
@Template({ @Template({
inline: '<ion-view><br/><br/>Tab 2<br/>Page 2. <button (click)="pop()">Pop</button></ion-view>', inline: '<ion-view nav-title="Tab 2 Page 2"><br/><br/>Tab 2<br/>Page 2. <button (click)="pop()">Pop</button></ion-view>',
directives: [View] directives: [View]
}) })
class Tab2Page2 { class Tab2Page2 {

View File

@ -0,0 +1 @@

View File

@ -0,0 +1,112 @@
<div style="margin: 4px 0">
<h6>Icon Top of Text (Default)</h6>
<div class="toolbar tab-bar toolbar-ios toolbar-bottom">
<div class="tab-bar-container">
<a class="tab-bar-item active">
<icon class="tab-bar-item-icon ion-home"></icon>
<span class="tab-bar-item-text">Home</span>
</a>
<a class="tab-bar-item">
<icon class="tab-bar-item-icon ion-star"></icon>
<span class="tab-bar-item-text">Favorites Ellipsis Ellipsis</span>
</a>
<a class="tab-bar-item">
<icon class="tab-bar-item-icon ion-ios-gear"></icon>
<span class="tab-bar-item-text">Settings Ellipsis Ellipsis</span>
</a>
</div>
</div>
<h6>Icon Bottom of Text</h6>
<div class="toolbar tab-bar toolbar-ios toolbar-bottom">
<div class="tab-bar-container tab-bar-icon-bottom">
<a class="tab-bar-item active">
<icon class="tab-bar-item-icon ion-home"></icon>
<span class="tab-bar-item-text">Home</span>
</a>
<a class="tab-bar-item">
<icon class="tab-bar-item-icon ion-star"></icon>
<span class="tab-bar-item-text">Favorites Ellipsis Ellipsis</span>
</a>
<a class="tab-bar-item">
<icon class="tab-bar-item-icon ion-ios-gear"></icon>
<span class="tab-bar-item-text">Settings Ellipsis Ellipsis</span>
</a>
</div>
</div>
<h6>Icon Left of Text</h6>
<div class="toolbar tab-bar toolbar-ios toolbar-bottom">
<div class="tab-bar-container tab-bar-icon-left">
<a class="tab-bar-item active">
<icon class="tab-bar-item-icon ion-home"></icon>
<span class="tab-bar-item-text">Home</span>
</a>
<a class="tab-bar-item">
<icon class="tab-bar-item-icon ion-star"></icon>
<span class="tab-bar-item-text">Favorites Ellipsis Ellipsis</span>
</a>
<a class="tab-bar-item">
<icon class="tab-bar-item-icon ion-ios-gear"></icon>
<span class="tab-bar-item-text">Settings Ellipsis Ellipsis</span>
</a>
</div>
</div>
<h6>Icon Right of Text</h6>
<div class="toolbar tab-bar toolbar-ios toolbar-bottom">
<div class="tab-bar-container tab-bar-icon-right">
<a class="tab-bar-item active">
<icon class="tab-bar-item-icon ion-home"></icon>
<span class="tab-bar-item-text">Home</span>
</a>
<a class="tab-bar-item">
<icon class="tab-bar-item-icon ion-star"></icon>
<span class="tab-bar-item-text">Favorites Ellipsis Ellipsis</span>
</a>
<a class="tab-bar-item">
<icon class="tab-bar-item-icon ion-ios-gear"></icon>
<span class="tab-bar-item-text">Settings Ellipsis Ellipsis</span>
</a>
</div>
</div>
<h6>Icon Only</h6>
<div class="toolbar tab-bar toolbar-ios toolbar-bottom">
<div class="tab-bar-container tab-bar-icon-only">
<a class="tab-bar-item active">
<icon class="tab-bar-item-icon ion-home"></icon>
<span class="tab-bar-item-text">Home</span>
</a>
<a class="tab-bar-item">
<icon class="tab-bar-item-icon ion-star"></icon>
<span class="tab-bar-item-text">Favorites Ellipsis Ellipsis</span>
</a>
<a class="tab-bar-item">
<icon class="tab-bar-item-icon ion-ios-gear"></icon>
<span class="tab-bar-item-text">Settings Ellipsis Ellipsis</span>
</a>
</div>
</div>
<h6>Text Only</h6>
<div class="toolbar tab-bar toolbar-ios toolbar-bottom">
<div class="tab-bar-container tab-bar-text-only">
<a class="tab-bar-item active">
<icon class="tab-bar-item-icon ion-home"></icon>
<span class="tab-bar-item-text">Home</span>
</a>
<a class="tab-bar-item">
<icon class="tab-bar-item-icon ion-star"></icon>
<span class="tab-bar-item-text">Favorites Ellipsis Ellipsis</span>
</a>
<a class="tab-bar-item">
<icon class="tab-bar-item-icon ion-ios-gear"></icon>
<span class="tab-bar-item-text">Settings Ellipsis Ellipsis</span>
</a>
</div>
</div>
</div>

View File

@ -0,0 +1,15 @@
import {bootstrap} from 'angular2/core';
import {Component, Template} from 'angular2/angular2';
@Component({ selector: '[ion-app]' })
@Template({
url: 'main.html'
})
class IonicApp {
constructor() {
console.log('IonicApp Start')
}
}
bootstrap(IonicApp)