From 9adab52b26614788e99be76311d2cd3506e0595c Mon Sep 17 00:00:00 2001 From: ryderr Date: Wed, 1 Oct 2014 12:46:42 -0400 Subject: new section --- views/home.ejs | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'views/home.ejs') diff --git a/views/home.ejs b/views/home.ejs index e49dc4a..83ed375 100755 --- a/views/home.ejs +++ b/views/home.ejs @@ -23,6 +23,44 @@ +

Whats VValls For?

+ +
+
+
+ + + +

Plan Your Art Show

+ Whether you're and artist or curator, VValls makes visualizing art within a physical space much easier. With VValls you can build 3D rooms and put your add art to the walls. Map out how your next gallery show will look without having to drill into sheetrock. +
+
+
+ +
+
+ + + +

Defy The Status Quo

+ There is no platform on the internet quite like VValls. Built using advanced HTML5 techniques, VValls opens up the possibilities of expression online. Go crazy, make other worldly rooms. +
+
+
+ +
+
+ + + +

Put on a Show!

+ There's no cooler way than VValls for displaying your images online. Take your pix out of that drab Tumblr theme and present them in the freshest way online! +
+
+
+ +
+

Room Showcase

[[ include projects/list-projects ]] -- cgit v1.2.3-70-g09d2 From c2fe9c3df33d02e6c23c738047faa22662df978b Mon Sep 17 00:00:00 2001 From: ryderr Date: Wed, 1 Oct 2014 14:09:41 -0400 Subject: stylez --- public/assets/stylesheets/app.css | 9 +++------ views/home.ejs | 4 ++-- 2 files changed, 5 insertions(+), 8 deletions(-) (limited to 'views/home.ejs') diff --git a/public/assets/stylesheets/app.css b/public/assets/stylesheets/app.css index 1392e05..545207a 100755 --- a/public/assets/stylesheets/app.css +++ b/public/assets/stylesheets/app.css @@ -516,8 +516,10 @@ iframe.embed { .profilepage .bio span { font-size: 16px; font-weight: 300; + float: left; + clear: both; } -.profilepage .bio span:after { content: ' \00b7 ' } + .profilepage .bio span:last-of-type:after { display: none; } .templates { @@ -742,11 +744,6 @@ iframe.embed { .logo { float:left; padding:6px 8px 9px 8px; - z-index:4; - position:relative; - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; } .logo:hover { diff --git a/views/home.ejs b/views/home.ejs index 83ed375..885c339 100755 --- a/views/home.ejs +++ b/views/home.ejs @@ -50,10 +50,10 @@
- + -

Put on a Show!

+

Put on a Show

There's no cooler way than VValls for displaying your images online. Take your pix out of that drab Tumblr theme and present them in the freshest way online!
-- cgit v1.2.3-70-g09d2 From 4aa421b68f59b383f39661119eabc582976c1d13 Mon Sep 17 00:00:00 2001 From: ryderr Date: Wed, 1 Oct 2014 14:49:11 -0400 Subject: wow --- public/assets/javascripts/app.js | 2 + public/assets/javascripts/vendor/wow.js | 452 +++++ public/assets/stylesheets/animate.css | 3158 +++++++++++++++++++++++++++++++ public/assets/stylesheets/app.css | 1 + views/home.ejs | 8 +- views/partials/meta.ejs | 1 + views/partials/scripts.ejs | 1 + 7 files changed, 3619 insertions(+), 4 deletions(-) create mode 100644 public/assets/javascripts/vendor/wow.js create mode 100644 public/assets/stylesheets/animate.css (limited to 'views/home.ejs') diff --git a/public/assets/javascripts/app.js b/public/assets/javascripts/app.js index 1dd8a5e..a6b6088 100644 --- a/public/assets/javascripts/app.js +++ b/public/assets/javascripts/app.js @@ -15,6 +15,8 @@ else { $("html").addClass("desktop"); } +new WOW().init(); + var scene, cam, map; var app = new function(){} diff --git a/public/assets/javascripts/vendor/wow.js b/public/assets/javascripts/vendor/wow.js new file mode 100644 index 0000000..83ca71b --- /dev/null +++ b/public/assets/javascripts/vendor/wow.js @@ -0,0 +1,452 @@ +(function() { + var MutationObserver, Util, WeakMap, getComputedStyle, getComputedStyleRX, + __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }, + __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; + + Util = (function() { + function Util() {} + + Util.prototype.extend = function(custom, defaults) { + var key, value; + for (key in defaults) { + value = defaults[key]; + if (custom[key] == null) { + custom[key] = value; + } + } + return custom; + }; + + Util.prototype.isMobile = function(agent) { + return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(agent); + }; + + Util.prototype.addEvent = function(elem, event, fn) { + if (elem.addEventListener != null) { + return elem.addEventListener(event, fn, false); + } else if (elem.attachEvent != null) { + return elem.attachEvent("on" + event, fn); + } else { + return elem[event] = fn; + } + }; + + Util.prototype.removeEvent = function(elem, event, fn) { + if (elem.removeEventListener != null) { + return elem.removeEventListener(event, fn, false); + } else if (elem.detachEvent != null) { + return elem.detachEvent("on" + event, fn); + } else { + return delete elem[event]; + } + }; + + Util.prototype.innerHeight = function() { + if ('innerHeight' in window) { + return window.innerHeight; + } else { + return document.documentElement.clientHeight; + } + }; + + return Util; + + })(); + + WeakMap = this.WeakMap || this.MozWeakMap || (WeakMap = (function() { + function WeakMap() { + this.keys = []; + this.values = []; + } + + WeakMap.prototype.get = function(key) { + var i, item, _i, _len, _ref; + _ref = this.keys; + for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) { + item = _ref[i]; + if (item === key) { + return this.values[i]; + } + } + }; + + WeakMap.prototype.set = function(key, value) { + var i, item, _i, _len, _ref; + _ref = this.keys; + for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) { + item = _ref[i]; + if (item === key) { + this.values[i] = value; + return; + } + } + this.keys.push(key); + return this.values.push(value); + }; + + return WeakMap; + + })()); + + MutationObserver = this.MutationObserver || this.WebkitMutationObserver || this.MozMutationObserver || (MutationObserver = (function() { + function MutationObserver() { + if (typeof console !== "undefined" && console !== null) { + console.warn('MutationObserver is not supported by your browser.'); + } + if (typeof console !== "undefined" && console !== null) { + console.warn('WOW.js cannot detect dom mutations, please call .sync() after loading new content.'); + } + } + + MutationObserver.notSupported = true; + + MutationObserver.prototype.observe = function() {}; + + return MutationObserver; + + })()); + + getComputedStyle = this.getComputedStyle || function(el, pseudo) { + this.getPropertyValue = function(prop) { + var _ref; + if (prop === 'float') { + prop = 'styleFloat'; + } + if (getComputedStyleRX.test(prop)) { + prop.replace(getComputedStyleRX, function(_, char) { + return char.toUpperCase(); + }); + } + return ((_ref = el.currentStyle) != null ? _ref[prop] : void 0) || null; + }; + return this; + }; + + getComputedStyleRX = /(\-([a-z]){1})/g; + + this.WOW = (function() { + WOW.prototype.defaults = { + boxClass: 'wow', + animateClass: 'animated', + offset: 0, + mobile: true, + live: true + }; + + function WOW(options) { + if (options == null) { + options = {}; + } + this.scrollCallback = __bind(this.scrollCallback, this); + this.scrollHandler = __bind(this.scrollHandler, this); + this.start = __bind(this.start, this); + this.scrolled = true; + this.config = this.util().extend(options, this.defaults); + this.animationNameCache = new WeakMap(); + } + + WOW.prototype.init = function() { + var _ref; + this.element = window.document.documentElement; + if ((_ref = document.readyState) === "interactive" || _ref === "complete") { + this.start(); + } else { + this.util().addEvent(document, 'DOMContentLoaded', this.start); + } + return this.finished = []; + }; + + WOW.prototype.start = function() { + var box, _i, _len, _ref; + this.stopped = false; + this.boxes = (function() { + var _i, _len, _ref, _results; + _ref = this.element.querySelectorAll("." + this.config.boxClass); + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + box = _ref[_i]; + _results.push(box); + } + return _results; + }).call(this); + this.all = (function() { + var _i, _len, _ref, _results; + _ref = this.boxes; + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + box = _ref[_i]; + _results.push(box); + } + return _results; + }).call(this); + if (this.boxes.length) { + if (this.disabled()) { + this.resetStyle(); + } else { + _ref = this.boxes; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + box = _ref[_i]; + this.applyStyle(box, true); + } + this.util().addEvent(window, 'scroll', this.scrollHandler); + this.util().addEvent(window, 'resize', this.scrollHandler); + this.interval = setInterval(this.scrollCallback, 50); + } + } + if (this.config.live) { + return new MutationObserver((function(_this) { + return function(records) { + var node, record, _j, _len1, _results; + _results = []; + for (_j = 0, _len1 = records.length; _j < _len1; _j++) { + record = records[_j]; + _results.push((function() { + var _k, _len2, _ref1, _results1; + _ref1 = record.addedNodes || []; + _results1 = []; + for (_k = 0, _len2 = _ref1.length; _k < _len2; _k++) { + node = _ref1[_k]; + _results1.push(this.doSync(node)); + } + return _results1; + }).call(_this)); + } + return _results; + }; + })(this)).observe(document.body, { + childList: true, + subtree: true + }); + } + }; + + WOW.prototype.stop = function() { + this.stopped = true; + this.util().removeEvent(window, 'scroll', this.scrollHandler); + this.util().removeEvent(window, 'resize', this.scrollHandler); + if (this.interval != null) { + return clearInterval(this.interval); + } + }; + + WOW.prototype.sync = function(element) { + if (MutationObserver.notSupported) { + return this.doSync(this.element); + } + }; + + WOW.prototype.doSync = function(element) { + var box, _i, _len, _ref, _results; + if (!this.stopped) { + if (element == null) { + element = this.element; + } + if (element.nodeType !== 1) { + return; + } + element = element.parentNode || element; + _ref = element.querySelectorAll("." + this.config.boxClass); + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + box = _ref[_i]; + if (__indexOf.call(this.all, box) < 0) { + this.applyStyle(box, true); + this.boxes.push(box); + this.all.push(box); + _results.push(this.scrolled = true); + } else { + _results.push(void 0); + } + } + return _results; + } + }; + + WOW.prototype.show = function(box) { + this.applyStyle(box); + return box.className = "" + box.className + " " + this.config.animateClass; + }; + + WOW.prototype.applyStyle = function(box, hidden) { + var delay, duration, iteration; + duration = box.getAttribute('data-wow-duration'); + delay = box.getAttribute('data-wow-delay'); + iteration = box.getAttribute('data-wow-iteration'); + return this.animate((function(_this) { + return function() { + return _this.customStyle(box, hidden, duration, delay, iteration); + }; + })(this)); + }; + + WOW.prototype.animate = (function() { + if ('requestAnimationFrame' in window) { + return function(callback) { + return window.requestAnimationFrame(callback); + }; + } else { + return function(callback) { + return callback(); + }; + } + })(); + + WOW.prototype.resetStyle = function() { + var box, _i, _len, _ref, _results; + _ref = this.boxes; + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + box = _ref[_i]; + _results.push(box.setAttribute('style', 'visibility: visible;')); + } + return _results; + }; + + WOW.prototype.customStyle = function(box, hidden, duration, delay, iteration) { + if (hidden) { + this.cacheAnimationName(box); + } + box.style.visibility = hidden ? 'hidden' : 'visible'; + if (duration) { + this.vendorSet(box.style, { + animationDuration: duration + }); + } + if (delay) { + this.vendorSet(box.style, { + animationDelay: delay + }); + } + if (iteration) { + this.vendorSet(box.style, { + animationIterationCount: iteration + }); + } + this.vendorSet(box.style, { + animationName: hidden ? 'none' : this.cachedAnimationName(box) + }); + return box; + }; + + WOW.prototype.vendors = ["moz", "webkit"]; + + WOW.prototype.vendorSet = function(elem, properties) { + var name, value, vendor, _results; + _results = []; + for (name in properties) { + value = properties[name]; + elem["" + name] = value; + _results.push((function() { + var _i, _len, _ref, _results1; + _ref = this.vendors; + _results1 = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + vendor = _ref[_i]; + _results1.push(elem["" + vendor + (name.charAt(0).toUpperCase()) + (name.substr(1))] = value); + } + return _results1; + }).call(this)); + } + return _results; + }; + + WOW.prototype.vendorCSS = function(elem, property) { + var result, style, vendor, _i, _len, _ref; + style = getComputedStyle(elem); + result = style.getPropertyCSSValue(property); + _ref = this.vendors; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + vendor = _ref[_i]; + result = result || style.getPropertyCSSValue("-" + vendor + "-" + property); + } + return result; + }; + + WOW.prototype.animationName = function(box) { + var animationName; + try { + animationName = this.vendorCSS(box, 'animation-name').cssText; + } catch (_error) { + animationName = getComputedStyle(box).getPropertyValue('animation-name'); + } + if (animationName === 'none') { + return ''; + } else { + return animationName; + } + }; + + WOW.prototype.cacheAnimationName = function(box) { + return this.animationNameCache.set(box, this.animationName(box)); + }; + + WOW.prototype.cachedAnimationName = function(box) { + return this.animationNameCache.get(box); + }; + + WOW.prototype.scrollHandler = function() { + return this.scrolled = true; + }; + + WOW.prototype.scrollCallback = function() { + var box; + if (this.scrolled) { + this.scrolled = false; + this.boxes = (function() { + var _i, _len, _ref, _results; + _ref = this.boxes; + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + box = _ref[_i]; + if (!(box)) { + continue; + } + if (this.isVisible(box)) { + this.show(box); + continue; + } + _results.push(box); + } + return _results; + }).call(this); + if (!(this.boxes.length || this.config.live)) { + return this.stop(); + } + } + }; + + WOW.prototype.offsetTop = function(element) { + var top; + while (element.offsetTop === void 0) { + element = element.parentNode; + } + top = element.offsetTop; + while (element = element.offsetParent) { + top += element.offsetTop; + } + return top; + }; + + WOW.prototype.isVisible = function(box) { + var bottom, offset, top, viewBottom, viewTop; + offset = box.getAttribute('data-wow-offset') || this.config.offset; + viewTop = window.pageYOffset; + viewBottom = viewTop + Math.min(this.element.clientHeight, this.util().innerHeight()) - offset; + top = this.offsetTop(box); + bottom = top + box.clientHeight; + return top <= viewBottom && bottom >= viewTop; + }; + + WOW.prototype.util = function() { + return this._util != null ? this._util : this._util = new Util(); + }; + + WOW.prototype.disabled = function() { + return !this.config.mobile && this.util().isMobile(navigator.userAgent); + }; + + return WOW; + + })(); + +}).call(this); diff --git a/public/assets/stylesheets/animate.css b/public/assets/stylesheets/animate.css new file mode 100644 index 0000000..f784ce8 --- /dev/null +++ b/public/assets/stylesheets/animate.css @@ -0,0 +1,3158 @@ +@charset "UTF-8"; +/*! +Animate.css - http://daneden.me/animate +Licensed under the MIT license - http://opensource.org/licenses/MIT + +Copyright (c) 2014 Daniel Eden +*/ + +.animated { + -webkit-animation-duration: 1s; + animation-duration: 1s; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; +} + +.animated.infinite { + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; +} + +.animated.hinge { + -webkit-animation-duration: 2s; + animation-duration: 2s; +} + +@-webkit-keyframes bounce { + 0%, 20%, 53%, 80%, 100% { + -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + -webkit-transform: translate3d(0,0,0); + transform: translate3d(0,0,0); + } + + 40%, 43% { + -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + -webkit-transform: translate3d(0, -30px, 0); + transform: translate3d(0, -30px, 0); + } + + 70% { + -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + -webkit-transform: translate3d(0, -15px, 0); + transform: translate3d(0, -15px, 0); + } + + 90% { + -webkit-transform: translate3d(0,-4px,0); + transform: translate3d(0,-4px,0); + } +} + +@keyframes bounce { + 0%, 20%, 53%, 80%, 100% { + -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + -webkit-transform: translate3d(0,0,0); + transform: translate3d(0,0,0); + } + + 40%, 43% { + -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + -webkit-transform: translate3d(0, -30px, 0); + transform: translate3d(0, -30px, 0); + } + + 70% { + -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + -webkit-transform: translate3d(0, -15px, 0); + transform: translate3d(0, -15px, 0); + } + + 90% { + -webkit-transform: translate3d(0,-4px,0); + transform: translate3d(0,-4px,0); + } +} + +.bounce { + -webkit-animation-name: bounce; + animation-name: bounce; + -webkit-transform-origin: center bottom; + -ms-transform-origin: center bottom; + transform-origin: center bottom; +} + +@-webkit-keyframes flash { + 0%, 50%, 100% { + opacity: 1; + } + + 25%, 75% { + opacity: 0; + } +} + +@keyframes flash { + 0%, 50%, 100% { + opacity: 1; + } + + 25%, 75% { + opacity: 0; + } +} + +.flash { + -webkit-animation-name: flash; + animation-name: flash; +} + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes pulse { + 0% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 50% { + -webkit-transform: scale3d(1.05, 1.05, 1.05); + transform: scale3d(1.05, 1.05, 1.05); + } + + 100% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +@keyframes pulse { + 0% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 50% { + -webkit-transform: scale3d(1.05, 1.05, 1.05); + transform: scale3d(1.05, 1.05, 1.05); + } + + 100% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +.pulse { + -webkit-animation-name: pulse; + animation-name: pulse; +} + +@-webkit-keyframes rubberBand { + 0% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 30% { + -webkit-transform: scale3d(1.25, 0.75, 1); + transform: scale3d(1.25, 0.75, 1); + } + + 40% { + -webkit-transform: scale3d(0.75, 1.25, 1); + transform: scale3d(0.75, 1.25, 1); + } + + 50% { + -webkit-transform: scale3d(1.15, 0.85, 1); + transform: scale3d(1.15, 0.85, 1); + } + + 65% { + -webkit-transform: scale3d(.95, 1.05, 1); + transform: scale3d(.95, 1.05, 1); + } + + 75% { + -webkit-transform: scale3d(1.05, .95, 1); + transform: scale3d(1.05, .95, 1); + } + + 100% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +@keyframes rubberBand { + 0% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 30% { + -webkit-transform: scale3d(1.25, 0.75, 1); + transform: scale3d(1.25, 0.75, 1); + } + + 40% { + -webkit-transform: scale3d(0.75, 1.25, 1); + transform: scale3d(0.75, 1.25, 1); + } + + 50% { + -webkit-transform: scale3d(1.15, 0.85, 1); + transform: scale3d(1.15, 0.85, 1); + } + + 65% { + -webkit-transform: scale3d(.95, 1.05, 1); + transform: scale3d(.95, 1.05, 1); + } + + 75% { + -webkit-transform: scale3d(1.05, .95, 1); + transform: scale3d(1.05, .95, 1); + } + + 100% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +.rubberBand { + -webkit-animation-name: rubberBand; + animation-name: rubberBand; +} + +@-webkit-keyframes shake { + 0%, 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 10%, 30%, 50%, 70%, 90% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + + 20%, 40%, 60%, 80% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } +} + +@keyframes shake { + 0%, 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 10%, 30%, 50%, 70%, 90% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + + 20%, 40%, 60%, 80% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } +} + +.shake { + -webkit-animation-name: shake; + animation-name: shake; +} + +@-webkit-keyframes swing { + 20% { + -webkit-transform: rotate3d(0, 0, 1, 15deg); + transform: rotate3d(0, 0, 1, 15deg); + } + + 40% { + -webkit-transform: rotate3d(0, 0, 1, -10deg); + transform: rotate3d(0, 0, 1, -10deg); + } + + 60% { + -webkit-transform: rotate3d(0, 0, 1, 5deg); + transform: rotate3d(0, 0, 1, 5deg); + } + + 80% { + -webkit-transform: rotate3d(0, 0, 1, -5deg); + transform: rotate3d(0, 0, 1, -5deg); + } + + 100% { + -webkit-transform: rotate3d(0, 0, 1, 0deg); + transform: rotate3d(0, 0, 1, 0deg); + } +} + +@keyframes swing { + 20% { + -webkit-transform: rotate3d(0, 0, 1, 15deg); + transform: rotate3d(0, 0, 1, 15deg); + } + + 40% { + -webkit-transform: rotate3d(0, 0, 1, -10deg); + transform: rotate3d(0, 0, 1, -10deg); + } + + 60% { + -webkit-transform: rotate3d(0, 0, 1, 5deg); + transform: rotate3d(0, 0, 1, 5deg); + } + + 80% { + -webkit-transform: rotate3d(0, 0, 1, -5deg); + transform: rotate3d(0, 0, 1, -5deg); + } + + 100% { + -webkit-transform: rotate3d(0, 0, 1, 0deg); + transform: rotate3d(0, 0, 1, 0deg); + } +} + +.swing { + -webkit-transform-origin: top center; + -ms-transform-origin: top center; + transform-origin: top center; + -webkit-animation-name: swing; + animation-name: swing; +} + +@-webkit-keyframes tada { + 0% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 10%, 20% { + -webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg); + transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg); + } + + 30%, 50%, 70%, 90% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + } + + 40%, 60%, 80% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + } + + 100% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +@keyframes tada { + 0% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 10%, 20% { + -webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg); + transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg); + } + + 30%, 50%, 70%, 90% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + } + + 40%, 60%, 80% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + } + + 100% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +.tada { + -webkit-animation-name: tada; + animation-name: tada; +} + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes wobble { + 0% { + -webkit-transform: none; + transform: none; + } + + 15% { + -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + } + + 30% { + -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + } + + 45% { + -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + } + + 60% { + -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + } + + 75% { + -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + } + + 100% { + -webkit-transform: none; + transform: none; + } +} + +@keyframes wobble { + 0% { + -webkit-transform: none; + transform: none; + } + + 15% { + -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + } + + 30% { + -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + } + + 45% { + -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + } + + 60% { + -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + } + + 75% { + -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + } + + 100% { + -webkit-transform: none; + transform: none; + } +} + +.wobble { + -webkit-animation-name: wobble; + animation-name: wobble; +} + +@-webkit-keyframes bounceIn { + 0%, 20%, 40%, 60%, 80%, 100% { + -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } + + 20% { + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + + 40% { + -webkit-transform: scale3d(.9, .9, .9); + transform: scale3d(.9, .9, .9); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(1.03, 1.03, 1.03); + transform: scale3d(1.03, 1.03, 1.03); + } + + 80% { + -webkit-transform: scale3d(.97, .97, .97); + transform: scale3d(.97, .97, .97); + } + + 100% { + opacity: 1; + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +@keyframes bounceIn { + 0%, 20%, 40%, 60%, 80%, 100% { + -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } + + 20% { + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + + 40% { + -webkit-transform: scale3d(.9, .9, .9); + transform: scale3d(.9, .9, .9); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(1.03, 1.03, 1.03); + transform: scale3d(1.03, 1.03, 1.03); + } + + 80% { + -webkit-transform: scale3d(.97, .97, .97); + transform: scale3d(.97, .97, .97); + } + + 100% { + opacity: 1; + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +.bounceIn { + -webkit-animation-name: bounceIn; + animation-name: bounceIn; + -webkit-animation-duration: .75s; + animation-duration: .75s; +} + +@-webkit-keyframes bounceInDown { + 0%, 60%, 75%, 90%, 100% { + -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -3000px, 0); + transform: translate3d(0, -3000px, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(0, 25px, 0); + transform: translate3d(0, 25px, 0); + } + + 75% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + + 90% { + -webkit-transform: translate3d(0, 5px, 0); + transform: translate3d(0, 5px, 0); + } + + 100% { + -webkit-transform: none; + transform: none; + } +} + +@keyframes bounceInDown { + 0%, 60%, 75%, 90%, 100% { + -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -3000px, 0); + transform: translate3d(0, -3000px, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(0, 25px, 0); + transform: translate3d(0, 25px, 0); + } + + 75% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + + 90% { + -webkit-transform: translate3d(0, 5px, 0); + transform: translate3d(0, 5px, 0); + } + + 100% { + -webkit-transform: none; + transform: none; + } +} + +.bounceInDown { + -webkit-animation-name: bounceInDown; + animation-name: bounceInDown; +} + +@-webkit-keyframes bounceInLeft { + 0%, 60%, 75%, 90%, 100% { + -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(-3000px, 0, 0); + transform: translate3d(-3000px, 0, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(25px, 0, 0); + transform: translate3d(25px, 0, 0); + } + + 75% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + + 90% { + -webkit-transform: translate3d(5px, 0, 0); + transform: translate3d(5px, 0, 0); + } + + 100% { + -webkit-transform: none; + transform: none; + } +} + +@keyframes bounceInLeft { + 0%, 60%, 75%, 90%, 100% { + -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(-3000px, 0, 0); + transform: translate3d(-3000px, 0, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(25px, 0, 0); + transform: translate3d(25px, 0, 0); + } + + 75% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + + 90% { + -webkit-transform: translate3d(5px, 0, 0); + transform: translate3d(5px, 0, 0); + } + + 100% { + -webkit-transform: none; + transform: none; + } +} + +.bounceInLeft { + -webkit-animation-name: bounceInLeft; + animation-name: bounceInLeft; +} + +@-webkit-keyframes bounceInRight { + 0%, 60%, 75%, 90%, 100% { + -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(3000px, 0, 0); + transform: translate3d(3000px, 0, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(-25px, 0, 0); + transform: translate3d(-25px, 0, 0); + } + + 75% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } + + 90% { + -webkit-transform: translate3d(-5px, 0, 0); + transform: translate3d(-5px, 0, 0); + } + + 100% { + -webkit-transform: none; + transform: none; + } +} + +@keyframes bounceInRight { + 0%, 60%, 75%, 90%, 100% { + -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(3000px, 0, 0); + transform: translate3d(3000px, 0, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(-25px, 0, 0); + transform: translate3d(-25px, 0, 0); + } + + 75% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } + + 90% { + -webkit-transform: translate3d(-5px, 0, 0); + transform: translate3d(-5px, 0, 0); + } + + 100% { + -webkit-transform: none; + transform: none; + } +} + +.bounceInRight { + -webkit-animation-name: bounceInRight; + animation-name: bounceInRight; +} + +@-webkit-keyframes bounceInUp { + 0%, 60%, 75%, 90%, 100% { + -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(0, 3000px, 0); + transform: translate3d(0, 3000px, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + } + + 75% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } + + 90% { + -webkit-transform: translate3d(0, -5px, 0); + transform: translate3d(0, -5px, 0); + } + + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes bounceInUp { + 0%, 60%, 75%, 90%, 100% { + -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(0, 3000px, 0); + transform: translate3d(0, 3000px, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + } + + 75% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } + + 90% { + -webkit-transform: translate3d(0, -5px, 0); + transform: translate3d(0, -5px, 0); + } + + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.bounceInUp { + -webkit-animation-name: bounceInUp; + animation-name: bounceInUp; +} + +@-webkit-keyframes bounceOut { + 20% { + -webkit-transform: scale3d(.9, .9, .9); + transform: scale3d(.9, .9, .9); + } + + 50%, 55% { + opacity: 1; + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + + 100% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } +} + +@keyframes bounceOut { + 20% { + -webkit-transform: scale3d(.9, .9, .9); + transform: scale3d(.9, .9, .9); + } + + 50%, 55% { + opacity: 1; + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + + 100% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } +} + +.bounceOut { + -webkit-animation-name: bounceOut; + animation-name: bounceOut; + -webkit-animation-duration: .75s; + animation-duration: .75s; +} + +@-webkit-keyframes bounceOutDown { + 20% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } + + 40%, 45% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } +} + +@keyframes bounceOutDown { + 20% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } + + 40%, 45% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } +} + +.bounceOutDown { + -webkit-animation-name: bounceOutDown; + animation-name: bounceOutDown; +} + +@-webkit-keyframes bounceOutLeft { + 20% { + opacity: 1; + -webkit-transform: translate3d(20px, 0, 0); + transform: translate3d(20px, 0, 0); + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } +} + +@keyframes bounceOutLeft { + 20% { + opacity: 1; + -webkit-transform: translate3d(20px, 0, 0); + transform: translate3d(20px, 0, 0); + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } +} + +.bounceOutLeft { + -webkit-animation-name: bounceOutLeft; + animation-name: bounceOutLeft; +} + +@-webkit-keyframes bounceOutRight { + 20% { + opacity: 1; + -webkit-transform: translate3d(-20px, 0, 0); + transform: translate3d(-20px, 0, 0); + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } +} + +@keyframes bounceOutRight { + 20% { + opacity: 1; + -webkit-transform: translate3d(-20px, 0, 0); + transform: translate3d(-20px, 0, 0); + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } +} + +.bounceOutRight { + -webkit-animation-name: bounceOutRight; + animation-name: bounceOutRight; +} + +@-webkit-keyframes bounceOutUp { + 20% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + + 40%, 45% { + opacity: 1; + -webkit-transform: translate3d(0, 20px, 0); + transform: translate3d(0, 20px, 0); + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } +} + +@keyframes bounceOutUp { + 20% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + + 40%, 45% { + opacity: 1; + -webkit-transform: translate3d(0, 20px, 0); + transform: translate3d(0, 20px, 0); + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } +} + +.bounceOutUp { + -webkit-animation-name: bounceOutUp; + animation-name: bounceOutUp; +} + +@-webkit-keyframes fadeIn { + 0% {opacity: 0;} + 100% {opacity: 1;} +} + +@keyframes fadeIn { + 0% {opacity: 0;} + 100% {opacity: 1;} +} + +.fadeIn { + -webkit-animation-name: fadeIn; + animation-name: fadeIn; +} + +@-webkit-keyframes fadeInDown { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes fadeInDown { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +.fadeInDown { + -webkit-animation-name: fadeInDown; + animation-name: fadeInDown; +} + +@-webkit-keyframes fadeInDownBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes fadeInDownBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +.fadeInDownBig { + -webkit-animation-name: fadeInDownBig; + animation-name: fadeInDownBig; +} + +@-webkit-keyframes fadeInLeft { + 0% { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes fadeInLeft { + 0% { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +.fadeInLeft { + -webkit-animation-name: fadeInLeft; + animation-name: fadeInLeft; +} + +@-webkit-keyframes fadeInLeftBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes fadeInLeftBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +.fadeInLeftBig { + -webkit-animation-name: fadeInLeftBig; + animation-name: fadeInLeftBig; +} + +@-webkit-keyframes fadeInRight { + 0% { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes fadeInRight { + 0% { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +.fadeInRight { + -webkit-animation-name: fadeInRight; + animation-name: fadeInRight; +} + +@-webkit-keyframes fadeInRightBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes fadeInRightBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +.fadeInRightBig { + -webkit-animation-name: fadeInRightBig; + animation-name: fadeInRightBig; +} + +@-webkit-keyframes fadeInUp { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes fadeInUp { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +.fadeInUp { + -webkit-animation-name: fadeInUp; + animation-name: fadeInUp; +} + +@-webkit-keyframes fadeInUpBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes fadeInUpBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +.fadeInUpBig { + -webkit-animation-name: fadeInUpBig; + animation-name: fadeInUpBig; +} + +@-webkit-keyframes fadeOut { + 0% {opacity: 1;} + 100% {opacity: 0;} +} + +@keyframes fadeOut { + 0% {opacity: 1;} + 100% {opacity: 0;} +} + +.fadeOut { + -webkit-animation-name: fadeOut; + animation-name: fadeOut; +} + +@-webkit-keyframes fadeOutDown { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} + +@keyframes fadeOutDown { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} + +.fadeOutDown { + -webkit-animation-name: fadeOutDown; + animation-name: fadeOutDown; +} + +@-webkit-keyframes fadeOutDownBig { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } +} + +@keyframes fadeOutDownBig { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } +} + +.fadeOutDownBig { + -webkit-animation-name: fadeOutDownBig; + animation-name: fadeOutDownBig; +} + +@-webkit-keyframes fadeOutLeft { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} + +@keyframes fadeOutLeft { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} + +.fadeOutLeft { + -webkit-animation-name: fadeOutLeft; + animation-name: fadeOutLeft; +} + +@-webkit-keyframes fadeOutLeftBig { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } +} + +@keyframes fadeOutLeftBig { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } +} + +.fadeOutLeftBig { + -webkit-animation-name: fadeOutLeftBig; + animation-name: fadeOutLeftBig; +} + +@-webkit-keyframes fadeOutRight { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} + +@keyframes fadeOutRight { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} + +.fadeOutRight { + -webkit-animation-name: fadeOutRight; + animation-name: fadeOutRight; +} + +@-webkit-keyframes fadeOutRightBig { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } +} + +@keyframes fadeOutRightBig { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } +} + +.fadeOutRightBig { + -webkit-animation-name: fadeOutRightBig; + animation-name: fadeOutRightBig; +} + +@-webkit-keyframes fadeOutUp { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } +} + +@keyframes fadeOutUp { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } +} + +.fadeOutUp { + -webkit-animation-name: fadeOutUp; + animation-name: fadeOutUp; +} + +@-webkit-keyframes fadeOutUpBig { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } +} + +@keyframes fadeOutUpBig { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } +} + +.fadeOutUpBig { + -webkit-animation-name: fadeOutUpBig; + animation-name: fadeOutUpBig; +} + +@-webkit-keyframes flip { + 0% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg); + transform: perspective(400px) rotate3d(0, 1, 0, -360deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + + 40% { + -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); + transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + + 50% { + -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); + transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 80% { + -webkit-transform: perspective(400px) scale3d(.95, .95, .95); + transform: perspective(400px) scale3d(.95, .95, .95); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 100% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } +} + +@keyframes flip { + 0% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg); + transform: perspective(400px) rotate3d(0, 1, 0, -360deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + + 40% { + -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); + transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + + 50% { + -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); + transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 80% { + -webkit-transform: perspective(400px) scale3d(.95, .95, .95); + transform: perspective(400px) scale3d(.95, .95, .95); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 100% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } +} + +.animated.flip { + -webkit-backface-visibility: visible; + backface-visibility: visible; + -webkit-animation-name: flip; + animation-name: flip; +} + +@-webkit-keyframes flipInX { + 0% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + -webkit-transition-timing-function: ease-in; + transition-timing-function: ease-in; + opacity: 0; + } + + 40% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + -webkit-transition-timing-function: ease-in; + transition-timing-function: ease-in; + } + + 60% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + opacity: 1; + } + + 80% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + } + + 100% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} + +@keyframes flipInX { + 0% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + -webkit-transition-timing-function: ease-in; + transition-timing-function: ease-in; + opacity: 0; + } + + 40% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + -webkit-transition-timing-function: ease-in; + transition-timing-function: ease-in; + } + + 60% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + opacity: 1; + } + + 80% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + } + + 100% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} + +.flipInX { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipInX; + animation-name: flipInX; +} + +@-webkit-keyframes flipInY { + 0% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + -webkit-transition-timing-function: ease-in; + transition-timing-function: ease-in; + opacity: 0; + } + + 40% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + -webkit-transition-timing-function: ease-in; + transition-timing-function: ease-in; + } + + 60% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + opacity: 1; + } + + 80% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + } + + 100% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} + +@keyframes flipInY { + 0% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + -webkit-transition-timing-function: ease-in; + transition-timing-function: ease-in; + opacity: 0; + } + + 40% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + -webkit-transition-timing-function: ease-in; + transition-timing-function: ease-in; + } + + 60% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + opacity: 1; + } + + 80% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + } + + 100% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} + +.flipInY { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipInY; + animation-name: flipInY; +} + +@-webkit-keyframes flipOutX { + 0% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + + 30% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + opacity: 1; + } + + 100% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + opacity: 0; + } +} + +@keyframes flipOutX { + 0% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + + 30% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + opacity: 1; + } + + 100% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + opacity: 0; + } +} + +.flipOutX { + -webkit-animation-name: flipOutX; + animation-name: flipOutX; + -webkit-animation-duration: .75s; + animation-duration: .75s; + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; +} + +@-webkit-keyframes flipOutY { + 0% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + + 30% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + opacity: 1; + } + + 100% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + opacity: 0; + } +} + +@keyframes flipOutY { + 0% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + + 30% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + opacity: 1; + } + + 100% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + opacity: 0; + } +} + +.flipOutY { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipOutY; + animation-name: flipOutY; + -webkit-animation-duration: .75s; + animation-duration: .75s; +} + +@-webkit-keyframes lightSpeedIn { + 0% { + -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg); + transform: translate3d(100%, 0, 0) skewX(-30deg); + opacity: 0; + } + + 60% { + -webkit-transform: skewX(20deg); + transform: skewX(20deg); + opacity: 1; + } + + 80% { + -webkit-transform: skewX(-5deg); + transform: skewX(-5deg); + opacity: 1; + } + + 100% { + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +@keyframes lightSpeedIn { + 0% { + -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg); + transform: translate3d(100%, 0, 0) skewX(-30deg); + opacity: 0; + } + + 60% { + -webkit-transform: skewX(20deg); + transform: skewX(20deg); + opacity: 1; + } + + 80% { + -webkit-transform: skewX(-5deg); + transform: skewX(-5deg); + opacity: 1; + } + + 100% { + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +.lightSpeedIn { + -webkit-animation-name: lightSpeedIn; + animation-name: lightSpeedIn; + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; +} + +@-webkit-keyframes lightSpeedOut { + 0% { + opacity: 1; + } + + 100% { + -webkit-transform: translate3d(100%, 0, 0) skewX(30deg); + transform: translate3d(100%, 0, 0) skewX(30deg); + opacity: 0; + } +} + +@keyframes lightSpeedOut { + 0% { + opacity: 1; + } + + 100% { + -webkit-transform: translate3d(100%, 0, 0) skewX(30deg); + transform: translate3d(100%, 0, 0) skewX(30deg); + opacity: 0; + } +} + +.lightSpeedOut { + -webkit-animation-name: lightSpeedOut; + animation-name: lightSpeedOut; + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; +} + +@-webkit-keyframes rotateIn { + 0% { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, -200deg); + transform: rotate3d(0, 0, 1, -200deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +@keyframes rotateIn { + 0% { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, -200deg); + transform: rotate3d(0, 0, 1, -200deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +.rotateIn { + -webkit-animation-name: rotateIn; + animation-name: rotateIn; +} + +@-webkit-keyframes rotateInDownLeft { + 0% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +@keyframes rotateInDownLeft { + 0% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +.rotateInDownLeft { + -webkit-animation-name: rotateInDownLeft; + animation-name: rotateInDownLeft; +} + +@-webkit-keyframes rotateInDownRight { + 0% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +@keyframes rotateInDownRight { + 0% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +.rotateInDownRight { + -webkit-animation-name: rotateInDownRight; + animation-name: rotateInDownRight; +} + +@-webkit-keyframes rotateInUpLeft { + 0% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +@keyframes rotateInUpLeft { + 0% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +.rotateInUpLeft { + -webkit-animation-name: rotateInUpLeft; + animation-name: rotateInUpLeft; +} + +@-webkit-keyframes rotateInUpRight { + 0% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -90deg); + transform: rotate3d(0, 0, 1, -90deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +@keyframes rotateInUpRight { + 0% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -90deg); + transform: rotate3d(0, 0, 1, -90deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +.rotateInUpRight { + -webkit-animation-name: rotateInUpRight; + animation-name: rotateInUpRight; +} + +@-webkit-keyframes rotateOut { + 0% { + -webkit-transform-origin: center; + transform-origin: center; + opacity: 1; + } + + 100% { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, 200deg); + transform: rotate3d(0, 0, 1, 200deg); + opacity: 0; + } +} + +@keyframes rotateOut { + 0% { + -webkit-transform-origin: center; + transform-origin: center; + opacity: 1; + } + + 100% { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, 200deg); + transform: rotate3d(0, 0, 1, 200deg); + opacity: 0; + } +} + +.rotateOut { + -webkit-animation-name: rotateOut; + animation-name: rotateOut; +} + +@-webkit-keyframes rotateOutDownLeft { + 0% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; + } + + 100% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } +} + +@keyframes rotateOutDownLeft { + 0% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; + } + + 100% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } +} + +.rotateOutDownLeft { + -webkit-animation-name: rotateOutDownLeft; + animation-name: rotateOutDownLeft; +} + +@-webkit-keyframes rotateOutDownRight { + 0% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; + } + + 100% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } +} + +@keyframes rotateOutDownRight { + 0% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; + } + + 100% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } +} + +.rotateOutDownRight { + -webkit-animation-name: rotateOutDownRight; + animation-name: rotateOutDownRight; +} + +@-webkit-keyframes rotateOutUpLeft { + 0% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; + } + + 100% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } +} + +@keyframes rotateOutUpLeft { + 0% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; + } + + 100% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } +} + +.rotateOutUpLeft { + -webkit-animation-name: rotateOutUpLeft; + animation-name: rotateOutUpLeft; +} + +@-webkit-keyframes rotateOutUpRight { + 0% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; + } + + 100% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 90deg); + transform: rotate3d(0, 0, 1, 90deg); + opacity: 0; + } +} + +@keyframes rotateOutUpRight { + 0% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; + } + + 100% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 90deg); + transform: rotate3d(0, 0, 1, 90deg); + opacity: 0; + } +} + +.rotateOutUpRight { + -webkit-animation-name: rotateOutUpRight; + animation-name: rotateOutUpRight; +} + +@-webkit-keyframes hinge { + 0% { + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + + 20%, 60% { + -webkit-transform: rotate3d(0, 0, 1, 80deg); + transform: rotate3d(0, 0, 1, 80deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + + 40%, 80% { + -webkit-transform: rotate3d(0, 0, 1, 60deg); + transform: rotate3d(0, 0, 1, 60deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + opacity: 1; + } + + 100% { + -webkit-transform: translate3d(0, 700px, 0); + transform: translate3d(0, 700px, 0); + opacity: 0; + } +} + +@keyframes hinge { + 0% { + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + + 20%, 60% { + -webkit-transform: rotate3d(0, 0, 1, 80deg); + transform: rotate3d(0, 0, 1, 80deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + + 40%, 80% { + -webkit-transform: rotate3d(0, 0, 1, 60deg); + transform: rotate3d(0, 0, 1, 60deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + opacity: 1; + } + + 100% { + -webkit-transform: translate3d(0, 700px, 0); + transform: translate3d(0, 700px, 0); + opacity: 0; + } +} + +.hinge { + -webkit-animation-name: hinge; + animation-name: hinge; +} + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes rollIn { + 0% { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes rollIn { + 0% { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +.rollIn { + -webkit-animation-name: rollIn; + animation-name: rollIn; +} + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes rollOut { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + } +} + +@keyframes rollOut { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + } +} + +.rollOut { + -webkit-animation-name: rollOut; + animation-name: rollOut; +} + +@-webkit-keyframes zoomIn { + 0% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } + + 50% { + opacity: 1; + } +} + +@keyframes zoomIn { + 0% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } + + 50% { + opacity: 1; + } +} + +.zoomIn { + -webkit-animation-name: zoomIn; + animation-name: zoomIn; +} + +@-webkit-keyframes zoomInDown { + 0% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +@keyframes zoomInDown { + 0% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +.zoomInDown { + -webkit-animation-name: zoomInDown; + animation-name: zoomInDown; +} + +@-webkit-keyframes zoomInLeft { + 0% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); + transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +@keyframes zoomInLeft { + 0% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); + transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +.zoomInLeft { + -webkit-animation-name: zoomInLeft; + animation-name: zoomInLeft; +} + +@-webkit-keyframes zoomInRight { + 0% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); + transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +@keyframes zoomInRight { + 0% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); + transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +.zoomInRight { + -webkit-animation-name: zoomInRight; + animation-name: zoomInRight; +} + +@-webkit-keyframes zoomInUp { + 0% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +@keyframes zoomInUp { + 0% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +.zoomInUp { + -webkit-animation-name: zoomInUp; + animation-name: zoomInUp; +} + +@-webkit-keyframes zoomOut { + 0% { + opacity: 1; + } + + 50% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } + + 100% { + opacity: 0; + } +} + +@keyframes zoomOut { + 0% { + opacity: 1; + } + + 50% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } + + 100% { + opacity: 0; + } +} + +.zoomOut { + -webkit-animation-name: zoomOut; + animation-name: zoomOut; +} + +@-webkit-keyframes zoomOutDown { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 100% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +@keyframes zoomOutDown { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 100% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +.zoomOutDown { + -webkit-animation-name: zoomOutDown; + animation-name: zoomOutDown; +} + +@-webkit-keyframes zoomOutLeft { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); + } + + 100% { + opacity: 0; + -webkit-transform: scale(.1) translate3d(-2000px, 0, 0); + transform: scale(.1) translate3d(-2000px, 0, 0); + -webkit-transform-origin: left center; + transform-origin: left center; + } +} + +@keyframes zoomOutLeft { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); + } + + 100% { + opacity: 0; + -webkit-transform: scale(.1) translate3d(-2000px, 0, 0); + transform: scale(.1) translate3d(-2000px, 0, 0); + -webkit-transform-origin: left center; + transform-origin: left center; + } +} + +.zoomOutLeft { + -webkit-animation-name: zoomOutLeft; + animation-name: zoomOutLeft; +} + +@-webkit-keyframes zoomOutRight { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); + } + + 100% { + opacity: 0; + -webkit-transform: scale(.1) translate3d(2000px, 0, 0); + transform: scale(.1) translate3d(2000px, 0, 0); + -webkit-transform-origin: right center; + transform-origin: right center; + } +} + +@keyframes zoomOutRight { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); + } + + 100% { + opacity: 0; + -webkit-transform: scale(.1) translate3d(2000px, 0, 0); + transform: scale(.1) translate3d(2000px, 0, 0); + -webkit-transform-origin: right center; + transform-origin: right center; + } +} + +.zoomOutRight { + -webkit-animation-name: zoomOutRight; + animation-name: zoomOutRight; +} + +@-webkit-keyframes zoomOutUp { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 100% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +@keyframes zoomOutUp { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 100% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +.zoomOutUp { + -webkit-animation-name: zoomOutUp; + animation-name: zoomOutUp; +} + +@-webkit-keyframes slideInDown { + 0% { + -webkit-transform: translateY(-100%); + transform: translateY(-100%); + visibility: visible; + } + + 100% { + -webkit-transform: translateY(0); + transform: translateY(0); + } +} + +@keyframes slideInDown { + 0% { + -webkit-transform: translateY(-100%); + transform: translateY(-100%); + visibility: visible; + } + + 100% { + -webkit-transform: translateY(0); + transform: translateY(0); + } +} + +.slideInDown { + -webkit-animation-name: slideInDown; + animation-name: slideInDown; +} + +@-webkit-keyframes slideInLeft { + 0% { + -webkit-transform: translateX(-100%); + transform: translateX(-100%); + visibility: visible; + } + + 100% { + -webkit-transform: translateX(0); + transform: translateX(0); + } +} + +@keyframes slideInLeft { + 0% { + -webkit-transform: translateX(-100%); + transform: translateX(-100%); + visibility: visible; + } + + 100% { + -webkit-transform: translateX(0); + transform: translateX(0); + } +} + +.slideInLeft { + -webkit-animation-name: slideInLeft; + animation-name: slideInLeft; +} + +@-webkit-keyframes slideInRight { + 0% { + -webkit-transform: translateX(100%); + transform: translateX(100%); + visibility: visible; + } + + 100% { + -webkit-transform: translateX(0); + transform: translateX(0); + } +} + +@keyframes slideInRight { + 0% { + -webkit-transform: translateX(100%); + transform: translateX(100%); + visibility: visible; + } + + 100% { + -webkit-transform: translateX(0); + transform: translateX(0); + } +} + +.slideInRight { + -webkit-animation-name: slideInRight; + animation-name: slideInRight; +} + +@-webkit-keyframes slideInUp { + 0% { + -webkit-transform: translateY(100%); + transform: translateY(100%); + visibility: visible; + } + + 100% { + -webkit-transform: translateY(0); + transform: translateY(0); + } +} + +@keyframes slideInUp { + 0% { + -webkit-transform: translateY(100%); + transform: translateY(100%); + visibility: visible; + } + + 100% { + -webkit-transform: translateY(0); + transform: translateY(0); + } +} + +.slideInUp { + -webkit-animation-name: slideInUp; + animation-name: slideInUp; +} + +@-webkit-keyframes slideOutDown { + 0% { + -webkit-transform: translateY(0); + transform: translateY(0); + } + + 100% { + visibility: hidden; + -webkit-transform: translateY(100%); + transform: translateY(100%); + } +} + +@keyframes slideOutDown { + 0% { + -webkit-transform: translateY(0); + transform: translateY(0); + } + + 100% { + visibility: hidden; + -webkit-transform: translateY(100%); + transform: translateY(100%); + } +} + +.slideOutDown { + -webkit-animation-name: slideOutDown; + animation-name: slideOutDown; +} + +@-webkit-keyframes slideOutLeft { + 0% { + -webkit-transform: translateX(0); + transform: translateX(0); + } + + 100% { + visibility: hidden; + -webkit-transform: translateX(-100%); + transform: translateX(-100%); + } +} + +@keyframes slideOutLeft { + 0% { + -webkit-transform: translateX(0); + transform: translateX(0); + } + + 100% { + visibility: hidden; + -webkit-transform: translateX(-100%); + transform: translateX(-100%); + } +} + +.slideOutLeft { + -webkit-animation-name: slideOutLeft; + animation-name: slideOutLeft; +} + +@-webkit-keyframes slideOutRight { + 0% { + -webkit-transform: translateX(0); + transform: translateX(0); + } + + 100% { + visibility: hidden; + -webkit-transform: translateX(100%); + transform: translateX(100%); + } +} + +@keyframes slideOutRight { + 0% { + -webkit-transform: translateX(0); + transform: translateX(0); + } + + 100% { + visibility: hidden; + -webkit-transform: translateX(100%); + transform: translateX(100%); + } +} + +.slideOutRight { + -webkit-animation-name: slideOutRight; + animation-name: slideOutRight; +} + +@-webkit-keyframes slideOutUp { + 0% { + -webkit-transform: translateY(0); + transform: translateY(0); + } + + 100% { + visibility: hidden; + -webkit-transform: translateY(-100%); + transform: translateY(-100%); + } +} + +@keyframes slideOutUp { + 0% { + -webkit-transform: translateY(0); + transform: translateY(0); + } + + 100% { + visibility: hidden; + -webkit-transform: translateY(-100%); + transform: translateY(-100%); + } +} + +.slideOutUp { + -webkit-animation-name: slideOutUp; + animation-name: slideOutUp; +} diff --git a/public/assets/stylesheets/app.css b/public/assets/stylesheets/app.css index 05b4871..ebe307a 100755 --- a/public/assets/stylesheets/app.css +++ b/public/assets/stylesheets/app.css @@ -17,6 +17,7 @@ body{ overflow-x:hidden; } + body.noOverflow{ overflow:hidden; } diff --git a/views/home.ejs b/views/home.ejs index 885c339..3c1a1dc 100755 --- a/views/home.ejs +++ b/views/home.ejs @@ -15,7 +15,7 @@
- + Create 3D Rooms

Watch video. @@ -26,7 +26,7 @@

Whats VValls For?

-
+
@@ -37,7 +37,7 @@
-
+
@@ -48,7 +48,7 @@
-
+
diff --git a/views/partials/meta.ejs b/views/partials/meta.ejs index 9916b34..4e94a5e 100644 --- a/views/partials/meta.ejs +++ b/views/partials/meta.ejs @@ -32,6 +32,7 @@ + View More [[ include partials/confirm-modal ]] -- cgit v1.2.3-70-g09d2 From 06e38245987304ef6bddb1f9c3e6cad16a215209 Mon Sep 17 00:00:00 2001 From: ryderr Date: Tue, 7 Oct 2014 16:12:09 -0400 Subject: new font --- public/assets/fonts/ionicons.eot | Bin 124752 -> 101984 bytes public/assets/fonts/ionicons.svg | 2338 +++++++++++++++++++++++------ public/assets/fonts/ionicons.ttf | Bin 124588 -> 164548 bytes public/assets/fonts/ionicons.woff | Bin 124664 -> 57276 bytes public/assets/stylesheets/app.css | 14 +- public/assets/stylesheets/ionicons.css | 2559 +++++++++++++++----------------- views/controls/builder/settings.ejs | 2 +- views/controls/builder/toolbar.ejs | 14 +- views/controls/editor/media-drawer.ejs | 2 +- views/controls/editor/media-editor.ejs | 4 +- views/controls/editor/settings.ejs | 4 +- views/controls/editor/toolbar.ejs | 16 +- views/controls/editor/wallpaper.ejs | 11 +- views/controls/reader/media-player.ejs | 8 +- views/home.ejs | 2 +- views/partials/header.ejs | 2 +- views/partials/sign-in.ejs | 4 +- views/profile.ejs | 2 +- 18 files changed, 3164 insertions(+), 1818 deletions(-) (limited to 'views/home.ejs') diff --git a/public/assets/fonts/ionicons.eot b/public/assets/fonts/ionicons.eot index 6b33288..52b1e57 100755 Binary files a/public/assets/fonts/ionicons.eot and b/public/assets/fonts/ionicons.eot differ diff --git a/public/assets/fonts/ionicons.svg b/public/assets/fonts/ionicons.svg index a1ee425..5c8c909 100755 --- a/public/assets/fonts/ionicons.svg +++ b/public/assets/fonts/ionicons.svg @@ -1,447 +1,1899 @@ + -Generated by IcoMoon + +Created by FontForge 20120731 at Mon Jun 16 14:44:31 2014 + By Adam Bradley +Created by Adam Bradley with FontForge 2.0 (http://fontforge.sf.net) + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/fonts/ionicons.ttf b/public/assets/fonts/ionicons.ttf index 573d5b3..cc67b2f 100755 Binary files a/public/assets/fonts/ionicons.ttf and b/public/assets/fonts/ionicons.ttf differ diff --git a/public/assets/fonts/ionicons.woff b/public/assets/fonts/ionicons.woff index 337b87f..1d7b977 100755 Binary files a/public/assets/fonts/ionicons.woff and b/public/assets/fonts/ionicons.woff differ diff --git a/public/assets/stylesheets/app.css b/public/assets/stylesheets/app.css index e626d39..988dd89 100755 --- a/public/assets/stylesheets/app.css +++ b/public/assets/stylesheets/app.css @@ -77,11 +77,11 @@ a{ .editing #help-button { display: inline; } -.topLinks a.icon-help-circled { +.topLinks a.ion-help-circled { font-size: 24px; padding: 21px 27px 0 8px; } -.topLinks a.icon-help-circled:hover { +.topLinks a.ion-help-circled:hover { background:transparent; color:red; } @@ -875,7 +875,7 @@ iframe.embed { } .menu span.inuse:before { - content: "\e736" !important; + content: "\f12a" !important; } .menu span:hover:after{ @@ -893,7 +893,7 @@ iframe.embed { font-family:'Lato', sans-serif; } -.menu span.icon-ios7-sunny-outline:hover:after { +.menu span.ion-ios7-sunny-outline:hover:after { width: 130px; } @@ -902,7 +902,7 @@ iframe.embed { content:""; opacity:0; } -.menu span.icon-map.hidden:hover:after{ +.menu span.ion-map.hidden:hover:after{ content:"show map"; } .fixed { @@ -1051,7 +1051,7 @@ iframe.embed { transform:translateY(0%); } -.fileUpload .icon-ios7-upload-outline { +.fileUpload .ion-ios7-upload-outline { font-size:40px; } .fileUpload .upload-icon.uploading { @@ -1338,7 +1338,7 @@ iframe.embed { color:white; cursor:pointer; } -.wallpaper .icon-ios7-upload-outline { +.wallpaper .ion-ios7-upload-outline { font-size: 26px; } .wallpaper .wallpaperRemove { diff --git a/public/assets/stylesheets/ionicons.css b/public/assets/stylesheets/ionicons.css index 0d8af36..34c20e2 100755 --- a/public/assets/stylesheets/ionicons.css +++ b/public/assets/stylesheets/ionicons.css @@ -1,1335 +1,1224 @@ -@font-face { - font-family: 'ionicons'; - src:url('../fonts/ionicons.eot'); - src:url('../fonts/ionicons.eot?#iefix') format('embedded-opentype'), - url('../fonts/ionicons.ttf') format('truetype'), - url('../fonts/ionicons.woff') format('woff'), - url('../fonts/ionicons.svg#icomoon') format('svg'); - font-weight: normal; - font-style: normal; -} - -[class*="icon-"] { - font-family: 'ionicons'; - speak: none; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - line-height: 1; - - /* Better Font Rendering =========== */ - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -.icon-ios7-folder:before { - content: "\e60c"; -} -.icon-ios7-flag:before { - content: "\e619"; -} -.icon-ios7-partlysunny:before { - content: "\e626"; -} -.icon-ios7-personadd-outline:before { - content: "\e633"; -} -.icon-ios7-filing:before { - content: "\e640"; -} -.icon-ios7-heart-outline:before { - content: "\e64d"; -} -.icon-ios7-film-outline:before { - content: "\e65a"; -} -.icon-ios7-fastforward:before { - content: "\e667"; -} -.icon-ios7-cloud-download:before { - content: "\e674"; -} -.icon-ios7-plus-empty:before { - content: "\e681"; -} -.icon-ios7-plus:before { - content: "\e682"; -} -.icon-ios7-plus-outline:before { - content: "\e683"; -} -.icon-ios7-checkmark-empty:before { - content: "\e684"; -} -.icon-ios7-checkmark:before { - content: "\e685"; -} -.icon-ios7-checkmark-outline:before { - content: "\e686"; -} -.icon-ios7-help-empty:before { - content: "\e687"; -} -.icon-ios7-help:before { - content: "\e688"; -} -.icon-ios7-help-outline:before { - content: "\e689"; -} -.icon-ios7-information-empty:before { - content: "\e68a"; -} -.icon-ios7-information:before { - content: "\e68b"; -} -.icon-ios7-information-outline:before { - content: "\e68c"; -} -.icon-ios7-circle-filled:before { - content: "\e68d"; -} -.icon-ios7-circle-outline:before { - content: "\e68e"; -} -.icon-ios7-trash-outline:before { - content: "\e68f"; -} -.icon-ios7-more:before { - content: "\e690"; -} -.icon-ios7-more-outline:before { - content: "\e691"; -} -.icon-ios7-upload:before { - content: "\e692"; -} -.icon-ios7-upload-outline:before { - content: "\e693"; -} -.icon-ios7-download:before { - content: "\e694"; -} -.icon-ios7-download-outline:before { - content: "\e695"; -} -.icon-ios7-search-strong:before { - content: "\e696"; -} -.icon-ios7-search:before { - content: "\e697"; -} -.icon-ios7-navigate:before { - content: "\e698"; -} -.icon-ios7-navigate-outline:before { - content: "\e699"; -} -.icon-ios7-copy:before { - content: "\e69a"; -} -.icon-ios7-copy-outline:before { - content: "\e69b"; -} -.icon-ios7-photos:before { - content: "\e69c"; -} -.icon-ios7-photos-outline:before { - content: "\e69d"; -} -.icon-ios7-albums:before { - content: "\e69e"; -} -.icon-ios7-albums-outline:before { - content: "\e69f"; -} -.icon-ios7-world:before { - content: "\e6a0"; -} -.icon-ios7-world-outline:before { - content: "\e6a1"; -} -.icon-ios7-recording:before { - content: "\e6a2"; -} -.icon-ios7-recording-outline:before { - content: "\e6a3"; -} -.icon-ios7-keypad:before { - content: "\e6a4"; -} -.icon-ios7-keypad-outline:before { - content: "\e6a5"; -} -.icon-ios7-contact:before { - content: "\e6a6"; -} -.icon-ios7-contact-outline:before { - content: "\e6a7"; -} -.icon-ios7-clock:before { - content: "\e6a8"; -} -.icon-ios7-clock-outline:before { - content: "\e6a9"; -} -.icon-ios7-star:before { - content: "\e6aa"; -} -.icon-ios7-star-outline:before { - content: "\e6ab"; -} -.icon-ios7-compose-outline:before { - content: "\e6ac"; -} -.icon-ios7-wineglass:before { - content: "\e6ad"; -} -.icon-ios7-pie:before { - content: "\e6ae"; -} -.icon-ios7-pie-outline:before { - content: "\e6af"; -} -.icon-ios7-reload:before { - content: "\e6b0"; -} -.icon-ios7-wineglass-outline:before { - content: "\e6b1"; -} -.icon-ios7-medkit:before { - content: "\e6b2"; -} -.icon-ios7-medkit-outline:before { - content: "\e6b3"; -} -.icon-ios7-briefcase-outline:before { - content: "\e6b4"; -} -.icon-ios7-briefcase:before { - content: "\e6b5"; -} -.icon-ios7-pricetag:before { - content: "\e6b6"; -} -.icon-ios7-pricetag-outline:before { - content: "\e6b7"; -} -.icon-ios7-speedometer:before { - content: "\e6b8"; -} -.icon-ios7-speedometer-outline:before { - content: "\e6b9"; -} -.icon-ios7-lightbulb:before { - content: "\e6ba"; -} -.icon-ios7-lightbulb-outline:before { - content: "\e6bb"; -} -.icon-ios7-calculator:before { - content: "\e6bc"; -} -.icon-ios7-calculator-outline:before { - content: "\e6bd"; -} -.icon-ios7-arrow-thin-left:before { - content: "\e6be"; -} -.icon-ios7-arrow-thin-down:before { - content: "\e6bf"; -} -.icon-ios7-arrow-thin-right:before { - content: "\e6c0"; -} -.icon-ios7-arrow-thin-up:before { - content: "\e6c1"; -} -.icon-ios7-time:before { - content: "\e6c2"; -} -.icon-ios7-time-outline:before { - content: "\e6c3"; -} -.icon-volume-mute:before { - content: "\e6c4"; -} -.icon-thumbsdown:before { - content: "\e6c5"; -} -.icon-thumbsup:before { - content: "\e6c6"; -} -.icon-calendar:before { - content: "\e6c7"; -} -.icon-images:before { - content: "\e6c8"; -} -.icon-film-marker:before { - content: "\e6c9"; -} -.icon-game-controller-b:before { - content: "\e6ca"; -} -.icon-game-controller-a:before { - content: "\e6cb"; -} -.icon-man:before { - content: "\e6cc"; -} -.icon-archive:before { - content: "\e6cd"; -} -.icon-trash-b:before { - content: "\e6ce"; -} -.icon-trash-a:before { - content: "\e6cf"; -} -.icon-folder:before { - content: "\e6d0"; -} -.icon-alert-circled:before { - content: "\e6d1"; -} -.icon-information-circled:before { - content: "\e6d2"; -} -.icon-minus-circled:before { - content: "\e6d3"; -} -.icon-plus-circled:before { - content: "\e6d4"; -} -.icon-link:before { - content: "\e6d5"; -} -.icon-eject:before { - content: "\e6d6"; -} -.icon-skip-backward:before { - content: "\e6d7"; -} -.icon-skip-forward:before { - content: "\e6d8"; -} -.icon-iphone:before { - content: "\e6d9"; -} -.icon-ipad:before { - content: "\e6da"; -} -.icon-ipod:before { - content: "\e6db"; -} -.icon-alert:before { - content: "\e6dc"; -} -.icon-arrow-right-a:before { - content: "\e6dd"; -} -.icon-arrow-up-a:before { - content: "\e6de"; -} -.icon-arrow-left-a:before { - content: "\e6df"; -} -.icon-arrow-down-a:before { - content: "\e6e0"; -} -.icon-ionic:before { - content: "\e6e1"; -} -.icon-plane:before { - content: "\e6e2"; -} -.icon-flask:before { - content: "\e6e3"; -} -.icon-card:before { - content: "\e6e4"; -} -.icon-bag:before { - content: "\e6e5"; -} -.icon-map:before { - content: "\e6e6"; -} -.icon-clipboard:before { - content: "\e6e7"; -} -.icon-pound:before { - content: "\e6e8"; -} -.icon-at:before { - content: "\e6e9"; -} -.icon-image:before { - content: "\e6ea"; -} -.icon-mic-c:before { - content: "\e6eb"; -} -.icon-mic-b:before { - content: "\e6ec"; -} -.icon-waterdrop:before { - content: "\e6ed"; -} -.icon-record:before { - content: "\e6ee"; -} -.icon-stop:before { - content: "\e6ef"; -} -.icon-pause:before { - content: "\e6f0"; -} -.icon-play:before { - content: "\e6f1"; -} -.icon-volume-low:before { - content: "\e6f2"; -} -.icon-volume-medium:before { - content: "\e6f3"; -} -.icon-volume-high:before { - content: "\e6f4"; -} -.icon-mic-a:before { - content: "\e6f5"; -} -.icon-music-note:before { - content: "\e6f6"; -} -.icon-headphone:before { - content: "\e6f7"; -} -.icon-disc:before { - content: "\e6f8"; -} -.icon-videocamera:before { - content: "\e6f9"; -} -.icon-printer:before { - content: "\e6fa"; -} -.icon-laptop:before { - content: "\e6fb"; -} -.icon-monitor:before { - content: "\e6fc"; -} -.icon-flash-off:before { - content: "\e6fd"; -} -.icon-flash:before { - content: "\e6fe"; -} -.icon-eye:before { - content: "\e6ff"; -} -.icon-camera:before { - content: "\e700"; -} -.icon-bluetooth:before { - content: "\e701"; -} -.icon-wifi:before { - content: "\e702"; -} -.icon-battery-charging:before { - content: "\e703"; -} -.icon-battery-empty:before { - content: "\e704"; -} -.icon-battery-low:before { - content: "\e705"; -} -.icon-battery-half:before { - content: "\e706"; -} -.icon-battery-full:before { - content: "\e707"; -} -.icon-woman:before { - content: "\e708"; -} -.icon-person-stalker:before { - content: "\e709"; -} -.icon-person-add:before { - content: "\e70a"; -} -.icon-person:before { - content: "\e70b"; -} -.icon-chatboxes:before { -} -.icon-chatbox-working:before { - content: "\e70d"; -} -.icon-chatbox:before { - content: "\e70e"; -} -.icon-chatbubbles:before { - content: "\e70f"; -} -.icon-chatbubble-working:before { - content: "\e710"; -} -.icon-chatbubble:before { - content: "\e711"; -} -.icon-unlocked:before { - content: "\e712"; -} -.icon-locked:before { - content: "\e713"; -} -.icon-more:before { - content: "\e714"; -} -.icon-grid:before { - content: "\e715"; -} -.icon-upload:before { - content: "\e716"; -} -.icon-cloud:before { - content: "\e717"; -} -.icon-location:before { - content: "\e718"; -} -.icon-compose:before { - content: "\e719"; -} -.icon-paperclip:before { - content: "\e71a"; -} -.icon-share:before { - content: "\e71b"; -} -.icon-email:before { - content: "\e71c"; -} -.icon-reply-all:before { - content: "\e71d"; -} -.icon-forward:before { - content: "\e71e"; -} -.icon-reply:before { - content: "\e71f"; -} -.icon-filing:before { - content: "\e720"; -} -.icon-document-text:before { - content: "\e721"; -} -.icon-document:before { - content: "\e722"; -} -.icon-gear-b:before { - content: "\e723"; -} -.icon-gear-a:before { - content: "\e724"; -} -.icon-help-circled:before { - content: "\e725"; -} -.icon-help:before { - content: "\e726"; -} -.icon-information:before { - content: "\e727"; -} -.icon-minus:before { - content: "\e728"; -} -.icon-minus-round:before { - content: "\e729"; -} -.icon-plus:before { - content: "\e72a"; -} -.icon-plus-round:before { - content: "\e72b"; -} -.icon-drag:before { - content: "\e72c"; -} -.icon-navicon:before { - content: "\e72d"; -} -.icon-navicon-round:before { - content: "\e72e"; -} -.icon-heart:before { - content: "\e72f"; -} -.icon-star:before { - content: "\e730"; -} -.icon-search:before { - content: "\e731"; -} -.icon-home:before { - content: "\e732"; -} -.icon-shuffle:before { - content: "\e733"; -} -.icon-loop:before { - content: "\e734"; -} -.icon-close-circled:before { - content: "\e735"; -} -.icon-close:before { - content: "\e736"; -} -.icon-close-round:before { - content: "\e737"; -} -.icon-checkmark-circled:before { - content: "\e738"; -} -.icon-checkmark:before { - content: "\e739"; -} -.icon-checkmark-round:before { - content: "\e73a"; -} -.icon-chevron-left:before { - content: "\e73b"; -} -.icon-chevron-right:before { - content: "\e73c"; -} -.icon-chevron-down:before { - content: "\e73d"; -} -.icon-chevron-up:before { - content: "\e73e"; -} -.icon-arrow-down-c:before { - content: "\e73f"; -} -.icon-arrow-up-c:before { - content: "\e740"; -} -.icon-arrow-right-c:before { - content: "\e741"; -} -.icon-arrow-left-c:before { - content: "\e742"; -} -.icon-arrow-left-b:before { - content: "\e743"; -} -.icon-arrow-down-b:before { - content: "\e744"; -} -.icon-arrow-right-b:before { - content: "\e745"; -} -.icon-arrow-up-b:before { - content: "\e746"; -} -.icon-refresh:before { - content: "\e747"; -} -.icon-leaf:before { - content: "\e748"; -} -.icon-briefcase:before { - content: "\e749"; -} -.icon-clock:before { - content: "\e74a"; -} -.icon-thermometer:before { - content: "\e74b"; -} -.icon-wrench:before { - content: "\e74c"; -} -.icon-medkit:before { - content: "\e74d"; -} -.icon-wineglass:before { - content: "\e74e"; -} -.icon-load-d:before { - content: "\e74f"; -} -.icon-load-c:before { - content: "\e750"; -} -.icon-load-b:before { - content: "\e751"; -} -.icon-load-a:before { - content: "\e752"; -} -.icon-umbrella:before { - content: "\e753"; -} -.icon-coffee:before { - content: "\e754"; -} -.icon-pizza:before { - content: "\e755"; -} -.icon-icecream:before { - content: "\e756"; -} -.icon-spoon:before { - content: "\e757"; -} -.icon-fork:before { - content: "\e758"; -} -.icon-knife:before { - content: "\e759"; -} -.icon-earth:before { - content: "\e75a"; -} -.icon-egg:before { - content: "\e75b"; -} -.icon-pie-graph:before { - content: "\e75c"; -} -.icon-magnet:before { - content: "\e75d"; -} -.icon-help-buoy:before { - content: "\e75e"; -} -.icon-nuclear:before { - content: "\e75f"; -} -.icon-beaker:before { - content: "\e760"; -} -.icon-pricetags:before { - content: "\e761"; -} -.icon-pricetag:before { - content: "\e762"; -} -.icon-settings:before { - content: "\e763"; -} -.icon-hammer:before { - content: "\e764"; -} -.icon-power:before { - content: "\e765"; -} -.icon-female:before { - content: "\e766"; -} -.icon-male:before { - content: "\e767"; -} -.icon-pinpoint:before { - content: "\e768"; -} -.icon-pin:before { - content: "\e769"; -} -.icon-navigate:before { - content: "\e76a"; -} -.icon-flag:before { - content: "\e76b"; -} -.icon-code-download:before { - content: "\e76c"; -} -.icon-code-working:before { - content: "\e76d"; -} -.icon-code:before { - content: "\e76e"; -} -.icon-usb:before { - content: "\e76f"; -} -.icon-bookmark:before { - content: "\e770"; -} -.icon-key:before { - content: "\e771"; -} -.icon-lightbulb:before { - content: "\e772"; -} -.icon-calculator:before { - content: "\e773"; -} -.icon-speakerphone:before { - content: "\e774"; -} -.icon-contrast:before { - content: "\e775"; -} -.icon-accelerate:before { - content: "\e776"; -} -.icon-speedometer:before { - content: "\e777"; -} -.icon-compass:before { - content: "\e778"; -} -.icon-radio-waves:before { - content: "\e779"; -} -.icon-log-out:before { - content: "\e77a"; -} -.icon-log-in:before { - content: "\e77b"; -} -.icon-levels:before { - content: "\e77c"; -} -.icon-connection-bars:before { - content: "\e77d"; -} -.icon-stats-bars:before { - content: "\e77e"; -} -.icon-arrow-graph-up:before { - content: "\e77f"; -} -.icon-arrow-graph-down:before { - content: "\e780"; -} -.icon-arrow-resize:before { - content: "\e781"; -} -.icon-arrow-move:before { - content: "\e782"; -} -.icon-arrow-expand:before { - content: "\e783"; -} -.icon-arrow-shrink:before { - content: "\e784"; -} -.icon-arrow-swap:before { - content: "\e785"; -} -.icon-arrow-return-left:before { - content: "\e786"; -} -.icon-arrow-return-right:before { - content: "\e787"; -} -.icon-social-android-outline:before { - content: "\e788"; -} -.icon-social-android:before { - content: "\e789"; -} -.icon-social-dropbox:before { - content: "\e78a"; -} -.icon-social-dropbox-outline:before { - content: "\e78b"; -} -.icon-social-designernews:before { - content: "\e78c"; -} -.icon-social-designernews-outline:before { - content: "\e78d"; -} -.icon-social-hackernews:before { - content: "\e78e"; -} -.icon-social-hackernews-outline:before { - content: "\e78f"; -} -.icon-social-windows:before { - content: "\e790"; -} -.icon-social-windows-outline:before { - content: "\e791"; -} -.icon-social-apple:before { - content: "\e792"; -} -.icon-social-apple-outline:before { - content: "\e793"; -} -.icon-social-youtube:before { - content: "\e794"; -} -.icon-social-youtube-outline:before { - content: "\e795"; -} -.icon-social-linkedin:before { - content: "\e796"; -} -.icon-social-linkedin-outline:before { - content: "\e797"; -} -.icon-social-skype:before { - content: "\e798"; -} -.icon-social-skype-outline:before { - content: "\e799"; -} -.icon-social-vimeo:before { - content: "\e79a"; -} -.icon-social-vimeo-outline:before { - content: "\e79b"; -} -.icon-social-buffer:before { - content: "\e79c"; -} -.icon-social-buffer-outline:before { - content: "\e79d"; -} -.icon-social-yahoo:before { - content: "\e79e"; -} -.icon-social-yahoo-outline:before { - content: "\e79f"; -} -.icon-social-reddit:before { - content: "\e7a0"; -} -.icon-social-reddit-outline:before { - content: "\e7a1"; -} -.icon-social-wordpress:before { - content: "\e7a2"; -} -.icon-social-wordpress-outline:before { - content: "\e7a3"; -} -.icon-social-tumblr:before { - content: "\e7a4"; -} -.icon-social-tumblr-outline:before { - content: "\e7a5"; -} -.icon-social-rss:before { - content: "\e7a6"; -} -.icon-social-rss-outline:before { - content: "\e7a7"; -} -.icon-social-github:before { - content: "\e7a8"; -} -.icon-social-github-outline:before { - content: "\e7a9"; -} -.icon-social-dribbble:before { - content: "\e7aa"; -} -.icon-social-dribbble-outline:before { - content: "\e7ab"; -} -.icon-social-googleplus:before { - content: "\e7ac"; -} -.icon-social-googleplus-outline:before { - content: "\e7ad"; -} -.icon-social-facebook:before { - content: "\e7ae"; -} -.icon-social-facebook-outline:before { - content: "\e7af"; -} -.icon-social-twitter:before { - content: "\e7b0"; -} -.icon-social-twitter-outline:before { - content: "\e7b1"; -} -.icon-social-pinterest:before { - content: "\e7b2"; -} -.icon-social-pinterest-outline:before { - content: "\e7b3"; -} -.icon-social-bitcoin:before { - content: "\e7b4"; -} -.icon-social-bitcoin-outline:before { - content: "\e7b5"; -} -.icon-ios7-at-outline:before { - content: "\e600"; -} -.icon-ios7-bookmarks:before { - content: "\e601"; -} -.icon-ios7-bookmarks-outline:before { - content: "\e602"; -} -.icon-ios7-at:before { - content: "\e603"; -} -.icon-ios7-stopwatch:before { - content: "\e604"; -} -.icon-ios7-stopwatch-outline:before { - content: "\e605"; -} -.icon-ios7-timer:before { - content: "\e606"; -} -.icon-ios7-timer-outline:before { - content: "\e607"; -} -.icon-ios7-alarm:before { - content: "\e608"; -} -.icon-ios7-alarm-outline:before { - content: "\e609"; -} -.icon-ios7-rainy:before { - content: "\e60a"; -} -.icon-ios7-rainy-outline:before { - content: "\e60b"; -} -.icon-ios7-eye-outline:before { - content: "\e60d"; -} -.icon-ios7-gear-outline:before { - content: "\e60e"; -} -.icon-ios7-gear:before { - content: "\e60f"; -} -.icon-ios7-box-outline:before { - content: "\e610"; -} -.icon-ios7-box:before { - content: "\e611"; -} -.icon-ios7-drag:before { - content: "\e612"; -} -.icon-ios7-ionic-outline:before { - content: "\e613"; -} -.icon-ios7-printer-outline:before { - content: "\e614"; -} -.icon-ios7-trash:before { - content: "\e615"; -} -.icon-ios7-flag-outline:before { - content: "\e616"; -} -.icon-ios7-glasses:before { - content: "\e617"; -} -.icon-ios7-glasses-outline:before { - content: "\e618"; -} -.icon-ios7-infinite:before { - content: "\e61a"; -} -.icon-ios7-infinite-outline:before { - content: "\e61b"; -} -.icon-ios7-cart:before { - content: "\e61c"; -} -.icon-ios7-cart-outline:before { - content: "\e61d"; -} -.icon-ios7-moon:before { - content: "\e61e"; -} -.icon-ios7-moon-outline:before { - content: "\e61f"; -} -.icon-ios7-thunderstorm:before { - content: "\e620"; -} -.icon-ios7-thunderstorm-outline:before { - content: "\e621"; -} -.icon-ios7-cloudy-outline:before { - content: "\e622"; -} -.icon-ios7-sunny:before { - content: "\e623"; -} -.icon-ios7-sunny-outline:before { - content: "\e624"; -} -.icon-ios7-people:before { - content: "\e625"; -} -.icon-ios7-people-outline:before { - content: "\e627"; -} -.icon-ios7-person:before { - content: "\e628"; -} -.icon-ios7-person-outline:before { - content: "\e629"; -} -.icon-ios7-location:before { - content: "\e62a"; -} -.icon-ios7-location-outline:before { - content: "\e62b"; -} -.icon-ios7-personadd:before { - content: "\e62c"; -} -.icon-ios7-email:before { - content: "\e62f"; -} -.icon-ios7-email-outline:before { - content: "\e630"; -} -.icon-ios7-paperplane:before { - content: "\e631"; -} -.icon-ios7-paperplane-outline:before { - content: "\e632"; -} -.icon-ios7-undo:before { - content: "\e634"; -} -.icon-ios7-undo-outline:before { - content: "\e635"; -} -.icon-ios7-redo:before { - content: "\e636"; -} -.icon-ios7-redo-outline:before { - content: "\e637"; -} -.icon-ios7-refresh-outline:before { - content: "\e63a"; -} -.icon-ios7-cog:before { - content: "\e63b"; -} -.icon-ios7-cog-outline:before { - content: "\e63c"; -} -.icon-ios7-browsers:before { - content: "\e63d"; -} -.icon-ios7-browsers-outline:before { - content: "\e63e"; -} -.icon-ios7-bolt:before { - content: "\e63f"; -} -.icon-ios7-bolt-outline:before { - content: "\e641"; -} -.icon-ios7-heart:before { - content: "\e642"; -} -.icon-ios7-printer:before { - content: "\e645"; -} -.icon-ios7-telephone:before { - content: "\e646"; -} -.icon-ios7-telephone-outline:before { - content: "\e647"; -} -.icon-ios7-monitor:before { - content: "\e648"; -} -.icon-ios7-monitor-outline:before { - content: "\e649"; -} -.icon-ios7-camera:before { - content: "\e64a"; -} -.icon-ios7-camera-outline:before { - content: "\e64b"; -} -.icon-ios7-film:before { - content: "\e64c"; -} -.icon-ios7-bell:before { - content: "\e64e"; -} -.icon-ios7-bell-outline:before { - content: "\e64f"; -} -.icon-ios7-musical-note:before { - content: "\e650"; -} -.icon-ios7-musical-notes:before { - content: "\e651"; -} -.icon-ios7-skipbackward:before { - content: "\e652"; -} -.icon-ios7-skipbackward-outline:before { - content: "\e653"; -} -.icon-ios7-skipforward:before { - content: "\e654"; -} -.icon-ios7-skipforward-outline:before { - content: "\e655"; -} -.icon-ios7-rewind:before { - content: "\e656"; -} -.icon-ios7-rewind-outline:before { - content: "\e657"; -} -.icon-ios7-pause-outline:before { - content: "\e658"; -} -.icon-ios7-pause:before { - content: "\e659"; -} -.icon-ios7-play:before { - content: "\e65b"; -} -.icon-ios7-volume-high:before { - content: "\e65c"; -} -.icon-ios7-volume-low:before { - content: "\e65d"; -} -.icon-ios7-mic-off:before { - content: "\e65e"; -} -.icon-ios7-mic-outline:before { - content: "\e65f"; -} -.icon-ios7-mic:before { - content: "\e660"; -} -.icon-ios7-cloud-upload:before { - content: "\e661"; -} -.icon-ios7-cloud-upload-outline:before { - content: "\e662"; -} -.icon-ios7-cloud-outline:before { - content: "\e663"; -} -.icon-ios7-arrow-forward:before { - content: "\e664"; -} -.icon-ios7-arrow-back:before { - content: "\e665"; -} -.icon-ios7-unlocked:before { - content: "\e666"; -} -.icon-ios7-unlocked-outline:before { - content: "\e668"; -} -.icon-ios7-locked:before { - content: "\e669"; -} -.icon-ios7-locked-outline:before { - content: "\e66a"; -} -.icon-ios7-minus-empty:before { - content: "\e66b"; -} -.icon-ios7-minus:before { - content: "\e66c"; -} -.icon-ios7-minus-outline:before { - content: "\e66d"; -} -.icon-ios7-folder-outline:before { - content: "\e66e"; -} -.icon-ios7-calendar:before { - content: "\e66f"; -} -.icon-ios7-calendar-outline:before { - content: "\e670"; -} -.icon-ios7-partlysunny-outline:before { - content: "\e671"; -} -.icon-ios7-cloudy:before { - content: "\e672"; -} -.icon-ios7-eye:before { - content: "\e676"; -} -.icon-ios7-videocam:before { - content: "\e67b"; -} -.icon-ios7-videocam-outline:before { - content: "\e67c"; -} -.icon-ios7-fastforward-outline:before { - content: "\e67d"; -} -.icon-ios7-play-outline:before { - content: "\e67e"; -} -.icon-ios7-cloud-download-outline:before { - content: "\e67f"; -} -.icon-ios7-cloud:before { - content: "\e680"; -} -.icon-ios7-arrow-up:before { - content: "\e62d"; -} -.icon-ios7-arrow-down:before { - content: "\e62e"; -} -.icon-ios7-arrow-right:before { - content: "\e638"; -} -.icon-ios7-arrow-left:before { - content: "\e639"; -} -.icon-ios7-chatbubble:before { - content: "\e643"; -} -.icon-ios7-chatbubble-outline:before { - content: "\e644"; -} -.icon-ios7-refresh:before { - content: "\e673"; -} -.icon-ios7-refresh-empty:before { - content: "\e675"; -} -.icon-ios7-filing-outline:before { - content: "\e677"; -} -.icon-ios7-compose:before { - content: "\e678"; -} -.icon-ios7-chatboxes:before { - content: "\e679"; -} +/*! + Ionicons, v1.5.2 + Created by Ben Sperry for the Ionic Framework, http://ionicons.com/ + https://twitter.com/benjsperry https://twitter.com/ionicframework + MIT License: https://github.com/driftyco/ionicons +*/ +@font-face { font-family: "Ionicons"; src: url("../fonts/ionicons.eot?v=1.5.2"); src: url("../fonts/ionicons.eot?v=1.5.2#iefix") format("embedded-opentype"), url("../fonts/ionicons.ttf?v=1.5.2") format("truetype"), url("../fonts/ionicons.woff?v=1.5.2") format("woff"), url("../fonts/ionicons.svg?v=1.5.2#Ionicons") format("svg"); font-weight: normal; font-style: normal; } +.ion, .ion-loading-a, .ion-loading-b, .ion-loading-c, .ion-loading-d, .ion-looping, .ion-refreshing, .ion-ios7-reloading, .ionicons, .ion-alert:before, .ion-alert-circled:before, .ion-android-add:before, .ion-android-add-contact:before, .ion-android-alarm:before, .ion-android-archive:before, .ion-android-arrow-back:before, .ion-android-arrow-down-left:before, .ion-android-arrow-down-right:before, .ion-android-arrow-forward:before, .ion-android-arrow-up-left:before, .ion-android-arrow-up-right:before, .ion-android-battery:before, .ion-android-book:before, .ion-android-calendar:before, .ion-android-call:before, .ion-android-camera:before, .ion-android-chat:before, .ion-android-checkmark:before, .ion-android-clock:before, .ion-android-close:before, .ion-android-contact:before, .ion-android-contacts:before, .ion-android-data:before, .ion-android-developer:before, .ion-android-display:before, .ion-android-download:before, .ion-android-drawer:before, .ion-android-dropdown:before, .ion-android-earth:before, .ion-android-folder:before, .ion-android-forums:before, .ion-android-friends:before, .ion-android-hand:before, .ion-android-image:before, .ion-android-inbox:before, .ion-android-information:before, .ion-android-keypad:before, .ion-android-lightbulb:before, .ion-android-locate:before, .ion-android-location:before, .ion-android-mail:before, .ion-android-microphone:before, .ion-android-mixer:before, .ion-android-more:before, .ion-android-note:before, .ion-android-playstore:before, .ion-android-printer:before, .ion-android-promotion:before, .ion-android-reminder:before, .ion-android-remove:before, .ion-android-search:before, .ion-android-send:before, .ion-android-settings:before, .ion-android-share:before, .ion-android-social:before, .ion-android-social-user:before, .ion-android-sort:before, .ion-android-stair-drawer:before, .ion-android-star:before, .ion-android-stopwatch:before, .ion-android-storage:before, .ion-android-system-back:before, .ion-android-system-home:before, .ion-android-system-windows:before, .ion-android-timer:before, .ion-android-trash:before, .ion-android-user-menu:before, .ion-android-volume:before, .ion-android-wifi:before, .ion-aperture:before, .ion-archive:before, .ion-arrow-down-a:before, .ion-arrow-down-b:before, .ion-arrow-down-c:before, .ion-arrow-expand:before, .ion-arrow-graph-down-left:before, .ion-arrow-graph-down-right:before, .ion-arrow-graph-up-left:before, .ion-arrow-graph-up-right:before, .ion-arrow-left-a:before, .ion-arrow-left-b:before, .ion-arrow-left-c:before, .ion-arrow-move:before, .ion-arrow-resize:before, .ion-arrow-return-left:before, .ion-arrow-return-right:before, .ion-arrow-right-a:before, .ion-arrow-right-b:before, .ion-arrow-right-c:before, .ion-arrow-shrink:before, .ion-arrow-swap:before, .ion-arrow-up-a:before, .ion-arrow-up-b:before, .ion-arrow-up-c:before, .ion-asterisk:before, .ion-at:before, .ion-bag:before, .ion-battery-charging:before, .ion-battery-empty:before, .ion-battery-full:before, .ion-battery-half:before, .ion-battery-low:before, .ion-beaker:before, .ion-beer:before, .ion-bluetooth:before, .ion-bonfire:before, .ion-bookmark:before, .ion-briefcase:before, .ion-bug:before, .ion-calculator:before, .ion-calendar:before, .ion-camera:before, .ion-card:before, .ion-cash:before, .ion-chatbox:before, .ion-chatbox-working:before, .ion-chatboxes:before, .ion-chatbubble:before, .ion-chatbubble-working:before, .ion-chatbubbles:before, .ion-checkmark:before, .ion-checkmark-circled:before, .ion-checkmark-round:before, .ion-chevron-down:before, .ion-chevron-left:before, .ion-chevron-right:before, .ion-chevron-up:before, .ion-clipboard:before, .ion-clock:before, .ion-close:before, .ion-close-circled:before, .ion-close-round:before, .ion-closed-captioning:before, .ion-cloud:before, .ion-code:before, .ion-code-download:before, .ion-code-working:before, .ion-coffee:before, .ion-compass:before, .ion-compose:before, .ion-connection-bars:before, .ion-contrast:before, .ion-cube:before, .ion-disc:before, .ion-document:before, .ion-document-text:before, .ion-drag:before, .ion-earth:before, .ion-edit:before, .ion-egg:before, .ion-eject:before, .ion-email:before, .ion-eye:before, .ion-eye-disabled:before, .ion-female:before, .ion-filing:before, .ion-film-marker:before, .ion-fireball:before, .ion-flag:before, .ion-flame:before, .ion-flash:before, .ion-flash-off:before, .ion-flask:before, .ion-folder:before, .ion-fork:before, .ion-fork-repo:before, .ion-forward:before, .ion-funnel:before, .ion-game-controller-a:before, .ion-game-controller-b:before, .ion-gear-a:before, .ion-gear-b:before, .ion-grid:before, .ion-hammer:before, .ion-happy:before, .ion-headphone:before, .ion-heart:before, .ion-heart-broken:before, .ion-help:before, .ion-help-buoy:before, .ion-help-circled:before, .ion-home:before, .ion-icecream:before, .ion-icon-social-google-plus:before, .ion-icon-social-google-plus-outline:before, .ion-image:before, .ion-images:before, .ion-information:before, .ion-information-circled:before, .ion-ionic:before, .ion-ios7-alarm:before, .ion-ios7-alarm-outline:before, .ion-ios7-albums:before, .ion-ios7-albums-outline:before, .ion-ios7-americanfootball:before, .ion-ios7-americanfootball-outline:before, .ion-ios7-analytics:before, .ion-ios7-analytics-outline:before, .ion-ios7-arrow-back:before, .ion-ios7-arrow-down:before, .ion-ios7-arrow-forward:before, .ion-ios7-arrow-left:before, .ion-ios7-arrow-right:before, .ion-ios7-arrow-thin-down:before, .ion-ios7-arrow-thin-left:before, .ion-ios7-arrow-thin-right:before, .ion-ios7-arrow-thin-up:before, .ion-ios7-arrow-up:before, .ion-ios7-at:before, .ion-ios7-at-outline:before, .ion-ios7-barcode:before, .ion-ios7-barcode-outline:before, .ion-ios7-baseball:before, .ion-ios7-baseball-outline:before, .ion-ios7-basketball:before, .ion-ios7-basketball-outline:before, .ion-ios7-bell:before, .ion-ios7-bell-outline:before, .ion-ios7-bolt:before, .ion-ios7-bolt-outline:before, .ion-ios7-bookmarks:before, .ion-ios7-bookmarks-outline:before, .ion-ios7-box:before, .ion-ios7-box-outline:before, .ion-ios7-briefcase:before, .ion-ios7-briefcase-outline:before, .ion-ios7-browsers:before, .ion-ios7-browsers-outline:before, .ion-ios7-calculator:before, .ion-ios7-calculator-outline:before, .ion-ios7-calendar:before, .ion-ios7-calendar-outline:before, .ion-ios7-camera:before, .ion-ios7-camera-outline:before, .ion-ios7-cart:before, .ion-ios7-cart-outline:before, .ion-ios7-chatboxes:before, .ion-ios7-chatboxes-outline:before, .ion-ios7-chatbubble:before, .ion-ios7-chatbubble-outline:before, .ion-ios7-checkmark:before, .ion-ios7-checkmark-empty:before, .ion-ios7-checkmark-outline:before, .ion-ios7-circle-filled:before, .ion-ios7-circle-outline:before, .ion-ios7-clock:before, .ion-ios7-clock-outline:before, .ion-ios7-close:before, .ion-ios7-close-empty:before, .ion-ios7-close-outline:before, .ion-ios7-cloud:before, .ion-ios7-cloud-download:before, .ion-ios7-cloud-download-outline:before, .ion-ios7-cloud-outline:before, .ion-ios7-cloud-upload:before, .ion-ios7-cloud-upload-outline:before, .ion-ios7-cloudy:before, .ion-ios7-cloudy-night:before, .ion-ios7-cloudy-night-outline:before, .ion-ios7-cloudy-outline:before, .ion-ios7-cog:before, .ion-ios7-cog-outline:before, .ion-ios7-compose:before, .ion-ios7-compose-outline:before, .ion-ios7-contact:before, .ion-ios7-contact-outline:before, .ion-ios7-copy:before, .ion-ios7-copy-outline:before, .ion-ios7-download:before, .ion-ios7-download-outline:before, .ion-ios7-drag:before, .ion-ios7-email:before, .ion-ios7-email-outline:before, .ion-ios7-expand:before, .ion-ios7-eye:before, .ion-ios7-eye-outline:before, .ion-ios7-fastforward:before, .ion-ios7-fastforward-outline:before, .ion-ios7-filing:before, .ion-ios7-filing-outline:before, .ion-ios7-film:before, .ion-ios7-film-outline:before, .ion-ios7-flag:before, .ion-ios7-flag-outline:before, .ion-ios7-folder:before, .ion-ios7-folder-outline:before, .ion-ios7-football:before, .ion-ios7-football-outline:before, .ion-ios7-gear:before, .ion-ios7-gear-outline:before, .ion-ios7-glasses:before, .ion-ios7-glasses-outline:before, .ion-ios7-heart:before, .ion-ios7-heart-outline:before, .ion-ios7-help:before, .ion-ios7-help-empty:before, .ion-ios7-help-outline:before, .ion-ios7-home:before, .ion-ios7-home-outline:before, .ion-ios7-infinite:before, .ion-ios7-infinite-outline:before, .ion-ios7-information:before, .ion-ios7-information-empty:before, .ion-ios7-information-outline:before, .ion-ios7-ionic-outline:before, .ion-ios7-keypad:before, .ion-ios7-keypad-outline:before, .ion-ios7-lightbulb:before, .ion-ios7-lightbulb-outline:before, .ion-ios7-location:before, .ion-ios7-location-outline:before, .ion-ios7-locked:before, .ion-ios7-locked-outline:before, .ion-ios7-loop:before, .ion-ios7-loop-strong:before, .ion-ios7-medkit:before, .ion-ios7-medkit-outline:before, .ion-ios7-mic:before, .ion-ios7-mic-off:before, .ion-ios7-mic-outline:before, .ion-ios7-minus:before, .ion-ios7-minus-empty:before, .ion-ios7-minus-outline:before, .ion-ios7-monitor:before, .ion-ios7-monitor-outline:before, .ion-ios7-moon:before, .ion-ios7-moon-outline:before, .ion-ios7-more:before, .ion-ios7-more-outline:before, .ion-ios7-musical-note:before, .ion-ios7-musical-notes:before, .ion-ios7-navigate:before, .ion-ios7-navigate-outline:before, .ion-ios7-paper:before, .ion-ios7-paper-outline:before, .ion-ios7-paperplane:before, .ion-ios7-paperplane-outline:before, .ion-ios7-partlysunny:before, .ion-ios7-partlysunny-outline:before, .ion-ios7-pause:before, .ion-ios7-pause-outline:before, .ion-ios7-paw:before, .ion-ios7-paw-outline:before, .ion-ios7-people:before, .ion-ios7-people-outline:before, .ion-ios7-person:before, .ion-ios7-person-outline:before, .ion-ios7-personadd:before, .ion-ios7-personadd-outline:before, .ion-ios7-photos:before, .ion-ios7-photos-outline:before, .ion-ios7-pie:before, .ion-ios7-pie-outline:before, .ion-ios7-play:before, .ion-ios7-play-outline:before, .ion-ios7-plus:before, .ion-ios7-plus-empty:before, .ion-ios7-plus-outline:before, .ion-ios7-pricetag:before, .ion-ios7-pricetag-outline:before, .ion-ios7-pricetags:before, .ion-ios7-pricetags-outline:before, .ion-ios7-printer:before, .ion-ios7-printer-outline:before, .ion-ios7-pulse:before, .ion-ios7-pulse-strong:before, .ion-ios7-rainy:before, .ion-ios7-rainy-outline:before, .ion-ios7-recording:before, .ion-ios7-recording-outline:before, .ion-ios7-redo:before, .ion-ios7-redo-outline:before, .ion-ios7-refresh:before, .ion-ios7-refresh-empty:before, .ion-ios7-refresh-outline:before, .ion-ios7-reload:before, .ion-ios7-reloading:before, .ion-ios7-reverse-camera:before, .ion-ios7-reverse-camera-outline:before, .ion-ios7-rewind:before, .ion-ios7-rewind-outline:before, .ion-ios7-search:before, .ion-ios7-search-strong:before, .ion-ios7-settings:before, .ion-ios7-settings-strong:before, .ion-ios7-shrink:before, .ion-ios7-skipbackward:before, .ion-ios7-skipbackward-outline:before, .ion-ios7-skipforward:before, .ion-ios7-skipforward-outline:before, .ion-ios7-snowy:before, .ion-ios7-speedometer:before, .ion-ios7-speedometer-outline:before, .ion-ios7-star:before, .ion-ios7-star-half:before, .ion-ios7-star-outline:before, .ion-ios7-stopwatch:before, .ion-ios7-stopwatch-outline:before, .ion-ios7-sunny:before, .ion-ios7-sunny-outline:before, .ion-ios7-telephone:before, .ion-ios7-telephone-outline:before, .ion-ios7-tennisball:before, .ion-ios7-tennisball-outline:before, .ion-ios7-thunderstorm:before, .ion-ios7-thunderstorm-outline:before, .ion-ios7-time:before, .ion-ios7-time-outline:before, .ion-ios7-timer:before, .ion-ios7-timer-outline:before, .ion-ios7-toggle:before, .ion-ios7-toggle-outline:before, .ion-ios7-trash:before, .ion-ios7-trash-outline:before, .ion-ios7-undo:before, .ion-ios7-undo-outline:before, .ion-ios7-unlocked:before, .ion-ios7-unlocked-outline:before, .ion-ios7-upload:before, .ion-ios7-upload-outline:before, .ion-ios7-videocam:before, .ion-ios7-videocam-outline:before, .ion-ios7-volume-high:before, .ion-ios7-volume-low:before, .ion-ios7-wineglass:before, .ion-ios7-wineglass-outline:before, .ion-ios7-world:before, .ion-ios7-world-outline:before, .ion-ipad:before, .ion-iphone:before, .ion-ipod:before, .ion-jet:before, .ion-key:before, .ion-knife:before, .ion-laptop:before, .ion-leaf:before, .ion-levels:before, .ion-lightbulb:before, .ion-link:before, .ion-load-a:before, .ion-loading-a:before, .ion-load-b:before, .ion-loading-b:before, .ion-load-c:before, .ion-loading-c:before, .ion-load-d:before, .ion-loading-d:before, .ion-location:before, .ion-locked:before, .ion-log-in:before, .ion-log-out:before, .ion-loop:before, .ion-looping:before, .ion-magnet:before, .ion-male:before, .ion-man:before, .ion-map:before, .ion-medkit:before, .ion-merge:before, .ion-mic-a:before, .ion-mic-b:before, .ion-mic-c:before, .ion-minus:before, .ion-minus-circled:before, .ion-minus-round:before, .ion-model-s:before, .ion-monitor:before, .ion-more:before, .ion-mouse:before, .ion-music-note:before, .ion-navicon:before, .ion-navicon-round:before, .ion-navigate:before, .ion-network:before, .ion-no-smoking:before, .ion-nuclear:before, .ion-outlet:before, .ion-paper-airplane:before, .ion-paperclip:before, .ion-pause:before, .ion-person:before, .ion-person-add:before, .ion-person-stalker:before, .ion-pie-graph:before, .ion-pin:before, .ion-pinpoint:before, .ion-pizza:before, .ion-plane:before, .ion-planet:before, .ion-play:before, .ion-playstation:before, .ion-plus:before, .ion-plus-circled:before, .ion-plus-round:before, .ion-podium:before, .ion-pound:before, .ion-power:before, .ion-pricetag:before, .ion-pricetags:before, .ion-printer:before, .ion-pull-request:before, .ion-qr-scanner:before, .ion-quote:before, .ion-radio-waves:before, .ion-record:before, .ion-refresh:before, .ion-refreshing:before, .ion-reply:before, .ion-reply-all:before, .ion-ribbon-a:before, .ion-ribbon-b:before, .ion-sad:before, .ion-scissors:before, .ion-search:before, .ion-settings:before, .ion-share:before, .ion-shuffle:before, .ion-skip-backward:before, .ion-skip-forward:before, .ion-social-android:before, .ion-social-android-outline:before, .ion-social-apple:before, .ion-social-apple-outline:before, .ion-social-bitcoin:before, .ion-social-bitcoin-outline:before, .ion-social-buffer:before, .ion-social-buffer-outline:before, .ion-social-designernews:before, .ion-social-designernews-outline:before, .ion-social-dribbble:before, .ion-social-dribbble-outline:before, .ion-social-dropbox:before, .ion-social-dropbox-outline:before, .ion-social-facebook:before, .ion-social-facebook-outline:before, .ion-social-foursquare:before, .ion-social-foursquare-outline:before, .ion-social-freebsd-devil:before, .ion-social-github:before, .ion-social-github-outline:before, .ion-social-google:before, .ion-social-google-outline:before, .ion-social-googleplus:before, .ion-social-googleplus-outline:before, .ion-social-hackernews:before, .ion-social-hackernews-outline:before, .ion-social-instagram:before, .ion-social-instagram-outline:before, .ion-social-linkedin:before, .ion-social-linkedin-outline:before, .ion-social-pinterest:before, .ion-social-pinterest-outline:before, .ion-social-reddit:before, .ion-social-reddit-outline:before, .ion-social-rss:before, .ion-social-rss-outline:before, .ion-social-skype:before, .ion-social-skype-outline:before, .ion-social-tumblr:before, .ion-social-tumblr-outline:before, .ion-social-tux:before, .ion-social-twitter:before, .ion-social-twitter-outline:before, .ion-social-usd:before, .ion-social-usd-outline:before, .ion-social-vimeo:before, .ion-social-vimeo-outline:before, .ion-social-windows:before, .ion-social-windows-outline:before, .ion-social-wordpress:before, .ion-social-wordpress-outline:before, .ion-social-yahoo:before, .ion-social-yahoo-outline:before, .ion-social-youtube:before, .ion-social-youtube-outline:before, .ion-speakerphone:before, .ion-speedometer:before, .ion-spoon:before, .ion-star:before, .ion-stats-bars:before, .ion-steam:before, .ion-stop:before, .ion-thermometer:before, .ion-thumbsdown:before, .ion-thumbsup:before, .ion-toggle:before, .ion-toggle-filled:before, .ion-trash-a:before, .ion-trash-b:before, .ion-trophy:before, .ion-umbrella:before, .ion-university:before, .ion-unlocked:before, .ion-upload:before, .ion-usb:before, .ion-videocamera:before, .ion-volume-high:before, .ion-volume-low:before, .ion-volume-medium:before, .ion-volume-mute:before, .ion-wand:before, .ion-waterdrop:before, .ion-wifi:before, .ion-wineglass:before, .ion-woman:before, .ion-wrench:before, .ion-xbox:before { display: inline-block; font-family: "Ionicons"; speak: none; font-style: normal; font-weight: normal; font-variant: normal; text-transform: none; text-rendering: auto; line-height: 1; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } + +.ion-spin, .ion-loading-a, .ion-loading-b, .ion-loading-c, .ion-loading-d, .ion-looping, .ion-refreshing, .ion-ios7-reloading { -webkit-animation: spin 1s infinite linear; -moz-animation: spin 1s infinite linear; -o-animation: spin 1s infinite linear; animation: spin 1s infinite linear; } + +@-moz-keyframes spin { 0% { -moz-transform: rotate(0deg); } + 100% { -moz-transform: rotate(359deg); } } +@-webkit-keyframes spin { 0% { -webkit-transform: rotate(0deg); } + 100% { -webkit-transform: rotate(359deg); } } +@-o-keyframes spin { 0% { -o-transform: rotate(0deg); } + 100% { -o-transform: rotate(359deg); } } +@-ms-keyframes spin { 0% { -ms-transform: rotate(0deg); } + 100% { -ms-transform: rotate(359deg); } } +@keyframes spin { 0% { transform: rotate(0deg); } + 100% { transform: rotate(359deg); } } +.ion-loading-a { -webkit-animation-timing-function: steps(8, start); -moz-animation-timing-function: steps(8, start); animation-timing-function: steps(8, start); } + +.ion-alert:before { content: "\f101"; } + +.ion-alert-circled:before { content: "\f100"; } + +.ion-android-add:before { content: "\f2c7"; } + +.ion-android-add-contact:before { content: "\f2c6"; } + +.ion-android-alarm:before { content: "\f2c8"; } + +.ion-android-archive:before { content: "\f2c9"; } + +.ion-android-arrow-back:before { content: "\f2ca"; } + +.ion-android-arrow-down-left:before { content: "\f2cb"; } + +.ion-android-arrow-down-right:before { content: "\f2cc"; } + +.ion-android-arrow-forward:before { content: "\f30f"; } + +.ion-android-arrow-up-left:before { content: "\f2cd"; } + +.ion-android-arrow-up-right:before { content: "\f2ce"; } + +.ion-android-battery:before { content: "\f2cf"; } + +.ion-android-book:before { content: "\f2d0"; } + +.ion-android-calendar:before { content: "\f2d1"; } + +.ion-android-call:before { content: "\f2d2"; } + +.ion-android-camera:before { content: "\f2d3"; } + +.ion-android-chat:before { content: "\f2d4"; } + +.ion-android-checkmark:before { content: "\f2d5"; } + +.ion-android-clock:before { content: "\f2d6"; } + +.ion-android-close:before { content: "\f2d7"; } + +.ion-android-contact:before { content: "\f2d8"; } + +.ion-android-contacts:before { content: "\f2d9"; } + +.ion-android-data:before { content: "\f2da"; } + +.ion-android-developer:before { content: "\f2db"; } + +.ion-android-display:before { content: "\f2dc"; } + +.ion-android-download:before { content: "\f2dd"; } + +.ion-android-drawer:before { content: "\f310"; } + +.ion-android-dropdown:before { content: "\f2de"; } + +.ion-android-earth:before { content: "\f2df"; } + +.ion-android-folder:before { content: "\f2e0"; } + +.ion-android-forums:before { content: "\f2e1"; } + +.ion-android-friends:before { content: "\f2e2"; } + +.ion-android-hand:before { content: "\f2e3"; } + +.ion-android-image:before { content: "\f2e4"; } + +.ion-android-inbox:before { content: "\f2e5"; } + +.ion-android-information:before { content: "\f2e6"; } + +.ion-android-keypad:before { content: "\f2e7"; } + +.ion-android-lightbulb:before { content: "\f2e8"; } + +.ion-android-locate:before { content: "\f2e9"; } + +.ion-android-location:before { content: "\f2ea"; } + +.ion-android-mail:before { content: "\f2eb"; } + +.ion-android-microphone:before { content: "\f2ec"; } + +.ion-android-mixer:before { content: "\f2ed"; } + +.ion-android-more:before { content: "\f2ee"; } + +.ion-android-note:before { content: "\f2ef"; } + +.ion-android-playstore:before { content: "\f2f0"; } + +.ion-android-printer:before { content: "\f2f1"; } + +.ion-android-promotion:before { content: "\f2f2"; } + +.ion-android-reminder:before { content: "\f2f3"; } + +.ion-android-remove:before { content: "\f2f4"; } + +.ion-android-search:before { content: "\f2f5"; } + +.ion-android-send:before { content: "\f2f6"; } + +.ion-android-settings:before { content: "\f2f7"; } + +.ion-android-share:before { content: "\f2f8"; } + +.ion-android-social:before { content: "\f2fa"; } + +.ion-android-social-user:before { content: "\f2f9"; } + +.ion-android-sort:before { content: "\f2fb"; } + +.ion-android-stair-drawer:before { content: "\f311"; } + +.ion-android-star:before { content: "\f2fc"; } + +.ion-android-stopwatch:before { content: "\f2fd"; } + +.ion-android-storage:before { content: "\f2fe"; } + +.ion-android-system-back:before { content: "\f2ff"; } + +.ion-android-system-home:before { content: "\f300"; } + +.ion-android-system-windows:before { content: "\f301"; } + +.ion-android-timer:before { content: "\f302"; } + +.ion-android-trash:before { content: "\f303"; } + +.ion-android-user-menu:before { content: "\f312"; } + +.ion-android-volume:before { content: "\f304"; } + +.ion-android-wifi:before { content: "\f305"; } + +.ion-aperture:before { content: "\f313"; } + +.ion-archive:before { content: "\f102"; } + +.ion-arrow-down-a:before { content: "\f103"; } + +.ion-arrow-down-b:before { content: "\f104"; } + +.ion-arrow-down-c:before { content: "\f105"; } + +.ion-arrow-expand:before { content: "\f25e"; } + +.ion-arrow-graph-down-left:before { content: "\f25f"; } + +.ion-arrow-graph-down-right:before { content: "\f260"; } + +.ion-arrow-graph-up-left:before { content: "\f261"; } + +.ion-arrow-graph-up-right:before { content: "\f262"; } + +.ion-arrow-left-a:before { content: "\f106"; } + +.ion-arrow-left-b:before { content: "\f107"; } + +.ion-arrow-left-c:before { content: "\f108"; } + +.ion-arrow-move:before { content: "\f263"; } + +.ion-arrow-resize:before { content: "\f264"; } + +.ion-arrow-return-left:before { content: "\f265"; } + +.ion-arrow-return-right:before { content: "\f266"; } + +.ion-arrow-right-a:before { content: "\f109"; } + +.ion-arrow-right-b:before { content: "\f10a"; } + +.ion-arrow-right-c:before { content: "\f10b"; } + +.ion-arrow-shrink:before { content: "\f267"; } + +.ion-arrow-swap:before { content: "\f268"; } + +.ion-arrow-up-a:before { content: "\f10c"; } + +.ion-arrow-up-b:before { content: "\f10d"; } + +.ion-arrow-up-c:before { content: "\f10e"; } + +.ion-asterisk:before { content: "\f314"; } + +.ion-at:before { content: "\f10f"; } + +.ion-bag:before { content: "\f110"; } + +.ion-battery-charging:before { content: "\f111"; } + +.ion-battery-empty:before { content: "\f112"; } + +.ion-battery-full:before { content: "\f113"; } + +.ion-battery-half:before { content: "\f114"; } + +.ion-battery-low:before { content: "\f115"; } + +.ion-beaker:before { content: "\f269"; } + +.ion-beer:before { content: "\f26a"; } + +.ion-bluetooth:before { content: "\f116"; } + +.ion-bonfire:before { content: "\f315"; } + +.ion-bookmark:before { content: "\f26b"; } + +.ion-briefcase:before { content: "\f26c"; } + +.ion-bug:before { content: "\f2be"; } + +.ion-calculator:before { content: "\f26d"; } + +.ion-calendar:before { content: "\f117"; } + +.ion-camera:before { content: "\f118"; } + +.ion-card:before { content: "\f119"; } + +.ion-cash:before { content: "\f316"; } + +.ion-chatbox:before { content: "\f11b"; } + +.ion-chatbox-working:before { content: "\f11a"; } + +.ion-chatboxes:before { content: "\f11c"; } + +.ion-chatbubble:before { content: "\f11e"; } + +.ion-chatbubble-working:before { content: "\f11d"; } + +.ion-chatbubbles:before { content: "\f11f"; } + +.ion-checkmark:before { content: "\f122"; } + +.ion-checkmark-circled:before { content: "\f120"; } + +.ion-checkmark-round:before { content: "\f121"; } + +.ion-chevron-down:before { content: "\f123"; } + +.ion-chevron-left:before { content: "\f124"; } + +.ion-chevron-right:before { content: "\f125"; } + +.ion-chevron-up:before { content: "\f126"; } + +.ion-clipboard:before { content: "\f127"; } + +.ion-clock:before { content: "\f26e"; } + +.ion-close:before { content: "\f12a"; } + +.ion-close-circled:before { content: "\f128"; } + +.ion-close-round:before { content: "\f129"; } + +.ion-closed-captioning:before { content: "\f317"; } + +.ion-cloud:before { content: "\f12b"; } + +.ion-code:before { content: "\f271"; } + +.ion-code-download:before { content: "\f26f"; } + +.ion-code-working:before { content: "\f270"; } + +.ion-coffee:before { content: "\f272"; } + +.ion-compass:before { content: "\f273"; } + +.ion-compose:before { content: "\f12c"; } + +.ion-connection-bars:before { content: "\f274"; } + +.ion-contrast:before { content: "\f275"; } + +.ion-cube:before { content: "\f318"; } + +.ion-disc:before { content: "\f12d"; } + +.ion-document:before { content: "\f12f"; } + +.ion-document-text:before { content: "\f12e"; } + +.ion-drag:before { content: "\f130"; } + +.ion-earth:before { content: "\f276"; } + +.ion-edit:before { content: "\f2bf"; } + +.ion-egg:before { content: "\f277"; } + +.ion-eject:before { content: "\f131"; } + +.ion-email:before { content: "\f132"; } + +.ion-eye:before { content: "\f133"; } + +.ion-eye-disabled:before { content: "\f306"; } + +.ion-female:before { content: "\f278"; } + +.ion-filing:before { content: "\f134"; } + +.ion-film-marker:before { content: "\f135"; } + +.ion-fireball:before { content: "\f319"; } + +.ion-flag:before { content: "\f279"; } + +.ion-flame:before { content: "\f31a"; } + +.ion-flash:before { content: "\f137"; } + +.ion-flash-off:before { content: "\f136"; } + +.ion-flask:before { content: "\f138"; } + +.ion-folder:before { content: "\f139"; } + +.ion-fork:before { content: "\f27a"; } + +.ion-fork-repo:before { content: "\f2c0"; } + +.ion-forward:before { content: "\f13a"; } + +.ion-funnel:before { content: "\f31b"; } + +.ion-game-controller-a:before { content: "\f13b"; } + +.ion-game-controller-b:before { content: "\f13c"; } + +.ion-gear-a:before { content: "\f13d"; } + +.ion-gear-b:before { content: "\f13e"; } + +.ion-grid:before { content: "\f13f"; } + +.ion-hammer:before { content: "\f27b"; } + +.ion-happy:before { content: "\f31c"; } + +.ion-headphone:before { content: "\f140"; } + +.ion-heart:before { content: "\f141"; } + +.ion-heart-broken:before { content: "\f31d"; } + +.ion-help:before { content: "\f143"; } + +.ion-help-buoy:before { content: "\f27c"; } + +.ion-help-circled:before { content: "\f142"; } + +.ion-home:before { content: "\f144"; } + +.ion-icecream:before { content: "\f27d"; } + +.ion-icon-social-google-plus:before { content: "\f146"; } + +.ion-icon-social-google-plus-outline:before { content: "\f145"; } + +.ion-image:before { content: "\f147"; } + +.ion-images:before { content: "\f148"; } + +.ion-information:before { content: "\f14a"; } + +.ion-information-circled:before { content: "\f149"; } + +.ion-ionic:before { content: "\f14b"; } + +.ion-ios7-alarm:before { content: "\f14d"; } + +.ion-ios7-alarm-outline:before { content: "\f14c"; } + +.ion-ios7-albums:before { content: "\f14f"; } + +.ion-ios7-albums-outline:before { content: "\f14e"; } + +.ion-ios7-americanfootball:before { content: "\f31f"; } + +.ion-ios7-americanfootball-outline:before { content: "\f31e"; } + +.ion-ios7-analytics:before { content: "\f321"; } + +.ion-ios7-analytics-outline:before { content: "\f320"; } + +.ion-ios7-arrow-back:before { content: "\f150"; } + +.ion-ios7-arrow-down:before { content: "\f151"; } + +.ion-ios7-arrow-forward:before { content: "\f152"; } + +.ion-ios7-arrow-left:before { content: "\f153"; } + +.ion-ios7-arrow-right:before { content: "\f154"; } + +.ion-ios7-arrow-thin-down:before { content: "\f27e"; } + +.ion-ios7-arrow-thin-left:before { content: "\f27f"; } + +.ion-ios7-arrow-thin-right:before { content: "\f280"; } + +.ion-ios7-arrow-thin-up:before { content: "\f281"; } + +.ion-ios7-arrow-up:before { content: "\f155"; } + +.ion-ios7-at:before { content: "\f157"; } + +.ion-ios7-at-outline:before { content: "\f156"; } + +.ion-ios7-barcode:before { content: "\f323"; } + +.ion-ios7-barcode-outline:before { content: "\f322"; } + +.ion-ios7-baseball:before { content: "\f325"; } + +.ion-ios7-baseball-outline:before { content: "\f324"; } + +.ion-ios7-basketball:before { content: "\f327"; } + +.ion-ios7-basketball-outline:before { content: "\f326"; } + +.ion-ios7-bell:before { content: "\f159"; } + +.ion-ios7-bell-outline:before { content: "\f158"; } + +.ion-ios7-bolt:before { content: "\f15b"; } + +.ion-ios7-bolt-outline:before { content: "\f15a"; } + +.ion-ios7-bookmarks:before { content: "\f15d"; } + +.ion-ios7-bookmarks-outline:before { content: "\f15c"; } + +.ion-ios7-box:before { content: "\f15f"; } + +.ion-ios7-box-outline:before { content: "\f15e"; } + +.ion-ios7-briefcase:before { content: "\f283"; } + +.ion-ios7-briefcase-outline:before { content: "\f282"; } + +.ion-ios7-browsers:before { content: "\f161"; } + +.ion-ios7-browsers-outline:before { content: "\f160"; } + +.ion-ios7-calculator:before { content: "\f285"; } + +.ion-ios7-calculator-outline:before { content: "\f284"; } + +.ion-ios7-calendar:before { content: "\f163"; } + +.ion-ios7-calendar-outline:before { content: "\f162"; } + +.ion-ios7-camera:before { content: "\f165"; } + +.ion-ios7-camera-outline:before { content: "\f164"; } + +.ion-ios7-cart:before { content: "\f167"; } + +.ion-ios7-cart-outline:before { content: "\f166"; } + +.ion-ios7-chatboxes:before { content: "\f169"; } + +.ion-ios7-chatboxes-outline:before { content: "\f168"; } + +.ion-ios7-chatbubble:before { content: "\f16b"; } + +.ion-ios7-chatbubble-outline:before { content: "\f16a"; } + +.ion-ios7-checkmark:before { content: "\f16e"; } + +.ion-ios7-checkmark-empty:before { content: "\f16c"; } + +.ion-ios7-checkmark-outline:before { content: "\f16d"; } + +.ion-ios7-circle-filled:before { content: "\f16f"; } + +.ion-ios7-circle-outline:before { content: "\f170"; } + +.ion-ios7-clock:before { content: "\f172"; } + +.ion-ios7-clock-outline:before { content: "\f171"; } + +.ion-ios7-close:before { content: "\f2bc"; } + +.ion-ios7-close-empty:before { content: "\f2bd"; } + +.ion-ios7-close-outline:before { content: "\f2bb"; } + +.ion-ios7-cloud:before { content: "\f178"; } + +.ion-ios7-cloud-download:before { content: "\f174"; } + +.ion-ios7-cloud-download-outline:before { content: "\f173"; } + +.ion-ios7-cloud-outline:before { content: "\f175"; } + +.ion-ios7-cloud-upload:before { content: "\f177"; } + +.ion-ios7-cloud-upload-outline:before { content: "\f176"; } + +.ion-ios7-cloudy:before { content: "\f17a"; } + +.ion-ios7-cloudy-night:before { content: "\f308"; } + +.ion-ios7-cloudy-night-outline:before { content: "\f307"; } + +.ion-ios7-cloudy-outline:before { content: "\f179"; } + +.ion-ios7-cog:before { content: "\f17c"; } + +.ion-ios7-cog-outline:before { content: "\f17b"; } + +.ion-ios7-compose:before { content: "\f17e"; } + +.ion-ios7-compose-outline:before { content: "\f17d"; } + +.ion-ios7-contact:before { content: "\f180"; } + +.ion-ios7-contact-outline:before { content: "\f17f"; } + +.ion-ios7-copy:before { content: "\f182"; } + +.ion-ios7-copy-outline:before { content: "\f181"; } + +.ion-ios7-download:before { content: "\f184"; } + +.ion-ios7-download-outline:before { content: "\f183"; } + +.ion-ios7-drag:before { content: "\f185"; } + +.ion-ios7-email:before { content: "\f187"; } + +.ion-ios7-email-outline:before { content: "\f186"; } + +.ion-ios7-expand:before { content: "\f30d"; } + +.ion-ios7-eye:before { content: "\f189"; } + +.ion-ios7-eye-outline:before { content: "\f188"; } + +.ion-ios7-fastforward:before { content: "\f18b"; } + +.ion-ios7-fastforward-outline:before { content: "\f18a"; } + +.ion-ios7-filing:before { content: "\f18d"; } + +.ion-ios7-filing-outline:before { content: "\f18c"; } + +.ion-ios7-film:before { content: "\f18f"; } + +.ion-ios7-film-outline:before { content: "\f18e"; } + +.ion-ios7-flag:before { content: "\f191"; } + +.ion-ios7-flag-outline:before { content: "\f190"; } + +.ion-ios7-folder:before { content: "\f193"; } + +.ion-ios7-folder-outline:before { content: "\f192"; } + +.ion-ios7-football:before { content: "\f329"; } + +.ion-ios7-football-outline:before { content: "\f328"; } + +.ion-ios7-gear:before { content: "\f195"; } + +.ion-ios7-gear-outline:before { content: "\f194"; } + +.ion-ios7-glasses:before { content: "\f197"; } + +.ion-ios7-glasses-outline:before { content: "\f196"; } + +.ion-ios7-heart:before { content: "\f199"; } + +.ion-ios7-heart-outline:before { content: "\f198"; } + +.ion-ios7-help:before { content: "\f19c"; } + +.ion-ios7-help-empty:before { content: "\f19a"; } + +.ion-ios7-help-outline:before { content: "\f19b"; } + +.ion-ios7-home:before { content: "\f32b"; } + +.ion-ios7-home-outline:before { content: "\f32a"; } + +.ion-ios7-infinite:before { content: "\f19e"; } + +.ion-ios7-infinite-outline:before { content: "\f19d"; } + +.ion-ios7-information:before { content: "\f1a1"; } + +.ion-ios7-information-empty:before { content: "\f19f"; } + +.ion-ios7-information-outline:before { content: "\f1a0"; } + +.ion-ios7-ionic-outline:before { content: "\f1a2"; } + +.ion-ios7-keypad:before { content: "\f1a4"; } + +.ion-ios7-keypad-outline:before { content: "\f1a3"; } + +.ion-ios7-lightbulb:before { content: "\f287"; } + +.ion-ios7-lightbulb-outline:before { content: "\f286"; } + +.ion-ios7-location:before { content: "\f1a6"; } + +.ion-ios7-location-outline:before { content: "\f1a5"; } + +.ion-ios7-locked:before { content: "\f1a8"; } + +.ion-ios7-locked-outline:before { content: "\f1a7"; } + +.ion-ios7-loop:before { content: "\f32d"; } + +.ion-ios7-loop-strong:before { content: "\f32c"; } + +.ion-ios7-medkit:before { content: "\f289"; } + +.ion-ios7-medkit-outline:before { content: "\f288"; } + +.ion-ios7-mic:before { content: "\f1ab"; } + +.ion-ios7-mic-off:before { content: "\f1a9"; } + +.ion-ios7-mic-outline:before { content: "\f1aa"; } + +.ion-ios7-minus:before { content: "\f1ae"; } + +.ion-ios7-minus-empty:before { content: "\f1ac"; } + +.ion-ios7-minus-outline:before { content: "\f1ad"; } + +.ion-ios7-monitor:before { content: "\f1b0"; } + +.ion-ios7-monitor-outline:before { content: "\f1af"; } + +.ion-ios7-moon:before { content: "\f1b2"; } + +.ion-ios7-moon-outline:before { content: "\f1b1"; } + +.ion-ios7-more:before { content: "\f1b4"; } + +.ion-ios7-more-outline:before { content: "\f1b3"; } + +.ion-ios7-musical-note:before { content: "\f1b5"; } + +.ion-ios7-musical-notes:before { content: "\f1b6"; } + +.ion-ios7-navigate:before { content: "\f1b8"; } + +.ion-ios7-navigate-outline:before { content: "\f1b7"; } + +.ion-ios7-paper:before { content: "\f32f"; } + +.ion-ios7-paper-outline:before { content: "\f32e"; } + +.ion-ios7-paperplane:before { content: "\f1ba"; } + +.ion-ios7-paperplane-outline:before { content: "\f1b9"; } + +.ion-ios7-partlysunny:before { content: "\f1bc"; } + +.ion-ios7-partlysunny-outline:before { content: "\f1bb"; } + +.ion-ios7-pause:before { content: "\f1be"; } + +.ion-ios7-pause-outline:before { content: "\f1bd"; } + +.ion-ios7-paw:before { content: "\f331"; } + +.ion-ios7-paw-outline:before { content: "\f330"; } + +.ion-ios7-people:before { content: "\f1c0"; } + +.ion-ios7-people-outline:before { content: "\f1bf"; } + +.ion-ios7-person:before { content: "\f1c2"; } + +.ion-ios7-person-outline:before { content: "\f1c1"; } + +.ion-ios7-personadd:before { content: "\f1c4"; } + +.ion-ios7-personadd-outline:before { content: "\f1c3"; } + +.ion-ios7-photos:before { content: "\f1c6"; } + +.ion-ios7-photos-outline:before { content: "\f1c5"; } + +.ion-ios7-pie:before { content: "\f28b"; } + +.ion-ios7-pie-outline:before { content: "\f28a"; } + +.ion-ios7-play:before { content: "\f1c8"; } + +.ion-ios7-play-outline:before { content: "\f1c7"; } + +.ion-ios7-plus:before { content: "\f1cb"; } + +.ion-ios7-plus-empty:before { content: "\f1c9"; } + +.ion-ios7-plus-outline:before { content: "\f1ca"; } + +.ion-ios7-pricetag:before { content: "\f28d"; } + +.ion-ios7-pricetag-outline:before { content: "\f28c"; } + +.ion-ios7-pricetags:before { content: "\f333"; } + +.ion-ios7-pricetags-outline:before { content: "\f332"; } + +.ion-ios7-printer:before { content: "\f1cd"; } + +.ion-ios7-printer-outline:before { content: "\f1cc"; } + +.ion-ios7-pulse:before { content: "\f335"; } + +.ion-ios7-pulse-strong:before { content: "\f334"; } + +.ion-ios7-rainy:before { content: "\f1cf"; } + +.ion-ios7-rainy-outline:before { content: "\f1ce"; } + +.ion-ios7-recording:before { content: "\f1d1"; } + +.ion-ios7-recording-outline:before { content: "\f1d0"; } + +.ion-ios7-redo:before { content: "\f1d3"; } + +.ion-ios7-redo-outline:before { content: "\f1d2"; } + +.ion-ios7-refresh:before { content: "\f1d6"; } + +.ion-ios7-refresh-empty:before { content: "\f1d4"; } + +.ion-ios7-refresh-outline:before { content: "\f1d5"; } + +.ion-ios7-reload:before, .ion-ios7-reloading:before { content: "\f28e"; } + +.ion-ios7-reverse-camera:before { content: "\f337"; } + +.ion-ios7-reverse-camera-outline:before { content: "\f336"; } + +.ion-ios7-rewind:before { content: "\f1d8"; } + +.ion-ios7-rewind-outline:before { content: "\f1d7"; } + +.ion-ios7-search:before { content: "\f1da"; } + +.ion-ios7-search-strong:before { content: "\f1d9"; } + +.ion-ios7-settings:before { content: "\f339"; } + +.ion-ios7-settings-strong:before { content: "\f338"; } + +.ion-ios7-shrink:before { content: "\f30e"; } + +.ion-ios7-skipbackward:before { content: "\f1dc"; } + +.ion-ios7-skipbackward-outline:before { content: "\f1db"; } + +.ion-ios7-skipforward:before { content: "\f1de"; } + +.ion-ios7-skipforward-outline:before { content: "\f1dd"; } + +.ion-ios7-snowy:before { content: "\f309"; } + +.ion-ios7-speedometer:before { content: "\f290"; } + +.ion-ios7-speedometer-outline:before { content: "\f28f"; } + +.ion-ios7-star:before { content: "\f1e0"; } + +.ion-ios7-star-half:before { content: "\f33a"; } + +.ion-ios7-star-outline:before { content: "\f1df"; } + +.ion-ios7-stopwatch:before { content: "\f1e2"; } + +.ion-ios7-stopwatch-outline:before { content: "\f1e1"; } + +.ion-ios7-sunny:before { content: "\f1e4"; } + +.ion-ios7-sunny-outline:before { content: "\f1e3"; } + +.ion-ios7-telephone:before { content: "\f1e6"; } + +.ion-ios7-telephone-outline:before { content: "\f1e5"; } + +.ion-ios7-tennisball:before { content: "\f33c"; } + +.ion-ios7-tennisball-outline:before { content: "\f33b"; } + +.ion-ios7-thunderstorm:before { content: "\f1e8"; } + +.ion-ios7-thunderstorm-outline:before { content: "\f1e7"; } + +.ion-ios7-time:before { content: "\f292"; } + +.ion-ios7-time-outline:before { content: "\f291"; } + +.ion-ios7-timer:before { content: "\f1ea"; } + +.ion-ios7-timer-outline:before { content: "\f1e9"; } + +.ion-ios7-toggle:before { content: "\f33e"; } + +.ion-ios7-toggle-outline:before { content: "\f33d"; } + +.ion-ios7-trash:before { content: "\f1ec"; } + +.ion-ios7-trash-outline:before { content: "\f1eb"; } + +.ion-ios7-undo:before { content: "\f1ee"; } + +.ion-ios7-undo-outline:before { content: "\f1ed"; } + +.ion-ios7-unlocked:before { content: "\f1f0"; } + +.ion-ios7-unlocked-outline:before { content: "\f1ef"; } + +.ion-ios7-upload:before { content: "\f1f2"; } + +.ion-ios7-upload-outline:before { content: "\f1f1"; } + +.ion-ios7-videocam:before { content: "\f1f4"; } + +.ion-ios7-videocam-outline:before { content: "\f1f3"; } + +.ion-ios7-volume-high:before { content: "\f1f5"; } + +.ion-ios7-volume-low:before { content: "\f1f6"; } + +.ion-ios7-wineglass:before { content: "\f294"; } + +.ion-ios7-wineglass-outline:before { content: "\f293"; } + +.ion-ios7-world:before { content: "\f1f8"; } + +.ion-ios7-world-outline:before { content: "\f1f7"; } + +.ion-ipad:before { content: "\f1f9"; } + +.ion-iphone:before { content: "\f1fa"; } + +.ion-ipod:before { content: "\f1fb"; } + +.ion-jet:before { content: "\f295"; } + +.ion-key:before { content: "\f296"; } + +.ion-knife:before { content: "\f297"; } + +.ion-laptop:before { content: "\f1fc"; } + +.ion-leaf:before { content: "\f1fd"; } + +.ion-levels:before { content: "\f298"; } + +.ion-lightbulb:before { content: "\f299"; } + +.ion-link:before { content: "\f1fe"; } + +.ion-load-a:before, .ion-loading-a:before { content: "\f29a"; } + +.ion-load-b:before, .ion-loading-b:before { content: "\f29b"; } + +.ion-load-c:before, .ion-loading-c:before { content: "\f29c"; } + +.ion-load-d:before, .ion-loading-d:before { content: "\f29d"; } + +.ion-location:before { content: "\f1ff"; } + +.ion-locked:before { content: "\f200"; } + +.ion-log-in:before { content: "\f29e"; } + +.ion-log-out:before { content: "\f29f"; } + +.ion-loop:before, .ion-looping:before { content: "\f201"; } + +.ion-magnet:before { content: "\f2a0"; } + +.ion-male:before { content: "\f2a1"; } + +.ion-man:before { content: "\f202"; } + +.ion-map:before { content: "\f203"; } + +.ion-medkit:before { content: "\f2a2"; } + +.ion-merge:before { content: "\f33f"; } + +.ion-mic-a:before { content: "\f204"; } + +.ion-mic-b:before { content: "\f205"; } + +.ion-mic-c:before { content: "\f206"; } + +.ion-minus:before { content: "\f209"; } + +.ion-minus-circled:before { content: "\f207"; } + +.ion-minus-round:before { content: "\f208"; } + +.ion-model-s:before { content: "\f2c1"; } + +.ion-monitor:before { content: "\f20a"; } + +.ion-more:before { content: "\f20b"; } + +.ion-mouse:before { content: "\f340"; } + +.ion-music-note:before { content: "\f20c"; } + +.ion-navicon:before { content: "\f20e"; } + +.ion-navicon-round:before { content: "\f20d"; } + +.ion-navigate:before { content: "\f2a3"; } + +.ion-network:before { content: "\f341"; } + +.ion-no-smoking:before { content: "\f2c2"; } + +.ion-nuclear:before { content: "\f2a4"; } + +.ion-outlet:before { content: "\f342"; } + +.ion-paper-airplane:before { content: "\f2c3"; } + +.ion-paperclip:before { content: "\f20f"; } + +.ion-pause:before { content: "\f210"; } + +.ion-person:before { content: "\f213"; } + +.ion-person-add:before { content: "\f211"; } + +.ion-person-stalker:before { content: "\f212"; } + +.ion-pie-graph:before { content: "\f2a5"; } + +.ion-pin:before { content: "\f2a6"; } + +.ion-pinpoint:before { content: "\f2a7"; } + +.ion-pizza:before { content: "\f2a8"; } + +.ion-plane:before { content: "\f214"; } + +.ion-planet:before { content: "\f343"; } + +.ion-play:before { content: "\f215"; } + +.ion-playstation:before { content: "\f30a"; } + +.ion-plus:before { content: "\f218"; } + +.ion-plus-circled:before { content: "\f216"; } + +.ion-plus-round:before { content: "\f217"; } + +.ion-podium:before { content: "\f344"; } + +.ion-pound:before { content: "\f219"; } + +.ion-power:before { content: "\f2a9"; } + +.ion-pricetag:before { content: "\f2aa"; } + +.ion-pricetags:before { content: "\f2ab"; } + +.ion-printer:before { content: "\f21a"; } + +.ion-pull-request:before { content: "\f345"; } + +.ion-qr-scanner:before { content: "\f346"; } + +.ion-quote:before { content: "\f347"; } + +.ion-radio-waves:before { content: "\f2ac"; } + +.ion-record:before { content: "\f21b"; } + +.ion-refresh:before, .ion-refreshing:before { content: "\f21c"; } + +.ion-reply:before { content: "\f21e"; } + +.ion-reply-all:before { content: "\f21d"; } + +.ion-ribbon-a:before { content: "\f348"; } + +.ion-ribbon-b:before { content: "\f349"; } + +.ion-sad:before { content: "\f34a"; } + +.ion-scissors:before { content: "\f34b"; } + +.ion-search:before { content: "\f21f"; } + +.ion-settings:before { content: "\f2ad"; } + +.ion-share:before { content: "\f220"; } + +.ion-shuffle:before { content: "\f221"; } + +.ion-skip-backward:before { content: "\f222"; } + +.ion-skip-forward:before { content: "\f223"; } + +.ion-social-android:before { content: "\f225"; } + +.ion-social-android-outline:before { content: "\f224"; } + +.ion-social-apple:before { content: "\f227"; } + +.ion-social-apple-outline:before { content: "\f226"; } + +.ion-social-bitcoin:before { content: "\f2af"; } + +.ion-social-bitcoin-outline:before { content: "\f2ae"; } + +.ion-social-buffer:before { content: "\f229"; } + +.ion-social-buffer-outline:before { content: "\f228"; } + +.ion-social-designernews:before { content: "\f22b"; } + +.ion-social-designernews-outline:before { content: "\f22a"; } + +.ion-social-dribbble:before { content: "\f22d"; } + +.ion-social-dribbble-outline:before { content: "\f22c"; } + +.ion-social-dropbox:before { content: "\f22f"; } + +.ion-social-dropbox-outline:before { content: "\f22e"; } + +.ion-social-facebook:before { content: "\f231"; } + +.ion-social-facebook-outline:before { content: "\f230"; } + +.ion-social-foursquare:before { content: "\f34d"; } + +.ion-social-foursquare-outline:before { content: "\f34c"; } + +.ion-social-freebsd-devil:before { content: "\f2c4"; } + +.ion-social-github:before { content: "\f233"; } + +.ion-social-github-outline:before { content: "\f232"; } + +.ion-social-google:before { content: "\f34f"; } + +.ion-social-google-outline:before { content: "\f34e"; } + +.ion-social-googleplus:before { content: "\f235"; } + +.ion-social-googleplus-outline:before { content: "\f234"; } + +.ion-social-hackernews:before { content: "\f237"; } + +.ion-social-hackernews-outline:before { content: "\f236"; } + +.ion-social-instagram:before { content: "\f351"; } + +.ion-social-instagram-outline:before { content: "\f350"; } + +.ion-social-linkedin:before { content: "\f239"; } + +.ion-social-linkedin-outline:before { content: "\f238"; } + +.ion-social-pinterest:before { content: "\f2b1"; } + +.ion-social-pinterest-outline:before { content: "\f2b0"; } + +.ion-social-reddit:before { content: "\f23b"; } + +.ion-social-reddit-outline:before { content: "\f23a"; } + +.ion-social-rss:before { content: "\f23d"; } + +.ion-social-rss-outline:before { content: "\f23c"; } + +.ion-social-skype:before { content: "\f23f"; } + +.ion-social-skype-outline:before { content: "\f23e"; } + +.ion-social-tumblr:before { content: "\f241"; } + +.ion-social-tumblr-outline:before { content: "\f240"; } + +.ion-social-tux:before { content: "\f2c5"; } + +.ion-social-twitter:before { content: "\f243"; } + +.ion-social-twitter-outline:before { content: "\f242"; } + +.ion-social-usd:before { content: "\f353"; } + +.ion-social-usd-outline:before { content: "\f352"; } + +.ion-social-vimeo:before { content: "\f245"; } + +.ion-social-vimeo-outline:before { content: "\f244"; } + +.ion-social-windows:before { content: "\f247"; } + +.ion-social-windows-outline:before { content: "\f246"; } + +.ion-social-wordpress:before { content: "\f249"; } + +.ion-social-wordpress-outline:before { content: "\f248"; } + +.ion-social-yahoo:before { content: "\f24b"; } + +.ion-social-yahoo-outline:before { content: "\f24a"; } + +.ion-social-youtube:before { content: "\f24d"; } + +.ion-social-youtube-outline:before { content: "\f24c"; } + +.ion-speakerphone:before { content: "\f2b2"; } + +.ion-speedometer:before { content: "\f2b3"; } + +.ion-spoon:before { content: "\f2b4"; } + +.ion-star:before { content: "\f24e"; } + +.ion-stats-bars:before { content: "\f2b5"; } + +.ion-steam:before { content: "\f30b"; } + +.ion-stop:before { content: "\f24f"; } + +.ion-thermometer:before { content: "\f2b6"; } + +.ion-thumbsdown:before { content: "\f250"; } + +.ion-thumbsup:before { content: "\f251"; } + +.ion-toggle:before { content: "\f355"; } + +.ion-toggle-filled:before { content: "\f354"; } + +.ion-trash-a:before { content: "\f252"; } + +.ion-trash-b:before { content: "\f253"; } + +.ion-trophy:before { content: "\f356"; } + +.ion-umbrella:before { content: "\f2b7"; } + +.ion-university:before { content: "\f357"; } + +.ion-unlocked:before { content: "\f254"; } + +.ion-upload:before { content: "\f255"; } + +.ion-usb:before { content: "\f2b8"; } + +.ion-videocamera:before { content: "\f256"; } + +.ion-volume-high:before { content: "\f257"; } + +.ion-volume-low:before { content: "\f258"; } + +.ion-volume-medium:before { content: "\f259"; } + +.ion-volume-mute:before { content: "\f25a"; } + +.ion-wand:before { content: "\f358"; } + +.ion-waterdrop:before { content: "\f25b"; } + +.ion-wifi:before { content: "\f25c"; } + +.ion-wineglass:before { content: "\f2b9"; } + +.ion-woman:before { content: "\f25d"; } + +.ion-wrench:before { content: "\f2ba"; } + +.ion-xbox:before { content: "\f30c"; } diff --git a/views/controls/builder/settings.ejs b/views/controls/builder/settings.ejs index dd2496b..aae67d0 100644 --- a/views/controls/builder/settings.ejs +++ b/views/controls/builder/settings.ejs @@ -4,7 +4,7 @@ diff --git a/views/controls/builder/toolbar.ejs b/views/controls/builder/toolbar.ejs index a00249c..8b2e9b8 100644 --- a/views/controls/builder/toolbar.ejs +++ b/views/controls/builder/toolbar.ejs @@ -2,33 +2,33 @@ + class="ion-ios7-photos-outline"> + class="ion-ios7-trash-outline"> + class="ion-ios7-compose-outline">
diff --git a/views/controls/editor/media-drawer.ejs b/views/controls/editor/media-drawer.ejs index 3d95fb9..10a160e 100644 --- a/views/controls/editor/media-drawer.ejs +++ b/views/controls/editor/media-drawer.ejs @@ -1,7 +1,7 @@
-
+
Upload File
diff --git a/views/controls/editor/media-editor.ejs b/views/controls/editor/media-editor.ejs index 305a602..f5e3b5b 100644 --- a/views/controls/editor/media-editor.ejs +++ b/views/controls/editor/media-editor.ejs @@ -13,8 +13,8 @@
- - + + + class="ion-ios7-keypad-outline"> + class="ion-ios7-sunny-outline"> [[ if (user.username == "test12343") { ]] + class="ion-ios7-compose-outline"> [[ } ]] + class="ion-key">
diff --git a/views/controls/editor/wallpaper.ejs b/views/controls/editor/wallpaper.ejs index 95cf827..01cf771 100644 --- a/views/controls/editor/wallpaper.ejs +++ b/views/controls/editor/wallpaper.ejs @@ -3,12 +3,12 @@ Add custom wallpaper to walls. Begin by uploading a pattern. Or try this one -> -
+
- +
@@ -17,9 +17,14 @@ -->
- +
+ +
+ + +
diff --git a/views/controls/reader/media-player.ejs b/views/controls/reader/media-player.ejs index ca03ec8..0ca89c5 100644 --- a/views/controls/reader/media-player.ejs +++ b/views/controls/reader/media-player.ejs @@ -1,13 +1,13 @@
- - + + - - + + diff --git a/views/home.ejs b/views/home.ejs index a6f5a88..51d5a92 100755 --- a/views/home.ejs +++ b/views/home.ejs @@ -17,7 +17,7 @@
Create 3D Rooms
-
+
Watch video.
diff --git a/views/partials/header.ejs b/views/partials/header.ejs index 1b7b498..ea579cc 100644 --- a/views/partials/header.ejs +++ b/views/partials/header.ejs @@ -69,7 +69,7 @@ [[ } ]] [[ if (opt.editing) { ]] - + [[ } ]] [[ } else { ]] diff --git a/views/partials/sign-in.ejs b/views/partials/sign-in.ejs index 98f0acc..08c9e99 100644 --- a/views/partials/sign-in.ejs +++ b/views/partials/sign-in.ejs @@ -5,7 +5,7 @@
- +
  • @@ -38,7 +38,7 @@
    - +
  • diff --git a/views/profile.ejs b/views/profile.ejs index 9cfb40d..22c824c 100644 --- a/views/profile.ejs +++ b/views/profile.ejs @@ -14,7 +14,7 @@
  • [[ } else { ]]
    - +
    [[ } ]]
    -- cgit v1.2.3-70-g09d2 From b86a0ac642a2623fd9d8346c2691ef5a2d290b56 Mon Sep 17 00:00:00 2001 From: ryderr Date: Wed, 8 Oct 2014 18:15:31 -0400 Subject: favicon --- public/assets/stylesheets/app.css | 29 ++++++++++++++++++----------- public/favicon.ico | Bin 0 -> 32988 bytes views/controls/editor/media-drawer.ejs | 2 +- views/home.ejs | 2 +- 4 files changed, 20 insertions(+), 13 deletions(-) create mode 100644 public/favicon.ico (limited to 'views/home.ejs') diff --git a/public/assets/stylesheets/app.css b/public/assets/stylesheets/app.css index d384dea..3aafc7d 100755 --- a/public/assets/stylesheets/app.css +++ b/public/assets/stylesheets/app.css @@ -246,6 +246,11 @@ h5 { display: inline-block; } +.projectList { + border-top: 1px solid; +} + + .projectList.about { text-align: left; border-top: 1px solid; @@ -415,18 +420,15 @@ iframe.embed { } .page .projectList label { - font-weight: 100; + font-weight: 600; font-size: 12px; color: black; - padding: 5px; text-decoration: none; display: inline-block; cursor: pointer; border: 1px solid transparent; - text-transform: uppercase; - font-family: monospace; line-height: 18px; - letter-spacing: 1px; + padding:0 5px; } .page .room .holder a:hover { @@ -1080,10 +1082,13 @@ border-left: 1px solid black; .mediaDrawer { -webkit-transform:translateY(-100%); transform:translateY(-100%); - background:rgba(255,255,255,0.9); + background:white; text-align:center; overflow-x: hidden; } +.editing .mediaDrawer { + background:rgba(255,255,255,0.95); +} .mediaDrawer.active { -webkit-transform:translateY(0%); transform:translateY(0%); @@ -1203,7 +1208,7 @@ border-left: 1px solid black; border: 1px solid #ccc; font-size: 15px; padding: 5px; - width: 220px; + width: 290px; text-align: center; border-radius: 20px; } @@ -1295,8 +1300,6 @@ border-left: 1px solid black; color:white; } -.deleteArmed .mediaContainer { -} .deleteArmed .mediaContainer:hover { background:#FF3B30; @@ -1352,12 +1355,11 @@ border-left: 1px solid black; .mediaContainer { - border: 1px solid white; display: inline-block; width: 25%; margin: 4%; vertical-align: top; - border:1px solid white; + border:1px solid transparent; padding:2%; } .mediaContainer:hover { @@ -2447,6 +2449,11 @@ a[data-role="forgot-password"] { width: 50%; height: 180px; } + .profilepage .about h2 { + text-align: center; + font-weight: 500; + font-size: 17px; + } .projectList.about { text-align: center; padding: 20px 0; diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000..19c9da3 Binary files /dev/null and b/public/favicon.ico differ diff --git a/views/controls/editor/media-drawer.ejs b/views/controls/editor/media-drawer.ejs index 10a160e..22ae43f 100644 --- a/views/controls/editor/media-drawer.ejs +++ b/views/controls/editor/media-drawer.ejs @@ -6,7 +6,7 @@ ~ or ~
    - +
    diff --git a/views/home.ejs b/views/home.ejs index 51d5a92..659e1bc 100755 --- a/views/home.ejs +++ b/views/home.ejs @@ -23,7 +23,7 @@
    -

    Whats VValls For?

    +

    What's VValls For?

    -- cgit v1.2.3-70-g09d2 From 4d4add72dec5d5f1db96430fe2de21c09451ebea Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Thu, 9 Oct 2014 17:26:24 -0400 Subject: feature projects, show featured projects on homepage, fix profile sort --- public/assets/javascripts/ui/site/StaffView.js | 23 ++++++++++++++ public/assets/stylesheets/app.css | 3 ++ server/lib/schemas/Project.js | 1 + server/lib/views/index.js | 42 +++++++++++++++++--------- server/lib/views/staff.js | 15 +++++++++ views/home.ejs | 5 ++- views/staff/projects/show.ejs | 13 ++++++++ 7 files changed, 84 insertions(+), 18 deletions(-) (limited to 'views/home.ejs') diff --git a/public/assets/javascripts/ui/site/StaffView.js b/public/assets/javascripts/ui/site/StaffView.js index fdf39d2..0398f71 100644 --- a/public/assets/javascripts/ui/site/StaffView.js +++ b/public/assets/javascripts/ui/site/StaffView.js @@ -3,14 +3,19 @@ var StaffView = View.extend({ events: { "click #toggle-staff": "toggleStaff", + "click #toggle-featured": "toggleFeatured", }, initialize: function() { this.$toggleStaff = $("#toggle-staff") + this.$toggleFeatured = $("#toggle-featured") this.$mediaEmbed = $("#media-embed") if (this.$toggleStaff.length && this.$toggleStaff.data().isstaff) { this.$toggleStaff.html("Is Staff") } + if (this.$toggleFeatured.length && this.$toggleFeatured.data().featured) { + this.$toggleFeatured.html("Featured Project") + } if (this.$mediaEmbed.length) { var media = this.$mediaEmbed.data() this.$mediaEmbed.html( Parser.tag( media ) ) @@ -44,6 +49,24 @@ var StaffView = View.extend({ }.bind(this) }) }.bind(this)) + }, + + toggleFeatured: function(){ + var state = ! this.$toggleFeatured.data().featured + $.ajax({ + type: "put", + dataType: "json", + url: window.location.href + "/feature", + data: { + state: state, + _csrf: $("#_csrf").val(), + }, + success: function(data){ + this.$toggleFeatured.data("featured", data.state) + this.$toggleFeatured.html(data.state ? "Featured Project" : "Feature this project") + $("#isFeaturedProject").html(data.state ? "yes" : "no") + }.bind(this) + }) }, }) diff --git a/public/assets/stylesheets/app.css b/public/assets/stylesheets/app.css index 9a2f6f8..85d14eb 100755 --- a/public/assets/stylesheets/app.css +++ b/public/assets/stylesheets/app.css @@ -357,6 +357,9 @@ iframe.embed { background-color: #ddd; background-size: cover; } +.projectList a:hover .room .mask { + background-color: rgba(238,238,238,0.1); +} .room .images { position: absolute; top: 0; left: 0; diff --git a/server/lib/schemas/Project.js b/server/lib/schemas/Project.js index abf34fb..dd50da6 100644 --- a/server/lib/schemas/Project.js +++ b/server/lib/schemas/Project.js @@ -35,6 +35,7 @@ var ProjectSchema = new mongoose.Schema({ user_id: { type: mongoose.Schema.ObjectId, index: true }, created_at: { type: Date }, updated_at: { type: Date }, + featured: { type: Boolean, default: false }, }); module.exports = exports = mongoose.model('project', ProjectSchema); diff --git a/server/lib/views/index.js b/server/lib/views/index.js index 3f3880f..1b547ef 100644 --- a/server/lib/views/index.js +++ b/server/lib/views/index.js @@ -79,10 +79,20 @@ views.modal = function (req, res) { views.home = function (req, res) { if (req.user) { - Project.find({ privacy: false }) + Project.find({ featured: true }) .sort('-created_at') - .limit(20) + .limit(6) .exec(function(err, projects){ + projects = projects.map(function(project){ + project = project.toObject() + project.date = moment(project.updated_at).format("M/DD/YYYY") + if (project.colors.wall && project.colors.wall[0] == project.colors.wall[1] && project.colors.wall[1] == project.colors.wall[2] && project.colors.wall[2] > 238) { + project.color = [238,238,238] + } else { + project.color = project.colors.wall + } + return project + }) res.render('home', { projects: projects || [] }) }) } @@ -135,19 +145,21 @@ views.profile = function (req, res) { if ( ! (req.user && req.user._id && req.user._id == user._id) ) { criteria.privacy = false } - Project.find(criteria, function(err, projects){ - projects = projects.map(function(project){ - project = project.toObject() - project.date = moment(project.updated_at).format("M/DD/YYYY") - if (project.colors.wall && project.colors.wall[0] == project.colors.wall[1] && project.colors.wall[1] == project.colors.wall[2] && project.colors.wall[2] > 238) { - project.color = [238,238,238] - } else { - project.color = project.colors.wall - } - return project - }) - done(err, user, projects) - }) + Project.find(criteria) + .sort('-created_at') + .exec(function(err, projects){ + projects = projects.map(function(project){ + project = project.toObject() + project.date = moment(project.updated_at).format("M/DD/YYYY") + if (project.colors.wall && project.colors.wall[0] == project.colors.wall[1] && project.colors.wall[1] == project.colors.wall[2] && project.colors.wall[2] > 238) { + project.color = [238,238,238] + } else { + project.color = project.colors.wall + } + return project + }) + done(err, user, projects) + }) } function done(err, user, projects){ diff --git a/server/lib/views/staff.js b/server/lib/views/staff.js index 41877c8..da09d83 100644 --- a/server/lib/views/staff.js +++ b/server/lib/views/staff.js @@ -389,6 +389,15 @@ var staff = module.exports = { staff.projects.show ); + app.put('/staff/projects/:slug/feature', + middleware.ensureAuthenticated, + middleware.ensureIsStaff, + + middleware.ensureProject, + staff.middleware.ensureProject, + + staff.projects.feature + ); // // media @@ -505,6 +514,12 @@ var staff = module.exports = { res.render('staff/projects/show_404') } }, + feature: function(req, res){ + res.locals.project.featured = req.body.state == "true" + res.locals.project.save(function(err, project){ + res.json({ state: project.featured }) + }) + }, }, media: { diff --git a/views/home.ejs b/views/home.ejs index 51d5a92..7ec8c1e 100755 --- a/views/home.ejs +++ b/views/home.ejs @@ -62,10 +62,9 @@

    Room Showcase

    - - + View More [[ include partials/confirm-modal ]] diff --git a/views/staff/projects/show.ejs b/views/staff/projects/show.ejs index 687f0c2..1034b31 100644 --- a/views/staff/projects/show.ejs +++ b/views/staff/projects/show.ejs @@ -41,8 +41,21 @@ "[[- project.description ]]" + + + featured? + + + [[- project.featured ? "yes" : "no" ]] + + +

    +
    + +
    +

    -- cgit v1.2.3-70-g09d2 From 0ec3787487db41dd5f5b904b70f61fac3b7da491 Mon Sep 17 00:00:00 2001 From: Julie Lala Date: Thu, 9 Oct 2014 23:16:50 -0400 Subject: some css, set bg to white when noclipping into void --- public/assets/javascripts/rectangles/engine/rooms/_walls.js | 2 +- public/assets/javascripts/rectangles/engine/rooms/mover.js | 13 ++++--------- public/assets/stylesheets/app.css | 3 +++ public/assets/stylesheets/staff.css | 9 ++++++--- server/lib/views/index.js | 4 ++-- views/docs.ejs | 2 -- views/home.ejs | 2 +- 7 files changed, 17 insertions(+), 18 deletions(-) (limited to 'views/home.ejs') diff --git a/public/assets/javascripts/rectangles/engine/rooms/_walls.js b/public/assets/javascripts/rectangles/engine/rooms/_walls.js index 71ddde9..7ff472d 100644 --- a/public/assets/javascripts/rectangles/engine/rooms/_walls.js +++ b/public/assets/javascripts/rectangles/engine/rooms/_walls.js @@ -137,7 +137,7 @@ $("#header").toggleClass("black", luminance < 128) $("body").css("background-color", rgbColor) - + Walls.colors.wall = rgb Walls.list.forEach(function(wall){ wall.outline(rgbaColor, null) diff --git a/public/assets/javascripts/rectangles/engine/rooms/mover.js b/public/assets/javascripts/rectangles/engine/rooms/mover.js index 5c7b4af..98f80c5 100644 --- a/public/assets/javascripts/rectangles/engine/rooms/mover.js +++ b/public/assets/javascripts/rectangles/engine/rooms/mover.js @@ -21,13 +21,6 @@ Rooms.mover = new function(){ base.update = function(pos){ var radius = scene.camera.radius - if (base.noclip) { - cam.x = pos.x - cam.y = pos.y - cam.z = pos.z - return - } - cam.y = pos.y // if we were in a room already.. @@ -42,14 +35,15 @@ Rooms.mover = new function(){ // check if we've breached one of the walls.. clamp position if so var collision = base.room.collidesDisc(pos.x, pos.z, radius) - if (collision) { + if (collision && ! base.noclip) { cam.x = (collision & LEFT_RIGHT) ? base.room.rect.x.clampDisc(pos.x, radius) : pos.x cam.z = (collision & FRONT_BACK) ? base.room.rect.y.clampDisc(pos.z, radius) : pos.z return } // in this case, we appear to have left the room.. - $(".face.active").removeClass("active") + // $(".face.active").removeClass("active") + $("body").css("background-color", "transparent") base.room = null } @@ -65,6 +59,7 @@ Rooms.mover = new function(){ // did we actually enter a room? if (intersects.length) { base.room = intersects[0] + $("body").css("background-color", rgb_string( Walls.colors.wall )) app.tube("change-room", { room: base.room }) } diff --git a/public/assets/stylesheets/app.css b/public/assets/stylesheets/app.css index 6aab60c..a15ea39 100755 --- a/public/assets/stylesheets/app.css +++ b/public/assets/stylesheets/app.css @@ -482,6 +482,9 @@ iframe.embed { width: 100%; border-top: 1px solid; } +.page h1:nth-child(2) { + margin-top: 40px; +} .page p { margin: 20px; diff --git a/public/assets/stylesheets/staff.css b/public/assets/stylesheets/staff.css index aa21f9b..c75a9b1 100644 --- a/public/assets/stylesheets/staff.css +++ b/public/assets/stylesheets/staff.css @@ -28,15 +28,16 @@ nav { text-align: left; } nav a { - padding-left: 20px; + margin-left: 20px; } hr { border: 1px solid #bbb; - margin: 5px auto 10px; + margin: 10px auto 10px; + background: transparent; } .body { width: 80%; - margin: 0 auto; + margin: 40px auto; } .json { display: none; @@ -63,6 +64,8 @@ hr { .staff { font-size: 15px; } +.staff .body a { +} .staff .editLinks a { color: #00f; } diff --git a/server/lib/views/index.js b/server/lib/views/index.js index 1b547ef..fe2c988 100644 --- a/server/lib/views/index.js +++ b/server/lib/views/index.js @@ -86,7 +86,7 @@ views.home = function (req, res) { projects = projects.map(function(project){ project = project.toObject() project.date = moment(project.updated_at).format("M/DD/YYYY") - if (project.colors.wall && project.colors.wall[0] == project.colors.wall[1] && project.colors.wall[1] == project.colors.wall[2] && project.colors.wall[2] > 238) { + if (! project.colors || project.colors.wall && project.colors.wall[0] == project.colors.wall[1] && project.colors.wall[1] == project.colors.wall[2] && project.colors.wall[2] > 238) { project.color = [238,238,238] } else { project.color = project.colors.wall @@ -151,7 +151,7 @@ views.profile = function (req, res) { projects = projects.map(function(project){ project = project.toObject() project.date = moment(project.updated_at).format("M/DD/YYYY") - if (project.colors.wall && project.colors.wall[0] == project.colors.wall[1] && project.colors.wall[1] == project.colors.wall[2] && project.colors.wall[2] > 238) { + if (! project.colors || project.colors.wall && project.colors.wall[0] == project.colors.wall[1] && project.colors.wall[1] == project.colors.wall[2] && project.colors.wall[2] > 238) { project.color = [238,238,238] } else { project.color = project.colors.wall diff --git a/views/docs.ejs b/views/docs.ejs index 5662133..665190d 100644 --- a/views/docs.ejs +++ b/views/docs.ejs @@ -8,8 +8,6 @@
    [[ include partials/header ]] -
    - [[ if (! isNew) { ]]

    [[- doc.displayName ]]

    diff --git a/views/home.ejs b/views/home.ejs index e02ab0c..16b00e7 100755 --- a/views/home.ejs +++ b/views/home.ejs @@ -10,7 +10,7 @@ -
    +
    [[ include partials/header ]]
    -- cgit v1.2.3-70-g09d2 From 211da757666a6f9ee89160472e363bcf4732d1c9 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Fri, 10 Oct 2014 16:48:26 -0400 Subject: show max 6 projects at a time --- public/assets/javascripts/ui/editor/MediaUpload.js | 1 + public/assets/stylesheets/app.css | 6 +++++- server/lib/api/projects.js | 4 ++-- views/home.ejs | 2 -- views/profile.ejs | 2 -- views/projects/list-projects.ejs | 7 ++++++- 6 files changed, 14 insertions(+), 8 deletions(-) (limited to 'views/home.ejs') diff --git a/public/assets/javascripts/ui/editor/MediaUpload.js b/public/assets/javascripts/ui/editor/MediaUpload.js index 3f425c3..bab4679 100644 --- a/public/assets/javascripts/ui/editor/MediaUpload.js +++ b/public/assets/javascripts/ui/editor/MediaUpload.js @@ -56,6 +56,7 @@ var MediaUpload = UploadView.extend({ console.log(media) this.parent.mediaViewer.add(media, this.parent.mediaViewer.$myMedia) this.parent.mediaViewer.$deleteMedia.show() + this.parent.mediaViewer.$noMedia.hide() }, beforeUpload: function(){ diff --git a/public/assets/stylesheets/app.css b/public/assets/stylesheets/app.css index fc7512a..c90dad4 100755 --- a/public/assets/stylesheets/app.css +++ b/public/assets/stylesheets/app.css @@ -406,6 +406,8 @@ iframe.embed { } .page .viewMore { + clear: both; float: none; + margin: 20px auto; text-decoration: none; font-size: 22px; display: block; @@ -1252,7 +1254,9 @@ border-left: 1px solid black; .myMedia.inactive { opacity:0; } - +.noMedia { + margin: 40px; +} .foundMedia { position:absolute; top:0; diff --git a/server/lib/api/projects.js b/server/lib/api/projects.js index c04f4f6..47e0458 100644 --- a/server/lib/api/projects.js +++ b/server/lib/api/projects.js @@ -67,6 +67,8 @@ var projects = { return docs.create(req, res) } + var data = util.cleanQuery(req.body) + if (req.files.thumbnail) { upload.put("projects", req.files.thumbnail, { unacceptable: function(err){ @@ -86,8 +88,6 @@ var projects = { Project.findOne({ _id: _id }, function(err, doc){ if (err || ! doc) { return res.json({ error: err }) } - var data = util.cleanQuery(req.body) - // data.user_id = req.user._id data.name = util.sanitize(data.name) if (data.name != doc.name) { diff --git a/views/home.ejs b/views/home.ejs index 16b00e7..8910070 100755 --- a/views/home.ejs +++ b/views/home.ejs @@ -65,8 +65,6 @@ [[ include projects/list-projects ]] - View More - [[ include partials/confirm-modal ]] [[ include projects/layouts-modal ]] [[ include partials/sign-in ]] diff --git a/views/profile.ejs b/views/profile.ejs index 2909fb8..1be0702 100644 --- a/views/profile.ejs +++ b/views/profile.ejs @@ -49,8 +49,6 @@

    [[- profile.username ]] has [[- projects.length ]] project[[- projects.length != 1 ? "s" : "" ]]

    [[ include projects/list-projects ]] - - view more [[ } else { ]]

    Welcome to VVALLS

    diff --git a/views/projects/list-projects.ejs b/views/projects/list-projects.ejs index 9dbd7d2..eb66449 100644 --- a/views/projects/list-projects.ejs +++ b/views/projects/list-projects.ejs @@ -3,7 +3,7 @@
    [[ projects.forEach(function(project, i) { ]] - + [[ if (i > 5) { return } ]] [[ if (String(user._id) == String(project.user_id)) { ]] [[ } else { ]] @@ -30,6 +30,11 @@ [[ }) ]] + + [[ if (projects.length > 6) { ]] + view more + [[ } ]] +
    [[ } ]] -- cgit v1.2.3-70-g09d2 From 862357ad711c2d063ce69b2d4f6dae5d811e6c75 Mon Sep 17 00:00:00 2001 From: ryderr Date: Thu, 23 Oct 2014 11:42:29 -0400 Subject: hero shot some other things --- public/assets/stylesheets/app.css | 2 ++ views/controls/editor/wallpaper.ejs | 2 +- views/home.ejs | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) (limited to 'views/home.ejs') diff --git a/public/assets/stylesheets/app.css b/public/assets/stylesheets/app.css index c92c783..58b87d4 100755 --- a/public/assets/stylesheets/app.css +++ b/public/assets/stylesheets/app.css @@ -426,6 +426,8 @@ iframe.embed { padding: 40px; border: 0; border-top: 1px solid black; + border-bottom: 1px solid black; + margin-top: 150px; } .holder { diff --git a/views/controls/editor/wallpaper.ejs b/views/controls/editor/wallpaper.ejs index d2559cc..e675afa 100644 --- a/views/controls/editor/wallpaper.ejs +++ b/views/controls/editor/wallpaper.ejs @@ -10,7 +10,7 @@ - +
    diff --git a/views/home.ejs b/views/home.ejs index 8910070..85d6f23 100755 --- a/views/home.ejs +++ b/views/home.ejs @@ -13,7 +13,7 @@
    [[ include partials/header ]] -
    +
    Create 3D Rooms
    -- cgit v1.2.3-70-g09d2 From 30dac4509e28f07bacf29c3be3d58f8fa684b115 Mon Sep 17 00:00:00 2001 From: ryderr Date: Fri, 24 Oct 2014 14:25:39 -0400 Subject: adding video --- public/assets/javascripts/app.js | 8 ++++++++ public/assets/stylesheets/app.css | 34 ++++++++++++++++++++++++++++++++++ views/home.ejs | 5 +++++ 3 files changed, 47 insertions(+) (limited to 'views/home.ejs') diff --git a/public/assets/javascripts/app.js b/public/assets/javascripts/app.js index 9b46a3e..f26a782 100644 --- a/public/assets/javascripts/app.js +++ b/public/assets/javascripts/app.js @@ -17,6 +17,14 @@ else { new WOW().init(); +$('.hero .circle').click( function(){ + $('.videoModal').addClass('active'); +}); + +$('.videoModal .ion-ios7-close-empty').click( function(){ + $('.videoModal').removeClass('active'); +}); + var scene, cam, map; diff --git a/public/assets/stylesheets/app.css b/public/assets/stylesheets/app.css index 20498c0..4544fa3 100755 --- a/public/assets/stylesheets/app.css +++ b/public/assets/stylesheets/app.css @@ -92,6 +92,40 @@ a{ text-shadow: 0 0 3px #fff, 0 0 3px #fff, 0 0 3px #fff, 0 0 3px #fff, 0 0 3px #fff; } +.videoModal { + position: fixed; + width: 0; + height: 0; + background: rgba(255,255,255,0); + display: table; + opacity:0; + z-index: -1; + -webkit-transition:0.4s background + -moz-transition:0.4s background; + transition:0.4s background; +} + +.videoModal.active { + opacity:1; + z-index: 6; + width: 100%; + height: 100%; + background: rgba(255,255,255,0.9); +} + +.videoModal .ion-ios7-close-empty { + position: absolute; + right: 50px; + top: 60px; + font-size: 80px; + cursor:pointer; + color:#444; +} + +.videoModal .ion-ios7-close-empty:hover { + color:black; +} + #help-button { display: none; border-right:0px!important; diff --git a/views/home.ejs b/views/home.ejs index 85d6f23..7fe0c71 100755 --- a/views/home.ejs +++ b/views/home.ejs @@ -70,6 +70,11 @@ [[ include partials/sign-in ]] [[ include partials/footer ]] +
    +
    + +
    +
    [[ include partials/scripts ]] -- cgit v1.2.3-70-g09d2 From 04e20c10c7a01d78c08b8aa87dbeeb0061c535f5 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Fri, 24 Oct 2014 14:53:50 -0400 Subject: setting up embed, hide play bar --- public/assets/javascripts/app.js | 35 ++++++++++++++++++++++++++--------- public/assets/stylesheets/app.css | 5 +++++ views/home.ejs | 2 +- 3 files changed, 32 insertions(+), 10 deletions(-) (limited to 'views/home.ejs') diff --git a/public/assets/javascripts/app.js b/public/assets/javascripts/app.js index f26a782..42e8a53 100644 --- a/public/assets/javascripts/app.js +++ b/public/assets/javascripts/app.js @@ -17,21 +17,38 @@ else { new WOW().init(); -$('.hero .circle').click( function(){ - $('.videoModal').addClass('active'); -}); - -$('.videoModal .ion-ios7-close-empty').click( function(){ - $('.videoModal').removeClass('active'); -}); - +$(function(){ + var player + $('.hero .circle').click( function(){ + $('.videoModal').css("display","table").addClass('active'); + player = $f( okplayer ) + player.api('play') + player.addEvent('ready', function(){ + player.api('play') + player.addEvent('finish', function(){ + hide() + }) + }) + }); + + $('.videoModal .ion-ios7-close-empty').click( function(){ + player.api('pause') + hide() + }) + + function hide() { + $('.videoModal').fadeOut(300, function(){ + $('.videoModal').removeClass('active'); + }) + } +}) var scene, cam, map; var app = new function(){} app.mode = { editor: false, builder: false } - + app.init = function () { app.tube = new Tube () app.router = new SiteRouter () diff --git a/public/assets/stylesheets/app.css b/public/assets/stylesheets/app.css index 4dfb707..2d52633 100755 --- a/public/assets/stylesheets/app.css +++ b/public/assets/stylesheets/app.css @@ -107,6 +107,11 @@ a{ -moz-transition:0.4s background; transition:0.4s background; display:none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + -o-user-select: none; + user-select: none; } .videoModal.active { diff --git a/views/home.ejs b/views/home.ejs index 7fe0c71..2da811d 100755 --- a/views/home.ejs +++ b/views/home.ejs @@ -74,7 +74,7 @@
    -
    +
    [[ include partials/scripts ]] -- cgit v1.2.3-70-g09d2 From c80f79f9ade5fa06eda8c31a252729b5bbb61e84 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Fri, 24 Oct 2014 15:01:43 -0400 Subject: arg vimeo --- public/assets/javascripts/app.js | 18 ++++++++---------- views/home.ejs | 2 +- 2 files changed, 9 insertions(+), 11 deletions(-) (limited to 'views/home.ejs') diff --git a/public/assets/javascripts/app.js b/public/assets/javascripts/app.js index 42e8a53..883a24c 100644 --- a/public/assets/javascripts/app.js +++ b/public/assets/javascripts/app.js @@ -18,18 +18,16 @@ else { new WOW().init(); $(function(){ - var player + var player = $f( okplayer ) +// player.addEvent('ready', function(){ +// player.addEvent('finish', function(){ +// hide() +// }) +// }) $('.hero .circle').click( function(){ $('.videoModal').css("display","table").addClass('active'); - player = $f( okplayer ) player.api('play') - player.addEvent('ready', function(){ - player.api('play') - player.addEvent('finish', function(){ - hide() - }) - }) - }); + }) $('.videoModal .ion-ios7-close-empty').click( function(){ player.api('pause') @@ -38,7 +36,7 @@ $(function(){ function hide() { $('.videoModal').fadeOut(300, function(){ - $('.videoModal').removeClass('active'); + $('.videoModal').removeClass('active') }) } }) diff --git a/views/home.ejs b/views/home.ejs index 2da811d..36b9afd 100755 --- a/views/home.ejs +++ b/views/home.ejs @@ -74,7 +74,7 @@
    -
    +
    [[ include partials/scripts ]] -- cgit v1.2.3-70-g09d2 From 47f77566c31e9d14f5afc199c217dbdaabd54037 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Fri, 24 Oct 2014 15:17:15 -0400 Subject: fixing embed --- public/assets/javascripts/app.js | 10 +- public/assets/javascripts/ui/lib/Parser.js | 2 +- public/assets/javascripts/vendor/froogaloop.js | 287 +++++++++++++++++++++++++ views/home.ejs | 2 +- views/partials/scripts.ejs | 4 +- 5 files changed, 296 insertions(+), 9 deletions(-) create mode 100644 public/assets/javascripts/vendor/froogaloop.js (limited to 'views/home.ejs') diff --git a/public/assets/javascripts/app.js b/public/assets/javascripts/app.js index 883a24c..028ebb8 100644 --- a/public/assets/javascripts/app.js +++ b/public/assets/javascripts/app.js @@ -19,11 +19,11 @@ new WOW().init(); $(function(){ var player = $f( okplayer ) -// player.addEvent('ready', function(){ -// player.addEvent('finish', function(){ -// hide() -// }) -// }) + player.addEvent('ready', function(){ + player.addEvent('finish', function(){ + hide() + }) + }) $('.hero .circle').click( function(){ $('.videoModal').css("display","table").addClass('active'); player.api('play') diff --git a/public/assets/javascripts/ui/lib/Parser.js b/public/assets/javascripts/ui/lib/Parser.js index aa8c480..d68f58b 100644 --- a/public/assets/javascripts/ui/lib/Parser.js +++ b/public/assets/javascripts/ui/lib/Parser.js @@ -112,7 +112,7 @@ var Parser = { }, tag: function (media) { // return ''; - return '
    ' + return '
    ' } }, /* diff --git a/public/assets/javascripts/vendor/froogaloop.js b/public/assets/javascripts/vendor/froogaloop.js new file mode 100644 index 0000000..c9330e6 --- /dev/null +++ b/public/assets/javascripts/vendor/froogaloop.js @@ -0,0 +1,287 @@ +// Init style shamelessly stolen from jQuery http://jquery.com +var Froogaloop = (function(){ + // Define a local copy of Froogaloop + function Froogaloop(iframe) { + // The Froogaloop object is actually just the init constructor + return new Froogaloop.fn.init(iframe); + } + + var eventCallbacks = {}, + hasWindowEvent = false, + isReady = false, + slice = Array.prototype.slice, + playerDomain = ''; + + Froogaloop.fn = Froogaloop.prototype = { + element: null, + + init: function(iframe) { + if (typeof iframe === "string") { + iframe = document.getElementById(iframe); + } + + this.element = iframe; + + // Register message event listeners + playerDomain = getDomainFromUrl(this.element.getAttribute('src')); + + return this; + }, + + /* + * Calls a function to act upon the player. + * + * @param {string} method The name of the Javascript API method to call. Eg: 'play'. + * @param {Array|Function} valueOrCallback params Array of parameters to pass when calling an API method + * or callback function when the method returns a value. + */ + api: function(method, valueOrCallback) { + if (!this.element || !method) { + return false; + } + + var self = this, + element = self.element, + target_id = element.id !== '' ? element.id : null, + params = !isFunction(valueOrCallback) ? valueOrCallback : null, + callback = isFunction(valueOrCallback) ? valueOrCallback : null; + + // Store the callback for get functions + if (callback) { + storeCallback(method, callback, target_id); + } + + postMessage(method, params, element); + return self; + }, + + /* + * Registers an event listener and a callback function that gets called when the event fires. + * + * @param eventName (String): Name of the event to listen for. + * @param callback (Function): Function that should be called when the event fires. + */ + addEvent: function(eventName, callback) { + if (!this.element) { + return false; + } + + var self = this, + element = self.element, + target_id = element.id !== '' ? element.id : null; + + storeCallback(eventName, callback, target_id); + + // The ready event is not registered via postMessage. It fires regardless. + if (eventName != 'ready') { + postMessage('addEventListener', eventName, element); + } + else if (eventName == 'ready' && isReady) { + callback.call(null, target_id); + } + + return self; + }, + + /* + * Unregisters an event listener that gets called when the event fires. + * + * @param eventName (String): Name of the event to stop listening for. + */ + removeEvent: function(eventName) { + if (!this.element) { + return false; + } + + var self = this, + element = self.element, + target_id = element.id !== '' ? element.id : null, + removed = removeCallback(eventName, target_id); + + // The ready event is not registered + if (eventName != 'ready' && removed) { + postMessage('removeEventListener', eventName, element); + } + } + }; + + /** + * Handles posting a message to the parent window. + * + * @param method (String): name of the method to call inside the player. For api calls + * this is the name of the api method (api_play or api_pause) while for events this method + * is api_addEventListener. + * @param params (Object or Array): List of parameters to submit to the method. Can be either + * a single param or an array list of parameters. + * @param target (HTMLElement): Target iframe to post the message to. + */ + function postMessage(method, params, target) { + if (!target.contentWindow.postMessage) { + return false; + } + + var url = target.getAttribute('src').split('?')[0], + data = JSON.stringify({ + method: method, + value: params + }); + + if (url.substr(0, 2) === '//') { + url = window.location.protocol + url; + } + + target.contentWindow.postMessage(data, url); + } + + /** + * Event that fires whenever the window receives a message from its parent + * via window.postMessage. + */ + function onMessageReceived(event) { + var data, method; + + try { + data = JSON.parse(event.data); + method = data.event || data.method; + } + catch(e) { + //fail silently... like a ninja! + } + + if (method == 'ready' && !isReady) { + isReady = true; + } + + // Handles messages from moogaloop only + if (event.origin != playerDomain) { + return false; + } + + var value = data.value, + eventData = data.data, + target_id = target_id === '' ? null : data.player_id, + + callback = getCallback(method, target_id), + params = []; + + if (!callback) { + return false; + } + + if (value !== undefined) { + params.push(value); + } + + if (eventData) { + params.push(eventData); + } + + if (target_id) { + params.push(target_id); + } + + return params.length > 0 ? callback.apply(null, params) : callback.call(); + } + + + /** + * Stores submitted callbacks for each iframe being tracked and each + * event for that iframe. + * + * @param eventName (String): Name of the event. Eg. api_onPlay + * @param callback (Function): Function that should get executed when the + * event is fired. + * @param target_id (String) [Optional]: If handling more than one iframe then + * it stores the different callbacks for different iframes based on the iframe's + * id. + */ + function storeCallback(eventName, callback, target_id) { + if (target_id) { + if (!eventCallbacks[target_id]) { + eventCallbacks[target_id] = {}; + } + eventCallbacks[target_id][eventName] = callback; + } + else { + eventCallbacks[eventName] = callback; + } + } + + /** + * Retrieves stored callbacks. + */ + function getCallback(eventName, target_id) { + if (target_id) { + return eventCallbacks[target_id][eventName]; + } + else { + return eventCallbacks[eventName]; + } + } + + function removeCallback(eventName, target_id) { + if (target_id && eventCallbacks[target_id]) { + if (!eventCallbacks[target_id][eventName]) { + return false; + } + eventCallbacks[target_id][eventName] = null; + } + else { + if (!eventCallbacks[eventName]) { + return false; + } + eventCallbacks[eventName] = null; + } + + return true; + } + + /** + * Returns a domain's root domain. + * Eg. returns http://vimeo.com when http://vimeo.com/channels is sbumitted + * + * @param url (String): Url to test against. + * @return url (String): Root domain of submitted url + */ + function getDomainFromUrl(url) { + if (url.substr(0, 2) === '//') { + url = window.location.protocol + url; + } + + var url_pieces = url.split('/'), + domain_str = ''; + + for(var i = 0, length = url_pieces.length; i < length; i++) { + if(i<3) {domain_str += url_pieces[i];} + else {break;} + if(i<2) {domain_str += '/';} + } + + return domain_str; + } + + function isFunction(obj) { + return !!(obj && obj.constructor && obj.call && obj.apply); + } + + function isArray(obj) { + return toString.call(obj) === '[object Array]'; + } + + // Give the init function the Froogaloop prototype for later instantiation + Froogaloop.fn.init.prototype = Froogaloop.fn; + + // Listens for the message event. + // W3C + if (window.addEventListener) { + window.addEventListener('message', onMessageReceived, false); + } + // IE + else { + window.attachEvent('onmessage', onMessageReceived); + } + + // Expose froogaloop to the global object + return (window.Froogaloop = window.$f = Froogaloop); + +})(); \ No newline at end of file diff --git a/views/home.ejs b/views/home.ejs index 36b9afd..85548fb 100755 --- a/views/home.ejs +++ b/views/home.ejs @@ -74,7 +74,7 @@
    -
    +
    [[ include partials/scripts ]] diff --git a/views/partials/scripts.ejs b/views/partials/scripts.ejs index c9b4c95..0373a3e 100644 --- a/views/partials/scripts.ejs +++ b/views/partials/scripts.ejs @@ -11,6 +11,7 @@ + @@ -122,5 +123,4 @@ - - + -- cgit v1.2.3-70-g09d2 From c166a6f9d7eafc01431de4076d3a53cc752febb4 Mon Sep 17 00:00:00 2001 From: ryderr Date: Thu, 30 Oct 2014 12:58:17 -0400 Subject: signin stuff and image --- public/assets/stylesheets/app.css | 15 ++++++++++++++- views/home.ejs | 2 +- views/partials/sign-in.ejs | 5 +++++ 3 files changed, 20 insertions(+), 2 deletions(-) (limited to 'views/home.ejs') diff --git a/public/assets/stylesheets/app.css b/public/assets/stylesheets/app.css index d7876da..5f4b70d 100755 --- a/public/assets/stylesheets/app.css +++ b/public/assets/stylesheets/app.css @@ -916,6 +916,7 @@ border-left: 1px solid black; position: fixed; bottom:0; right:0; + pointer-events:none; z-index: 2; } #hud { @@ -1347,6 +1348,14 @@ border-left: 1px solid black; font-weight: 300; } +.mediaDrawer form h2{ + font-size: 22px; + display: inline-block; + position: relative; + z-index: 4; + margin-bottom: 20px; +} + .mediaDrawer.mediaViewer h2 { margin-top:28px; font-size:18px; @@ -1873,7 +1882,10 @@ input[type="range"]::-webkit-slider-thumb { .modalLink:hover span { text-decoration: underline; } - +.settings .name { + display: block; + margin-top: 10px; +} @-webkit-keyframes fade { 50% { opacity:0.6; @@ -2465,6 +2477,7 @@ a[data-role="forgot-password"] { .share h2 { font-weight: 400; font-size: 13px; + margin:0; } .share a{ diff --git a/views/home.ejs b/views/home.ejs index 85548fb..85a235b 100755 --- a/views/home.ejs +++ b/views/home.ejs @@ -28,7 +28,7 @@
    - +

    Plan Your Art Show

    diff --git a/views/partials/sign-in.ejs b/views/partials/sign-in.ejs index 08c9e99..0d36a1d 100644 --- a/views/partials/sign-in.ejs +++ b/views/partials/sign-in.ejs @@ -3,7 +3,10 @@
    -- cgit v1.2.3-70-g09d2 From 80c731a0d0f10db6891364ecd0cf3afcee288cb1 Mon Sep 17 00:00:00 2001 From: ryderr Date: Wed, 5 Nov 2014 11:33:51 -0500 Subject: copy --- public/assets/javascripts/app.js | 1 - public/assets/stylesheets/app.css | 6 ++++++ views/controls/editor/settings.ejs | 4 ++-- views/home.ejs | 10 +++++----- views/partials/footer.ejs | 2 +- views/partials/meta.ejs | 2 +- views/partials/scripts.ejs | 2 +- 7 files changed, 16 insertions(+), 11 deletions(-) (limited to 'views/home.ejs') diff --git a/public/assets/javascripts/app.js b/public/assets/javascripts/app.js index 0488f11..b4eb9e6 100644 --- a/public/assets/javascripts/app.js +++ b/public/assets/javascripts/app.js @@ -8,7 +8,6 @@ else if ($.browser.msie || ! has3d()) { } else { $("html").addClass("desktop"); - new WOW().init() } diff --git a/public/assets/stylesheets/app.css b/public/assets/stylesheets/app.css index c190f35..2303d3e 100755 --- a/public/assets/stylesheets/app.css +++ b/public/assets/stylesheets/app.css @@ -2339,6 +2339,8 @@ form li textarea { -webkit-transition:0.2s background; -moz-transition:0.2s background; transition:0.2s background; + position: relative; + z-index: 5; } .loading .hero .circle { @@ -2808,6 +2810,10 @@ a[data-role="forgot-password"] { .footer { padding:50px 0 120px 0; } + .videoModal .ion-ios7-close-empty { + right: 10px; + top: 20px; + } } @media screen and (orientation:portrait) { diff --git a/views/controls/editor/settings.ejs b/views/controls/editor/settings.ejs index 8443abb..0d8f325 100644 --- a/views/controls/editor/settings.ejs +++ b/views/controls/editor/settings.ejs @@ -10,9 +10,9 @@ Set Startpoint Move to Desired Point done - Startpoint Confirmed + Set Startpoint - (go there) + view current
    diff --git a/views/home.ejs b/views/home.ejs index 85a235b..56ac3f9 100755 --- a/views/home.ejs +++ b/views/home.ejs @@ -15,7 +15,7 @@
    - + Create 3D Rooms

    Watch video. @@ -26,7 +26,7 @@

    What's VValls For?

    -
    +
    @@ -37,18 +37,18 @@
    -
    +

    Defy The Status Quo

    - There is no platform on the internet quite like VValls. Built using advanced HTML5 techniques, VValls opens up the possibilities of expression online. Go crazy, make other worldly rooms. + There is no platform on the internet quite like VValls. VValls opens up the possibilities of expression online. Go crazy, make other worldly rooms.
    -
    +
    diff --git a/views/partials/footer.ejs b/views/partials/footer.ejs index 3ee4afc..f44b611 100644 --- a/views/partials/footer.ejs +++ b/views/partials/footer.ejs @@ -11,7 +11,7 @@

    - you are signed in as → + signed in as → [[- user.displayName ]] [[ if (user.isStaff) { ]]
    Staff Area diff --git a/views/partials/meta.ejs b/views/partials/meta.ejs index c50fc01..f1b6f48 100644 --- a/views/partials/meta.ejs +++ b/views/partials/meta.ejs @@ -30,7 +30,7 @@ - + -- cgit v1.2.3-70-g09d2 From 518e4f9b69b1f3bd82ead7bde3b51e3d17e80660 Mon Sep 17 00:00:00 2001 From: ryderr Date: Fri, 7 Nov 2014 14:59:21 -0500 Subject: go pro text --- public/assets/stylesheets/app.css | 34 +++++++++++++++++++++++++++++++--- views/home.ejs | 11 ++++++++++- views/partials/footer.ejs | 2 +- 3 files changed, 42 insertions(+), 5 deletions(-) (limited to 'views/home.ejs') diff --git a/public/assets/stylesheets/app.css b/public/assets/stylesheets/app.css index 90454be..d37884e 100755 --- a/public/assets/stylesheets/app.css +++ b/public/assets/stylesheets/app.css @@ -803,6 +803,37 @@ iframe.embed { background-attachment: fixed; } + +.projectList.about.gopro { + padding:6% 0; +} +.about h3 { + font-weight:500; + text-align:center; + margin-bottom:20px; +} +.gopro span{ + font-size: 24px; + font-weight: 300; + width: 740px; + display: block; + margin: 0 auto; + line-height: 50px; +} +.gopro span a{ + width: 100%; + display: inline-block; + text-align: center; + margin-top: 40px; + background: limegreen; + color: white; + -webkit-transition:0.2s background; + -moz-transition:0.2s background; + transition:0.2s background; +} +.gopro span a:hover{ + background:black; +} .profilepage .about h2 .btn { float: none; border: 1px solid; @@ -2358,9 +2389,6 @@ form li textarea { z-index: 5; } -.loading .hero .circle { - opacity:0; -} .desktop .hero .circle:hover { background:black; diff --git a/views/home.ejs b/views/home.ejs index 0a55336..53d644a 100755 --- a/views/home.ejs +++ b/views/home.ejs @@ -64,7 +64,16 @@

    Room Showcase

    [[ include projects/list-projects ]] - + +
    + + +

    Ready To Go Pro?

    + + We offer white-label licensing of the VValls platform that could be used within the context of your product offering. We can also customize the VValls platform to suit the various needs of your project. This could be include custom floor plans and numerous other features. Please inquire to start a conversation. + Contact +
    +
    [[ include partials/confirm-modal ]] [[ include projects/layouts-modal ]] [[ include partials/sign-in ]] diff --git a/views/partials/footer.ejs b/views/partials/footer.ejs index f44b611..a94acb1 100644 --- a/views/partials/footer.ejs +++ b/views/partials/footer.ejs @@ -5,7 +5,7 @@ Terms Privacy - ©2014 VVALLS Inc. + ©2014 Dot Dash 3, Inc. [[ if (logged_in) { ]]

    -- cgit v1.2.3-70-g09d2 From f6b149e1909dd0507d1377b9f085123820772594 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Fri, 7 Nov 2014 15:42:14 -0500 Subject: more embed stuff --- public/assets/javascripts/ui/reader/EmbedView.js | 7 +++++-- public/assets/stylesheets/app.css | 16 ++++++++++++++-- views/controls/reader/embed.ejs | 6 +++--- views/home.ejs | 2 +- 4 files changed, 23 insertions(+), 8 deletions(-) (limited to 'views/home.ejs') diff --git a/public/assets/javascripts/ui/reader/EmbedView.js b/public/assets/javascripts/ui/reader/EmbedView.js index 21e351c..7a75e00 100644 --- a/public/assets/javascripts/ui/reader/EmbedView.js +++ b/public/assets/javascripts/ui/reader/EmbedView.js @@ -8,7 +8,7 @@ var EmbedView = ModalView.extend({ "click [name=mute]": "build", "click [name=interactive]": "build", "click textarea": "selectAll", - "click #test": "test", + "click #testEmbed": "test", }, defaultWidth: 600, @@ -45,10 +45,13 @@ var EmbedView = ModalView.extend({ var embed_link = link embed_link += "?mute=" + mute embed_link += "&embed=1" + if (interactive) { + embed_link += "&interactive=1" + } var kode = "
    +
    [[ include partials/scripts ]] diff --git a/views/reader.ejs b/views/reader.ejs index 363015b..6c9856a 100644 --- a/views/reader.ejs +++ b/views/reader.ejs @@ -27,8 +27,9 @@ [[ include partials/confirm-modal ]] [[ include projects/layouts-modal ]] [[ include partials/sign-in ]] - - + + + [[ include partials/scripts ]] -- cgit v1.2.3-70-g09d2 From 9c6f8f8568d20d75eb22955dbf2752ea777e59f8 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Wed, 7 Jan 2015 14:34:41 -0500 Subject: stub in brochure page --- public/assets/stylesheets/app.css | 14 +++++++ server/lib/schemas/Plan.js | 6 +++ server/lib/schemas/Subscription.js | 2 +- server/lib/views/index.js | 5 +++ server/lib/views/subscription.js | 1 - views/about/_blank.ejs | 2 +- views/about/about.ejs | 16 +------- views/about/brochure.ejs | 79 ++++++++++++++++++++++++++++++++++++++ views/about/howto.ejs | 2 +- views/builder.ejs | 2 +- views/docs.ejs | 2 +- views/editor.ejs | 2 +- views/home.ejs | 2 +- views/modal.ejs | 2 +- views/profile.ejs | 2 +- views/reader.ejs | 2 +- views/staff/_header.ejs | 2 +- 17 files changed, 116 insertions(+), 27 deletions(-) create mode 100644 views/about/brochure.ejs (limited to 'views/home.ejs') diff --git a/public/assets/stylesheets/app.css b/public/assets/stylesheets/app.css index aecd6be..0463e26 100755 --- a/public/assets/stylesheets/app.css +++ b/public/assets/stylesheets/app.css @@ -673,7 +673,21 @@ iframe.embed { font-weight: 300; } +.aboutintro { + text-align: center; + line-height: 43px; + font-size: 24px; + padding: 5% 0; + font-weight: 300; +} +.aboutintro .inner { + max-width: 800px; + margin: 0 auto; + text-align: center; +} + /* PROFILE PAGE */ + .profilePic { background-size: cover; background-position: center; diff --git a/server/lib/schemas/Plan.js b/server/lib/schemas/Plan.js index 3e74997..1057bb2 100644 --- a/server/lib/schemas/Plan.js +++ b/server/lib/schemas/Plan.js @@ -13,6 +13,12 @@ var PlanSchema = new mongoose.Schema({ monthly_price: { type: Number }, yearly_price: { type: Number }, + basic_layout_monthly_price: { type: Number }, + basic_layout_yearly_price: { type: Number }, + + pro_layout_monthly_price: { type: Number }, + pro_layout_yearly_price: { type: Number }, + basic_layout_limit: { type: Number }, pro_layout_limit: { type: Number }, diff --git a/server/lib/schemas/Subscription.js b/server/lib/schemas/Subscription.js index 8d0b10e..8315009 100644 --- a/server/lib/schemas/Subscription.js +++ b/server/lib/schemas/Subscription.js @@ -15,7 +15,7 @@ var SubscriptionSchema = new mongoose.Schema({ plans: [{ tier: { type: String }, monthly: { type: Boolean }, - }] + }], created_at: { type: Date, default: Date.now }, updated_at: { type: Date, default: Date.now }, diff --git a/server/lib/views/index.js b/server/lib/views/index.js index 3326499..5f9088b 100644 --- a/server/lib/views/index.js +++ b/server/lib/views/index.js @@ -111,6 +111,11 @@ var views = module.exports = { res.render('about/' + name) return } + if (name == "brochure") { + // TODO: fetch plans + res.render('about/' + name) + return + } if (name == "about" || name == "index") { res.render('about/' + name) return diff --git a/server/lib/views/subscription.js b/server/lib/views/subscription.js index 77db1a0..ba54bb4 100644 --- a/server/lib/views/subscription.js +++ b/server/lib/views/subscription.js @@ -12,7 +12,6 @@ var subscription = module.exports = { fields: { user: "_id username displayName photo created_at updated_at last_seen created_ip last_ip", - project: "_id name slug user_id privacy created_at updated_at", }, defaults: { diff --git a/views/about/_blank.ejs b/views/about/_blank.ejs index 0e9ea7e..3c23fa7 100644 --- a/views/about/_blank.ejs +++ b/views/about/_blank.ejs @@ -1,7 +1,7 @@ - vvalls + VValls [[ include ../partials/meta ]] diff --git a/views/about/about.ejs b/views/about/about.ejs index dd536be..2aec982 100644 --- a/views/about/about.ejs +++ b/views/about/about.ejs @@ -1,7 +1,7 @@ - vvalls + About VValls [[ include ../partials/meta ]] @@ -50,17 +50,3 @@ [[ include ../partials/scripts ]] - \ No newline at end of file diff --git a/views/about/brochure.ejs b/views/about/brochure.ejs new file mode 100644 index 0000000..00083cf --- /dev/null +++ b/views/about/brochure.ejs @@ -0,0 +1,79 @@ + + + + VValls Subscriptions + [[ include ../partials/meta ]] + + +
    + [[ include ../partials/header ]] + +

    Subscriptions

    + +
    +
    + Want to get more out of VValls? Consider becoming a subscription user. +
    +
    + +
    +

    [[- plans.free.name ]]

    +
      +
    • One exhibition with pre-designed template floor plan +
    +
    + +
    +

    [[- plans.premium.name ]]

    +
      +
    • $[[- plans.premium.monthly_price ]]/mo or $[[- plans.premium.yearly_price ]]/year +
    • [[- plans.premium.stock_layout_project_limit ]] exhibitions included with pre-designed template floor plans +
    • Each new basic floor plan costs $[[- plans.premium.basic_layout_monthly_price ]]/mo + or $[[- plans.premium.basic_layout_yearly_price ]]/year, minimum 3 months +
    • Each new basic floor plan can have up to [[- plans.premium.basic_layout_project_limit ]] exhibitions +
    • VValls logo appears when embedding an exhibition on a web page +
    +
    + +
    +

    [[- plans.pro.name ]]

    +
      +
    • $[[- plans.pro.monthly_price ]]/mo or $[[- plans.pro.yearly_price ]]/year +
    • Comes with [[- plans.premium.pro_layout_limit ]] pro floor plan and [[- plans.premium.pro_layout_project_limit ]] exhibitions +
    • Each new pro floor plan costs $[[- plans.pro.pro_layout_monthly_price ]]/mo + or $[[- plans.pro.pro_layout_yearly_price ]]/year, minimum 3 months +
    • Each new pro floor plan can have up to [[- plans.pro.pro_layout_project_limit ]] exhibitions +
    • Includes planning for 3D objects in the room +
    • No VValls logo on embed +
    +
    + +
    + Buying any extra floor plan unlocks collaboration. Invite an artist or curator to work on the exhibition with you. +
    + +
    + Basic Floor plan: Rectangle-based design of any dimension. +
    + +
    + Pro Floor plan: Trace an arbitrary floorplan. +
    + + +
    +

    Custom

    + We offer many types of customizations and white-label options for business and educational uses. + Contact us for more information +
    + + + [[ include ../partials/confirm-modal ]] + [[ include ../projects/layouts-modal ]] + [[ include ../partials/sign-in ]] + [[ include ../partials/footer ]] + +
    + +[[ include ../partials/scripts ]] + diff --git a/views/about/howto.ejs b/views/about/howto.ejs index 5278a40..914c3b3 100644 --- a/views/about/howto.ejs +++ b/views/about/howto.ejs @@ -1,7 +1,7 @@ - vvalls + How to Use VValls [[ include ../partials/meta ]] diff --git a/views/builder.ejs b/views/builder.ejs index afb8c66..0ba4238 100644 --- a/views/builder.ejs +++ b/views/builder.ejs @@ -1,7 +1,7 @@ - vvalls + VValls [[ include partials/meta ]] diff --git a/views/docs.ejs b/views/docs.ejs index b3ead82..a1f081f 100644 --- a/views/docs.ejs +++ b/views/docs.ejs @@ -1,7 +1,7 @@ - vvalls + VValls [[ include partials/meta ]] diff --git a/views/editor.ejs b/views/editor.ejs index 656615c..74e4d6d 100755 --- a/views/editor.ejs +++ b/views/editor.ejs @@ -1,7 +1,7 @@ - vvalls + VValls [[ include partials/meta ]] diff --git a/views/home.ejs b/views/home.ejs index 36fc2fc..ffb0976 100755 --- a/views/home.ejs +++ b/views/home.ejs @@ -1,7 +1,7 @@ - vvalls + VValls [[ include partials/meta ]] diff --git a/views/modal.ejs b/views/modal.ejs index 7ca869c..732953d 100644 --- a/views/modal.ejs +++ b/views/modal.ejs @@ -1,7 +1,7 @@ - vvalls + VValls [[ include partials/meta ]] diff --git a/views/profile.ejs b/views/profile.ejs index a62652c..88af6b0 100644 --- a/views/profile.ejs +++ b/views/profile.ejs @@ -1,7 +1,7 @@ - vvalls + VValls | [[- profile.displayName ]] [[ include partials/meta ]] diff --git a/views/reader.ejs b/views/reader.ejs index 6c9856a..7035356 100644 --- a/views/reader.ejs +++ b/views/reader.ejs @@ -1,7 +1,7 @@ - vvalls + VValls [[ include partials/meta ]] diff --git a/views/staff/_header.ejs b/views/staff/_header.ejs index 3bbf4f1..a73c12e 100644 --- a/views/staff/_header.ejs +++ b/views/staff/_header.ejs @@ -1,7 +1,7 @@ - vvalls | staff + VValls | staff [[ include ../partials/meta ]] -- cgit v1.2.3-70-g09d2 From f51b018fd760d8550a06cb900a1311164ea881ad Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Tue, 3 Feb 2015 13:15:58 -0500 Subject: emails --- server/lib/auth/mail.js | 2 +- views/home.ejs | 2 +- views/staff/_users.ejs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'views/home.ejs') diff --git a/server/lib/auth/mail.js b/server/lib/auth/mail.js index eac4007..990b53f 100644 --- a/server/lib/auth/mail.js +++ b/server/lib/auth/mail.js @@ -6,7 +6,7 @@ var email = require("emailjs"), var mail = { - from: 'VValls ', + from: 'VValls ', templates: {}, init: function(){ diff --git a/views/home.ejs b/views/home.ejs index ffb0976..20723a5 100755 --- a/views/home.ejs +++ b/views/home.ejs @@ -68,7 +68,7 @@

    Ready To Go Pro?

    Use VValls as part of your product, service, or marketing campaign. We offer many types of customizations, including automation of layouts, more elaborate floor plans, enhanced video, interactivity, and other features. - Contact + Contact
    [[ include partials/confirm-modal ]] diff --git a/views/staff/_users.ejs b/views/staff/_users.ejs index 9caf893..ee988ab 100644 --- a/views/staff/_users.ejs +++ b/views/staff/_users.ejs @@ -1,5 +1,5 @@
    - +
    diff --git a/views/profile.ejs b/views/profile.ejs index e149847..63a07f5 100644 --- a/views/profile.ejs +++ b/views/profile.ejs @@ -15,7 +15,7 @@ [[ } else { ]]
    - + [[ if (isOwnProfile) { ]]
    click to add profile pic
    -- cgit v1.2.3-70-g09d2 From 8ae88bc8540c0b2265748cb0df452c0370630289 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Mon, 20 Jul 2015 14:53:38 -0400 Subject: show plans on homepage --- server/lib/views/index.js | 16 ++++++++++------ views/about/_plans.ejs | 6 +++--- views/home.ejs | 15 ++++++--------- 3 files changed, 19 insertions(+), 18 deletions(-) (limited to 'views/home.ejs') diff --git a/server/lib/views/index.js b/server/lib/views/index.js index be46cc6..5241ddb 100644 --- a/server/lib/views/index.js +++ b/server/lib/views/index.js @@ -89,17 +89,21 @@ var views = module.exports = { }, home: function (req, res) { - views_middleware.fetchProjects({ featured: true }, null, null, function(err, projects){ - res.render('home', { - projects: projects || [] + views_middleware.ensurePlans(req, res, function(err){ + views_middleware.fetchProjects({ featured: true }, null, null, function(err, projects){ + res.render('home', { + projects: projects || [], + }) }) }) }, demoHome: function (req, res) { - views_middleware.fetchProjects({ featured: true }, null, null, function(err, projects){ - res.render('home', { - projects: projects || [] + views_middleware.ensurePlans(req, res, function(err){ + views_middleware.fetchProjects({ featured: true }, null, null, function(err, projects){ + res.render('home', { + projects: projects || [], + }) }) }) }, diff --git a/views/about/_plans.ejs b/views/about/_plans.ejs index af2a050..ba42e28 100644 --- a/views/about/_plans.ejs +++ b/views/about/_plans.ejs @@ -1,4 +1,3 @@ -
    +

    Want Something Custom?

  • We offer customized white-label options for business and educational uses. diff --git a/views/home.ejs b/views/home.ejs index b83e3e9..2bf5662 100755 --- a/views/home.ejs +++ b/views/home.ejs @@ -62,15 +62,12 @@ [[ include projects/list-projects ]] -
    - - -

    Ready To Go Pro?

    - Use VValls as part of your product, service, or marketing campaign. - We offer many types of customizations, including automation of layouts, more elaborate floor plans, enhanced video, interactivity, and other features. - Contact -
    -
    +

    Sign Up

    + +
    + [[ include about/_plans ]] +
    + [[ include partials/confirm-modal ]] [[ include projects/layouts-modal ]] [[ include partials/sign-in ]] -- cgit v1.2.3-70-g09d2 From eceee13ba34b5a8481ee0208db17fe06b216dee6 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Thu, 23 Jul 2015 18:28:07 -0400 Subject: move sign up above room showcase --- views/home.ejs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'views/home.ejs') diff --git a/views/home.ejs b/views/home.ejs index 2bf5662..a48b2dc 100755 --- a/views/home.ejs +++ b/views/home.ejs @@ -57,17 +57,16 @@ Read Tutorial
  • -

    Room Showcase

    - - [[ include projects/list-projects ]] - -

    Sign Up

    [[ include about/_plans ]]
    +

    Room Showcase

    + + [[ include projects/list-projects ]] + [[ include partials/confirm-modal ]] [[ include projects/layouts-modal ]] [[ include partials/sign-in ]] -- cgit v1.2.3-70-g09d2 From bb973c2a2ceef0008325129bcde0ff9ddc3fdb6a Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Tue, 18 Aug 2015 10:09:01 -0400 Subject: installation instructions --- README.md | 17 +++++++++++++++++ views/home.ejs | 1 - 2 files changed, 17 insertions(+), 1 deletion(-) (limited to 'views/home.ejs') diff --git a/README.md b/README.md index 1c95b14..3bb1093 100644 --- a/README.md +++ b/README.md @@ -19,3 +19,20 @@ vvalls | | .' | |/ | | \| | `. | | +------+' +------+ +------+ +------+ `+------+ ``` + +Installing VValls +================= + +1) Install mongodb, nodejs, npm (probably comes with node) and bower +2) `git clone git@github.com:okfocus/vvalls.git` +3) `cd vvalls ; git checkout subscriptions` +4) `npm install` +5) `bower install` +6) `cp config.json.example config.json` +7) Start the mongod server (if it isn't running already) +8) `node server` + +Server will be running on http://lvh.me:3000/ + +To give yourself superuser access, visit http://lvh.me:3000/staff/authorize (development mode only) + diff --git a/views/home.ejs b/views/home.ejs index a48b2dc..6d76f1c 100755 --- a/views/home.ejs +++ b/views/home.ejs @@ -60,7 +60,6 @@

    Sign Up

    - [[ include about/_plans ]]

    Room Showcase

    -- cgit v1.2.3-70-g09d2 From c29a5363e3e4e0833e78958fe95b52811d0b0660 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Wed, 26 Aug 2015 18:42:13 -0400 Subject: surface blueprints on layouts modal --- public/assets/javascripts/ui/site/LayoutsIndex.js | 85 ++++++++ public/assets/javascripts/ui/site/LayoutsModal.js | 221 ++------------------- .../assets/javascripts/ui/site/NewProjectModal.js | 118 +++++++++++ public/assets/stylesheets/app.css | 6 +- views/home.ejs | 2 +- views/partials/scripts.ejs | 2 + views/projects/layouts-modal.ejs | 4 +- 7 files changed, 226 insertions(+), 212 deletions(-) create mode 100644 public/assets/javascripts/ui/site/LayoutsIndex.js create mode 100644 public/assets/javascripts/ui/site/NewProjectModal.js (limited to 'views/home.ejs') diff --git a/public/assets/javascripts/ui/site/LayoutsIndex.js b/public/assets/javascripts/ui/site/LayoutsIndex.js new file mode 100644 index 0000000..f7272bb --- /dev/null +++ b/public/assets/javascripts/ui/site/LayoutsIndex.js @@ -0,0 +1,85 @@ + +var LayoutsIndex = View.extend({ + + initialize: function(){ + this.$templates = this.$(".templates") + this.$templatesList = this.$(".templates-list") + this.$noTemplates = this.$(".no-templates") + this.$form = this.$("form") + + this.$userTemplatesList = this.$(".userTemplatesList") + this.$blueprintsList = this.$(".blueprintsList") + this.$newBlueprintButton = this.$("[data-role='create-new-blueprint']") + }, + + load: function(type){ + this.$templates.children("span").remove() + + $.get(this.action, this.populate.bind(this)) + }, + + populate: function(data){ + if (! data.layouts.length) { + this.$templates.hide() + this.$form.hide() + this.$noTemplates.show() + } + this.$templatesList.empty() + data.layouts.forEach(function(room){ + var $span = $("") + $span.data("slug", room.slug) + + var $label = $("