diff --git a/app/views/public/header.blade.php b/app/views/public/header.blade.php index c8bdb8969f9a..faf866e0eabe 100644 --- a/app/views/public/header.blade.php +++ b/app/views/public/header.blade.php @@ -9,6 +9,7 @@ --> + -
  • {{ link_to('https://www.invoiceninja.com/about', 'About Us' ) }}
  • -
  • {{ link_to('https://www.invoiceninja.com/plans', 'Plans' ) }}
  • -
  • {{ link_to('https://www.invoiceninja.com/contact', 'Contact Us' ) }}
  • + + + + + - - - - - - - -

    Connect with Us

    diff --git a/public/built.public.css b/public/built.public.css index 9d555894163e..774df2771e1b 100644 --- a/public/built.public.css +++ b/public/built.public.css @@ -96,44 +96,114 @@ text-align: center; color: #bfbfbf; } .form-control.with-icon {padding-left: 50px !important;} + +/* Responsive actions */ + +.hidden-desktop { + display: none !important; +} + +/* Navigation */ .navbar { background: #211f1f; - padding: 30px 0; + padding: 40px 0; border: none; border-radius: 0; } -ul.navbar-list { +.navbar-brand { + padding: 0; + line-height: 1; + height: auto; +} +ul.navbar-nav { float: right; list-style-type: none; - height: 26px; margin: 0; padding: 0; } -ul.navbar-list li { +ul.navbar-nav li { display: inline; font-family: Roboto, sans-serif; - font-weight: 700; - margin: 40px 0; + font-weight: 900; + text-transform: uppercase; + height: 26px; + line-height: 26px; } -ul.navbar-list li a { +ul.navbar-nav li a { color: #fff; - padding-left: 20px; - margin-left: 20px; - border-left: 1px solid #4f4b4b; + margin-left: 45px; } -ul.navbar-list li:last-child a { +ul.navbar-nav .glyphicon { color: #ebbe09; } -ul.navbar-list li:first-child a { +ul.navbar-nav li:last-child a { + color: #ebbe09; + margin-left: 5px; +} +ul.navbar-nav li:last-child { + border-left: 1px solid #4f4b4b; + padding-left: 45px; + margin-left: 45px; +} +ul.navbar-nav li:first-child a { border-left: none; margin: 0; - padding: 0; + padding-left: 0; } -ul.navbar-list li a:hover { +ul.navbar-nav li a:hover { color: #ebbe09; text-decoration: none; } + +.navbar-nav>li { + float: right; +} +.navbar-nav>li>a { + padding: 0; + display: inline-block; +} +.nav>li>a:hover, .nav>li>a:focus { + background-color: transparent; +} +.navbar-top { + padding: 5px 0 0 0; + background: #fff; +} +.navbar-top ul { + float: right; + margin: 0; +} +.navbar-top ul li { + display: inline-block; + font-size: 12px; + text-transform: uppercase; + margin-left: 30px; + height: 40px; + line-height: 40px; + vertical-align: middle; + +} +.navbar-top ul li .socicon { + text-transform: none; + margin-top: 1px; +} +.navbar-top ul li a .socicon { + font-size: 16px; + color: #a6a5a5; + display: inline-block; +} +.navbar-top ul li a .socicon:hover { + color: #ebbe09; +} +.navbar-top ul li a { + color: #736b6b; +} +.navbar-top ul li a:hover { + color: #2e2b2b; +} + + a .cta h2 { width: 100%; height: 63px; @@ -713,13 +783,104 @@ footer.footer form#mad_mimi_signup_form input { color: #b7b7b6; } +/* Fonts */ + +.socicon { + font-family: 'socicon' !important; +} +@font-face { + font-family: socicon; + src: url(../fonts/socicon-webfont.eot); + src: url(../fonts/socicon-webfont.eot?#iefix) format(embedded-opentype), url(../fonts/socicon-webfont.woff) format(woff), url(../fonts/socicon-webfont.ttf) format(truetype), url(../fonts/socicon-webfont.svg#sociconregular) format(svg); + font-weight: 400; + font-style: normal; +} + @media (max-width: 768px) { + + /* Responsive actions */ + .hidden-desktop { + display: block !important; + } + .hidden-phone { + display: none !important; + } + + /* Typo */ h1 { font-size: 30px; } h2 { font-size: 20px; } + + /* Mobile navigation */ + .navbar { + text-align: center; + padding: 0; + } + .navbar-header { + padding: 15px 0; + } + ul.navbar-nav { + width: 100%; + } + .navbar li.hidden-desktop { + font-weight: 400; + font-size: 11px; + } + ul.navbar-nav li { + float: none; + margin: 0; + height: 30px; + line-height: 30px; + font-size: 12px; + display: block !important; + } + ul.navbar-nav li a { + margin: 0; + display: inline; + width: 100%; + float: none; + padding: 0; + } + ul.navbar-nav li:first-child { + margin-top: 12px; + } + ul.navbar-nav li:first-child a { + margin: 0; + padding: 0; + } + ul.navbar-nav li:last-child { + border-left: none; + padding-left: 0; + margin-left: 0; + margin-bottom: 12px; + } + .navbar-collapse { + border-top: none; + box-shadow: none; + background: #282525; + } + .navbar-toggle { + border: 1px solid #ddd; + margin: 0; + } + .navbar-toggle .icon-bar { + background: #ddd; + } + + ul.navbar-list { + float: none; + margin-top: 10px; + } + .navbar-brand { + margin-top: 6px; + } + .container>.navbar-header { + margin: 0; + } + section.about .col-md-5 { padding-left: 15px !important; } @@ -749,14 +910,6 @@ footer.footer form#mad_mimi_signup_form input { section.faq .contact-box p { margin: 0; } - .navbar { - text-align: center; - padding: 25px 0 18px; - } - ul.navbar-list { - float: none; - margin-top: 10px; - } .hero .caption { width: 100%; background: #fff; @@ -926,13 +1079,6 @@ div.fb_iframe_widget { div.fb_iframe_widget > span { vertical-align: top !important; } -@font-face { - font-family: socicon; - src: url(/fonts/socicon-webfont.eot); - src: url(/fonts/socicon-webfont.eot?#iefix) format(embedded-opentype), url(/fonts/socicon-webfont.woff) format(woff), url(/fonts/socicon-webfont.ttf) format(truetype), url(/fonts/socicon-webfont.svg#sociconregular) format(svg); - font-weight: 400; - font-style: normal; -} ::selection { color: #fff; background: #2e2b2b; @@ -1073,15 +1219,8 @@ div.fb_iframe_widget > span { .plans-table a .cta h2 span { background: #1e84a5; } -@media screen and (min-width: 769px) { - .hide-desktop { - display: none; - } -} + @media screen and (max-width: 769px) { - .hide-mobile { - display: none; - } .plans-table .cell { height: auto; padding: 14px 0; diff --git a/public/css/splash.css b/public/css/splash.css index 2166608a65be..84a6d1ebb453 100644 --- a/public/css/splash.css +++ b/public/css/splash.css @@ -85,44 +85,114 @@ text-align: center; color: #bfbfbf; } .form-control.with-icon {padding-left: 50px !important;} + +/* Responsive actions */ + +.hidden-desktop { + display: none !important; +} + +/* Navigation */ .navbar { background: #211f1f; - padding: 30px 0; + padding: 40px 0; border: none; border-radius: 0; } -ul.navbar-list { +.navbar-brand { + padding: 0; + line-height: 1; + height: auto; +} +ul.navbar-nav { float: right; list-style-type: none; - height: 26px; margin: 0; padding: 0; } -ul.navbar-list li { +ul.navbar-nav li { display: inline; font-family: Roboto, sans-serif; - font-weight: 700; - margin: 40px 0; + font-weight: 900; + text-transform: uppercase; + height: 26px; + line-height: 26px; } -ul.navbar-list li a { +ul.navbar-nav li a { color: #fff; - padding-left: 20px; - margin-left: 20px; - border-left: 1px solid #4f4b4b; + margin-left: 45px; } -ul.navbar-list li:last-child a { +ul.navbar-nav .glyphicon { color: #ebbe09; } -ul.navbar-list li:first-child a { +ul.navbar-nav li:last-child a { + color: #ebbe09; + margin-left: 5px; +} +ul.navbar-nav li:last-child { + border-left: 1px solid #4f4b4b; + padding-left: 45px; + margin-left: 45px; +} +ul.navbar-nav li:first-child a { border-left: none; margin: 0; - padding: 0; + padding-left: 0; } -ul.navbar-list li a:hover { +ul.navbar-nav li a:hover { color: #ebbe09; text-decoration: none; } + +.navbar-nav>li { + float: right; +} +.navbar-nav>li>a { + padding: 0; + display: inline-block; +} +.nav>li>a:hover, .nav>li>a:focus { + background-color: transparent; +} +.navbar-top { + padding: 5px 0 0 0; + background: #fff; +} +.navbar-top ul { + float: right; + margin: 0; +} +.navbar-top ul li { + display: inline-block; + font-size: 12px; + text-transform: uppercase; + margin-left: 30px; + height: 40px; + line-height: 40px; + vertical-align: middle; + +} +.navbar-top ul li .socicon { + text-transform: none; + margin-top: 1px; +} +.navbar-top ul li a .socicon { + font-size: 16px; + color: #a6a5a5; + display: inline-block; +} +.navbar-top ul li a .socicon:hover { + color: #ebbe09; +} +.navbar-top ul li a { + color: #736b6b; +} +.navbar-top ul li a:hover { + color: #2e2b2b; +} + + a .cta h2 { width: 100%; height: 63px; @@ -702,13 +772,104 @@ footer.footer form#mad_mimi_signup_form input { color: #b7b7b6; } +/* Fonts */ + +.socicon { + font-family: 'socicon' !important; +} +@font-face { + font-family: socicon; + src: url(../fonts/socicon-webfont.eot); + src: url(../fonts/socicon-webfont.eot?#iefix) format(embedded-opentype), url(../fonts/socicon-webfont.woff) format(woff), url(../fonts/socicon-webfont.ttf) format(truetype), url(../fonts/socicon-webfont.svg#sociconregular) format(svg); + font-weight: 400; + font-style: normal; +} + @media (max-width: 768px) { + + /* Responsive actions */ + .hidden-desktop { + display: block !important; + } + .hidden-phone { + display: none !important; + } + + /* Typo */ h1 { font-size: 30px; } h2 { font-size: 20px; } + + /* Mobile navigation */ + .navbar { + text-align: center; + padding: 0; + } + .navbar-header { + padding: 15px 0; + } + ul.navbar-nav { + width: 100%; + } + .navbar li.hidden-desktop { + font-weight: 400; + font-size: 11px; + } + ul.navbar-nav li { + float: none; + margin: 0; + height: 30px; + line-height: 30px; + font-size: 12px; + display: block !important; + } + ul.navbar-nav li a { + margin: 0; + display: inline; + width: 100%; + float: none; + padding: 0; + } + ul.navbar-nav li:first-child { + margin-top: 12px; + } + ul.navbar-nav li:first-child a { + margin: 0; + padding: 0; + } + ul.navbar-nav li:last-child { + border-left: none; + padding-left: 0; + margin-left: 0; + margin-bottom: 12px; + } + .navbar-collapse { + border-top: none; + box-shadow: none; + background: #282525; + } + .navbar-toggle { + border: 1px solid #ddd; + margin: 0; + } + .navbar-toggle .icon-bar { + background: #ddd; + } + + ul.navbar-list { + float: none; + margin-top: 10px; + } + .navbar-brand { + margin-top: 6px; + } + .container>.navbar-header { + margin: 0; + } + section.about .col-md-5 { padding-left: 15px !important; } @@ -738,14 +899,6 @@ footer.footer form#mad_mimi_signup_form input { section.faq .contact-box p { margin: 0; } - .navbar { - text-align: center; - padding: 25px 0 18px; - } - ul.navbar-list { - float: none; - margin-top: 10px; - } .hero .caption { width: 100%; background: #fff; @@ -915,13 +1068,6 @@ div.fb_iframe_widget { div.fb_iframe_widget > span { vertical-align: top !important; } -@font-face { - font-family: socicon; - src: url(/fonts/socicon-webfont.eot); - src: url(/fonts/socicon-webfont.eot?#iefix) format(embedded-opentype), url(/fonts/socicon-webfont.woff) format(woff), url(/fonts/socicon-webfont.ttf) format(truetype), url(/fonts/socicon-webfont.svg#sociconregular) format(svg); - font-weight: 400; - font-style: normal; -} ::selection { color: #fff; background: #2e2b2b; @@ -1062,15 +1208,8 @@ div.fb_iframe_widget > span { .plans-table a .cta h2 span { background: #1e84a5; } -@media screen and (min-width: 769px) { - .hide-desktop { - display: none; - } -} + @media screen and (max-width: 769px) { - .hide-mobile { - display: none; - } .plans-table .cell { height: auto; padding: 14px 0; diff --git a/public/fonts/.empty b/public/fonts/.empty new file mode 100644 index 000000000000..da1585c347ba --- /dev/null +++ b/public/fonts/.empty @@ -0,0 +1 @@ +I'm a folder! \ No newline at end of file diff --git a/public/js/bootstrap.js b/public/js/bootstrap.js new file mode 100644 index 000000000000..074e2fef6bb3 --- /dev/null +++ b/public/js/bootstrap.js @@ -0,0 +1,219 @@ +/* ======================================================================== + * Bootstrap: collapse.js v3.1.1 + * http://getbootstrap.com/javascript/#collapse + * ======================================================================== + * Copyright 2011-2014 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + + ++function ($) { + 'use strict'; + + // COLLAPSE PUBLIC CLASS DEFINITION + // ================================ + + var Collapse = function (element, options) { + this.$element = $(element) + this.options = $.extend({}, Collapse.DEFAULTS, options) + this.transitioning = null + + if (this.options.parent) this.$parent = $(this.options.parent) + if (this.options.toggle) this.toggle() + } + + Collapse.DEFAULTS = { + toggle: true + } + + Collapse.prototype.dimension = function () { + var hasWidth = this.$element.hasClass('width') + return hasWidth ? 'width' : 'height' + } + + Collapse.prototype.show = function () { + if (this.transitioning || this.$element.hasClass('in')) return + + var startEvent = $.Event('show.bs.collapse') + this.$element.trigger(startEvent) + if (startEvent.isDefaultPrevented()) return + + var actives = this.$parent && this.$parent.find('> .panel > .in') + + if (actives && actives.length) { + var hasData = actives.data('bs.collapse') + if (hasData && hasData.transitioning) return + actives.collapse('hide') + hasData || actives.data('bs.collapse', null) + } + + var dimension = this.dimension() + + this.$element + .removeClass('collapse') + .addClass('collapsing') + [dimension](0) + + this.transitioning = 1 + + var complete = function () { + this.$element + .removeClass('collapsing') + .addClass('collapse in') + [dimension]('auto') + this.transitioning = 0 + this.$element.trigger('shown.bs.collapse') + } + + if (!$.support.transition) return complete.call(this) + + var scrollSize = $.camelCase(['scroll', dimension].join('-')) + + this.$element + .one($.support.transition.end, $.proxy(complete, this)) + .emulateTransitionEnd(350) + [dimension](this.$element[0][scrollSize]) + } + + Collapse.prototype.hide = function () { + if (this.transitioning || !this.$element.hasClass('in')) return + + var startEvent = $.Event('hide.bs.collapse') + this.$element.trigger(startEvent) + if (startEvent.isDefaultPrevented()) return + + var dimension = this.dimension() + + this.$element + [dimension](this.$element[dimension]()) + [0].offsetHeight + + this.$element + .addClass('collapsing') + .removeClass('collapse') + .removeClass('in') + + this.transitioning = 1 + + var complete = function () { + this.transitioning = 0 + this.$element + .trigger('hidden.bs.collapse') + .removeClass('collapsing') + .addClass('collapse') + } + + if (!$.support.transition) return complete.call(this) + + this.$element + [dimension](0) + .one($.support.transition.end, $.proxy(complete, this)) + .emulateTransitionEnd(350) + } + + Collapse.prototype.toggle = function () { + this[this.$element.hasClass('in') ? 'hide' : 'show']() + } + + + // COLLAPSE PLUGIN DEFINITION + // ========================== + + var old = $.fn.collapse + + $.fn.collapse = function (option) { + return this.each(function () { + var $this = $(this) + var data = $this.data('bs.collapse') + var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option) + + if (!data && options.toggle && option == 'show') option = !option + if (!data) $this.data('bs.collapse', (data = new Collapse(this, options))) + if (typeof option == 'string') data[option]() + }) + } + + $.fn.collapse.Constructor = Collapse + + + // COLLAPSE NO CONFLICT + // ==================== + + $.fn.collapse.noConflict = function () { + $.fn.collapse = old + return this + } + + + // COLLAPSE DATA-API + // ================= + + $(document).on('click.bs.collapse.data-api', '[data-toggle=collapse]', function (e) { + var $this = $(this), href + var target = $this.attr('data-target') + || e.preventDefault() + || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7 + var $target = $(target) + var data = $target.data('bs.collapse') + var option = data ? 'toggle' : $this.data() + var parent = $this.attr('data-parent') + var $parent = parent && $(parent) + + if (!data || !data.transitioning) { + if ($parent) $parent.find('[data-toggle=collapse][data-parent="' + parent + '"]').not($this).addClass('collapsed') + $this[$target.hasClass('in') ? 'addClass' : 'removeClass']('collapsed') + } + + $target.collapse(option) + }) + +}(jQuery); + +/* ======================================================================== + * Bootstrap: transition.js v3.1.1 + * http://getbootstrap.com/javascript/#transitions + * ======================================================================== + * Copyright 2011-2014 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + + ++function ($) { + 'use strict'; + + // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/) + // ============================================================ + + function transitionEnd() { + var el = document.createElement('bootstrap') + + var transEndEventNames = { + 'WebkitTransition' : 'webkitTransitionEnd', + 'MozTransition' : 'transitionend', + 'OTransition' : 'oTransitionEnd otransitionend', + 'transition' : 'transitionend' + } + + for (var name in transEndEventNames) { + if (el.style[name] !== undefined) { + return { end: transEndEventNames[name] } + } + } + + return false // explicit for ie8 ( ._.) + } + + // http://blog.alexmaccaw.com/css-transitions + $.fn.emulateTransitionEnd = function (duration) { + var called = false, $el = this + $(this).one($.support.transition.end, function () { called = true }) + var callback = function () { if (!called) $($el).trigger($.support.transition.end) } + setTimeout(callback, duration) + return this + } + + $(function () { + $.support.transition = transitionEnd() + }) + +}(jQuery); diff --git a/public/js/bootstrap.min.js b/public/js/bootstrap.min.js new file mode 100644 index 000000000000..c461ce6c4506 --- /dev/null +++ b/public/js/bootstrap.min.js @@ -0,0 +1,7 @@ +/*! + * Bootstrap v3.1.1 (http://getbootstrap.com) + * Copyright 2011-2014 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + ++function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(this.transitioning||this.$element.hasClass("in"))return;var b=a.Event("show.bs.collapse");this.$element.trigger(b);if(b.isDefaultPrevented())return;var c=this.$parent&&this.$parent.find("> .panel > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("collapse in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])},b.prototype.hide=function(){if(this.transitioning||!this.$element.hasClass("in"))return;var b=a.Event("hide.bs.collapse");this.$element.trigger(b);if(b.isDefaultPrevented())return;var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};if(!a.support.transition)return d.call(this);this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350)},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),typeof c=="object"&&c);!e&&f.toggle&&c=="show"&&(c=!c),e||d.data("bs.collapse",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c=a(this),d,e=c.attr("data-target")||b.preventDefault()||(d=c.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":c.data(),i=c.attr("data-parent"),j=i&&a(i);if(!g||!g.transitioning)j&&j.find('[data-toggle=collapse][data-parent="'+i+'"]').not(c).addClass("collapsed"),c[f.hasClass("in")?"addClass":"removeClass"]("collapsed");f.collapse(h)})}(jQuery),+function(a){function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(a.style[c]!==undefined)return{end:b[c]};return!1}"use strict",a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(a.support.transition.end,function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b()})}(jQuery) \ No newline at end of file