mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2026-03-13 10:22:08 +08:00
chore(build): rename ionic directory to src and update all references in the build process.
This commit is contained in:
67
src/components/app/test/animations/index.ts
Normal file
67
src/components/app/test/animations/index.ts
Normal file
@@ -0,0 +1,67 @@
|
||||
import {App, Page, Animation, IonicApp} from '../../../../../ionic';
|
||||
|
||||
|
||||
@Page({
|
||||
templateUrl: 'main.html'
|
||||
})
|
||||
class E2EPage {
|
||||
duration;
|
||||
easing;
|
||||
|
||||
constructor(app: IonicApp) {
|
||||
this.duration = '1000';
|
||||
this.easing = 'ease-in-out';
|
||||
|
||||
console.log('isProd', app.isProd());
|
||||
}
|
||||
|
||||
playGreen() {
|
||||
let a = new Animation('.green');
|
||||
a.fromTo('translateX', '0px', '200px');
|
||||
a.duration(parseInt(this.duration));
|
||||
a.easing(this.easing);
|
||||
a.play();
|
||||
}
|
||||
|
||||
memoryCheck() {
|
||||
let self = this;
|
||||
let count = 0;
|
||||
|
||||
function play() {
|
||||
count++;
|
||||
if (count >= 100) {
|
||||
console.log('Play done');
|
||||
return;
|
||||
}
|
||||
|
||||
console.log('Play', count);
|
||||
|
||||
let a = new Animation('.green');
|
||||
a.fromTo('translateX', '0px', '200px');
|
||||
a.duration(self.duration);
|
||||
a.easing(self.easing);
|
||||
a.onFinish((animation) => {
|
||||
setTimeout(() => {
|
||||
play();
|
||||
}, 100);
|
||||
animation.destroy();
|
||||
});
|
||||
a.play();
|
||||
}
|
||||
|
||||
play();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@App({
|
||||
template: '<ion-nav [root]="root"></ion-nav>',
|
||||
prodMode: true
|
||||
})
|
||||
class E2EApp {
|
||||
root;
|
||||
|
||||
constructor() {
|
||||
this.root = E2EPage;
|
||||
}
|
||||
}
|
||||
37
src/components/app/test/animations/main.html
Normal file
37
src/components/app/test/animations/main.html
Normal file
@@ -0,0 +1,37 @@
|
||||
<ion-navbar *navbar>
|
||||
<ion-title>Animations</ion-title>
|
||||
</ion-navbar>
|
||||
|
||||
<ion-content>
|
||||
|
||||
<div style="position:relative; margin: 20px auto; width: 250px; height: 50px; background: #ddd;">
|
||||
|
||||
<div class="green" style="position:absolute; height: 50px; width: 50px; background:green;"></div>
|
||||
|
||||
</div>
|
||||
|
||||
<ion-list>
|
||||
<ion-item>
|
||||
<ion-label>Duration:</ion-label>
|
||||
<ion-input [(ngModel)]="duration"></ion-input>
|
||||
</ion-item>
|
||||
|
||||
<ion-item>
|
||||
<ion-label>Easing</ion-label>
|
||||
<ion-select [(ngModel)]="easing">
|
||||
<ion-option>linear</ion-option>
|
||||
<ion-option>ease-in-out</ion-option>
|
||||
<ion-option>cubic-bezier(0.36,0.66,0.04,1</ion-option>
|
||||
</ion-select>
|
||||
</ion-item>
|
||||
|
||||
<button ion-item (click)="playGreen()">
|
||||
Play
|
||||
</button>
|
||||
|
||||
<button ion-item (click)="memoryCheck()">
|
||||
Memory Check
|
||||
</button>
|
||||
</ion-list>
|
||||
|
||||
</ion-content>
|
||||
119
src/components/app/test/app.spec.ts
Normal file
119
src/components/app/test/app.spec.ts
Normal file
@@ -0,0 +1,119 @@
|
||||
import {IonicApp, Nav, Tabs, Tab, NavOptions, Config, ViewController, Platform} from '../../../../ionic';
|
||||
|
||||
export function run() {
|
||||
|
||||
|
||||
describe('IonicApp', () => {
|
||||
|
||||
describe('getActiveNav', () => {
|
||||
|
||||
it('should get active NavController when using tabs with nested nav', () => {
|
||||
let nav = mockNav();
|
||||
app.setRootNav(nav);
|
||||
|
||||
let tabs = mockTabs();
|
||||
let tab1 = mockTab(tabs);
|
||||
let tab2 = mockTab(tabs);
|
||||
nav.registerChildNav(tabs);
|
||||
|
||||
tab2.setSelected(true);
|
||||
let nav2 = mockNav();
|
||||
let nav3 = mockNav();
|
||||
let nav4 = mockNav();
|
||||
tab1.registerChildNav(nav4);
|
||||
tab2.registerChildNav(nav2);
|
||||
tab2.registerChildNav(nav3);
|
||||
|
||||
expect(app.getActiveNav()).toBe(nav3);
|
||||
});
|
||||
|
||||
it('should get active NavController when using tabs', () => {
|
||||
let nav = mockNav();
|
||||
app.setRootNav(nav);
|
||||
|
||||
let tabs = mockTabs();
|
||||
let tab1 = mockTab(tabs);
|
||||
let tab2 = mockTab(tabs);
|
||||
let tab3 = mockTab(tabs);
|
||||
nav.registerChildNav(tabs);
|
||||
|
||||
tab2.setSelected(true);
|
||||
|
||||
expect(app.getActiveNav()).toBe(tab2);
|
||||
|
||||
tab2.setSelected(false);
|
||||
tab3.setSelected(true);
|
||||
expect(app.getActiveNav()).toBe(tab3);
|
||||
});
|
||||
|
||||
it('should get active NavController when nested 3 deep', () => {
|
||||
let nav1 = mockNav();
|
||||
let nav2 = mockNav();
|
||||
let nav3 = mockNav();
|
||||
app.setRootNav(nav1);
|
||||
|
||||
nav1.registerChildNav(nav2);
|
||||
nav2.registerChildNav(nav3);
|
||||
|
||||
expect(app.getActiveNav()).toBe(nav3);
|
||||
});
|
||||
|
||||
it('should get active NavController when nested 2 deep', () => {
|
||||
let nav1 = mockNav();
|
||||
let nav2 = mockNav();
|
||||
app.setRootNav(nav1);
|
||||
|
||||
nav1.registerChildNav(nav2);
|
||||
expect(app.getActiveNav()).toBe(nav2);
|
||||
});
|
||||
|
||||
it('should get active NavController when only one nav controller', () => {
|
||||
let nav = mockNav();
|
||||
app.setRootNav(nav);
|
||||
expect(app.getActiveNav()).toBe(nav);
|
||||
});
|
||||
|
||||
it('should set/get the root nav controller', () => {
|
||||
let nav = mockNav();
|
||||
app.setRootNav(nav);
|
||||
expect(app.getRootNav()).toBe(nav);
|
||||
});
|
||||
|
||||
it('should not get an active NavController if there is not root set', () => {
|
||||
expect(app.getActiveNav()).toBeNull();
|
||||
expect(app.getRootNav()).toBeNull();
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
var app: IonicApp;
|
||||
var config: Config;
|
||||
var platform: Platform;
|
||||
var _cd: any;
|
||||
|
||||
function mockNav(): Nav {
|
||||
return new Nav(null, null, null, config, null, null, null, null, null);
|
||||
}
|
||||
|
||||
function mockTabs(): Tabs {
|
||||
return new Tabs(null, null, null, config, null, null, null);
|
||||
}
|
||||
|
||||
function mockTab(parentTabs: Tabs): Tab {
|
||||
return new Tab(parentTabs, app, config, null, null, null, null, null, _cd);
|
||||
}
|
||||
|
||||
beforeEach(() => {
|
||||
config = new Config();
|
||||
platform = new Platform();
|
||||
app = new IonicApp(config, null, platform);
|
||||
_cd = {
|
||||
reattach: function(){},
|
||||
detach: function(){}
|
||||
};
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
41
src/components/app/test/cordova/app.html
Normal file
41
src/components/app/test/cordova/app.html
Normal file
@@ -0,0 +1,41 @@
|
||||
<ion-menu [content]="content" side="left">
|
||||
|
||||
<ion-toolbar secondary>
|
||||
<ion-title>Left Menu</ion-title>
|
||||
</ion-toolbar>
|
||||
|
||||
<ion-content>
|
||||
|
||||
<ion-list>
|
||||
<ion-list-header>
|
||||
Settings
|
||||
</ion-list-header>
|
||||
|
||||
<button ion-item menuClose detail-none>
|
||||
Close Menu
|
||||
</button>
|
||||
|
||||
</ion-list>
|
||||
</ion-content>
|
||||
|
||||
</ion-menu>
|
||||
|
||||
<ion-menu [content]="content" side="right">
|
||||
|
||||
<ion-content>
|
||||
|
||||
<ion-list>
|
||||
<ion-list-header>
|
||||
No toolbar
|
||||
</ion-list-header>
|
||||
|
||||
<button ion-item menuClose="right" detail-none>
|
||||
Close Menu
|
||||
</button>
|
||||
|
||||
</ion-list>
|
||||
</ion-content>
|
||||
|
||||
</ion-menu>
|
||||
|
||||
<ion-nav [root]="root" #content></ion-nav>
|
||||
20
src/components/app/test/cordova/e2e.ts
Normal file
20
src/components/app/test/cordova/e2e.ts
Normal file
@@ -0,0 +1,20 @@
|
||||
|
||||
it('should navigate to page 2', function() {
|
||||
element(by.css('.e2eCordovaPage2')).click();
|
||||
});
|
||||
|
||||
it('should navigate to page 3', function() {
|
||||
element(by.css('.e2eCordovaPage3')).click();
|
||||
});
|
||||
|
||||
it('should navigate back', function() {
|
||||
element(by.css('.e2eCordovaGoBack')).click();
|
||||
});
|
||||
|
||||
it('should open modal', function() {
|
||||
element(by.css('.e2eCordovaOpenModal')).click();
|
||||
});
|
||||
|
||||
it('should open left menu', function() {
|
||||
element(by.css('.e2eCordovaOpenLeftMenu')).click();
|
||||
});
|
||||
132
src/components/app/test/cordova/index.ts
Normal file
132
src/components/app/test/cordova/index.ts
Normal file
@@ -0,0 +1,132 @@
|
||||
import {App, NavController, Page, IonicApp, Modal, ViewController} from '../../../../../ionic';
|
||||
|
||||
|
||||
@Page({
|
||||
template: `
|
||||
<ion-toolbar>
|
||||
<ion-title>This is a modal</ion-title>
|
||||
<button menuToggle class="e2eCordovaOpenLeftMenu">
|
||||
<ion-icon name="menu"></ion-icon>
|
||||
</button>
|
||||
<ion-buttons end>
|
||||
<button>
|
||||
<ion-icon name="funnel"></ion-icon>
|
||||
</button>
|
||||
</ion-buttons>
|
||||
</ion-toolbar>
|
||||
<ion-content padding>
|
||||
<p>The modal toolbar should have status bar padding.</p>
|
||||
<button block (click)="dismissModal()">Close modal</button>
|
||||
</ion-content>
|
||||
`
|
||||
})
|
||||
class MyModal {
|
||||
constructor(private viewCtrl: ViewController) {
|
||||
|
||||
}
|
||||
|
||||
dismissModal() {
|
||||
this.viewCtrl.dismiss();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Page({
|
||||
templateUrl: 'page1.html'
|
||||
})
|
||||
class Page1 {
|
||||
page2 = Page2;
|
||||
sort: string = 'all';
|
||||
|
||||
constructor(private nav: NavController) {}
|
||||
|
||||
goToTabs() {
|
||||
this.nav.push(TabsPage);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Page({
|
||||
templateUrl: 'page2.html'
|
||||
})
|
||||
class Page2 {
|
||||
page1 = Page1;
|
||||
page3 = Page3;
|
||||
|
||||
constructor(private nav: NavController) {
|
||||
|
||||
}
|
||||
|
||||
openModal() {
|
||||
let modal = Modal.create(MyModal);
|
||||
this.nav.present(modal);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Page({
|
||||
templateUrl: 'page3.html'
|
||||
})
|
||||
class Page3 {
|
||||
constructor(private nav: NavController) {
|
||||
|
||||
}
|
||||
|
||||
goBack() {
|
||||
this.nav.pop();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Page({
|
||||
template: `
|
||||
<ion-navbar *navbar>
|
||||
<ion-title>This is a tab page</ion-title>
|
||||
<button menuToggle>
|
||||
<ion-icon name="menu"></ion-icon>
|
||||
</button>
|
||||
<ion-buttons end>
|
||||
<button>
|
||||
<ion-icon name="funnel"></ion-icon>
|
||||
</button>
|
||||
</ion-buttons>
|
||||
</ion-navbar>
|
||||
<ion-content padding>
|
||||
<p>The toolbar should have status bar padding.</p>
|
||||
</ion-content>
|
||||
`
|
||||
})
|
||||
class TabPage1 {
|
||||
constructor(private nav: NavController) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Page({
|
||||
templateUrl: 'tabs.html'
|
||||
})
|
||||
class TabsPage {
|
||||
tab1Root = TabPage1;
|
||||
tab2Root = Page2;
|
||||
tab3Root = Page3;
|
||||
|
||||
constructor(private nav: NavController) {
|
||||
|
||||
}
|
||||
|
||||
goBack() {
|
||||
this.nav.pop();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@App({
|
||||
templateUrl: `./app.html`,
|
||||
config: {
|
||||
statusbarPadding: true
|
||||
}
|
||||
})
|
||||
class E2EApp {
|
||||
root = Page1;
|
||||
}
|
||||
27
src/components/app/test/cordova/page1.html
Normal file
27
src/components/app/test/cordova/page1.html
Normal file
@@ -0,0 +1,27 @@
|
||||
<ion-navbar *navbar primary>
|
||||
<ion-segment [(ngModel)]="sort" light>
|
||||
<ion-segment-button value="all">All</ion-segment-button>
|
||||
<ion-segment-button value="favorites">Favorites</ion-segment-button>
|
||||
</ion-segment>
|
||||
<button menuToggle>
|
||||
<ion-icon name="menu"></ion-icon>
|
||||
</button>
|
||||
<ion-buttons end>
|
||||
<button>
|
||||
<ion-icon name="search"></ion-icon>
|
||||
</button>
|
||||
</ion-buttons>
|
||||
<button menuToggle="right" right>
|
||||
<ion-icon name="menu"></ion-icon>
|
||||
</button>
|
||||
</ion-navbar>
|
||||
<ion-toolbar>
|
||||
<ion-title>I'm a toolbar</ion-title>
|
||||
</ion-toolbar>
|
||||
|
||||
<ion-content padding>
|
||||
<div padding-bottom>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi scelerisque dolor lacus, ut vehicula arcu dapibus id. Morbi iaculis fermentum blandit. Curabitur tempus, ante et vehicula tempor, urna velit rutrum massa, quis suscipit purus lacus eget est. Sed nisi nulla, tempus id dictum a, cursus ut felis. Aliquam orci magna, rutrum nec tempor ac, fermentum quis eros. Sed ullamcorper felis sit amet tristique sagittis. Nullam sed tempus mi. Morbi sit amet lacinia leo. Nunc facilisis orci id consectetur dignissim. Integer dictum consectetur enim. Vivamus auctor, turpis ut eleifend pharetra, purus magna mattis arcu, vel pharetra tellus orci eget ex. Integer blandit posuere vehicula. Ut ipsum lorem, efficitur vitae eleifend tincidunt, fermentum nec lacus. Ut nec fermentum dui.</div>
|
||||
|
||||
<button block [navPush]="page2" class="e2eCordovaPage2">Go to Page 2</button>
|
||||
<button block secondary (click)="goToTabs()">Go to Tabs</button>
|
||||
</ion-content>
|
||||
25
src/components/app/test/cordova/page2.html
Normal file
25
src/components/app/test/cordova/page2.html
Normal file
@@ -0,0 +1,25 @@
|
||||
<ion-navbar *navbar>
|
||||
<ion-title>Page 2</ion-title>
|
||||
<button menuToggle>
|
||||
<ion-icon name="menu"></ion-icon>
|
||||
</button>
|
||||
<ion-buttons end>
|
||||
<button>
|
||||
<ion-icon name="funnel"></ion-icon>
|
||||
</button>
|
||||
</ion-buttons>
|
||||
<button menuToggle="right" right>
|
||||
<ion-icon name="menu"></ion-icon>
|
||||
</button>
|
||||
</ion-navbar>
|
||||
<ion-toolbar>
|
||||
<ion-title>I'm a toolbar</ion-title>
|
||||
</ion-toolbar>
|
||||
|
||||
<ion-content padding>
|
||||
<div padding-bottom>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi scelerisque dolor lacus, ut vehicula arcu dapibus id. Morbi iaculis fermentum blandit. Curabitur tempus, ante et vehicula tempor, urna velit rutrum massa, quis suscipit purus lacus eget est. Sed nisi nulla, tempus id dictum a, cursus ut felis. Aliquam orci magna, rutrum nec tempor ac, fermentum quis eros. Sed ullamcorper felis sit amet tristique sagittis. Nullam sed tempus mi. Morbi sit amet lacinia leo. Nunc facilisis orci id consectetur dignissim. Integer dictum consectetur enim. Vivamus auctor, turpis ut eleifend pharetra, purus magna mattis arcu, vel pharetra tellus orci eget ex. Integer blandit posuere vehicula. Ut ipsum lorem, efficitur vitae eleifend tincidunt, fermentum nec lacus. Ut nec fermentum dui.</div>
|
||||
|
||||
<button block [navPush]="page1">Go to Page 1</button>
|
||||
<button block [navPush]="page3" class="e2eCordovaPage3">Go to Page 3</button>
|
||||
<button block secondary (click)="openModal()" class="e2eCordovaOpenModal">Open Modal</button>
|
||||
</ion-content>
|
||||
10
src/components/app/test/cordova/page3.html
Normal file
10
src/components/app/test/cordova/page3.html
Normal file
@@ -0,0 +1,10 @@
|
||||
<ion-content padding>
|
||||
<h2>Page 3</h2>
|
||||
<div padding-bottom>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi scelerisque dolor lacus, ut vehicula arcu dapibus id. Morbi iaculis fermentum blandit. Curabitur tempus, ante et vehicula tempor, urna velit rutrum massa, quis suscipit purus lacus eget est. Sed nisi nulla, tempus id dictum a, cursus ut felis. Aliquam orci magna, rutrum nec tempor ac, fermentum quis eros. Sed ullamcorper felis sit amet tristique sagittis. Nullam sed tempus mi. Morbi sit amet lacinia leo. Nunc facilisis orci id consectetur dignissim. Integer dictum consectetur enim. Vivamus auctor, turpis ut eleifend pharetra, purus magna mattis arcu, vel pharetra tellus orci eget ex. Integer blandit posuere vehicula. Ut ipsum lorem, efficitur vitae eleifend tincidunt, fermentum nec lacus. Ut nec fermentum dui.</div>
|
||||
|
||||
<button block (click)="goBack()" class="e2eCordovaGoBack">Go Back</button>
|
||||
</ion-content>
|
||||
|
||||
<ion-toolbar position="bottom">
|
||||
<ion-title>I'm a bottom toolbar</ion-title>
|
||||
</ion-toolbar>
|
||||
5
src/components/app/test/cordova/tabs.html
Normal file
5
src/components/app/test/cordova/tabs.html
Normal file
@@ -0,0 +1,5 @@
|
||||
<ion-tabs>
|
||||
<ion-tab [root]="tab1Root" tabTitle="Page 1" tabIcon="chatbubbles"></ion-tab>
|
||||
<ion-tab [root]="tab2Root" tabTitle="Page 2" tabIcon="map"></ion-tab>
|
||||
<ion-tab [root]="tab3Root" tabTitle="Page 3" tabIcon="person"></ion-tab>
|
||||
</ion-tabs>
|
||||
25
src/components/app/test/gestures/index.ts
Normal file
25
src/components/app/test/gestures/index.ts
Normal file
@@ -0,0 +1,25 @@
|
||||
import {App, Page} from '../../../../../ionic';
|
||||
|
||||
|
||||
@Page({
|
||||
templateUrl: 'main.html'
|
||||
})
|
||||
class E2EPage {
|
||||
|
||||
onTap(ev) {
|
||||
console.log('onTap', ev);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@App({
|
||||
template: '<ion-nav [root]="root"></ion-nav>'
|
||||
})
|
||||
class E2EApp {
|
||||
root;
|
||||
|
||||
constructor() {
|
||||
this.root = E2EPage;
|
||||
}
|
||||
}
|
||||
9
src/components/app/test/gestures/main.html
Normal file
9
src/components/app/test/gestures/main.html
Normal file
@@ -0,0 +1,9 @@
|
||||
<ion-navbar *navbar>
|
||||
<ion-title>Gestures</ion-title>
|
||||
</ion-navbar>
|
||||
|
||||
<ion-content padding>
|
||||
|
||||
<button (tap)="onTap($event)">Tap</button>
|
||||
|
||||
</ion-content>
|
||||
43
src/components/app/test/storage/index.ts
Normal file
43
src/components/app/test/storage/index.ts
Normal file
@@ -0,0 +1,43 @@
|
||||
import {Component} from '@angular/core';
|
||||
import {Control, ControlGroup} from '@angular/common';
|
||||
|
||||
import {App, Storage, LocalStorage, SqlStorage} from '../../../../../ionic';
|
||||
|
||||
@App({
|
||||
templateUrl: 'main.html'
|
||||
})
|
||||
class IonicApp {
|
||||
constructor() {
|
||||
this.local = new Storage(LocalStorage);
|
||||
this.sql = new Storage(SqlStorage);
|
||||
}
|
||||
getLocal() {
|
||||
this.local.get('name').then(value => {
|
||||
alert('Your name is: ' + value);
|
||||
});
|
||||
}
|
||||
setLocal() {
|
||||
let name = prompt('Your name?');
|
||||
|
||||
this.local.set('name', name);
|
||||
}
|
||||
removeLocal() {
|
||||
this.local.remove('name');
|
||||
}
|
||||
|
||||
getSql() {
|
||||
this.sql.get('name').then(value => {
|
||||
alert('Your name is: ' + value);
|
||||
}, (errResult) => {
|
||||
console.error('Unable to get item from SQL db:', errResult);
|
||||
});
|
||||
}
|
||||
setSql() {
|
||||
let name = prompt('Your name?');
|
||||
|
||||
this.sql.set('name', name);
|
||||
}
|
||||
removeSql() {
|
||||
this.sql.remove('name');
|
||||
}
|
||||
}
|
||||
11
src/components/app/test/storage/main.html
Normal file
11
src/components/app/test/storage/main.html
Normal file
@@ -0,0 +1,11 @@
|
||||
<ion-content padding>
|
||||
<h2>Local Storage</h2>
|
||||
<button primary (click)="getLocal()">Get</button>
|
||||
<button primary (click)="setLocal()">Set</button>
|
||||
<button primary (click)="removeLocal()">Remove</button>
|
||||
|
||||
<h2>SQL Storage</h2>
|
||||
<button primary (click)="getSql()">Get</button>
|
||||
<button primary (click)="setSql()">Set</button>
|
||||
<button primary (click)="removeSql()">Remove</button>
|
||||
</ion-content>
|
||||
11
src/components/app/test/typography/index.ts
Normal file
11
src/components/app/test/typography/index.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
import {App, IonicApp} from '../../../../../ionic';
|
||||
|
||||
|
||||
@App({
|
||||
templateUrl: 'main.html'
|
||||
})
|
||||
class E2EApp {
|
||||
constructor(app: IonicApp) {
|
||||
app.setTitle('Basic Buttons');
|
||||
}
|
||||
}
|
||||
36
src/components/app/test/typography/main.html
Normal file
36
src/components/app/test/typography/main.html
Normal file
@@ -0,0 +1,36 @@
|
||||
|
||||
<ion-toolbar>
|
||||
<ion-title>Typography</ion-title>
|
||||
</ion-toolbar>
|
||||
|
||||
<ion-content padding>
|
||||
|
||||
<h1>H1: The quick brown fox jumps over the lazy dog</h1>
|
||||
|
||||
<h2 primary>H2: The quick brown fox jumps over the lazy dog</h2>
|
||||
|
||||
<h3>H3: The quick brown fox jumps over the lazy dog</h3>
|
||||
|
||||
<h4 danger>H4: The quick brown fox jumps over the lazy dog</h4>
|
||||
|
||||
<h5>H5: The quick brown fox jumps over the lazy dog</h5>
|
||||
|
||||
<h6>H6: The quick brown fox jumps over the lazy dog</h6>
|
||||
|
||||
<p>
|
||||
I saw a werewolf with a Chinese menu in his hand.
|
||||
Walking through the <sub danger>streets</sub> of Soho in the rain.
|
||||
He <i primary>was</i> looking for a place called Lee Ho Fook's.
|
||||
Gonna get a <a secondary>big dish of beef chow mein.</a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
He's the hairy-handed gent who ran amuck in Kent.
|
||||
Lately he's been overheard in Mayfair.
|
||||
Better stay away from him.
|
||||
He'll rip your lungs out, Jim.
|
||||
I'd like to meet his tailor.
|
||||
<ion-icon danger name="cut"></ion-icon>
|
||||
</p>
|
||||
|
||||
</ion-content>
|
||||
Reference in New Issue
Block a user