├── .editorconfig
├── .gitignore
├── config.xml
├── ionic.config.json
├── package.json
├── resources
├── android
│ ├── icon
│ │ ├── drawable-hdpi-icon.png
│ │ ├── drawable-ldpi-icon.png
│ │ ├── drawable-mdpi-icon.png
│ │ ├── drawable-xhdpi-icon.png
│ │ ├── drawable-xxhdpi-icon.png
│ │ └── drawable-xxxhdpi-icon.png
│ └── splash
│ │ ├── drawable-land-hdpi-screen.png
│ │ ├── drawable-land-ldpi-screen.png
│ │ ├── drawable-land-mdpi-screen.png
│ │ ├── drawable-land-xhdpi-screen.png
│ │ ├── drawable-land-xxhdpi-screen.png
│ │ ├── drawable-land-xxxhdpi-screen.png
│ │ ├── drawable-port-hdpi-screen.png
│ │ ├── drawable-port-ldpi-screen.png
│ │ ├── drawable-port-mdpi-screen.png
│ │ ├── drawable-port-xhdpi-screen.png
│ │ ├── drawable-port-xxhdpi-screen.png
│ │ └── drawable-port-xxxhdpi-screen.png
├── icon.png
├── ios
│ ├── icon
│ │ ├── icon-40.png
│ │ ├── icon-40@2x.png
│ │ ├── icon-40@3x.png
│ │ ├── icon-50.png
│ │ ├── icon-50@2x.png
│ │ ├── icon-60.png
│ │ ├── icon-60@2x.png
│ │ ├── icon-60@3x.png
│ │ ├── icon-72.png
│ │ ├── icon-72@2x.png
│ │ ├── icon-76.png
│ │ ├── icon-76@2x.png
│ │ ├── icon-83.5@2x.png
│ │ ├── icon-small.png
│ │ ├── icon-small@2x.png
│ │ ├── icon-small@3x.png
│ │ ├── icon.png
│ │ └── icon@2x.png
│ └── splash
│ │ ├── Default-568h@2x~iphone.png
│ │ ├── Default-667h.png
│ │ ├── Default-736h.png
│ │ ├── Default-Landscape-736h.png
│ │ ├── Default-Landscape@2x~ipad.png
│ │ ├── Default-Landscape~ipad.png
│ │ ├── Default-Portrait@2x~ipad.png
│ │ ├── Default-Portrait~ipad.png
│ │ ├── Default@2x~iphone.png
│ │ └── Default~iphone.png
└── splash.png
├── src
├── app
│ ├── app.component.ts
│ ├── app.html
│ ├── app.module.ts
│ ├── app.scss
│ └── main.ts
├── assets
│ ├── icon
│ │ └── favicon.ico
│ └── images
│ │ └── man.jpeg
├── components
│ └── parallax-header
│ │ └── parallax-header.ts
├── declarations.d.ts
├── index.html
├── manifest.json
├── pages
│ └── home
│ │ ├── home.html
│ │ ├── home.scss
│ │ └── home.ts
├── service-worker.js
└── theme
│ └── variables.scss
├── tsconfig.json
└── tslint.json
/.editorconfig:
--------------------------------------------------------------------------------
1 | # EditorConfig helps developers define and maintain consistent coding styles between different editors and IDEs
2 | # editorconfig.org
3 |
4 | root = true
5 |
6 | [*]
7 | indent_style = space
8 | indent_size = 2
9 |
10 | # We recommend you to keep these unchanged
11 | end_of_line = lf
12 | charset = utf-8
13 | trim_trailing_whitespace = true
14 | insert_final_newline = true
15 |
16 | [*.md]
17 | trim_trailing_whitespace = false
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Specifies intentionally untracked files to ignore when using Git
2 | # http://git-scm.com/docs/gitignore
3 |
4 | *~
5 | *.sw[mnpcod]
6 | *.log
7 | *.tmp
8 | *.tmp.*
9 | log.txt
10 | *.sublime-project
11 | *.sublime-workspace
12 | .vscode/
13 | npm-debug.log*
14 |
15 | .idea/
16 | .sass-cache/
17 | .tmp/
18 | .versions/
19 | coverage/
20 | dist/
21 | node_modules/
22 | tmp/
23 | temp/
24 | hooks/
25 | platforms/
26 | plugins/
27 | plugins/android.json
28 | plugins/ios.json
29 | www/
30 | $RECYCLE.BIN/
31 |
32 | .DS_Store
33 | Thumbs.db
34 | UserInterfaceState.xcuserstate
35 |
--------------------------------------------------------------------------------
/config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | ionic2-card-layout
4 | An awesome Ionic/Cordova app.
5 | Ionic Framework Team
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/ionic.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ionic2-card-layout",
3 | "app_id": "",
4 | "type": "ionic-angular"
5 | }
6 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ionic-hello-world",
3 | "author": "Ionic Framework",
4 | "homepage": "http://ionicframework.com/",
5 | "private": true,
6 | "scripts": {
7 | "clean": "ionic-app-scripts clean",
8 | "build": "ionic-app-scripts build",
9 | "ionic:build": "ionic-app-scripts build",
10 | "ionic:serve": "ionic-app-scripts serve"
11 | },
12 | "dependencies": {
13 | "@angular/common": "4.1.2",
14 | "@angular/compiler": "4.1.2",
15 | "@angular/compiler-cli": "4.1.2",
16 | "@angular/core": "4.1.2",
17 | "@angular/forms": "4.1.2",
18 | "@angular/http": "4.1.2",
19 | "@angular/platform-browser": "4.1.2",
20 | "@angular/platform-browser-dynamic": "4.1.2",
21 | "@ionic-native/core": "3.10.2",
22 | "@ionic-native/splash-screen": "3.10.2",
23 | "@ionic-native/status-bar": "3.10.2",
24 | "@ionic/storage": "2.0.1",
25 | "ionic-angular": "3.3.0",
26 | "ionicons": "3.0.0",
27 | "rxjs": "5.1.1",
28 | "sw-toolbox": "3.6.0",
29 | "zone.js": "0.8.11"
30 | },
31 | "devDependencies": {
32 | "@ionic/app-scripts": "1.3.7",
33 | "@ionic/cli-plugin-ionic-angular": "1.3.1",
34 | "typescript": "2.3.3"
35 | },
36 | "cordovaPlugins": [
37 | "cordova-plugin-whitelist",
38 | "cordova-plugin-console",
39 | "cordova-plugin-statusbar",
40 | "cordova-plugin-device",
41 | "cordova-plugin-splashscreen",
42 | "ionic-plugin-keyboard"
43 | ],
44 | "cordovaPlatforms": [
45 | "ios",
46 | {
47 | "platform": "ios",
48 | "version": "",
49 | "locator": "ios"
50 | }
51 | ],
52 | "description": "ionic2-card-layout: An Ionic project"
53 | }
54 |
--------------------------------------------------------------------------------
/resources/android/icon/drawable-hdpi-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/android/icon/drawable-hdpi-icon.png
--------------------------------------------------------------------------------
/resources/android/icon/drawable-ldpi-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/android/icon/drawable-ldpi-icon.png
--------------------------------------------------------------------------------
/resources/android/icon/drawable-mdpi-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/android/icon/drawable-mdpi-icon.png
--------------------------------------------------------------------------------
/resources/android/icon/drawable-xhdpi-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/android/icon/drawable-xhdpi-icon.png
--------------------------------------------------------------------------------
/resources/android/icon/drawable-xxhdpi-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/android/icon/drawable-xxhdpi-icon.png
--------------------------------------------------------------------------------
/resources/android/icon/drawable-xxxhdpi-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/android/icon/drawable-xxxhdpi-icon.png
--------------------------------------------------------------------------------
/resources/android/splash/drawable-land-hdpi-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/android/splash/drawable-land-hdpi-screen.png
--------------------------------------------------------------------------------
/resources/android/splash/drawable-land-ldpi-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/android/splash/drawable-land-ldpi-screen.png
--------------------------------------------------------------------------------
/resources/android/splash/drawable-land-mdpi-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/android/splash/drawable-land-mdpi-screen.png
--------------------------------------------------------------------------------
/resources/android/splash/drawable-land-xhdpi-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/android/splash/drawable-land-xhdpi-screen.png
--------------------------------------------------------------------------------
/resources/android/splash/drawable-land-xxhdpi-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/android/splash/drawable-land-xxhdpi-screen.png
--------------------------------------------------------------------------------
/resources/android/splash/drawable-land-xxxhdpi-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/android/splash/drawable-land-xxxhdpi-screen.png
--------------------------------------------------------------------------------
/resources/android/splash/drawable-port-hdpi-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/android/splash/drawable-port-hdpi-screen.png
--------------------------------------------------------------------------------
/resources/android/splash/drawable-port-ldpi-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/android/splash/drawable-port-ldpi-screen.png
--------------------------------------------------------------------------------
/resources/android/splash/drawable-port-mdpi-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/android/splash/drawable-port-mdpi-screen.png
--------------------------------------------------------------------------------
/resources/android/splash/drawable-port-xhdpi-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/android/splash/drawable-port-xhdpi-screen.png
--------------------------------------------------------------------------------
/resources/android/splash/drawable-port-xxhdpi-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/android/splash/drawable-port-xxhdpi-screen.png
--------------------------------------------------------------------------------
/resources/android/splash/drawable-port-xxxhdpi-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/android/splash/drawable-port-xxxhdpi-screen.png
--------------------------------------------------------------------------------
/resources/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/icon.png
--------------------------------------------------------------------------------
/resources/ios/icon/icon-40.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/ios/icon/icon-40.png
--------------------------------------------------------------------------------
/resources/ios/icon/icon-40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/ios/icon/icon-40@2x.png
--------------------------------------------------------------------------------
/resources/ios/icon/icon-40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/ios/icon/icon-40@3x.png
--------------------------------------------------------------------------------
/resources/ios/icon/icon-50.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/ios/icon/icon-50.png
--------------------------------------------------------------------------------
/resources/ios/icon/icon-50@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/ios/icon/icon-50@2x.png
--------------------------------------------------------------------------------
/resources/ios/icon/icon-60.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/ios/icon/icon-60.png
--------------------------------------------------------------------------------
/resources/ios/icon/icon-60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/ios/icon/icon-60@2x.png
--------------------------------------------------------------------------------
/resources/ios/icon/icon-60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/ios/icon/icon-60@3x.png
--------------------------------------------------------------------------------
/resources/ios/icon/icon-72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/ios/icon/icon-72.png
--------------------------------------------------------------------------------
/resources/ios/icon/icon-72@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/ios/icon/icon-72@2x.png
--------------------------------------------------------------------------------
/resources/ios/icon/icon-76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/ios/icon/icon-76.png
--------------------------------------------------------------------------------
/resources/ios/icon/icon-76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/ios/icon/icon-76@2x.png
--------------------------------------------------------------------------------
/resources/ios/icon/icon-83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/ios/icon/icon-83.5@2x.png
--------------------------------------------------------------------------------
/resources/ios/icon/icon-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/ios/icon/icon-small.png
--------------------------------------------------------------------------------
/resources/ios/icon/icon-small@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/ios/icon/icon-small@2x.png
--------------------------------------------------------------------------------
/resources/ios/icon/icon-small@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/ios/icon/icon-small@3x.png
--------------------------------------------------------------------------------
/resources/ios/icon/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/ios/icon/icon.png
--------------------------------------------------------------------------------
/resources/ios/icon/icon@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/ios/icon/icon@2x.png
--------------------------------------------------------------------------------
/resources/ios/splash/Default-568h@2x~iphone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/ios/splash/Default-568h@2x~iphone.png
--------------------------------------------------------------------------------
/resources/ios/splash/Default-667h.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/ios/splash/Default-667h.png
--------------------------------------------------------------------------------
/resources/ios/splash/Default-736h.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/ios/splash/Default-736h.png
--------------------------------------------------------------------------------
/resources/ios/splash/Default-Landscape-736h.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/ios/splash/Default-Landscape-736h.png
--------------------------------------------------------------------------------
/resources/ios/splash/Default-Landscape@2x~ipad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/ios/splash/Default-Landscape@2x~ipad.png
--------------------------------------------------------------------------------
/resources/ios/splash/Default-Landscape~ipad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/ios/splash/Default-Landscape~ipad.png
--------------------------------------------------------------------------------
/resources/ios/splash/Default-Portrait@2x~ipad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/ios/splash/Default-Portrait@2x~ipad.png
--------------------------------------------------------------------------------
/resources/ios/splash/Default-Portrait~ipad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/ios/splash/Default-Portrait~ipad.png
--------------------------------------------------------------------------------
/resources/ios/splash/Default@2x~iphone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/ios/splash/Default@2x~iphone.png
--------------------------------------------------------------------------------
/resources/ios/splash/Default~iphone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/ios/splash/Default~iphone.png
--------------------------------------------------------------------------------
/resources/splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/resources/splash.png
--------------------------------------------------------------------------------
/src/app/app.component.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 | import { Platform } from 'ionic-angular';
3 | import { StatusBar } from '@ionic-native/status-bar';
4 | import { SplashScreen } from '@ionic-native/splash-screen';
5 |
6 | import { HomePage } from '../pages/home/home';
7 |
8 |
9 | @Component({
10 | templateUrl: 'app.html'
11 | })
12 | export class MyApp {
13 | rootPage = HomePage;
14 |
15 | constructor(platform: Platform, statusBar: StatusBar, splashScreen: SplashScreen) {
16 | platform.ready().then(() => {
17 | // Okay, so the platform is ready and our plugins are available.
18 | // Here you can do any higher level native things you might need.
19 | statusBar.styleDefault();
20 | splashScreen.hide();
21 | });
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/app/app.html:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/app/app.module.ts:
--------------------------------------------------------------------------------
1 | import { BrowserModule } from '@angular/platform-browser';
2 | import { NgModule, ErrorHandler } from '@angular/core';
3 | import { IonicApp, IonicModule, IonicErrorHandler } from 'ionic-angular';
4 | import { SplashScreen } from '@ionic-native/splash-screen';
5 | import { StatusBar } from '@ionic-native/status-bar';
6 |
7 | import { MyApp } from './app.component';
8 | import { HomePage } from '../pages/home/home';
9 | import { ParallaxHeader } from '../components/parallax-header/parallax-header';
10 |
11 | @NgModule({
12 | declarations: [
13 | MyApp,
14 | HomePage,
15 | ParallaxHeader
16 | ],
17 | imports: [
18 | BrowserModule,
19 | IonicModule.forRoot(MyApp)
20 | ],
21 | bootstrap: [IonicApp],
22 | entryComponents: [
23 | MyApp,
24 | HomePage
25 | ],
26 | providers: [
27 | StatusBar,
28 | SplashScreen,
29 | {provide: ErrorHandler, useClass: IonicErrorHandler}
30 | ]
31 | })
32 | export class AppModule {}
33 |
--------------------------------------------------------------------------------
/src/app/app.scss:
--------------------------------------------------------------------------------
1 | // http://ionicframework.com/docs/v2/theming/
2 |
3 |
4 | // App Global Sass
5 | // --------------------------------------------------
6 | // Put style rules here that you want to apply globally. These
7 | // styles are for the entire app and not just one component.
8 | // Additionally, this file can be also used as an entry point
9 | // to import other Sass files to be included in the output CSS.
10 | //
11 | // Shared Sass variables, which can be used to adjust Ionic's
12 | // default Sass variables, belong in "theme/variables.scss".
13 | //
14 | // To declare rules for a specific mode, create a child rule
15 | // for the .md, .ios, or .wp mode classes. The mode class is
16 | // automatically applied to the
element in the app.
17 |
--------------------------------------------------------------------------------
/src/app/main.ts:
--------------------------------------------------------------------------------
1 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
2 |
3 | import { AppModule } from './app.module';
4 |
5 | platformBrowserDynamic().bootstrapModule(AppModule);
6 |
--------------------------------------------------------------------------------
/src/assets/icon/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/src/assets/icon/favicon.ico
--------------------------------------------------------------------------------
/src/assets/images/man.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/joshuamorony/ionic2-card-layout/f0bfdbbef66c0a780a93fba65ad5e4e46aba8bd6/src/assets/images/man.jpeg
--------------------------------------------------------------------------------
/src/components/parallax-header/parallax-header.ts:
--------------------------------------------------------------------------------
1 | import { Directive, ElementRef, Renderer } from '@angular/core';
2 |
3 | @Directive({
4 | selector: '[parallax-header]',
5 | host: {
6 | '(ionScroll)': 'onContentScroll($event)',
7 | '(window:resize)': 'onWindowResize($event)'
8 | }
9 | })
10 | export class ParallaxHeader {
11 |
12 | header: any;
13 | headerHeight: any;
14 | translateAmt: any;
15 | scaleAmt: any;
16 |
17 | constructor(public element: ElementRef, public renderer: Renderer){
18 |
19 | }
20 |
21 | ngOnInit(){
22 |
23 | let content = this.element.nativeElement.getElementsByClassName('scroll-content')[0];
24 | this.header = content.getElementsByClassName('header-image')[0];
25 | let mainContent = content.getElementsByClassName('main-content')[0];
26 |
27 | this.headerHeight = this.header.clientHeight;
28 |
29 | this.renderer.setElementStyle(this.header, 'webkitTransformOrigin', 'center bottom');
30 | this.renderer.setElementStyle(this.header, 'background-size', 'cover');
31 | this.renderer.setElementStyle(mainContent, 'position', 'absolute');
32 |
33 | }
34 |
35 | onWindowResize(ev){
36 | this.headerHeight = this.header.clientHeight;
37 | }
38 |
39 | onContentScroll(ev){
40 |
41 | ev.domWrite(() => {
42 | this.updateParallaxHeader(ev);
43 | });
44 |
45 | }
46 |
47 | updateParallaxHeader(ev){
48 |
49 | if(ev.scrollTop >= 0){
50 | this.translateAmt = ev.scrollTop / 2;
51 | this.scaleAmt = 1;
52 | } else {
53 | this.translateAmt = 0;
54 | this.scaleAmt = -ev.scrollTop / this.headerHeight + 1;
55 | }
56 |
57 | this.renderer.setElementStyle(this.header, 'webkitTransform', 'translate3d(0,'+this.translateAmt+'px,0) scale('+this.scaleAmt+','+this.scaleAmt+')');
58 |
59 | }
60 |
61 | }
62 |
--------------------------------------------------------------------------------
/src/declarations.d.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Declaration files are how the Typescript compiler knows about the type information(or shape) of an object.
3 | They're what make intellisense work and make Typescript know all about your code.
4 |
5 | A wildcard module is declared below to allow third party libraries to be used in an app even if they don't
6 | provide their own type declarations.
7 |
8 | To learn more about using third party libraries in an Ionic app, check out the docs here:
9 | http://ionicframework.com/docs/v2/resources/third-party-libs/
10 |
11 | For more info on type definition files, check out the Typescript docs here:
12 | https://www.typescriptlang.org/docs/handbook/declaration-files/introduction.html
13 | */
14 | declare module '*';
--------------------------------------------------------------------------------
/src/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Ionic App
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/src/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Ionic",
3 | "short_name": "Ionic",
4 | "start_url": "index.html",
5 | "display": "standalone",
6 | "icons": [{
7 | "src": "assets/imgs/logo.png",
8 | "sizes": "512x512",
9 | "type": "image/png"
10 | }],
11 | "background_color": "#4e8ef7",
12 | "theme_color": "#4e8ef7"
13 | }
--------------------------------------------------------------------------------
/src/pages/home/home.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | Gear
18 |
19 |
20 | Clothing
21 |
22 |
23 | Nutrition
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 | Josh Morony
34 | November 5, 1955
35 |
36 |
37 |
38 |
39 |
40 | Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s.
41 |
42 |
43 |
44 |
45 |
49 |
50 |
51 |
55 |
56 |
57 |
58 | 11h ago
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
--------------------------------------------------------------------------------
/src/pages/home/home.scss:
--------------------------------------------------------------------------------
1 | .ios, .md {
2 |
3 | page-home {
4 |
5 | .header-image {
6 | background-image: url(https://ununsplash.imgix.net/photo-1421091242698-34f6ad7fc088?fit=crop&fm=jpg&h=650&q=75&w=950);
7 | height: 40vh;
8 | }
9 |
10 | .main-content {
11 | background-color: map-get($colors, dark);
12 | box-shadow: 0px -1px 13px 1px rgba(0,0,0,0.3);
13 | }
14 |
15 | .scroll-content {
16 | padding-top: 0 !important;
17 | }
18 |
19 | ion-header {
20 | backdrop-filter: blur(8px);
21 | }
22 |
23 | ion-navbar {
24 | opacity: 0.4;
25 | box-shadow: 0px 1px 13px 1px rgba(0,0,0,0.77);
26 | }
27 |
28 | ion-segment {
29 | padding: 0px 12px;
30 | opacity: 0.7;
31 | position: relative;
32 | top: -50px;
33 | }
34 |
35 | ion-segment-button {
36 | border-color: map-get($colors, primary) !important;
37 | color: #fff !important;
38 | }
39 |
40 | ion-card {
41 | background-color: #fff;
42 | width: 100%;
43 | margin: 0;
44 | margin-bottom: 25px;
45 | position: relative;
46 | top: -30px;
47 | }
48 |
49 | ion-card:last-of-type {
50 | margin-bottom: 0 !important;
51 | }
52 |
53 | ion-item {
54 | background-color: #fff;
55 | }
56 |
57 | }
58 |
59 | }
--------------------------------------------------------------------------------
/src/pages/home/home.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 |
3 | import { NavController } from 'ionic-angular';
4 |
5 | @Component({
6 | selector: 'page-home',
7 | templateUrl: 'home.html'
8 | })
9 | export class HomePage {
10 |
11 | cards: any;
12 | category: string = 'gear';
13 |
14 | constructor(public navCtrl: NavController) {
15 |
16 | this.cards = new Array(10);
17 |
18 | }
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/src/service-worker.js:
--------------------------------------------------------------------------------
1 | // tick this to make the cache invalidate and update
2 | const CACHE_VERSION = 1;
3 | const CURRENT_CACHES = {
4 | 'read-through': 'read-through-cache-v' + CACHE_VERSION
5 | };
6 |
7 | self.addEventListener('activate', (event) => {
8 | // Delete all caches that aren't named in CURRENT_CACHES.
9 | // While there is only one cache in this example, the same logic will handle the case where
10 | // there are multiple versioned caches.
11 | const expectedCacheNames = Object.keys(CURRENT_CACHES).map((key) => {
12 | return CURRENT_CACHES[key];
13 | });
14 |
15 | event.waitUntil(
16 | caches.keys().then((cacheNames) => {
17 | return Promise.all(
18 | cacheNames.map((cacheName) => {
19 | if (expectedCacheNames.indexOf(cacheName) === -1) {
20 | // If this cache name isn't present in the array of "expected" cache names, then delete it.
21 | console.log('Deleting out of date cache:', cacheName);
22 | return caches.delete(cacheName);
23 | }
24 | })
25 | );
26 | })
27 | );
28 | });
29 |
30 | // This sample illustrates an aggressive approach to caching, in which every valid response is
31 | // cached and every request is first checked against the cache.
32 | // This may not be an appropriate approach if your web application makes requests for
33 | // arbitrary URLs as part of its normal operation (e.g. a RSS client or a news aggregator),
34 | // as the cache could end up containing large responses that might not end up ever being accessed.
35 | // Other approaches, like selectively caching based on response headers or only caching
36 | // responses served from a specific domain, might be more appropriate for those use cases.
37 | self.addEventListener('fetch', (event) => {
38 |
39 | event.respondWith(
40 | caches.open(CURRENT_CACHES['read-through']).then((cache) => {
41 | return cache.match(event.request).then((response) => {
42 | if (response) {
43 | // If there is an entry in the cache for event.request, then response will be defined
44 | // and we can just return it.
45 |
46 | return response;
47 | }
48 |
49 | // Otherwise, if there is no entry in the cache for event.request, response will be
50 | // undefined, and we need to fetch() the resource.
51 | console.log(' No response for %s found in cache. ' +
52 | 'About to fetch from network...', event.request.url);
53 |
54 | // We call .clone() on the request since we might use it in the call to cache.put() later on.
55 | // Both fetch() and cache.put() "consume" the request, so we need to make a copy.
56 | // (see https://fetch.spec.whatwg.org/#dom-request-clone)
57 | return fetch(event.request.clone()).then((response) => {
58 |
59 | // Optional: add in extra conditions here, e.g. response.type == 'basic' to only cache
60 | // responses from the same domain. See https://fetch.spec.whatwg.org/#concept-response-type
61 | if (response.status < 400 && response.type === 'basic') {
62 | // We need to call .clone() on the response object to save a copy of it to the cache.
63 | // (https://fetch.spec.whatwg.org/#dom-request-clone)
64 | cache.put(event.request, response.clone());
65 | }
66 |
67 | // Return the original response object, which will be used to fulfill the resource request.
68 | return response;
69 | });
70 | }).catch((error) => {
71 | // This catch() will handle exceptions that arise from the match() or fetch() operations.
72 | // Note that a HTTP error response (e.g. 404) will NOT trigger an exception.
73 | // It will return a normal response object that has the appropriate error code set.
74 | console.error(' Read-through caching failed:', error);
75 |
76 | throw error;
77 | });
78 | })
79 | );
80 | });
--------------------------------------------------------------------------------
/src/theme/variables.scss:
--------------------------------------------------------------------------------
1 | // Ionic Variables and Theming. For more info, please see:
2 | // http://ionicframework.com/docs/v2/theming/
3 | $font-path: "../assets/fonts";
4 |
5 | @import "ionic.globals";
6 |
7 |
8 | // Shared Variables
9 | // --------------------------------------------------
10 | // To customize the look and feel of this app, you can override
11 | // the Sass variables found in Ionic's source scss files.
12 | // To view all the possible Ionic variables, see:
13 | // http://ionicframework.com/docs/v2/theming/overriding-ionic-variables/
14 |
15 | $background-color: #3c353c;
16 |
17 | // Named Color Variables
18 | // --------------------------------------------------
19 | // Named colors makes it easy to reuse colors on various components.
20 | // It's highly recommended to change the default colors
21 | // to match your app's branding. Ionic uses a Sass map of
22 | // colors so you can add, rename and remove colors as needed.
23 | // The "primary" color is the only required color in the map.
24 |
25 | $colors: (
26 | primary: #bdc3c7,
27 | secondary: #7f8c8d,
28 | danger: #f53d3d,
29 | light: #fff,
30 | dark: #3c353c
31 | );
32 |
33 |
34 | // App iOS Variables
35 | // --------------------------------------------------
36 | // iOS only Sass variables can go here
37 |
38 |
39 |
40 |
41 | // App Material Design Variables
42 | // --------------------------------------------------
43 | // Material Design only Sass variables can go here
44 |
45 |
46 |
47 |
48 | // App Windows Variables
49 | // --------------------------------------------------
50 | // Windows only Sass variables can go here
51 |
52 |
53 |
54 |
55 | // App Theme
56 | // --------------------------------------------------
57 | // Ionic apps can have different themes applied, which can
58 | // then be future customized. This import comes last
59 | // so that the above variables are used and Ionic's
60 | // default are overridden.
61 |
62 | @import "ionic.theme.default";
63 |
64 |
65 | // Ionicons
66 | // --------------------------------------------------
67 | // The premium icon font for Ionic. For more info, please see:
68 | // http://ionicframework.com/docs/v2/ionicons/
69 |
70 | @import "ionicons";
71 |
72 |
73 | // Fonts
74 | // --------------------------------------------------
75 |
76 | @import "roboto";
77 | @import "noto-sans";
78 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "allowSyntheticDefaultImports": true,
4 | "declaration": false,
5 | "emitDecoratorMetadata": true,
6 | "experimentalDecorators": true,
7 | "lib": [
8 | "dom",
9 | "es2015"
10 | ],
11 | "module": "es2015",
12 | "moduleResolution": "node",
13 | "sourceMap": true,
14 | "target": "es5"
15 | },
16 | "include": [
17 | "src/**/*.ts"
18 | ],
19 | "exclude": [
20 | "node_modules"
21 | ],
22 | "compileOnSave": false,
23 | "atom": {
24 | "rewriteTsconfig": false
25 | }
26 | }
--------------------------------------------------------------------------------
/tslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "rules": {
3 | "no-duplicate-variable": true,
4 | "no-unused-variable": [
5 | true
6 | ]
7 | },
8 | "rulesDirectory": [
9 | "node_modules/tslint-eslint-rules/dist/rules"
10 | ]
11 | }
12 |
--------------------------------------------------------------------------------