ng-class & ng-click
5 |Make the orange box appear using ng-class and ng-click.
6 |├── .gitignore
├── README.md
├── bower.json
├── gulpfile.coffee
├── package.json
└── src
├── afx
├── (Footage)
│ ├── assets
│ │ ├── header-info_01.png
│ │ ├── header-info_02.png
│ │ ├── page-feed.png
│ │ ├── page-profile_01.png
│ │ ├── page-profile_02.png
│ │ ├── page-profile_feed.png
│ │ ├── system-bar.png
│ │ ├── tab-bar_01.png
│ │ └── tab-bar_02.png
│ ├── dribbble
│ │ ├── bottom.png
│ │ ├── bottom_map.png
│ │ ├── full.png
│ │ ├── full_map.png
│ │ ├── top.png
│ │ └── top_map.png
│ ├── full.png
│ ├── full_map.png
│ ├── header-info_01.png
│ ├── header-info_02.png
│ ├── page-feed.png
│ ├── page-profile_01.png
│ ├── page-profile_02.png
│ ├── page-profile_feed.png
│ ├── system-bar.png
│ ├── tab-bar_01.png
│ ├── tab-bar_02.png
│ ├── top.png
│ └── top_map.png
├── autobots_finish.aep
├── autobots_start.aep
├── export
│ └── empty_comp.png
├── screen_01.psd
└── screen_02.psd
├── html
├── e0.html
├── e1.html
├── e2.html
└── e3.html
├── img
├── iphone-status-bar-white.png
└── optimus.jpg
├── index.html
├── js
└── app.js
└── scss
├── partials
├── _base.scss
├── _e1.scss
├── _e2.scss
├── _e3.scss
├── _helpers.scss
├── _setup.scss
└── _variables.scss
└── style.scss
/.gitignore:
--------------------------------------------------------------------------------
1 | bower_components
2 | node_modules
3 | src/afx/pics/*
4 | src/afx/export/00_dribbble_alpha.mov
5 | src/afx/export/00_dribbble.mov
6 | src/afx/export/00_dribbble.psd
7 | src/afx/export/00_dribbble.gif
8 | src/afx/export/render.mp4
9 | www
10 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Interface Animations
2 |
3 | ## After Effects setup
4 | Download and install a 30-day trial of [After Effects](https://creative.adobe.com/products/download/aftereffects). If you already have After Effects CS6, no need to download CC.
5 |
6 | In terminal run the following commands:
7 | ```
8 | $ git clone git@github.com:markgeyer/interface-animations.git
9 | $ cd interface-animations/src/afx
10 | $ open .
11 | ```
12 |
13 | ## AngularJS setup
14 | Download and install [node.js](http://nodejs.org) and [git](http://git-scm.com) if you don't already have these.
15 |
16 | In terminal run the following commands:
17 | ```
18 | $ git clone git@github.com:markgeyer/interface-animations.git
19 | $ cd interface-animations
20 | $ sudo npm install -g bower
21 | ```
22 | Enter your computers password. No worries, this is needed b/c you typed `sudo` :)
23 | ```
24 | $ bower install
25 | $ npm install
26 | $ gulp
27 | ```
28 | Running `gulp` will launch [localhost:3000](http://localhost:3000) that contains the exercises needed.
--------------------------------------------------------------------------------
/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "interface-animations",
3 | "version": "0.0.1",
4 | "private": true,
5 | "ignore": [
6 | "**/.*",
7 | "node_modules",
8 | "bower_components"
9 | ],
10 | "devDependencies": {
11 | "angular": "1.2.23",
12 | "angular-touch": "1.2.23",
13 | "angular-animate": "1.2.23",
14 | "angular-route": "1.2.23",
15 | "fastclick": "~1.0.3",
16 | "jquery": "2.1.1"
17 | }
18 | }
--------------------------------------------------------------------------------
/gulpfile.coffee:
--------------------------------------------------------------------------------
1 | gulp = require 'gulp'
2 | fs = require 'fs'
3 | minifycss = require 'gulp-minify-css'
4 | prefix = require 'gulp-autoprefixer'
5 | sass = require 'gulp-sass'
6 | concat = require 'gulp-concat'
7 | uglify = require 'gulp-uglify'
8 | browserSync = require 'browser-sync'
9 | rimraf = require 'gulp-rimraf'
10 |
11 |
12 | gulp.task 'init', ->
13 | fs.mkdirSync './www' unless fs.existsSync('./www')
14 | fs.mkdirSync './www/css' unless fs.existsSync('./www/css')
15 | fs.mkdirSync './www/js' unless fs.existsSync('./www/js')
16 | gulp.src('./src/img/**').pipe gulp.dest('./www/img')
17 | gulp.src('./src/html/**').pipe gulp.dest('./www')
18 |
19 | gulp.task 'clean', ->
20 | gulp.src('./www', read: false)
21 | .pipe rimraf()
22 |
23 | gulp.task 'html', ->
24 | gulp.src([
25 | './src/*.html'
26 | './src/html/*.html'
27 | ])
28 | .pipe gulp.dest('./www')
29 | .pipe browserSync.reload(stream: true)
30 |
31 | gulp.task 'style', ->
32 | gulp.src([
33 | './node_modules/normalize.css/normalize.css'
34 | './src/scss/*.scss'
35 | ])
36 | .pipe sass()
37 | .pipe prefix('last 1 version', '> 1%', 'ie 10', 'ie 11', 'iOS 6', 'iOS 7', 'Android 4', cascade: true)
38 | .pipe concat('style.css')
39 | .pipe minifycss({keepSpecialComments: 0})
40 | .pipe gulp.dest('./www/css')
41 | .pipe browserSync.reload(stream: true)
42 |
43 | gulp.task 'scripts', ->
44 | gulp.src([
45 | './bower_components/angular/angular.js'
46 | './bower_components/angular-route/angular-route.js'
47 | './bower_components/angular-animate/angular-animate.js'
48 | './bower_components/angular-touch/angular-touch.js'
49 | './bower_components/jquery/dist/jquery.js'
50 | './bower_components/fastclick/lib/fastclick.js'
51 | './src/js/*.js'
52 | ])
53 | .pipe concat('scripts.js')
54 | .pipe uglify()
55 | .pipe gulp.dest('./www/js')
56 | .pipe browserSync.reload(stream: true)
57 |
58 | gulp.task 'browser-sync', ->
59 | browserSync server:
60 | baseDir: './www'
61 |
62 | gulp.task 'default', ['init', 'html', 'style', 'scripts', 'browser-sync'], ->
63 | gulp.watch ['./src/*.html', './src/html/*.html'], ['html']
64 | gulp.watch './src/scss/**/*.scss', ['style']
65 | gulp.watch './bower_components/**/*.js', ['scripts']
66 | gulp.watch './src/js/*.js', ['scripts']
67 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "interface-animations",
3 | "version": "0.0.1",
4 | "repository": {
5 | "type": "git",
6 | "url": "https://github.com/markgeyer/interface-animations"
7 | },
8 | "description": "",
9 | "author": "Mark Geyer",
10 | "license": "ISC",
11 | "dependencies": {
12 | "normalize.css": "^3.0.1"
13 | },
14 | "devDependencies": {
15 | "bower": "^1.3.9",
16 | "browser-sync": "^1.3.3",
17 | "coffee-script": "^1.7.1",
18 | "gulp": "^3.8.7",
19 | "gulp-autoprefixer": "0.0.8",
20 | "gulp-concat": "^2.3.4",
21 | "gulp-minify-css": "^0.3.7",
22 | "gulp-rimraf": "^0.1.0",
23 | "gulp-sass": "^0.7.2",
24 | "gulp-uglify": "^0.3.1"
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/afx/(Footage)/assets/header-info_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markgeyer/interface-animations/1c6f6145abc47d35c17a26b0b9e162da3300be84/src/afx/(Footage)/assets/header-info_01.png
--------------------------------------------------------------------------------
/src/afx/(Footage)/assets/header-info_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markgeyer/interface-animations/1c6f6145abc47d35c17a26b0b9e162da3300be84/src/afx/(Footage)/assets/header-info_02.png
--------------------------------------------------------------------------------
/src/afx/(Footage)/assets/page-feed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markgeyer/interface-animations/1c6f6145abc47d35c17a26b0b9e162da3300be84/src/afx/(Footage)/assets/page-feed.png
--------------------------------------------------------------------------------
/src/afx/(Footage)/assets/page-profile_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markgeyer/interface-animations/1c6f6145abc47d35c17a26b0b9e162da3300be84/src/afx/(Footage)/assets/page-profile_01.png
--------------------------------------------------------------------------------
/src/afx/(Footage)/assets/page-profile_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markgeyer/interface-animations/1c6f6145abc47d35c17a26b0b9e162da3300be84/src/afx/(Footage)/assets/page-profile_02.png
--------------------------------------------------------------------------------
/src/afx/(Footage)/assets/page-profile_feed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markgeyer/interface-animations/1c6f6145abc47d35c17a26b0b9e162da3300be84/src/afx/(Footage)/assets/page-profile_feed.png
--------------------------------------------------------------------------------
/src/afx/(Footage)/assets/system-bar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markgeyer/interface-animations/1c6f6145abc47d35c17a26b0b9e162da3300be84/src/afx/(Footage)/assets/system-bar.png
--------------------------------------------------------------------------------
/src/afx/(Footage)/assets/tab-bar_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markgeyer/interface-animations/1c6f6145abc47d35c17a26b0b9e162da3300be84/src/afx/(Footage)/assets/tab-bar_01.png
--------------------------------------------------------------------------------
/src/afx/(Footage)/assets/tab-bar_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markgeyer/interface-animations/1c6f6145abc47d35c17a26b0b9e162da3300be84/src/afx/(Footage)/assets/tab-bar_02.png
--------------------------------------------------------------------------------
/src/afx/(Footage)/dribbble/bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markgeyer/interface-animations/1c6f6145abc47d35c17a26b0b9e162da3300be84/src/afx/(Footage)/dribbble/bottom.png
--------------------------------------------------------------------------------
/src/afx/(Footage)/dribbble/bottom_map.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markgeyer/interface-animations/1c6f6145abc47d35c17a26b0b9e162da3300be84/src/afx/(Footage)/dribbble/bottom_map.png
--------------------------------------------------------------------------------
/src/afx/(Footage)/dribbble/full.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markgeyer/interface-animations/1c6f6145abc47d35c17a26b0b9e162da3300be84/src/afx/(Footage)/dribbble/full.png
--------------------------------------------------------------------------------
/src/afx/(Footage)/dribbble/full_map.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markgeyer/interface-animations/1c6f6145abc47d35c17a26b0b9e162da3300be84/src/afx/(Footage)/dribbble/full_map.png
--------------------------------------------------------------------------------
/src/afx/(Footage)/dribbble/top.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markgeyer/interface-animations/1c6f6145abc47d35c17a26b0b9e162da3300be84/src/afx/(Footage)/dribbble/top.png
--------------------------------------------------------------------------------
/src/afx/(Footage)/dribbble/top_map.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markgeyer/interface-animations/1c6f6145abc47d35c17a26b0b9e162da3300be84/src/afx/(Footage)/dribbble/top_map.png
--------------------------------------------------------------------------------
/src/afx/(Footage)/full.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markgeyer/interface-animations/1c6f6145abc47d35c17a26b0b9e162da3300be84/src/afx/(Footage)/full.png
--------------------------------------------------------------------------------
/src/afx/(Footage)/full_map.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markgeyer/interface-animations/1c6f6145abc47d35c17a26b0b9e162da3300be84/src/afx/(Footage)/full_map.png
--------------------------------------------------------------------------------
/src/afx/(Footage)/header-info_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markgeyer/interface-animations/1c6f6145abc47d35c17a26b0b9e162da3300be84/src/afx/(Footage)/header-info_01.png
--------------------------------------------------------------------------------
/src/afx/(Footage)/header-info_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markgeyer/interface-animations/1c6f6145abc47d35c17a26b0b9e162da3300be84/src/afx/(Footage)/header-info_02.png
--------------------------------------------------------------------------------
/src/afx/(Footage)/page-feed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markgeyer/interface-animations/1c6f6145abc47d35c17a26b0b9e162da3300be84/src/afx/(Footage)/page-feed.png
--------------------------------------------------------------------------------
/src/afx/(Footage)/page-profile_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markgeyer/interface-animations/1c6f6145abc47d35c17a26b0b9e162da3300be84/src/afx/(Footage)/page-profile_01.png
--------------------------------------------------------------------------------
/src/afx/(Footage)/page-profile_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markgeyer/interface-animations/1c6f6145abc47d35c17a26b0b9e162da3300be84/src/afx/(Footage)/page-profile_02.png
--------------------------------------------------------------------------------
/src/afx/(Footage)/page-profile_feed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markgeyer/interface-animations/1c6f6145abc47d35c17a26b0b9e162da3300be84/src/afx/(Footage)/page-profile_feed.png
--------------------------------------------------------------------------------
/src/afx/(Footage)/system-bar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markgeyer/interface-animations/1c6f6145abc47d35c17a26b0b9e162da3300be84/src/afx/(Footage)/system-bar.png
--------------------------------------------------------------------------------
/src/afx/(Footage)/tab-bar_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markgeyer/interface-animations/1c6f6145abc47d35c17a26b0b9e162da3300be84/src/afx/(Footage)/tab-bar_01.png
--------------------------------------------------------------------------------
/src/afx/(Footage)/tab-bar_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markgeyer/interface-animations/1c6f6145abc47d35c17a26b0b9e162da3300be84/src/afx/(Footage)/tab-bar_02.png
--------------------------------------------------------------------------------
/src/afx/(Footage)/top.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markgeyer/interface-animations/1c6f6145abc47d35c17a26b0b9e162da3300be84/src/afx/(Footage)/top.png
--------------------------------------------------------------------------------
/src/afx/(Footage)/top_map.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markgeyer/interface-animations/1c6f6145abc47d35c17a26b0b9e162da3300be84/src/afx/(Footage)/top_map.png
--------------------------------------------------------------------------------
/src/afx/autobots_finish.aep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markgeyer/interface-animations/1c6f6145abc47d35c17a26b0b9e162da3300be84/src/afx/autobots_finish.aep
--------------------------------------------------------------------------------
/src/afx/autobots_start.aep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markgeyer/interface-animations/1c6f6145abc47d35c17a26b0b9e162da3300be84/src/afx/autobots_start.aep
--------------------------------------------------------------------------------
/src/afx/export/empty_comp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markgeyer/interface-animations/1c6f6145abc47d35c17a26b0b9e162da3300be84/src/afx/export/empty_comp.png
--------------------------------------------------------------------------------
/src/afx/screen_01.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markgeyer/interface-animations/1c6f6145abc47d35c17a26b0b9e162da3300be84/src/afx/screen_01.psd
--------------------------------------------------------------------------------
/src/afx/screen_02.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markgeyer/interface-animations/1c6f6145abc47d35c17a26b0b9e162da3300be84/src/afx/screen_02.psd
--------------------------------------------------------------------------------
/src/html/e0.html:
--------------------------------------------------------------------------------
1 | Please choose an exercise ☺ Make the orange box appear using ng-class and ng-click. Let's swipe to see some additional info. You can do this by adding ng-swipe-left and ng-swipe-right to the header below. Then add an ng-class to each slide and indicator to call out the CSS class and expression. Show the provided JSON data using ng-repeat and filter the results using the input as the ng-model. Add ng-show and ng-hide animations.Welcome
3 | ng-class & ng-click
5 | ng-swipe-left & ng-swipe-right
5 |
47 |
48 |
49 |
50 |
51 | ng-repeat & ng-model
5 |
11 |
15 |