First Commit

This commit is contained in:
Lorenzo Iovino 2016-01-29 13:14:27 +01:00
commit feb864dc47
170 changed files with 4671 additions and 0 deletions

3
hackatonApp/.bowerrc Normal file
View file

@ -0,0 +1,3 @@
{
"directory": "www/lib"
}

32
hackatonApp/.gitignore vendored Normal file
View file

@ -0,0 +1,32 @@
# Specifies intentionally untracked files to ignore when using Git
# http://git-scm.com/docs/gitignore
google_play_assets/
apple_assets/
showcase/
node_modules/
platforms/
plugins/
hooks/after_prepare/030_clean_dev_files_from_platforms.js
hooks/after_prepare/040_move_dist_files_to_platforms.js
hooks/after_prepare/050_clean_obfuscation.js
hooks/after_prepare/060_add_platform_class.js
tmp/
dist/
www/dist/
www/fonts/
.DS_Store
www/js/templates.js
www/js/views.js
www/css/ionic.app.min.css
www/css/ionic.app.css
www/lib/
www/js/tracking-config.js
envato/
RELEASE/
UPLOAD/
scss_copy/
gulp-tasks/distribution.copy.js
APK/

63
hackatonApp/CHANGELOG.md Normal file
View file

@ -0,0 +1,63 @@
Version 1.3 - released 8 August 2015
## Misc
- Improved and eased build process
- Update Ionic Version to v.1.0.1
- Update cordova plugins
- Update ngcordova
- Added whitelist plugins
- Added Content-Security-Policy
- Add Sass sourcemaps to ease debugging of the app
- Refactor project structure
- Added youtube javascript API to manage youtube videos
## Bug fixes
- Image picker plugin error on android build
- Geolocation undefined coords
## New Features
- Preload images (improves UX as important images are preloaded using a loader before showing them to the user)
- Multimedia background (change auth background with a Multimedia one which enables you to use gifs or images as full backgrounds)
- New directive in order to open all external links using inAppBrowser plugin
## Styles
- Refactor Sass files structure
- Improved and eased customization of the app (Added theme.variables.scss with different color schemes)
## Documentation
- Brand new documentation!
Version 1.2.0
## Misc
- Improved and ease build process
- Update Ionic Version to v.1.0.0
Version 1.1.0
## New Features
- Bookmark functionality to feeds and wordpress posts
- Tinder cards
- Profile page
- Image picker
- iAd - Apple mobile ad service
## Others
- Update Ionic version to 1.0.0-rc.1
- Added DOCUMENTATION.md with the documentation link
- Refactoring of some controlleres and services
- Added config.js with the app configurations
- Changed href for ui-sref
- Created Layouts section
- Remove ionicons dependency as they are now part of ionic 1.0.0-rc.1
## Bugs
- Fixed push notifications bug for iOS
- iframe content scrolling unstable in ionic, waiting for a fix until enabling it again
## Wordpress:
- Support for embeding audio posts
- Changed WP blog source
- Improves to avoid CORS issues
- Removed fixed image on posts

View file

@ -0,0 +1 @@
You can find ionFullApp documentation here: https://docs.google.com/document/d/1Oh0EfqUCzzPoUdHiSFcxykTy65afY7g4mHz3wXtBabo/edit?usp=sharing

50
hackatonApp/README.md Normal file
View file

@ -0,0 +1,50 @@
Your Ionic project is ready to go! Some quick tips:
* cd into your project:
```
cd ionFullApp
```
* Setup this project to use Sass:
```
ionic setup sass
```
* Develop in the browser with live reload:
```
ionic serve
```
* Add a platform (ios or Android):
```
ionic platform add ios [android]
```
Note: iOS development requires OS X currently
See the Android Platform Guide for full Android installation instructions:
https://cordova.apache.org/docs/en/edge/guide_platforms_android_index.md.html
* Build your app:
```
ionic build <PLATFORM>
```
* Simulate your app:
```
ionic emulate <PLATFORM>
```
* Run your app on a device:
```
ionic run <PLATFORM>
```
* Package an app using Ionic package service:
```
ionic package <MODE> <PLATFORM>
```
For more help use ```ionic --help``` or visit the Ionic docs: http://ionicframework.com/docs
You can find the documentation here: http://bit.ly/ionicthemes-ionfullapp

21
hackatonApp/bower.json Normal file
View file

@ -0,0 +1,21 @@
{
"name": "ionFullApp",
"private": "true",
"devDependencies": {
"ionic": "driftyco/ionic-bower#1.0.1"
},
"dependencies": {
"underscore": "~1.8.3",
"ngmap": "~1.9.0",
"angular-moment": "~0.10.1",
"angular-resource": "~1.3.11",
"ngCordova": "~0.1.17-alpha",
"angular-slugify": "williamboman/angular-slugify",
"ionic-contrib-tinder-cards": "*",
"bourbon": "~4.2.3",
"angular-youtube-mb": "~1.1.0"
},
"resolutions": {
"angular": "~1.4.0"
}
}

81
hackatonApp/config.xml Normal file
View file

@ -0,0 +1,81 @@
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.startapplabs.ionFullApp" version="1.3.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>ionFullApp</name>
<description>
An Ionic Framework and Cordova project.
</description>
<author email="envato@startapplabs.com" href="http://startapplabs.com/">
StartApp Labs
</author>
<content src="index.html" />
<access origin="*" />
<preference name="webviewbounce" value="false" />
<preference name="UIWebViewBounce" value="false" />
<preference name="DisallowOverscroll" value="true" />
<preference name="BackupWebStorage" value="none" />
<preference name="Orientation" value="portrait" />
<preference name="SplashScreen" value="screen"/>
<preference name="SplashScreenDelay" value="3000"/>
<feature name="StatusBar">
<param name="ios-package" onload="true" value="CDVStatusBar" />
</feature>
<platform name="android">
<icon density="ldpi" src="resources/android/icon/drawable-ldpi-icon.png" />
<icon density="mdpi" src="resources/android/icon/drawable-mdpi-icon.png" />
<icon density="hdpi" src="resources/android/icon/drawable-hdpi-icon.png" />
<icon density="xhdpi" src="resources/android/icon/drawable-xhdpi-icon.png" />
<icon density="xxhdpi" src="resources/android/icon/drawable-xxhdpi-icon.png" />
<icon density="xxxhdpi" src="resources/android/icon/drawable-xxxhdpi-icon.png" />
<splash density="port-ldpi" src="resources/android/splash/drawable-port-ldpi-screen.png" />
<splash density="port-mdpi" src="resources/android/splash/drawable-port-mdpi-screen.png" />
<splash density="port-hdpi" src="resources/android/splash/drawable-port-hdpi-screen.png" />
<splash density="port-xhdpi" src="resources/android/splash/drawable-port-xhdpi-screen.png" />
<splash density="port-xxhdpi" src="resources/android/splash/drawable-port-xxhdpi-screen.png" />
<splash density="port-xxxhdpi" src="resources/android/splash/drawable-port-xxxhdpi-screen.png" />
</platform>
<platform name="ios">
<icon height="57" src="resources/ios/icon/icon.png" width="57" />
<icon height="114" src="resources/ios/icon/icon@2x.png" width="114" />
<icon height="40" src="resources/ios/icon/icon-40.png" width="40" />
<icon height="80" src="resources/ios/icon/icon-40@2x.png" width="80" />
<icon height="50" src="resources/ios/icon/icon-50.png" width="50" />
<icon height="100" src="resources/ios/icon/icon-50@2x.png" width="100" />
<icon height="60" src="resources/ios/icon/icon-60.png" width="60" />
<icon height="120" src="resources/ios/icon/icon-60@2x.png" width="120" />
<icon height="180" src="resources/ios/icon/icon-60@3x.png" width="180" />
<icon height="72" src="resources/ios/icon/icon-72.png" width="72" />
<icon height="144" src="resources/ios/icon/icon-72@2x.png" width="144" />
<icon height="76" src="resources/ios/icon/icon-76.png" width="76" />
<icon height="152" src="resources/ios/icon/icon-76@2x.png" width="152" />
<icon height="29" src="resources/ios/icon/icon-small.png" width="29" />
<icon height="58" src="resources/ios/icon/icon-small@2x.png" width="58" />
<icon height="87" src="resources/ios/icon/icon-small@3x.png" width="87" />
<splash height="1136" src="resources/ios/splash/Default-568h@2x~iphone.png" width="640" />
<splash height="1334" src="resources/ios/splash/Default-667h.png" width="750" />
<splash height="2208" src="resources/ios/splash/Default-736h.png" width="1242" />
<splash height="2048" src="resources/ios/splash/Default-Portrait@2x~ipad.png" width="1536" />
<splash height="1024" src="resources/ios/splash/Default-Portrait~ipad.png" width="768" />
<splash height="960" src="resources/ios/splash/Default@2x~iphone.png" width="640" />
<splash height="480" src="resources/ios/splash/Default~iphone.png" width="320" />
</platform>
<icon src="resources/android/icon/drawable-xhdpi-icon.png" />
<allow-navigation href="*" />
<allow-intent href="*" />
<plugin name="cordova-plugin-console" spec="^1.0.1" />
<plugin name="cordova-plugin-device" spec="^1.0.1" />
<plugin name="cordova-plugin-dialogs" spec="^1.1.1" />
<plugin name="cordova-plugin-globalization" spec="^1.0.1" />
<plugin name="cordova-plugin-extension" spec="^1.1.4" />
<plugin name="com.synconset.imagepicker" spec="https://github.com/startapplabs/cordova-imagePicker.git" />
<plugin name="nl.x-services.plugins.socialsharing" spec="^4.3.19" />
<plugin name="cordova-plugin-inappbrowser" spec="^1.0.1" />
<plugin name="com.rjfun.cordova.iad" spec="^2.0.4" />
<plugin name="cordova-plugin-admobpro" spec="^2.8.3" />
<plugin name="cordova-plugin-whitelist" spec="^1.0.0" />
<plugin name="de.appplant.cordova.plugin.email-composer" spec="https://github.com/katzer/cordova-plugin-email-composer.git" />
<plugin name="org.pushandplay.cordova.apprate" spec="^1.1.7" />
<plugin name="com.phonegap.plugins.PushPlugin" spec="https://github.com/phonegap-build/PushPlugin.git" />
<plugin name="com.ionic.keyboard" spec="https://github.com/driftyco/ionic-plugins-keyboard.git" />
<plugin name="cordova-plugin-geolocation" spec="^1.0.1" />
<plugin name="cordova-plugin-splashscreen" spec="^2.1.0" />
</widget>

View file

@ -0,0 +1,56 @@
var gulp = require('gulp');
var gutil = require('gulp-util');
var bower = require('bower');
var sass = require('gulp-sass');
var sh = require('shelljs');
var sourcemaps = require('gulp-sourcemaps');
var templateCache = require('gulp-angular-templatecache');
var paths = {
sass: ['./scss/**/*.scss'],
templatecache: ['./www/views/**/*.html']
};
gulp.task('sass', function(done) {
gulp.src('./scss/ionic.app.scss')
.pipe(sourcemaps.init())
.pipe(sass({
errLogToConsole: true
}))
.pipe(sourcemaps.write())
.pipe(gulp.dest('./www/css/'))
.on('end', done);
});
gulp.task('templatecache', function (done) {
gulp.src(paths.templatecache)
.pipe(templateCache({standalone:true, filename:'views.js', module:'your_app_name.views', root:'views/'}))
.pipe(gulp.dest('./www/js/'))
.on('end', done);
});
gulp.task('watch', function() {
gulp.watch(paths.sass, ['sass']);
gulp.watch(paths.templatecache, ['templatecache']);
});
gulp.task('install', ['git-check'], function() {
return bower.commands.install()
.on('log', function(data) {
gutil.log('bower', gutil.colors.cyan(data.id), data.message);
});
});
gulp.task('git-check', function(done) {
if (!sh.which('git')) {
console.log(
' ' + gutil.colors.red('Git is not installed.'),
'\n Git, the version control system, is required to download Ionic.',
'\n Download git here:', gutil.colors.cyan('http://git-scm.com/downloads') + '.',
'\n Once git is installed, run \'' + gutil.colors.cyan('gulp install') + '\' again.'
);
process.exit(1);
}
done();
});

6
hackatonApp/gulpfile.js Normal file
View file

@ -0,0 +1,6 @@
var gulp = require('gulp');
var requireDir = require('require-dir');
requireDir('./gulp-tasks');
gulp.task('default', ['sass', 'templatecache']);

View file

@ -0,0 +1,83 @@
<!--
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
-->
# Cordova Hooks
This directory may contain scripts used to customize cordova commands. This
directory used to exist at `.cordova/hooks`, but has now been moved to the
project root. Any scripts you add to these directories will be executed before
and after the commands corresponding to the directory name. Useful for
integrating your own build systems or integrating with version control systems.
__Remember__: Make your scripts executable.
## Hook Directories
The following subdirectories will be used for hooks:
after_build/
after_compile/
after_docs/
after_emulate/
after_platform_add/
after_platform_rm/
after_platform_ls/
after_plugin_add/
after_plugin_ls/
after_plugin_rm/
after_plugin_search/
after_prepare/
after_run/
after_serve/
before_build/
before_compile/
before_docs/
before_emulate/
before_platform_add/
before_platform_rm/
before_platform_ls/
before_plugin_add/
before_plugin_ls/
before_plugin_rm/
before_plugin_search/
before_prepare/
before_run/
before_serve/
pre_package/ <-- Windows 8 and Windows Phone only.
## Script Interface
All scripts are run from the project's root directory and have the root directory passes as the first argument. All other options are passed to the script using environment variables:
* CORDOVA_VERSION - The version of the Cordova-CLI.
* CORDOVA_PLATFORMS - Comma separated list of platforms that the command applies to (e.g.: android, ios).
* CORDOVA_PLUGINS - Comma separated list of plugin IDs that the command applies to (e.g.: org.apache.cordova.file, org.apache.cordova.file-transfer)
* CORDOVA_HOOK - Path to the hook that is being executed.
* CORDOVA_CMDLINE - The exact command-line arguments passed to cordova (e.g.: cordova run ios --emulate)
If a script returns a non-zero exit code, then the parent cordova command will be aborted.
## Writing hooks
We highly recommend writting your hooks using Node.js so that they are
cross-platform. Some good examples are shown here:
[http://devgirl.org/2013/11/12/three-hooks-your-cordovaphonegap-project-needs/](http://devgirl.org/2013/11/12/three-hooks-your-cordovaphonegap-project-needs/)

View file

@ -0,0 +1,94 @@
#!/usr/bin/env node
// Add Platform Class
// v1.0
// Automatically adds the platform class to the body tag
// after the `prepare` command. By placing the platform CSS classes
// directly in the HTML built for the platform, it speeds up
// rendering the correct layout/style for the specific platform
// instead of waiting for the JS to figure out the correct classes.
var fs = require('fs');
var path = require('path');
var rootdir = process.argv[2];
function addPlatformBodyTag(indexPath, platform) {
// add the platform class to the body tag
try {
var platformClass = 'platform-' + platform;
var cordovaClass = 'platform-cordova platform-webview';
var html = fs.readFileSync(indexPath, 'utf8');
var bodyTag = findBodyTag(html);
if(!bodyTag) return; // no opening body tag, something's wrong
if(bodyTag.indexOf(platformClass) > -1) return; // already added
var newBodyTag = bodyTag;
var classAttr = findClassAttr(bodyTag);
if(classAttr) {
// body tag has existing class attribute, add the classname
var endingQuote = classAttr.substring(classAttr.length-1);
var newClassAttr = classAttr.substring(0, classAttr.length-1);
newClassAttr += ' ' + platformClass + ' ' + cordovaClass + endingQuote;
newBodyTag = bodyTag.replace(classAttr, newClassAttr);
} else {
// add class attribute to the body tag
newBodyTag = bodyTag.replace('>', ' class="' + platformClass + ' ' + cordovaClass + '">');
}
html = html.replace(bodyTag, newBodyTag);
fs.writeFileSync(indexPath, html, 'utf8');
process.stdout.write('add to body class: ' + platformClass + '\n');
} catch(e) {
process.stdout.write(e);
}
}
function findBodyTag(html) {
// get the body tag
try{
return html.match(/<body(?=[\s>])(.*?)>/gi)[0];
}catch(e){}
}
function findClassAttr(bodyTag) {
// get the body tag's class attribute
try{
return bodyTag.match(/ class=["|'](.*?)["|']/gi)[0];
}catch(e){}
}
if (rootdir) {
// go through each of the platform directories that have been prepared
var platforms = (process.env.CORDOVA_PLATFORMS ? process.env.CORDOVA_PLATFORMS.split(',') : []);
for(var x=0; x<platforms.length; x++) {
// open up the index.html file at the www root
try {
var platform = platforms[x].trim().toLowerCase();
var indexPath;
if(platform == 'android') {
indexPath = path.join('platforms', platform, 'assets', 'www', 'index.html');
} else {
indexPath = path.join('platforms', platform, 'www', 'index.html');
}
if(fs.existsSync(indexPath)) {
addPlatformBodyTag(indexPath, platform);
}
} catch(e) {
process.stdout.write(e);
}
}
}

View file

@ -0,0 +1,28 @@
#!/usr/bin/env node
/**
* After prepare, files are copied to the platforms/ios and platforms/android folders.
* Lets clean up some of those files that arent needed with this hook.
*/
var fs = require('fs');
var path = require('path');
var deleteFolderRecursive = function(removePath) {
if( fs.existsSync(removePath) ) {
fs.readdirSync(removePath).forEach(function(file,index){
var curPath = path.join(removePath, file);
if(fs.lstatSync(curPath).isDirectory()) { // recurse
deleteFolderRecursive(curPath);
} else { // delete file
fs.unlinkSync(curPath);
}
});
fs.rmdirSync(removePath);
}
};
var iosPlatformsDir = path.resolve(__dirname, '../../platforms/ios/www/lib/ionic/scss');
var androidPlatformsDir = path.resolve(__dirname, '../../platforms/android/assets/www/lib/ionic/scss');
deleteFolderRecursive(iosPlatformsDir);
deleteFolderRecursive(androidPlatformsDir);

View file

@ -0,0 +1,23 @@
#!/usr/bin/env node
/**
* On a fresh clone, the local platforms/ and plugins/ directories will be
* missing, so ensure they get created before the first platform is added.
*/
var fs = require('fs');
var path = require('path');
var platformsDir = path.resolve(__dirname, '../../platforms');
var pluginsDir = path.resolve(__dirname, '../../plugins');
try {
fs.mkdirSync(platformsDir, function (err) {
if (err) { console.error(err); }
});
} catch(ex) {}
try {
fs.mkdirSync(pluginsDir, function (err) {
if (err) { console.error(err); }
});
} catch(ex) {}

View file

@ -0,0 +1,72 @@
#!/usr/bin/env node
var fs = require('fs');
var path = require('path');
var jshint = require('jshint').JSHINT;
var async = require('async');
var foldersToProcess = [
'js'
];
foldersToProcess.forEach(function(folder) {
processFiles("www/" + folder);
});
function processFiles(dir, callback) {
var errorCount = 0;
fs.readdir(dir, function(err, list) {
if (err) {
console.log('processFiles err: ' + err);
return;
}
async.eachSeries(list, function(file, innercallback) {
file = dir + '/' + file;
fs.stat(file, function(err, stat) {
if(!stat.isDirectory()) {
if(path.extname(file) === ".js") {
lintFile(file, function(hasError) {
if(hasError) {
errorCount++;
}
innercallback();
});
} else {
innercallback();
}
} else {
innercallback();
}
});
}, function(error) {
if(errorCount > 0) {
process.exit(1);
}
});
});
}
function lintFile(file, callback) {
console.log("Linting " + file);
fs.readFile(file, function(err, data) {
if(err) {
console.log('Error: ' + err);
return;
}
if(jshint(data.toString())) {
console.log('File ' + file + ' has no errors.');
console.log('-----------------------------------------');
callback(false);
} else {
console.log('Errors in file ' + file);
var out = jshint.data(),
errors = out.errors;
for(var j = 0; j < errors.length; j++) {
console.log(errors[j].line + ':' + errors[j].character + ' -> ' + errors[j].reason + ' -> ' +
errors[j].evidence);
}
console.log('-----------------------------------------');
callback(true);
}
});
}

14
hackatonApp/ionic.project Normal file
View file

@ -0,0 +1,14 @@
{
"name": "ionFullApp",
"app_id": "",
"gulpStartupTasks": [
"sass",
"templatecache",
"watch"
],
"watchPatterns": [
"www/**/*",
"!www/lib/**/*"
],
"documentRoot": "www"
}

56
hackatonApp/package.json Normal file
View file

@ -0,0 +1,56 @@
{
"name": "ionfullapp",
"version": "1.2.0",
"description": "ionFullApp: An Ionic starter project",
"dependencies": {
"async": "^1.4.0",
"bower": "^1.3.3",
"gulp": "^3.5.6",
"gulp-angular-templatecache": "^1.5.0",
"gulp-sass": "^1.3.3",
"gulp-sourcemaps": "^1.5.2",
"gulp-util": "^2.2.14",
"require-dir": "^0.3.0",
"shelljs": "^0.3.0"
},
"devDependencies": {
"del": "^1.2.0",
"gulp-flatten": "^0.1.1",
"gulp-if": "^1.2.5",
"gulp-json-editor": "^2.2.1",
"gulp-minify-css": "^1.2.0",
"gulp-ng-annotate": "^1.1.0",
"gulp-ng-constant": "^0.3.0",
"gulp-preprocess": "^1.2.0",
"gulp-rename": "^1.2.2",
"gulp-shell": "^0.4.2",
"gulp-uglify": "^1.2.0",
"gulp-useref": "^1.2.0",
"jshint": "^2.8.0",
"minimist": "^1.1.2",
"mv": "^2.1.1"
},
"cordovaPlugins": [
"https://github.com/phonegap-build/PushPlugin.git",
"com.ionic.keyboard",
"org.pushandplay.cordova.apprate",
"https://github.com/katzer/cordova-plugin-email-composer.git",
"cordova-plugin-extension",
"cordova-plugin-console@^1.0.1",
"cordova-plugin-device@^1.0.1",
"cordova-plugin-dialogs@^1.1.1",
"cordova-plugin-globalization@^1.0.1",
"cordova-plugin-whitelist@1.0.0",
"cordova-plugin-admobpro",
"com.rjfun.cordova.iad",
"cordova-plugin-inappbrowser",
"nl.x-services.plugins.socialsharing",
"com.synconset.imagepicker",
"cordova-plugin-geolocation",
"cordova-plugin-splashscreen"
],
"cordovaPlatforms": [
"ios",
"android"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 234 KiB

View file

@ -0,0 +1,73 @@
.auth-outer
{
background-color: transparent !important;
ion-view
{
background-color: transparent;
box-shadow: none !important; // Need to set this with important to prevent awefull vertical line when transitioning
}
ion-header-bar
{
background-color: transparent;
*
{
color: $auth-color;
}
}
}
.auth-view
{
.row
{
height: 100%;
}
.bottom-content
{
padding-top: 0px;
border: none;
.button
{
margin: 0px;
font-weight: bold;
}
}
.alternative-actions
{
margin: 0px 10px;
.button
{
padding: 0px;
font-size: 14px;
}
.sign-up
{
float: right;
}
}
}
.toggle-view-anchor
{
height: $line-height-computed + $font-size-base;
line-height: $line-height-computed + $font-size-base;
position: absolute;
right: 0px;
text-transform: uppercase;
font-size: 24px;
font-weight: 500;
color: $show-hide-password-color;
*
{
color: $show-hide-password-color;
}
}

View file

@ -0,0 +1,7 @@
$auth-color: #FFFFFF;
$show-hide-password-color: lighten(#444444, 25%);
$auth-tabs-highlight: $theme-color-1;
$auth-tabs-bg: $theme-color-3;
$auth-tabs-color: darken($auth-color, 10%);
$auth-login-btn-bg: rgba($theme-color-1, .8);
$auth-signup-btn-bg: rgba($theme-color-2, .8);

View file

@ -0,0 +1,7 @@
.forgot-password-view
{
.forgot-password-container
{
margin-bottom: 0px;
}
}

View file

@ -0,0 +1,66 @@
.login-view
{
// Fix tabs animation on iOS
// Fix initial blink before angular loaded: http://stackoverflow.com/a/14076004/1116959
[ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak
{
display: none !important;
}
.tab-content.ng-hide
{
display: none !important;
}
.tab-content.ng-hide-add.ng-hide-add-active,
.tab-content.ng-hide-remove.ng-hide-remove-active
{
@include transition(all 0s ease);
}
.tabs
{
.tab-item
{
font-weight: bold;
text-transform: uppercase;
background: $auth-tabs-bg;
color: $auth-tabs-color;
@include transition(all 0.1s ease);
}
.tab-item.active,
.tab-item.activated
{
margin-top: 0;
margin-bottom: -2px;
border-width: 0px 0px 4px 0px !important;
border-color: $auth-tabs-highlight !important;
border-style: solid;
}
}
.login-container
{
margin-bottom: 0px;
.card-heding
{
padding: 0px;
height: $tabs-height;
.tabs
{
top: 0px;
padding-top: 0;
background-position: bottom;
border-top-width: 0;
border-bottom-width: 1px;
}
.tab-item
{
max-width: none;
}
}
}
}

View file

@ -0,0 +1,7 @@
.signup-view
{
.sign-up-container
{
margin-bottom: 0px;
}
}

View file

@ -0,0 +1,38 @@
.walkthrough-view
{
.top-content
{
height: 75%;
text-align: center;
h1
{
color: $auth-color;
}
}
.bottom-content
{
height: 25%;
padding-top: 5px;
margin-top: 0px;
.button
{
border: none;
color: $auth-color;
font-weight: bolder;
font-size: 20px;
}
.login.button
{
background-color: $auth-login-btn-bg;
}
.sign-up.button
{
background-color: $auth-signup-btn-bg;
}
}
}

View file

@ -0,0 +1,75 @@
.bookmarks-view
{
background-color: $content-bg;
.scroll-content .scroll,
.bookmarks-container
{
height: 100%;
}
.empty-results
{
text-align: center;
.icon
{
font-size: 170px;
color: lighten($content-bg, 10);
}
.no-bookmarks
{
color: darken($content-bg, 10);
font-size: 22px;
}
}
.bookmarks-list
{
overflow-y: scroll;
height: 100%;
}
// Fix scrollbar style introduced on ionic v1rc1
.bookmarks-list::-webkit-scrollbar
{
display: none !important;
width: 0 !important;
}
.bookmark-item
{
padding: 10px 0px;
border-bottom: 1px solid rgba(darken($content-color, 15), .2);
margin: 0px 16px;
*
{
text-decoration: none;
color: $content-color;
}
.post-title
{
margin: 0px;
font-size: 20px;
font-weight: 300;
letter-spacing: -1px;
}
.post-date
{
margin: 0px;
font-size: 12px;
font-weight: 200;
color: rgba(lighten($content-color, 10), .7);
}
.post-time
{
color: rgba(darken($content-color, 10), .9);
}
}
}

View file

@ -0,0 +1,150 @@
// General reset styles
*
{
color: $content-color;
}
.bar.app-top-bar
{
background-color: $top-bar-bg;
.title
{
color: $top-bar-color !important;
*
{
color: $top-bar-color !important;
}
}
.button
{
color: $top-bar-color !important;
*
{
color: $top-bar-color !important;
}
}
}
// Preload images aux styles (ratios)
// Auto generate ratios for the whole app (see: http://stackoverflow.com/a/18120181/1116959)
@each $ratio in $pre-img-ratios {
.pre-img._#{nth($ratio, 1)}_#{nth($ratio, 2)}
{
// Conserve aspect ratio (see: http://stackoverflow.com/a/10441480/1116959)
width: 100%;
padding-bottom: #{(nth($ratio, 2) / nth($ratio, 1)) * 100}%;
}
}
.pre-img
{
position: relative;
background-color: $pre-img-bg;
// If the image is rounded
&.rounded-image
{
border-radius: 50%;
}
&.finish-loading
{
background-color: transparent;
border: none;
img
{
visibility: visible;
opacity: 1;
}
}
img
{
position: absolute;
left: 0px;
top: 0px;
visibility: hidden;
opacity: 0;
@include transition(visibility 0s linear, opacity 0.5s linear);
}
}
// spinner-on-load
@include keyframes(spin) {
from {
@include transform(rotate(0deg));
}
to {
@include transform(rotate(359deg));
}
}
.spinner-on-load
{
position: absolute;
font-size: $spinner-size;
width: $spinner-size;
height: $spinner-size;
line-height: $spinner-size;
color: $spinner-color;
@include animation(spin 2s infinite linear);
@include calc(top, "50% - #{($spinner-size/2)}");
@include calc(left, "50% - #{($spinner-size/2)}");
}
ion-spinner.spinner-on-load
{
@include animation(none);
stroke: $spinner-color;
width: $spinner-svg-size;
height: $spinner-svg-size;
line-height: inherit;
@include calc(top, "50% - #{($spinner-svg-size/2)}");
@include calc(left, "50% - #{($spinner-svg-size/2)}");
}
// Multimedia background
.multi-bg-outer
{
position: relative;
background-color: rgba(darken($multi-bg, 10%), 0.7);
height: 100%;
@include transition(all ease-in-out .3s);
background-size: cover;
background-repeat: no-repeat;
z-index: -2;
&.finish-loading
{
background-color: transparent;
}
.bg-overlay
{
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
background-color: $overlay-bg;
z-index: -1;
opacity: 0.6;
}
.multi-bg
{
display: none;
}
}
.loading-container .loading
{
background-color: $loading-background-color;
*
{
color: darken($loading-color, 5);
font-weight: 500;
}
}

View file

@ -0,0 +1,21 @@
// Images - Preload images
$pre-img-bg: rgba(lighten(#666666, 15%), .25);
// Images - Preload images - Spinner on load
$spinner-size: 50px;
$spinner-svg-size: 28px;
$spinner-color: #FFFFFF;
// Images - Multimedia background
$multi-bg: darken(#666666, 30%);
$overlay-bg: darken(#fcfcfc, 80%);
$pre-img-ratios: ();
// App colors
$top-bar-bg: $theme-color-2;
$top-bar-color: #FFFFFF;
$loading-color: #FFFFFF;
$loading-background-color: rgba(#444444, .9);
$content-bg: #EAEAEA;
$content-color: #444444;

View file

@ -0,0 +1,14 @@
// THEME 1
$theme-color-1: #387ef5;
$theme-color-2: #FF4C4C;
$theme-color-3: #3E454C;
// THEME 2
// $theme-color-1: #633CA6;
// $theme-color-2: #F4C447;
// $theme-color-3: #414DA8;
// THEME 3
// $theme-color-1: #33AC6B;
// $theme-color-2: #33779B;
// $theme-color-3: #3E454C;

View file

@ -0,0 +1,34 @@
.category-feeds-view
{
background-color: $content-bg !important;
.category-feeds
{
.item
{
padding-left: 60px;
}
.item .thumbnail-outer
{
position: absolute;
left: 10px;
width: 40px;
.thumbnail
{
width: 100%;
}
}
.item .title
{
font-weight: 500;
}
.item .description
{
color: lighten($content-color, 35%);
}
}
}

View file

@ -0,0 +1,81 @@
.feed-entries-view
{
background-color: $content-bg !important;
.entry-heading
{
padding-top: 8px;
padding-bottom: 8px;
background-color: darken($entry-heading-color, 10%);
border-color: #000;
.entry-title
{
color: $entry-title-color;
}
.entry-author
{
font-weight: 500;
}
}
.entry-content
{
padding-top: 8px;
padding-bottom: 0px;
.entry-excerpt
{
overflow: hidden;
text-overflow: ellipsis;
@include display(flex);
@include flex-direction(column);
-webkit-line-clamp: $entry-excerpt-lines; /* number of lines to show */
line-height: $entry-font-size + 4; /* fallback */
font-size: $entry-font-size; /* fallback */
max-height: ($entry-font-size + 4) * $entry-excerpt-lines; /* fallback */
*
{
font-size: inherit !important;
}
}
.entry-actions
{
padding: 10px 0px;
.col
{
padding:0px;
}
.actions
{
.button-icon
{
min-height: initial;
line-height: 28px;
padding: 0px;
vertical-align: middle;
margin-right: 10px;
}
.button-icon:before
{
font-size: 28px;
line-height: 28px;
}
}
.read-more
{
.button
{
margin:0px;
}
}
}
}
}

View file

@ -0,0 +1,14 @@
$feed-category-bg: $theme-color-3;
$feed-category-color: #FFFFFF;
//Feed entries
$entry-heading-color: $theme-color-3;
$entry-title-color: #FFFFFF;
$entry-excerpt-lines: 5;
$entry-font-size: 14px;
$feed-categories-img-ratio: 1 1;
// Merge maps
$pre-img-ratios: append($pre-img-ratios, $feed-categories-img-ratio);

View file

@ -0,0 +1,46 @@
.feeds-categories-view
{
background-color: $content-bg !important;
.categories-list
{
@include flex-wrap(wrap);
}
.feed-category
{
// THIS IS FUCKING AWESOME: http://caniuse.com/#feat=viewport-units
@include calc(height, "50vw - 15px");
box-shadow: 0 1px 3px rgba(darken($feed-category-bg, 30%), 0.3);
border-radius: 2px;
position: relative;
display: block;
.category-image
{
width: 100%;
height: 100%;
border-radius: 2px;
}
.category-bg
{
position: absolute;
top: 0px;
left: 0px;
width: 100%;
height: 100%;
background: linear-gradient(rgba(darken($feed-category-bg, 80%), .85), rgba(darken($feed-category-bg, 10%), .3) 40%, rgba($feed-category-bg, .3) 60%, rgba(lighten($feed-category-bg, 10%), .3));
}
.category-title
{
color: $feed-category-color;
position: absolute;
top: 2px;
left: 8px;
font-weight: 500;
text-transform: capitalize;
}
}
}

View file

@ -0,0 +1,8 @@
.forms-view
{
ion-content
{
-webkit-overflow-scrolling: touch !important;
overflow: scroll !important;
}
}

View file

@ -0,0 +1,58 @@
// Include Sass mixins
@import "scss/utils/mixins";
// Include Theme variables
@import "scss/common/theme.variables";
// Include Ionic override variables
@import "scss/utils/override_variables";
// Include Bourbon
@import "www/lib/bourbon/app/assets/stylesheets/_bourbon";
// Include all of Ionic
@import "www/lib/ionic/scss/ionic";
// Include Ionic override styles
@import "scss/utils/override_styles";
// Include project Sass variables
@import "scss/common/common.variables";
@import "scss/auth/auth.variables";
@import "scss/sidemenu/side-menu.variables";
@import "scss/profile/profile.variables";
@import "scss/bookmarks/bookmarks.variables";
@import "scss/feed/feed.variables";
@import "scss/wordpress/wordpress.variables";
@import "scss/layouts/layouts.variables";
@import "scss/miscellaneous/miscellaneous.variables";
@import "scss/forms/forms.variables";
@import "scss/settings/settings.variables";
// Include custom styles
@import "scss/common/common.styles";
@import "scss/auth/auth.styles";
@import "scss/auth/walkthrough.styles";
@import "scss/auth/login.styles";
@import "scss/auth/signup.styles";
@import "scss/auth/forgot-password.styles";
@import "scss/sidemenu/side-menu.styles";
@import "scss/profile/profile.styles";
@import "scss/bookmarks/bookmarks.styles";
@import "scss/feed/category-feeds.styles";
@import "scss/feed/feed-entries.styles";
@import "scss/feed/feeds-categories.styles";
@import "scss/wordpress/wordpress.styles";
@import "scss/wordpress/post.styles";
@import "scss/layouts/layouts.styles";
@import "scss/layouts/slider.styles";
@import "scss/layouts/tinder-cards.styles";
@import "scss/miscellaneous/miscellaneous.styles";
@import "scss/miscellaneous/maps.styles";
@import "scss/miscellaneous/image-picker.styles";
@import "scss/forms/forms.styles";
@import "scss/settings/settings.styles";

View file

@ -0,0 +1,20 @@
.layouts-view
{
.layouts-functionalities
{
.item .icon:first-child
{
color: $layouts-icon-color;
}
.item .title
{
font-weight:500;
}
.item .description
{
color: lighten($content-color, 30%);
}
}
}

View file

@ -0,0 +1 @@
$layouts-icon-color: $theme-color-2;

View file

@ -0,0 +1,4 @@
.slider-view
{
background: $content-bg;
}

View file

@ -0,0 +1,98 @@
.tinder-cards-view
{
background: $content-bg;
td-cards
{
display: block;
}
td-card
{
position: absolute;
left: 50%;
margin-top: 80px;
margin-bottom: 40px;
margin-left: -150px;
width: 300px;
border: 1px solid #999;
box-shadow: 0px 1px 3px rgba(0,0,0,0.2);
border-radius: 6px;
background: white;
}
td-card .image
{
position: relative;
}
td-card img
{
max-width: 100%;
}
td-card .title
{
background: #FFF;
font-size: 16px;
padding: 15px;
text-transform: capitalize;
text-align:center;
}
/* Overlay styling*/
.overlayBox
{
position: absolute;
left: 50%;
height: 98%;
width: 100%;
top: -80px;
opacity: 0;
margin: 80px 0 0 -149px;
}
.boxed
{
height: 50px;
width: 100px;
padding: 10px;
border-radius: 6px;
font-size: 30px;
}
.yes-text
{
text-align: center;
}
.yesBox
{
margin: 10% 60% 0% 10%;
border: 2px solid $balanced;
color: $balanced;
-webkit-transform: rotate(-25deg);
}
.no-text
{
text-align: center;
}
.noBox
{
margin: 10% 10% 0% 60%;
border: 2px solid $assertive;
color: $assertive;
-webkit-transform: rotate(25deg);
}
.fade
{
-webkit-transition: 0.2s opacity linear;
transition: 0.2s opacity linear;
opacity: 0;
}
}

View file

@ -0,0 +1,9 @@
.image-picker-view{
background: $content-bg;
.image-option
{
font-size: 14px !important;
}
}

View file

@ -0,0 +1,32 @@
.maps-view
{
background-color: $content-bg !important;
.center-map-action
{
position: absolute;
top: 35px;
z-index: 9;
.item.item-input-inset
{
padding: 0px 5px;
}
.item-input-wrapper
{
background: none;
}
}
map
{
width: 100%;
height: 100% !important;
}
.scroll, .mapWrap
{
height: 100%;
}
}

View file

@ -0,0 +1,20 @@
.miscellaneous-view
{
.miscellaneous-functionalities
{
.item .icon:first-child
{
color: $miscellaneous-icon-color;
}
.item .title
{
font-weight:500;
}
.item .description
{
color: lighten($content-color, 30%);
}
}
}

View file

@ -0,0 +1 @@
$miscellaneous-icon-color: $theme-color-2;

View file

@ -0,0 +1,67 @@
.profile-view
{
background-color: $profile-bg !important;
.profile-container
{
margin: 0px auto;
margin-top: 6vh;
text-align: center;
}
.user-image-container
{
width: $image-width;
.user-image
{
border-top: 1px solid $content-color;
padding: 8px;
background-color: $profile-bg;
width: 100%;
border-radius: 50%;
}
}
.user-name
{
font-size: 20px;
}
.user-twitter
{
margin-top: 5px;
}
.top-content
{
border-bottom: 1px solid $content-color;
position: relative;
height: 20vh;
margin-bottom: 25vh;
}
.user-background-image-outer
{
height: 20vh;
position: absolute;
width: 100%;
left: 0;
top: 0;
}
.bottom-content
{
padding: 0px;
background-color: $profile-bg;
min-height: 55vh;
position: relative;
.user-bio
{
text-align: center;
margin: 6px 30px;
padding: 6px 0px;
}
}
}

View file

@ -0,0 +1,8 @@
// App - Profile
$image-width: 46vw;
$image-max-width: 200px;
$profile-bg: #FFFFFF;
$profile-user-img-ratio: 1 1;
$pre-img-ratios: append($pre-img-ratios, $profile-user-img-ratio);

View file

@ -0,0 +1,4 @@
.settings-view
{
background-color: $content-bg !important;
}

View file

@ -0,0 +1,91 @@
ion-side-menu
{
ion-content
{
background-color: darken($main-menu-bg, 12);
}
ion-item.item
{
border-right:none;
border-left:none;
border-color: darken($main-menu-bg, 5);
.item-content
{
background-color: darken($main-menu-bg, 12);
.icon:before
{
background-color: $main-menu-bg;
color: $main-menu-color;
border-radius: 50%;
font-size: 22px;
width: 32px;
height: 32px;
line-height: 32px;
}
}
.item-content.activated
{
background-color: lighten($main-menu-bg, 10);
}
.menu-text
{
color: darken($main-menu-color, 20);
font-weight:500;
}
}
ion-item.item:first-child
{
border-top:none;
}
ion-item.item:last-child
{
border-bottom:none;
}
.heading-item
{
.item-content
{
height: 120px;
padding-top: 45px;
padding-left: 115px;
background-color: darken($main-menu-bg, 10);
padding-bottom: 0px;
}
.user-image-container
{
width:90px;
position: absolute;
top: 16px;
left: 12px;
.user-image
{
border-radius: 50%;
padding: 8px;
border: 1px solid darken($main-menu-color, 40);
width: 100%;
}
}
.greeting
{
color: $main-menu-color;
font-weight:500;
}
.message
{
color: darken($main-menu-color, 40);
}
}
}

View file

@ -0,0 +1,9 @@
$main-menu-bg: $theme-color-3;
$main-menu-color: #FFFFFF;
// Menu - User image
$menu-user-img-width: 10vw;
$menu-user-img-ratio: 1 1;
// Merge maps
$pre-img-ratios: append($pre-img-ratios, $menu-user-img-ratio);

View file

@ -0,0 +1,45 @@
@mixin filter-gradient($start-color, $end-color, $orientation: vertical) {
$gradient-type: if($orientation == vertical, 0, 1);
filter: progid:DXImageTransform.Microsoft.gradient(gradientType=#{$gradient-type}, startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}');
}
@mixin headings($from: 1, $to: 6){
@for $i from $from through $to{
h#{$i}{
@content
}
}
}
@mixin transition($transitions...)
{
-webkit-transition: $transitions;
-moz-transition: $transitions;
-ms-transition: $transitions;
-o-transition: $transitions;
transition: $transitions;
}
// // Placeholder shadow DOM
@mixin _placeholder {
$placeholders: ":-webkit-input" ":-moz" "-moz" "-ms-input";
@each $placeholder in $placeholders {
&:#{$placeholder}-placeholder {
@content;
}
}
}
@mixin box-shadow($val)
{
-webkit-box-shadow: $val;
-moz-box-shadow: $val;
box-shadow: $val;
}
@mixin opacity($opacity)
{
opacity: $opacity;
$opacity-ie: $opacity * 100;
filter: alpha(opacity=$opacity-ie); //IE8
}

View file

@ -0,0 +1 @@
// Override Ionic styles

View file

@ -0,0 +1,19 @@
/*
To customize the look and feel of Ionic, you can override the variables
in ionic's _variables.scss file.
For example, you might change some of the default colors:
*/
// $light: #fff !default;
// $stable: #f8f8f8 !default;
$positive: $theme-color-1 !default;
// $calm: #11c1f3 !default;
// $balanced: #33cd5f !default;
// $energized: #ffc900 !default;
$assertive: $theme-color-2 !default;
// $royal: #886aea !default;
// $dark: #444 !default;
// The path for our ionicons font files, relative to the built CSS in www/css
$ionicons-font-path: "../lib/ionic/fonts" !default;

View file

@ -0,0 +1,154 @@
@each $font-size in $font-size-list {
$i: index($font-size-list, $font-size);
.post-size-#{$font-size}
{
.post-view .post-text
{
font-size: $font-size;
}
}
}
.post-view
{
.post-heading
{
padding-bottom:0px;
border-color: transparent;
}
.post-content
{
border-color: transparent;
// Audio fix
.wp-audio-shortcode
{
visibility: visible !important;
}
.post-text
{
*
{
font-size: inherit !important;
}
}
// Fix audio tag not displaying to 100% on ios
audio::-webkit-media-controls-panel
{
width: 100% !important;
}
img
{
margin: 10px 0px;
height: auto;
@include calc(width, "100% + #{($sides-padding*2)}");
margin-left: - $sides-padding;
}
ul, ol
{
list-style-type: square;
padding: 0 0 0 40px;
margin: 14px 0px;
}
iframe
{
margin: 10px 0px;
@include calc(width, "100% + #{($sides-padding*2)}");
margin-left: - $sides-padding;
}
blockquote
{
font-style: italic;
font-weight: 300;
margin: 20px 20px;
border: none;
padding: 0px;
p
{
font-size: 16px;
}
}
}
.post-tags
{
border-color: transparent;
padding-top: 0px;
padding-bottom: 5px;
.post-tag
{
padding: 0 3px;
min-height: 24px;
font-size: 12px;
line-height: 24px;
margin-right: 5px;
margin-bottom: 5px;
}
.post-tag:last-child
{
margin-right:0px;
}
}
.post-footer
{
padding:0px;
background-color: darken($post-footer-bg, 10%);
.row,
.col
{
padding: 0px;
}
.col.col-20
{
text-align: center;
}
.ion-plus
{
font-size: 24px;
}
.ion-plus:before
{
font-size: 20px !important;
line-height: 15px !important;
}
.ion-minus
{
font-size: 18px;
}
.ion-minus:before
{
font-size: 14px !important;
line-height: 20px !important;
margin-left: 3px;
}
}
.post-title
{
font-size: 24px;
margin-bottom: 4px;
color: $post-footer-bg;
}
.post-author
{
font-weight: 500;
}
}

View file

@ -0,0 +1,127 @@
.wordpress-view
{
background-color: $content-bg !important;
vertical-align:middle;
.post-heading
{
padding-top: 8px;
padding-bottom: 8px;
background-color: darken($wordpress-heading-color, 10%);
border-color: #000;
.post-title
{
color: $wordpress-title-color;
}
.post-author
{
font-weight: 500;
}
}
.post-content
{
padding-top: 8px;
padding-bottom: 0px;
.post-excerpt
{
overflow: hidden;
text-overflow: ellipsis;
@include display(flex);
@include flex-direction(column);
line-height: $post-font-size + 4; /* fallback */
font-size: $post-font-size; /* fallback */
*
{
font-size: inherit !important;
}
}
// Audio fix
.wp-audio-shortcode
{
visibility: visible !important;
}
// Fix audio tag not displaying to 100% on ios
audio::-webkit-media-controls-panel
{
width: 100% !important;
}
img
{
margin: 10px 0px;
height: auto;
@include calc(width, "100% + #{($sides-padding*2)}");
margin-left: - $sides-padding;
}
ul, ol
{
list-style-type: square;
padding: 0 0 0 40px;
margin: 14px 0px;
}
iframe
{
margin: 10px 0px;
height: auto;
@include calc(width, "100% + #{($sides-padding*2)}");
margin-left: - $sides-padding;
}
blockquote
{
font-style: italic;
font-weight: 300;
margin: 20px 20px;
border: none;
padding: 0px;
p
{
font-size: 16px;
}
}
.post-actions
{
padding: 10px 0px;
.col
{
padding:0px;
}
.bookmark
{
.ion-bookmark
{
min-height: initial;
line-height: 28px;
padding: 0px;
}
.ion-bookmark:before
{
font-size: 28px;
line-height: 28px;
}
}
.read-more
{
.button
{
margin:0px;
}
}
}
}
}

View file

@ -0,0 +1,7 @@
$post-font-size: 14px;
$sides-padding: 16px;
$font-size-list: 12px 14px 16px 18px 20px 22px 24px;
$read-more-color: $theme-color-2;
$wordpress-heading-color: $theme-color-3;
$wordpress-title-color: #FFFFFF;
$post-footer-bg: $theme-color-3;

View file

@ -0,0 +1,191 @@
[
{
"id":"news",
"title":"News",
"image":"img/feeds/news.jpg",
"feed_sources":[
{
"id":"bbc",
"title":"BBC",
"description":"The latest stories from the World section of the BBC News web site.",
"image":"img/feeds/logos/bbc.jpg",
"url":"http://feeds.bbci.co.uk/news/world/rss.xml"
},
{
"id":"reuters",
"title":"Reuters",
"description":"Reuters.com is your source for breaking news, business, financial and investing news, including personal finance and stocks. Reuters is the leading global provider of news, financial information and technology solutions to the world's media, financial institutions, businesses and individuals.",
"image":"img/feeds/logos/reuters.jpg",
"url":"http://feeds.reuters.com/Reuters/worldNews"
},
{
"id":"cnn",
"title":"CNN",
"description":"CNN.com delivers up-to-the-minute news and information on the latest top stories, weather, entertainment, politics and more.",
"image":"img/feeds/logos/cnn.jpg",
"url":"http://rss.cnn.com/rss/cnn_world.rss"
},
{
"id":"the-guardian",
"title":"The Guardian",
"description":"Latest World news, comment and analysis from the Guardian, the world's leading liberal voice",
"image":"img/feeds/logos/the-guardian.jpg",
"url":"http://www.theguardian.com/world/rss"
}
]
},
{
"id":"sports",
"title":"Sports",
"image":"img/feeds/sports.jpg",
"feed_sources":[
{
"id":"the-guardian",
"title":"The Guardian",
"description":"Latest news and features from theguardian.com, the world's leading liberal voice",
"image":"img/feeds/logos/the-guardian.jpg",
"url":"http://www.theguardian.com/sport/rss"
},
{
"id":"bbc",
"title":"BBC",
"description":"The latest stories from the Sport section of the BBC Sport web site.",
"image":"img/feeds/logos/bbc.jpg",
"url":"http://feeds.bbci.co.uk/sport/0/rss.xml"
},
{
"id":"fox-sports",
"title":"FOX Sports",
"description":"FOX Sports Generic Content Feed",
"image":"img/feeds/logos/fox-sports.jpg",
"url":"http://api.foxsports.com/v1/rss?partnerKey=zBaFxRyGKCfxBagJG9b8pqLyndmvo7UU"
},
{
"id":"espn",
"title":"ESPN",
"description":"Latest news from ESPN.com",
"image":"img/feeds/logos/espn.jpg",
"url":"http://sports.espn.go.com/espn/rss/news"
}
]
},
{
"id":"business",
"title":"Business",
"image":"img/feeds/business.jpg",
"feed_sources":[
{
"id":"forbes",
"title":"Forbes",
"description":"Forbes - Business",
"image":"img/feeds/logos/forbes.jpg",
"url":"http://www.forbes.com/business/feed/"
},
{
"id":"reuters",
"title":"Reuters",
"description":"Reuters.com is your source for breaking news, business, financial and investing news, including personal finance and stocks. Reuters is the leading global provider of news, financial information and technology solutions to the world's media, financial institutions, businesses and individuals.",
"image":"img/feeds/logos/reuters.jpg",
"url":"http://feeds.reuters.com/reuters/businessNews"
},
{
"id":"the-economist",
"title":"The Economist",
"description":"The Economist business and finance",
"image":"img/feeds/logos/the-economist.jpg",
"url":"http://www.economist.com/sections/business-finance/rss.xml"
},
{
"id":"inc",
"title":"Inc.",
"description":"Advice for founders of start-ups and start-up entrepreneurs on writing a business plan, running a home-based business, naming a start-up business, how to incorporate, financing a start-up, buying a small business, and starting a franchise.",
"image":"img/feeds/logos/inc.jpg",
"url":"http://feeds.feedburner.com/inc/channel/start-up"
}
]
},
{
"id":"entertainment",
"title":"Entertainment",
"image":"img/feeds/entertainment.jpg",
"feed_sources":[
{
"id":"the-hollywood-reporter",
"title":"The Hollywood Reporter",
"description":"The Hollywood Reporter news",
"image":"img/feeds/logos/the-hollywood-reporter.jpg",
"url":"http://feeds.feedburner.com/thr/news"
},
{
"id":"tmz",
"title":"TMZ",
"description":"Celebrity Gossip and Entertainment News, Covering Celebrity News and Hollywood Rumors. Get All The Latest Gossip at TMZ - Thirty Mile Zone.",
"image":"img/feeds/logos/tmz.jpg",
"url":"http://www.tmz.com/rss.xml"
},
{
"id":"the-guardian",
"title":"The Guardian",
"description":"Latest news and features from theguardian.com, the world's leading liberal voice",
"image":"img/feeds/logos/the-guardian.jpg",
"url":"http://www.theguardian.com/culture/rss"
}
]
},
{
"id":"politics",
"title":"Politics",
"image":"img/feeds/politics.jpg",
"feed_sources":[
{
"id":"the-nation",
"title":"The Nation",
"description":"The Nation politics news",
"image":"img/feeds/logos/the-nation.jpg",
"url":"http://www.thenation.com/blogs/rss/politics"
},
{
"id":"washington-post",
"title":"Washington Post",
"description":"Post Politics from The Washington Post is the source for political news headlines, in-depth politics coverage and political opinion, plus breaking news on the Obama administration and White House, Congress, the Supreme Court, elections and more.",
"image":"img/feeds/logos/washington-post.jpg",
"url":"http://feeds.washingtonpost.com/rss/politics"
},
{
"id":"reuters",
"title":"Reuters",
"description":"Reuters.com is your source for breaking news, business, financial and investing news, including personal finance and stocks. Reuters is the leading global provider of news, financial information and technology solutions to the world's media, financial institutions, businesses and individuals.",
"image":"img/feeds/logos/reuters.jpg",
"url":"http://feeds.reuters.com/Reuters/PoliticsNews"
}
]
},
{
"id":"technology",
"title":"Technology",
"image":"img/feeds/technology.jpg",
"feed_sources":[
{
"id":"techcrunch",
"title":"TechCrunch",
"description":"Startup and Technology News",
"image":"img/feeds/logos/techcrunch.jpg",
"url":"http://feeds.feedburner.com/TechCrunch/social"
},
{
"id":"techradar",
"title":"Techradar",
"description":"Get all the latest tech news from Techradar.com",
"image":"img/feeds/logos/techradar.jpg",
"url":"http://feeds2.feedburner.com/techradar/allnews"
},
{
"id":"cnet",
"title":"CNET",
"description":"CNET news editors and reporters provide top technology news, with investigative reporting and in-depth coverage of tech issues and events",
"image":"img/feeds/logos/cnet.jpg",
"url":"http://www.cnet.com/rss/news/"
}
]
}
]

Binary file not shown.

After

Width:  |  Height:  |  Size: 564 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Some files were not shown because too many files have changed in this diff Show more