From c747bb5a6399f25b9a5ee1ee980675784b3b1b22 Mon Sep 17 00:00:00 2001 From: Lisa Passing <mail@lislis.de> Date: Wed, 11 Feb 2015 17:24:14 +0100 Subject: [PATCH 01/26] add 500 page and styles and refactor --- app/router.coffee | 5 +- app/styles/app/_mixins/vars.sass | 7 +- app/styles/app/layouts/error.sass | 165 +++++++++--------- app/styles/app/maximize.sass | 29 +-- app/templates/error404.hbs | 4 +- app/templates/error500.hbs | 11 ++ app/views/error404.coffee | 2 +- app/views/error500.coffee | 7 + public/images/error/500-hills-left.svg | 22 +++ public/images/error/500-hills-right.svg | 41 +++++ public/images/error/500-hills-shade-left.svg | 8 + public/images/error/500-hills-shade-right.svg | 8 + public/images/error/500-road.svg | 97 ++++++++++ 13 files changed, 298 insertions(+), 108 deletions(-) create mode 100644 app/templates/error500.hbs create mode 100644 app/views/error500.coffee create mode 100644 public/images/error/500-hills-left.svg create mode 100644 public/images/error/500-hills-right.svg create mode 100644 public/images/error/500-hills-shade-left.svg create mode 100644 public/images/error/500-hills-shade-right.svg create mode 100644 public/images/error/500-road.svg diff --git a/app/router.coffee b/app/router.coffee index e57388a1..e161fc11 100644 --- a/app/router.coffee +++ b/app/router.coffee @@ -52,7 +52,8 @@ Router.map -> @resource 'account', path: '/:login' @route 'info', path: '/info' - @route 'maintenance', path: "/maintenance" - @route 'error404', path: "/*path" + @route 'maintenance', path: '/maintenance' + @route 'error500', path: '/500' + @route 'error404', path: '/*path' `export default Router` diff --git a/app/styles/app/_mixins/vars.sass b/app/styles/app/_mixins/vars.sass index 77d019eb..8a49e900 100644 --- a/app/styles/app/_mixins/vars.sass +++ b/app/styles/app/_mixins/vars.sass @@ -36,14 +36,15 @@ $footer-h3-color: #8f9ba2 $footer-h3-corder-color: #ccd0d5 // error pages -// 404 -$error-hill-grey: #bbcac6 $error-heading-color: #357389 $error-copy-color: $dashboard-text-color $error-bg-gradient: rgba(204,235,247,1) // maintenance $maintenance-grass: #8cad7d - +// 404 +$error-hill-grey: #bbcac6 +//500 +$error-sand: #dcc682 // tabs $tab-nav-inactive-bg: #f8f8f8 diff --git a/app/styles/app/layouts/error.sass b/app/styles/app/layouts/error.sass index 5ea61f29..b55169ad 100644 --- a/app/styles/app/layouts/error.sass +++ b/app/styles/app/layouts/error.sass @@ -1,7 +1,14 @@ /* - * Error Pages + * Error Pages + Maintenance */ +@mixin error-bg-gradient($color) + background: linear-gradient(0deg, $color, $color 38.9%, $error-bg-gradient 39%, $white 60%, $white) + +@mixin error-position-img($size:inherit, $pos:inherit) + background: + size: $size + position: $pos .error, .maintenance @@ -14,8 +21,7 @@ height: 100% width: 100% overflow: hidden - background: - repeat: no-repeat + background-repeat: no-repeat .main--error min-height: 100% @@ -52,98 +58,85 @@ display: inline-block width: 1.1em height: 1.1em - background: - image: url(../images/error/twitter.svg) - size: 100% auto - repeat: no-repeat - position: 0 .2em - - -/* - * Maintenance - */ -.maintenance-bg - background: linear-gradient(0deg, $maintenance-grass, $maintenance-grass 34.9%, $error-bg-gradient 35%, $white 60%, $white) + background-image: url(../images/error/twitter.svg) + background-repeat: no-repeat + @include error-position-img(100% auto, 0 .2em) +.error500 + .error-bg + @include error-bg-gradient($error-sand) .hill-left - background: - image: url(../images/error/maintenance-hills-left.svg) - size: 80vw auto - position: 0 62% - @media #{$medium-up} - background-size: 58vw auto - background-position: 0 62% - @media #{$large-up} - background-size: 50vw auto - background-position: 0 61% + background-image: url(../images/error/500-hills-left.svg) + @include error-position-img(38vw auto, 0 62%) .hill-right + background-image: url(../images/error/500-hills-right.svg) + @include error-position-img(38vw auto, 99% 63%) display: none - background: - image: url(../images/error/maintenance-hills-right.svg) - size: 38vw auto - position: 99% 63% @media #{$medium-up} display: block .shadow-left - background: - image: url(../images/error/maintenance-grass-shade-left.svg) - size: 24vw auto - position: 6% 82% + background-image: url(../images/error/500-hills-shade-left.svg) + @include error-position-img(24vw auto, 6% 82%) .shadow-right - background: - image: url(../images/error/maintenance-grass-shade-right.svg) - size: 17vw auto - position: 95% 89% + background-image: url(../images/error/500-hills-shade-right.svg) + @include error-position-img(17vw auto, 95% 89%) + .road + background-image: url(../images/error/500-road.svg) + @include error-position-img(auto 40vh, 30% 91.3%) -.maintenance-tractor - background: - image: url(../images/error/maintenance-tractor.svg) - size: 87vw auto - position: 63% 87% - @media #{$medium-up} - background-size: auto 40vh - @media #{$large-up} - background-size: auto 40vh +.error404 + .error-bg + @include error-bg-gradient($error-hill-grey) + .hill-left + display: none + background-image: url(../images/error/404-hills-left.svg) + @include error-position-img(30vw auto, 0 (100% - 37%)) + @media #{$medium-up} + display: block + .hill-right + background-image: url(../images/error/404-hills-right.svg) + @include error-position-img(auto 20vw, 99% 63%) + @media #{$medium-up} + @include error-position-img(50vw auto, 99% 63%) + @media #{$large-up} + @include error-position-img(50vw auto, 99% 61%) + .error-excavator + background-image: url(../images/error/excavator.svg) + @include error-position-img(auto 25vh, 71% 83%) + .error-travis + background-image: url(../images/error/pensive-travis.svg) + @include error-position-img(auto 60vh, 34% 92%) + @media #{$medium-up} + background-size: auto 50vh + @media #{$large-up} + background-size: auto 60vh -/* - * 404 - */ -.error-bg - background: linear-gradient(0deg, $error-hill-grey, $error-hill-grey 34.9%, $error-bg-gradient 35%, $white 60%, $white) -.error-hill-left - display: none - background: - image: url(../images/error/404-hills-left.svg) - size: 30vw auto - position: 0 (100% - 37%) - @media #{$medium-up} - display: block - -.error-hill-right - background: - image: url(../images/error/404-hills-right.svg) - size: auto 20vw - position: 99% 63% - @media #{$medium-up} - background-size: 50vw auto - background-position: 99% 63% - @media #{$large-up} - background-position: 99% 61% - -.error-excavator - background: - image: url(../images/error/excavator.svg) - size: auto 25vh - position: 71% 83% - -.error-travis - background: - image: url(../images/error/pensive-travis.svg) - size: auto 60vh - position: 34% 92% - @media #{$medium-up} - background-size: auto 50vh - @media #{$large-up} - background-size: auto 60vh +.maintenance + .maintenance-bg + @include error-bg-gradient($maintenance-grass) + .hill-left + background-image: url(../images/error/maintenance-hills-left.svg) + @include error-position-img(80vw auto, 0 62%) + @media #{$medium-up} + @include error-position-img(58vw auto, 0 62%) + @media #{$large-up} + @include error-position-img(50vw auto, 0 61%) + .hill-right + background-image: url(../images/error/maintenance-hills-right.svg) + @include error-position-img(38vw auto, 99% 63%) + display: none + @media #{$medium-up} + display: block + .shadow-left + background-image: url(../images/error/maintenance-grass-shade-left.svg) + @include error-position-img(24vw auto, 6% 82%) + .shadow-right + background-image: url(../images/error/maintenance-grass-shade-right.svg) + @include error-position-img(17vw auto, 95% 89%) + .maintenance-tractor + background-image: url(../images/error/maintenance-tractor.svg) + @include error-position-img(87vw auto, 63% 87%) + @media #{$medium-up} + @include error-position-img(auto 40vh, 63% 87%) diff --git a/app/styles/app/maximize.sass b/app/styles/app/maximize.sass index fefd80e5..4e36174b 100644 --- a/app/styles/app/maximize.sass +++ b/app/styles/app/maximize.sass @@ -5,21 +5,22 @@ #right display: none - #global_slider - position: absolute - background-color: $color-bg-slider - cursor: pointer - background: transparent inline-image('ui/slider-open.svg') no-repeat 6px 5px - border-top-left-radius: 4px - top: 85px - right: 0 - width: 20px - height: 20px - border-bottom-left-radius: 4px - display: block + .application:not(> .error) + #global_slider + position: absolute + background-color: $color-bg-slider + cursor: pointer + background: transparent inline-image('ui/slider-open.svg') no-repeat 6px 5px + border-top-left-radius: 4px + top: 85px + right: 0 + width: 20px + height: 20px + border-bottom-left-radius: 4px + display: block - &:hover - background-color: $color-border-slider-hover + &:hover + background-color: $color-border-slider-hover #top .profile margin-right: 15px diff --git a/app/templates/error404.hbs b/app/templates/error404.hbs index d408249b..cc397661 100644 --- a/app/templates/error404.hbs +++ b/app/templates/error404.hbs @@ -1,6 +1,6 @@ <div class="error-bg full-size"> - <div class="error-hill-left full-size"></div> - <div class="error-hill-right full-size"></div> + <div class="hill-left full-size"></div> + <div class="hill-right full-size"></div> </div> <div class="error-excavator full-size"></div> <div class="error-travis full-size"></div> diff --git a/app/templates/error500.hbs b/app/templates/error500.hbs new file mode 100644 index 00000000..de15327b --- /dev/null +++ b/app/templates/error500.hbs @@ -0,0 +1,11 @@ +<div class="error-bg full-size"> + <div class="hill-left full-size"></div> + <div class="hill-right full-size"></div> + <div class="shadow-left full-size"></div> + <div class="shadow-right full-size"></div> + <div class="road full-size"></div> +</div> +<div class="error-text"> + <h1>Something went wrong</h1> + <p>It looks like something went wrong with your request.<br>Please try again later.</p> +</div> diff --git a/app/views/error404.coffee b/app/views/error404.coffee index 8066dc8c..03b81829 100644 --- a/app/views/error404.coffee +++ b/app/views/error404.coffee @@ -2,6 +2,6 @@ View = BasicView.extend layoutName: 'layouts/error' - classNames: ['error'] + classNames: ['error error404'] `export default View` diff --git a/app/views/error500.coffee b/app/views/error500.coffee new file mode 100644 index 00000000..c6b7dfb2 --- /dev/null +++ b/app/views/error500.coffee @@ -0,0 +1,7 @@ +`import BasicView from 'travis/views/basic'` + +View = BasicView.extend + layoutName: 'layouts/error' + classNames: ['error error500'] + +`export default View` diff --git a/public/images/error/500-hills-left.svg b/public/images/error/500-hills-left.svg new file mode 100644 index 00000000..a01274e0 --- /dev/null +++ b/public/images/error/500-hills-left.svg @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="331.68px" height="128.235px" viewBox="0 0 331.68 128.235" enable-background="new 0 0 331.68 128.235" + xml:space="preserve"> +<g> + <g> + + <image overflow="visible" opacity="0.1" width="1382" height="561" xlink:href="6AB008E8BA7227E6.png" transform="matrix(0.24 0 0 0.24 0 0)"> + </image> + <g> + <polygon fill="#DDC782" points="325.052,117.99 275.16,64.12 241.545,64.12 185.894,6.48 96.599,6.48 73.956,41.12 46.645,41.12 + 6.48,118.112 6.48,128.12 325.052,128.12 "/> + </g> + </g> +</g> +<polygon fill="#E2D5A8" points="95.996,6.48 88.886,17.594 178.145,17.594 234.905,76.345 267.272,76.345 307.058,118.301 + 325.052,117.99 275.16,64.12 241.545,64.12 185.894,6.48 "/> +<polygon fill="#D6BA6B" points="90.997,34.783 80.208,53.964 52.821,53.964 17.847,117.112 94.667,117.112 114.246,68.347 + 93.186,68.347 108.974,34.78 "/> +</svg> diff --git a/public/images/error/500-hills-right.svg b/public/images/error/500-hills-right.svg new file mode 100644 index 00000000..1ceb1100 --- /dev/null +++ b/public/images/error/500-hills-right.svg @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="364.08px" height="99.524px" viewBox="0 0 364.08 99.524" enable-background="new 0 0 364.08 99.524" xml:space="preserve"> +<g> + <g> + <g> + + <image overflow="visible" opacity="0.1" width="973" height="390" xlink:href="423B8197D66693F1.png" transform="matrix(0.24 0 0 0.24 127.1021 0)"> + </image> + <g> + <polygon fill="#DDC782" points="357.594,90.549 274.083,3 210.635,3 182.937,36.624 164.445,36.624 130.102,90.549 "/> + </g> + </g> + <polygon fill="#D6BA6B" points="231.917,22.801 206.431,22.801 187.94,47.95 171.654,47.206 145.282,88.371 168.425,88.371 + 182.449,63.548 199.237,63.572 "/> + <g> + <polygon fill="#E2D5A8" points="274.083,3 210.654,3 204.371,10.625 267.201,10.625 344.072,90.549 357.594,90.549 "/> + </g> + </g> + <g> + + <image overflow="visible" opacity="0.1" width="1517" height="309" xlink:href="423B8197D66693F3.png" transform="matrix(0.24 0 0 0.24 0 32.2876)"> + </image> + <g> + <polygon fill="#DDC782" points="189.581,89.523 163.601,68.745 149.612,68.745 125.631,38.768 80.667,38.768 6.48,89.779 + 6.48,99.787 357.594,99.787 357.594,89.523 "/> + </g> + </g> + <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="270.4526" y1="86.5244" x2="270.4526" y2="89.5244"> + <stop offset="0" style="stop-color:#B5A339;stop-opacity:0"/> + <stop offset="0.4085" style="stop-color:#C2AC4D;stop-opacity:0.1"/> + <stop offset="1" style="stop-color:#D6BA6B"/> + </linearGradient> + <polygon fill="url(#SVGID_1_)" points="352.266,86.524 183.286,86.524 183.286,89.524 357.62,89.524 "/> + <polygon fill="#E2D5A8" points="122.253,44.537 145.63,74.507 161.814,74.507 180.395,89.492 189.541,89.492 163.601,68.745 + 149.612,68.745 125.631,38.768 80.667,38.768 72.039,44.537 "/> + <polygon fill="#D6BA6B" points="42.167,89.492 18.97,89.492 69.507,52.929 92.704,52.929 "/> +</g> +</svg> diff --git a/public/images/error/500-hills-shade-left.svg b/public/images/error/500-hills-shade-left.svg new file mode 100644 index 00000000..904c64bd --- /dev/null +++ b/public/images/error/500-hills-shade-left.svg @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="202.271px" height="25.842px" viewBox="0 0 202.271 25.842" enable-background="new 0 0 202.271 25.842" + xml:space="preserve"> +<polygon fill="#D6BA6B" points="176.225,0 51.492,0 21.469,11.69 6.005,11.69 -0.001,25.842 202.271,25.842 "/> +</svg> diff --git a/public/images/error/500-hills-shade-right.svg b/public/images/error/500-hills-shade-right.svg new file mode 100644 index 00000000..5cfedaeb --- /dev/null +++ b/public/images/error/500-hills-shade-right.svg @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="202.271px" height="25.842px" viewBox="0 0 202.271 25.842" enable-background="new 0 0 202.271 25.842" + xml:space="preserve"> +<polygon fill="#D6BA6B" points="186.234,11.69 176.226,0 51.494,0 0,25.842 202.272,25.842 202.272,11.69 "/> +</svg> diff --git a/public/images/error/500-road.svg b/public/images/error/500-road.svg new file mode 100644 index 00000000..3d5a5b1d --- /dev/null +++ b/public/images/error/500-road.svg @@ -0,0 +1,97 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="432.973px" height="305.408px" viewBox="0 0 432.973 305.408" enable-background="new 0 0 432.973 305.408" + xml:space="preserve"> +<g> + <polygon fill="#56524F" points="362.724,165.068 404.552,48.501 250.935,48.501 107.346,105.933 49.844,231.263 114.297,268.895 + 389.082,268.895 407.378,232.175 "/> +</g> +<g> + <g> + <polygon fill="#FFFFFF" points="308.927,60.146 304.964,59.876 314.111,52.344 318.259,52.311 "/> + </g> + <g> + <path fill="#FFFFFF" d="M269.763,257.904l-23.545-42.796l7.771-0.163l24.545,43.797L269.763,257.904z M239.668,200.162 + L223,166.075l7.982,0.34l16.457,33.584L239.668,200.162z M228.845,154.631l-6.869-0.887l10.46-27.177l5.869,0.887L228.845,154.631 + z M243.781,117.623l-5.965-0.27l14.85-11.64l5.963,0.271L243.781,117.623z M267.365,97.261l-5.965-0.27l17.854-13.642l4.963,0.27 + L267.365,97.261z M289.949,76.897l-3.963-0.27l13.729-10.752l3.963,0.27L289.949,76.897z"/> + </g> +</g> +<g> + <g> + <path fill="#FFFFFF" d="M111.666,304.173c-4.279,1.647-11.282,1.647-15.562,0L3.111,268.366c-4.279-1.647-4.125-3.842,0.343-4.875 + l92.308-21.353c4.468-1.033,11.778-1.033,16.246,0l92.306,21.353c4.468,1.033,4.622,3.228,0.342,4.875L111.666,304.173z"/> + </g> + <polygon fill="#D25031" points="179.687,74.322 106.597,85.136 106.597,17.599 179.687,29.491 160.061,51.613 "/> + <path fill="#FFFFFF" d="M110.097,12.992c-0.011-3.069-2.511-5.549-5.581-5.538c-3.069,0.013-5.548,2.511-5.537,5.578 + c0.007,1.555,1.485,2.956,2.518,3.962v135.272l6.112-0.03V16.993C108.633,15.981,110.101,14.548,110.097,12.992z"/> + <g> + <path fill="#CD6632" d="M175.843,261.758c-2.501-5.839-63.367-143.689-63.367-143.689s-1.186-3.058-3.056-3.058 + c-2.189,0-7.214,0-9.402,0c-1.964,0-3.057,3.058-3.057,3.058S36.096,255.919,33.594,261.758c-2.502,5.835,1.111,6.112,1.111,6.112 + c42.475,19.179,104.313,15.982,140.027,0C174.732,267.87,178.343,267.593,175.843,261.758z"/> + <path fill="#FFFFFF" d="M165.442,238.104c-3.729-8.463-8.184-18.562-12.902-29.261c-16.927,3.859-35.25,6.054-49.863,6.121 + c-19.318,0.091-35.643-2.262-46.023-5.569c-4.623,10.482-8.985,20.371-12.649,28.681c8.834,2.624,29.308,10.009,58.882,9.849 + C120.642,247.83,141.678,243.415,165.442,238.104z"/> + <path fill="#FFFFFF" d="M82.841,150.052c-3.585,8.122-7.609,17.241-11.774,26.674c8.936,1.415,19.597,2.471,31.82,2.413 + c10.549-0.048,22.264-1.415,35.013-3.473c-4.11-9.316-8.075-18.298-11.602-26.285c-8.365,0.867-16.44,1.339-23.621,1.369 + C95.615,150.779,88.959,150.522,82.841,150.052z"/> + </g> +</g> +<g> + <g> + <path fill="#FFFFFF" d="M384.685,177.18c-2.205,0.688-5.812,0.688-8.018,0l-46.656-14.549c-2.205-0.688-2.168-1.676,0.082-2.196 + l46.492-10.754c2.25-0.521,5.932-0.521,8.184,0l46.492,10.754c2.25,0.521,2.287,1.509,0.082,2.196L384.685,177.18z"/> + </g> + <polygon fill="#D25031" points="418.652,65.256 382.044,70.603 382.044,36.587 418.652,41.933 409.099,53.174 "/> + <path fill="#FFFFFF" d="M383.806,34.267c-0.006-1.546-1.266-2.795-2.809-2.789c-1.549,0.006-2.797,1.264-2.789,2.81 + c0.002,0.783,0.746,1.488,1.266,1.994v68.134l3.078-0.016l0.002-68.118C383.07,35.772,383.808,35.05,383.806,34.267z"/> + <g> + <path fill="#CD6632" d="M416.921,159.56c-1.262-2.938-31.918-72.368-31.918-72.368s-0.596-1.541-1.539-1.541 + c-1.102,0-3.633,0-4.736,0c-0.986,0-1.537,1.541-1.537,1.541s-30.656,69.431-31.916,72.368c-1.26,2.94,0.559,3.08,0.559,3.08 + c21.393,9.659,52.539,8.05,70.527,0C416.361,162.64,418.181,162.5,416.921,159.56z"/> + <path fill="#FFFFFF" d="M411.681,147.648c-1.877-4.262-4.121-9.351-6.498-14.737c-8.525,1.943-17.754,3.049-25.113,3.083 + c-9.73,0.045-17.951-1.14-23.182-2.807c-2.328,5.281-4.525,10.261-6.369,14.448c4.449,1.318,14.762,5.039,29.656,4.958 + C389.119,152.546,399.712,150.322,411.681,147.648z"/> + <path fill="#FFFFFF" d="M370.078,103.299c-1.805,4.092-3.832,8.684-5.93,13.435c4.5,0.713,9.871,1.244,16.027,1.216 + c5.314-0.023,11.213-0.714,17.633-1.749c-2.068-4.692-4.064-9.216-5.842-13.238c-4.213,0.435-8.281,0.673-11.896,0.689 + C376.513,103.665,373.162,103.536,370.078,103.299z"/> + </g> +</g> +<g> + <g> + <path fill="#FFFFFF" d="M248.083,59.489c-0.941,0.197-2.481,0.197-3.423,0l-19.341-4.045c-0.941-0.197-0.945-0.536-0.008-0.752 + l19.356-4.478c0.937-0.216,2.47-0.216,3.407,0l19.357,4.478c0.937,0.216,0.934,0.555-0.008,0.752L248.083,59.489z"/> + </g> + <polygon fill="#D25031" points="262.183,14.063 246.941,16.29 246.941,2.127 262.183,4.353 258.206,9.033 "/> + <path fill="#FFFFFF" d="M247.675,1.161c-0.003-0.644-0.527-1.163-1.17-1.161c-0.645,0.002-1.164,0.526-1.162,1.17 + c0.002,0.326,0.312,0.619,0.528,0.831v28.366l1.282-0.006V2.001C247.369,1.788,247.676,1.487,247.675,1.161z"/> + <g> + <path fill="#CD6632" d="M261.462,53.327c-0.525-1.224-13.289-30.131-13.289-30.131s-0.248-0.641-0.641-0.641 + c-0.459,0-1.513,0-1.973,0c-0.41,0-0.64,0.641-0.64,0.641s-12.764,28.907-13.288,30.131c-0.524,1.225,0.232,1.282,0.232,1.282 + c8.907,4.021,21.875,3.351,29.364,0C261.229,54.609,261.987,54.552,261.462,53.327z"/> + <path fill="#FFFFFF" d="M259.281,48.368c-0.781-1.775-1.716-3.894-2.705-6.136c-3.55,0.808-7.393,1.269-10.456,1.283 + c-4.052,0.019-7.476-0.476-9.651-1.169c-0.971,2.198-1.885,4.272-2.652,6.016c1.852,0.55,6.146,2.099,12.347,2.064 + C249.886,50.407,254.297,49.481,259.281,48.368z"/> + <path fill="#FFFFFF" d="M241.959,29.903c-0.752,1.703-1.597,3.615-2.47,5.594c1.874,0.296,4.11,0.517,6.673,0.505 + c2.213-0.01,4.669-0.297,7.343-0.728c-0.862-1.954-1.693-3.837-2.433-5.512c-1.755,0.181-3.448,0.28-4.953,0.287 + C244.638,30.055,243.243,30.002,241.959,29.903z"/> + </g> +</g> +<g opacity="0.6"> + <path fill="#FFFFFF" d="M135.408,57.719c2.591,0.164,4.419,2.344,4.36,4.94c-0.06,2.599-1.98,4.538-4.571,4.374 + c-2.59-0.164-4.418-2.342-4.359-4.94C130.896,59.496,132.818,57.555,135.408,57.719z M131.922,42.896l-0.123-7.646l8.543,0.978 + l-0.979,7.121l-1.41,11.379l-5.209-0.316L131.922,42.896z"/> +</g> +<g> + <path opacity="0.6" fill="#FFFFFF" d="M395.474,56.781c1.379,0.088,2.352,1.247,2.32,2.628c-0.031,1.382-1.055,2.413-2.432,2.325 + c-1.377-0.087-2.348-1.245-2.318-2.627C393.076,57.728,394.097,56.694,395.474,56.781z M393.621,48.899l-0.064-4.065l4.287,0.394 + l-0.266,3.913l-0.748,6.051l-2.77-0.168L393.621,48.899z"/> +</g> +<g> + <path opacity="0.6" fill="#FFFFFF" d="M252.903,10.373c0.533,0.034,0.909,0.482,0.897,1.017c-0.012,0.535-0.408,0.934-0.941,0.9 + c-0.532-0.034-0.908-0.482-0.896-1.017S252.371,10.339,252.903,10.373z M252.185,7.322l-0.025-1.573l1.646,0.307l-0.09,1.36 + l-0.289,2.342l-1.072-0.065L252.185,7.322z"/> +</g> +</svg> From 01c973cac959518046eb56d91058669a29733869 Mon Sep 17 00:00:00 2001 From: Lisa Passing <mail@lislis.de> Date: Fri, 13 Feb 2015 11:58:53 +0100 Subject: [PATCH 02/26] push hills around --- app/styles/app/layouts/error.sass | 34 ++++++++++++++++--------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/app/styles/app/layouts/error.sass b/app/styles/app/layouts/error.sass index b55169ad..d6f4b108 100644 --- a/app/styles/app/layouts/error.sass +++ b/app/styles/app/layouts/error.sass @@ -67,22 +67,24 @@ @include error-bg-gradient($error-sand) .hill-left background-image: url(../images/error/500-hills-left.svg) - @include error-position-img(38vw auto, 0 62%) + @include error-position-img(38vw auto, 0 58%) + @media #{$medium-up} + @include error-position-img(38vw auto, 0 54%) .hill-right background-image: url(../images/error/500-hills-right.svg) - @include error-position-img(38vw auto, 99% 63%) + @include error-position-img(38vw auto, 99% 58%) display: none @media #{$medium-up} display: block .shadow-left background-image: url(../images/error/500-hills-shade-left.svg) - @include error-position-img(24vw auto, 6% 82%) + @include error-position-img(24vw auto, 6% 72%) .shadow-right background-image: url(../images/error/500-hills-shade-right.svg) - @include error-position-img(17vw auto, 95% 89%) + @include error-position-img(17vw auto, 95% 79%) .road background-image: url(../images/error/500-road.svg) - @include error-position-img(auto 40vh, 30% 91.3%) + @include error-position-img(auto 40vh, 42% 91.3%) .error404 .error-bg @@ -90,16 +92,16 @@ .hill-left display: none background-image: url(../images/error/404-hills-left.svg) - @include error-position-img(30vw auto, 0 (100% - 37%)) + @include error-position-img(30vw auto, 0 58%) @media #{$medium-up} display: block .hill-right background-image: url(../images/error/404-hills-right.svg) - @include error-position-img(auto 20vw, 99% 63%) + @include error-position-img(auto 20vw, 99% 58%) @media #{$medium-up} - @include error-position-img(50vw auto, 99% 63%) + @include error-position-img(50vw auto, 99% 58%) @media #{$large-up} - @include error-position-img(50vw auto, 99% 61%) + @include error-position-img(50vw auto, 99% 54%) .error-excavator background-image: url(../images/error/excavator.svg) @include error-position-img(auto 25vh, 71% 83%) @@ -117,26 +119,26 @@ @include error-bg-gradient($maintenance-grass) .hill-left background-image: url(../images/error/maintenance-hills-left.svg) - @include error-position-img(80vw auto, 0 62%) + @include error-position-img(80vw auto, 0 56%) @media #{$medium-up} - @include error-position-img(58vw auto, 0 62%) + @include error-position-img(58vw auto, 0 58%) @media #{$large-up} - @include error-position-img(50vw auto, 0 61%) + @include error-position-img(50vw auto, 0 52%) .hill-right background-image: url(../images/error/maintenance-hills-right.svg) - @include error-position-img(38vw auto, 99% 63%) + @include error-position-img(38vw auto, 99% 59%) display: none @media #{$medium-up} display: block .shadow-left background-image: url(../images/error/maintenance-grass-shade-left.svg) - @include error-position-img(24vw auto, 6% 82%) + @include error-position-img(24vw auto, 6% 72%) .shadow-right background-image: url(../images/error/maintenance-grass-shade-right.svg) - @include error-position-img(17vw auto, 95% 89%) + @include error-position-img(17vw auto, 95% 79%) .maintenance-tractor background-image: url(../images/error/maintenance-tractor.svg) @include error-position-img(87vw auto, 63% 87%) @media #{$medium-up} - @include error-position-img(auto 40vh, 63% 87%) + @include error-position-img(auto 44vh, 63% 83%) From 2c61304a5d3505c3a1e02b893f7111848cd0d6a3 Mon Sep 17 00:00:00 2001 From: Lisa Passing <mail@lislis.de> Date: Fri, 13 Feb 2015 12:00:46 +0100 Subject: [PATCH 03/26] add burger markup to error pages --- app/templates/layouts/error.hbs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/templates/layouts/error.hbs b/app/templates/layouts/error.hbs index d4401b49..89952183 100644 --- a/app/templates/layouts/error.hbs +++ b/app/templates/layouts/error.hbs @@ -4,9 +4,9 @@ <h1>{{#link-to "main"}}Home{{/link-to}}</h1> </div> <div class="nav-burger"> - <button type="button" id="burger">≡</button> + <button type="button" id="burger" {{action 'toggleBurgerMenu'}}>≡</button> </div> - <ul> + <ul id="navigation" {{bind-attr class="is-open"}}> <li><a href="#">Blog</a></li> <li><a href="#">Status</a></li> <!-- <div class="small-4 medium-3 columns" id="status"> From b9c58fae46428d442c8f09a95f10e703ec6e9ac7 Mon Sep 17 00:00:00 2001 From: Lisa Passing <mail@lislis.de> Date: Mon, 16 Feb 2015 14:33:28 +0100 Subject: [PATCH 04/26] push some hills around --- app/styles/app/layouts/error.sass | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/app/styles/app/layouts/error.sass b/app/styles/app/layouts/error.sass index d6f4b108..565c890e 100644 --- a/app/styles/app/layouts/error.sass +++ b/app/styles/app/layouts/error.sass @@ -67,12 +67,12 @@ @include error-bg-gradient($error-sand) .hill-left background-image: url(../images/error/500-hills-left.svg) - @include error-position-img(38vw auto, 0 58%) + @include error-position-img(auto 10vh, 0 58%) @media #{$medium-up} - @include error-position-img(38vw auto, 0 54%) + @include error-position-img(38vw auto, 0 58%) .hill-right background-image: url(../images/error/500-hills-right.svg) - @include error-position-img(38vw auto, 99% 58%) + @include error-position-img(38vw auto, 99% 59%) display: none @media #{$medium-up} display: block @@ -84,7 +84,9 @@ @include error-position-img(17vw auto, 95% 79%) .road background-image: url(../images/error/500-road.svg) - @include error-position-img(auto 40vh, 42% 91.3%) + @include error-position-img(auto 27vh, 42% 78%) + @media #{$medium-up} + @include error-position-img(auto 40vh, 42% 91.3%) .error404 .error-bg @@ -119,11 +121,11 @@ @include error-bg-gradient($maintenance-grass) .hill-left background-image: url(../images/error/maintenance-hills-left.svg) - @include error-position-img(80vw auto, 0 56%) + @include error-position-img(80vw auto, 0 58%) @media #{$medium-up} @include error-position-img(58vw auto, 0 58%) @media #{$large-up} - @include error-position-img(50vw auto, 0 52%) + @include error-position-img(50vw auto, 0 56%) .hill-right background-image: url(../images/error/maintenance-hills-right.svg) @include error-position-img(38vw auto, 99% 59%) From 090c645ea6a9f63dddbc745392cb35e627f09ada Mon Sep 17 00:00:00 2001 From: Lisa Passing <mail@lislis.de> Date: Mon, 16 Feb 2015 15:37:49 +0100 Subject: [PATCH 05/26] add maintenance.html --- public/maintenance.html | 1317 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 1317 insertions(+) create mode 100644 public/maintenance.html diff --git a/public/maintenance.html b/public/maintenance.html new file mode 100644 index 00000000..66bfa596 --- /dev/null +++ b/public/maintenance.html @@ -0,0 +1,1317 @@ +<!DOCTYPE html> +<html lang="en"><head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <title>Travis CI - Maintenance</title> + <meta name="description" content=""> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,800" rel="stylesheet" type="text/css"> + + <style> + html, body { + height: 100%; } + + *, *:before, *:after { + box-sizing: border-box; } + + html, body { + font-size: 13px; } + + body { + background: #fff; + color: #666; + padding: 0; + margin: 0; + font-family: 'Source Sans Pro', Helvetica, sans-serif; + font-weight: normal; + font-style: normal; + line-height: 22px; + position: relative; + cursor: auto; } + + + .row { + width: 100%; + margin-left: auto; + margin-right: auto; + margin-top: 0; + margin-bottom: 0; + max-width: 100%; } + .row:before, .row:after { + content: " "; + display: table; } + .row:after { + clear: both; } + .row.collapse > .column, .row.collapse > .columns { + padding-left: 0; + padding-right: 0; } + .row.collapse .row { + margin-left: 0; + margin-right: 0; } + .row .row { + width: auto; + margin-left: -0.9375rem; + margin-right: -0.9375rem; + margin-top: 0; + margin-bottom: 0; + max-width: none; } + .row .row:before, .row .row:after { + content: " "; + display: table; } + .row .row:after { + clear: both; } + .row .row.collapse { + width: auto; + margin: 0; + max-width: none; } + .row .row.collapse:before, .row .row.collapse:after { + content: " "; + display: table; } + .row .row.collapse:after { + clear: both; } + + .column, .columns { + padding-left: 0.9375rem; + padding-right: 0.9375rem; + width: 100%; + float: left; } + + [class*="column"] + [class*="column"]:last-child { + float: right; } + + [class*="column"] + [class*="column"].end { + float: left; } + + @media only screen { + .small-push-0 { + position: relative; + left: 0%; + right: auto; } + + .small-pull-0 { + position: relative; + right: 0%; + left: auto; } + + .small-push-1 { + position: relative; + left: 8.33333%; + right: auto; } + + .small-pull-1 { + position: relative; + right: 8.33333%; + left: auto; } + + .small-push-2 { + position: relative; + left: 16.66667%; + right: auto; } + + .small-pull-2 { + position: relative; + right: 16.66667%; + left: auto; } + + .small-push-3 { + position: relative; + left: 25%; + right: auto; } + + .small-pull-3 { + position: relative; + right: 25%; + left: auto; } + + .small-push-4 { + position: relative; + left: 33.33333%; + right: auto; } + + .small-pull-4 { + position: relative; + right: 33.33333%; + left: auto; } + + .small-push-5 { + position: relative; + left: 41.66667%; + right: auto; } + + .small-pull-5 { + position: relative; + right: 41.66667%; + left: auto; } + + .small-push-6 { + position: relative; + left: 50%; + right: auto; } + + .small-pull-6 { + position: relative; + right: 50%; + left: auto; } + + .small-push-7 { + position: relative; + left: 58.33333%; + right: auto; } + + .small-pull-7 { + position: relative; + right: 58.33333%; + left: auto; } + + .small-push-8 { + position: relative; + left: 66.66667%; + right: auto; } + + .small-pull-8 { + position: relative; + right: 66.66667%; + left: auto; } + + .small-push-9 { + position: relative; + left: 75%; + right: auto; } + + .small-pull-9 { + position: relative; + right: 75%; + left: auto; } + + .small-push-10 { + position: relative; + left: 83.33333%; + right: auto; } + + .small-pull-10 { + position: relative; + right: 83.33333%; + left: auto; } + + .small-push-11 { + position: relative; + left: 91.66667%; + right: auto; } + + .small-pull-11 { + position: relative; + right: 91.66667%; + left: auto; } + + .column, .columns { + position: relative; + padding-left: 0.9375rem; + padding-right: 0.9375rem; + float: left; } + + .small-1 { + width: 8.33333%; } + + .small-2 { + width: 16.66667%; } + + .small-3 { + width: 25%; } + + .small-4 { + width: 33.33333%; } + + .small-5 { + width: 41.66667%; } + + .small-6 { + width: 50%; } + + .small-7 { + width: 58.33333%; } + + .small-8 { + width: 66.66667%; } + + .small-9 { + width: 75%; } + + .small-10 { + width: 83.33333%; } + + .small-11 { + width: 91.66667%; } + + .small-12 { + width: 100%; } + + .small-offset-0 { + margin-left: 0% !important; } + + .small-offset-1 { + margin-left: 8.33333% !important; } + + .small-offset-2 { + margin-left: 16.66667% !important; } + + .small-offset-3 { + margin-left: 25% !important; } + + .small-offset-4 { + margin-left: 33.33333% !important; } + + .small-offset-5 { + margin-left: 41.66667% !important; } + + .small-offset-6 { + margin-left: 50% !important; } + + .small-offset-7 { + margin-left: 58.33333% !important; } + + .small-offset-8 { + margin-left: 66.66667% !important; } + + .small-offset-9 { + margin-left: 75% !important; } + + .small-offset-10 { + margin-left: 83.33333% !important; } + + .small-offset-11 { + margin-left: 91.66667% !important; } + + .small-reset-order { + margin-left: 0; + margin-right: 0; + left: auto; + right: auto; + float: left; } + + .column.small-centered, .columns.small-centered { + margin-left: auto; + margin-right: auto; + float: none; } + + .column.small-uncentered, .columns.small-uncentered { + margin-left: 0; + margin-right: 0; + float: left; } + + .column.small-centered:last-child, .columns.small-centered:last-child { + float: none; } + + .column.small-uncentered:last-child, .columns.small-uncentered:last-child { + float: left; } + + .column.small-uncentered.opposite, .columns.small-uncentered.opposite { + float: right; } + + .row.small-collapse > .column, .row.small-collapse > .columns { + padding-left: 0; + padding-right: 0; } + .row.small-collapse .row { + margin-left: 0; + margin-right: 0; } + .row.small-uncollapse > .column, .row.small-uncollapse > .columns { + padding-left: 0.9375rem; + padding-right: 0.9375rem; + float: left; } + } + + @media only screen and (min-width:40.063em) { + .medium-push-0 { + position: relative; + left: 0%; + right: auto; } + + .medium-pull-0 { + position: relative; + right: 0%; + left: auto; } + + .medium-push-1 { + position: relative; + left: 8.33333%; + right: auto; } + + .medium-pull-1 { + position: relative; + right: 8.33333%; + left: auto; } + + .medium-push-2 { + position: relative; + left: 16.66667%; + right: auto; } + + .medium-pull-2 { + position: relative; + right: 16.66667%; + left: auto; } + + .medium-push-3 { + position: relative; + left: 25%; + right: auto; } + + .medium-pull-3 { + position: relative; + right: 25%; + left: auto; } + + .medium-push-4 { + position: relative; + left: 33.33333%; + right: auto; } + + .medium-pull-4 { + position: relative; + right: 33.33333%; + left: auto; } + + .medium-push-5 { + position: relative; + left: 41.66667%; + right: auto; } + + .medium-pull-5 { + position: relative; + right: 41.66667%; + left: auto; } + + .medium-push-6 { + position: relative; + left: 50%; + right: auto; } + + .medium-pull-6 { + position: relative; + right: 50%; + left: auto; } + + .medium-push-7 { + position: relative; + left: 58.33333%; + right: auto; } + + .medium-pull-7 { + position: relative; + right: 58.33333%; + left: auto; } + + .medium-push-8 { + position: relative; + left: 66.66667%; + right: auto; } + + .medium-pull-8 { + position: relative; + right: 66.66667%; + left: auto; } + + .medium-push-9 { + position: relative; + left: 75%; + right: auto; } + + .medium-pull-9 { + position: relative; + right: 75%; + left: auto; } + + .medium-push-10 { + position: relative; + left: 83.33333%; + right: auto; } + + .medium-pull-10 { + position: relative; + right: 83.33333%; + left: auto; } + + .medium-push-11 { + position: relative; + left: 91.66667%; + right: auto; } + + .medium-pull-11 { + position: relative; + right: 91.66667%; + left: auto; } + + .column, .columns { + position: relative; + padding-left: 0.9375rem; + padding-right: 0.9375rem; + float: left; } + + .medium-1 { + width: 8.33333%; } + + .medium-2 { + width: 16.66667%; } + + .medium-3 { + width: 25%; } + + .medium-4 { + width: 33.33333%; } + + .medium-5 { + width: 41.66667%; } + + .medium-6 { + width: 50%; } + + .medium-7 { + width: 58.33333%; } + + .medium-8 { + width: 66.66667%; } + + .medium-9 { + width: 75%; } + + .medium-10 { + width: 83.33333%; } + + .medium-11 { + width: 91.66667%; } + + .medium-12 { + width: 100%; } + + .medium-offset-0 { + margin-left: 0% !important; } + + .medium-offset-1 { + margin-left: 8.33333% !important; } + + .medium-offset-2 { + margin-left: 16.66667% !important; } + + .medium-offset-3 { + margin-left: 25% !important; } + + .medium-offset-4 { + margin-left: 33.33333% !important; } + + .medium-offset-5 { + margin-left: 41.66667% !important; } + + .medium-offset-6 { + margin-left: 50% !important; } + + .medium-offset-7 { + margin-left: 58.33333% !important; } + + .medium-offset-8 { + margin-left: 66.66667% !important; } + + .medium-offset-9 { + margin-left: 75% !important; } + + .medium-offset-10 { + margin-left: 83.33333% !important; } + + .medium-offset-11 { + margin-left: 91.66667% !important; } + + .medium-reset-order { + margin-left: 0; + margin-right: 0; + left: auto; + right: auto; + float: left; } + + .column.medium-centered, .columns.medium-centered { + margin-left: auto; + margin-right: auto; + float: none; } + + .column.medium-uncentered, .columns.medium-uncentered { + margin-left: 0; + margin-right: 0; + float: left; } + + .column.medium-centered:last-child, .columns.medium-centered:last-child { + float: none; } + + .column.medium-uncentered:last-child, .columns.medium-uncentered:last-child { + float: left; } + + .column.medium-uncentered.opposite, .columns.medium-uncentered.opposite { + float: right; } + + .row.medium-collapse > .column, .row.medium-collapse > .columns { + padding-left: 0; + padding-right: 0; } + .row.medium-collapse .row { + margin-left: 0; + margin-right: 0; } + .row.medium-uncollapse > .column, .row.medium-uncollapse > .columns { + padding-left: 0.9375rem; + padding-right: 0.9375rem; + float: left; } + + .push-0 { + position: relative; + left: 0%; + right: auto; } + + .pull-0 { + position: relative; + right: 0%; + left: auto; } + + .push-1 { + position: relative; + left: 8.33333%; + right: auto; } + + .pull-1 { + position: relative; + right: 8.33333%; + left: auto; } + + .push-2 { + position: relative; + left: 16.66667%; + right: auto; } + + .pull-2 { + position: relative; + right: 16.66667%; + left: auto; } + + .push-3 { + position: relative; + left: 25%; + right: auto; } + + .pull-3 { + position: relative; + right: 25%; + left: auto; } + + .push-4 { + position: relative; + left: 33.33333%; + right: auto; } + + .pull-4 { + position: relative; + right: 33.33333%; + left: auto; } + + .push-5 { + position: relative; + left: 41.66667%; + right: auto; } + + .pull-5 { + position: relative; + right: 41.66667%; + left: auto; } + + .push-6 { + position: relative; + left: 50%; + right: auto; } + + .pull-6 { + position: relative; + right: 50%; + left: auto; } + + .push-7 { + position: relative; + left: 58.33333%; + right: auto; } + + .pull-7 { + position: relative; + right: 58.33333%; + left: auto; } + + .push-8 { + position: relative; + left: 66.66667%; + right: auto; } + + .pull-8 { + position: relative; + right: 66.66667%; + left: auto; } + + .push-9 { + position: relative; + left: 75%; + right: auto; } + + .pull-9 { + position: relative; + right: 75%; + left: auto; } + + .push-10 { + position: relative; + left: 83.33333%; + right: auto; } + + .pull-10 { + position: relative; + right: 83.33333%; + left: auto; } + + .push-11 { + position: relative; + left: 91.66667%; + right: auto; } + + .pull-11 { + position: relative; + right: 91.66667%; + left: auto; } + } + + @media only screen and (min-width:64.063em) { + .large-push-0 { + position: relative; + left: 0%; + right: auto; } + + .large-pull-0 { + position: relative; + right: 0%; + left: auto; } + + .large-push-1 { + position: relative; + left: 8.33333%; + right: auto; } + + .large-pull-1 { + position: relative; + right: 8.33333%; + left: auto; } + + .large-push-2 { + position: relative; + left: 16.66667%; + right: auto; } + + .large-pull-2 { + position: relative; + right: 16.66667%; + left: auto; } + + .large-push-3 { + position: relative; + left: 25%; + right: auto; } + + .large-pull-3 { + position: relative; + right: 25%; + left: auto; } + + .large-push-4 { + position: relative; + left: 33.33333%; + right: auto; } + + .large-pull-4 { + position: relative; + right: 33.33333%; + left: auto; } + + .large-push-5 { + position: relative; + left: 41.66667%; + right: auto; } + + .large-pull-5 { + position: relative; + right: 41.66667%; + left: auto; } + + .large-push-6 { + position: relative; + left: 50%; + right: auto; } + + .large-pull-6 { + position: relative; + right: 50%; + left: auto; } + + .large-push-7 { + position: relative; + left: 58.33333%; + right: auto; } + + .large-pull-7 { + position: relative; + right: 58.33333%; + left: auto; } + + .large-push-8 { + position: relative; + left: 66.66667%; + right: auto; } + + .large-pull-8 { + position: relative; + right: 66.66667%; + left: auto; } + + .large-push-9 { + position: relative; + left: 75%; + right: auto; } + + .large-pull-9 { + position: relative; + right: 75%; + left: auto; } + + .large-push-10 { + position: relative; + left: 83.33333%; + right: auto; } + + .large-pull-10 { + position: relative; + right: 83.33333%; + left: auto; } + + .large-push-11 { + position: relative; + left: 91.66667%; + right: auto; } + + .large-pull-11 { + position: relative; + right: 91.66667%; + left: auto; } + + .column, .columns { + position: relative; + padding-left: 0.9375rem; + padding-right: 0.9375rem; + float: left; } + + .large-1 { + width: 8.33333%; } + + .large-2 { + width: 16.66667%; } + + .large-3 { + width: 25%; } + + .large-4 { + width: 33.33333%; } + + .large-5 { + width: 41.66667%; } + + .large-6 { + width: 50%; } + + .large-7 { + width: 58.33333%; } + + .large-8 { + width: 66.66667%; } + + .large-9 { + width: 75%; } + + .large-10 { + width: 83.33333%; } + + .large-11 { + width: 91.66667%; } + + .large-12 { + width: 100%; } + + .large-offset-0 { + margin-left: 0% !important; } + + .large-offset-1 { + margin-left: 8.33333% !important; } + + .large-offset-2 { + margin-left: 16.66667% !important; } + + .large-offset-3 { + margin-left: 25% !important; } + + .large-offset-4 { + margin-left: 33.33333% !important; } + + .large-offset-5 { + margin-left: 41.66667% !important; } + + .large-offset-6 { + margin-left: 50% !important; } + + .large-offset-7 { + margin-left: 58.33333% !important; } + + .large-offset-8 { + margin-left: 66.66667% !important; } + + .large-offset-9 { + margin-left: 75% !important; } + + .large-offset-10 { + margin-left: 83.33333% !important; } + + .large-offset-11 { + margin-left: 91.66667% !important; } + + .large-reset-order { + margin-left: 0; + margin-right: 0; + left: auto; + right: auto; + float: left; } + + .column.large-centered, .columns.large-centered { + margin-left: auto; + margin-right: auto; + float: none; } + + .column.large-uncentered, .columns.large-uncentered { + margin-left: 0; + margin-right: 0; + float: left; } + + .column.large-centered:last-child, .columns.large-centered:last-child { + float: none; } + + .column.large-uncentered:last-child, .columns.large-uncentered:last-child { + float: left; } + + .column.large-uncentered.opposite, .columns.large-uncentered.opposite { + float: right; } + + .row.large-collapse > .column, .row.large-collapse > .columns { + padding-left: 0; + padding-right: 0; } + .row.large-collapse .row { + margin-left: 0; + margin-right: 0; } + .row.large-uncollapse > .column, .row.large-uncollapse > .columns { + padding-left: 0.9375rem; + padding-right: 0.9375rem; + float: left; } + + .push-0 { + position: relative; + left: 0%; + right: auto; } + + .pull-0 { + position: relative; + right: 0%; + left: auto; } + + .push-1 { + position: relative; + left: 8.33333%; + right: auto; } + + .pull-1 { + position: relative; + right: 8.33333%; + left: auto; } + + .push-2 { + position: relative; + left: 16.66667%; + right: auto; } + + .pull-2 { + position: relative; + right: 16.66667%; + left: auto; } + + .push-3 { + position: relative; + left: 25%; + right: auto; } + + .pull-3 { + position: relative; + right: 25%; + left: auto; } + + .push-4 { + position: relative; + left: 33.33333%; + right: auto; } + + .pull-4 { + position: relative; + right: 33.33333%; + left: auto; } + + .push-5 { + position: relative; + left: 41.66667%; + right: auto; } + + .pull-5 { + position: relative; + right: 41.66667%; + left: auto; } + + .push-6 { + position: relative; + left: 50%; + right: auto; } + + .pull-6 { + position: relative; + right: 50%; + left: auto; } + + .push-7 { + position: relative; + left: 58.33333%; + right: auto; } + + .pull-7 { + position: relative; + right: 58.33333%; + left: auto; } + + .push-8 { + position: relative; + left: 66.66667%; + right: auto; } + + .pull-8 { + position: relative; + right: 66.66667%; + left: auto; } + + .push-9 { + position: relative; + left: 75%; + right: auto; } + + .pull-9 { + position: relative; + right: 75%; + left: auto; } + + .push-10 { + position: relative; + left: 83.33333%; + right: auto; } + + .pull-10 { + position: relative; + right: 83.33333%; + left: auto; } + + .push-11 { + position: relative; + left: 91.66667%; + right: auto; } + + .pull-11 { + position: relative; + right: 91.66667%; + left: auto; } + } + #top { + font-size: 14px; + background: #404650; } + #top #logo { + position: relative; + float: left; + width: 123px; + height: 55px; + margin-right: 14px; + z-index: 999; + text-indent: -9999px; + background: #dc4136 url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE2LjAuNCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHdpZHRoPSI3NXB4IiBoZWlnaHQ9IjE4cHgiIHZpZXdCb3g9IjAgMCA3NSAxOCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNzUgMTgiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8Zz4KCTxwYXRoIGZpbGw9IiNFOUU5RTkiIGQ9Ik01LjQ4Miw0LjQxM0gxLjMxM1YyLjI1MWgxMC44NzN2Mi4xNjFIOC4wNDF2MTIuMjYzSDUuNDgyVjQuNDEzeiIvPgoJPHBhdGggZmlsbD0iI0U5RTlFOSIgZD0iTTExLjk1OCw1Ljg0NmgyLjA5NWwwLjE3NywxLjkxOGgwLjA4OWMwLjc3MS0xLjQxLDEuOTE4LTIuMTgzLDMuMDY1LTIuMTgzYzAuNTUxLDAsMC45MDMsMC4wNjYsMS4yMzQsMC4yMgoJCWwtMC40NDEsMi4yMDZjLTAuMzc1LTAuMTEtMC42NjEtMC4xNzYtMS4xMjUtMC4xNzZjLTAuODU5LDAtMS44OTYsMC41OTUtMi41NTgsMi4yMjh2Ni42MTZoLTIuNTM2VjUuODQ2eiIvPgoJPHBhdGggZmlsbD0iI0U5RTlFOSIgZD0iTTI1LjU0NCw5Ljc1Yy0wLjAyMy0xLjE0Ni0wLjUwOC0yLjExNy0xLjk2NC0yLjExN2MtMS4wOCwwLTIuMDk1LDAuNDg0LTMuMDQzLDEuMDU4bC0wLjkyNy0xLjY5OAoJCWMxLjE5LTAuNzUsMi43MTMtMS40MTEsNC40MzMtMS40MTFjMi43MTQsMCw0LjAzOCwxLjY1NCw0LjAzOCw0LjY3NXY2LjQxOWgtMi4wNzRsLTAuMTk4LTEuMTloLTAuMDY2CgkJYy0wLjk3MSwwLjgxNi0yLjA3MywxLjQ1NS0zLjM1MywxLjQ1NWMtMS44OTcsMC0zLjIyLTEuMjc5LTMuMjItMy4xNzZDMTkuMTcsMTEuNDQ4LDIxLjExMSwxMC4yMzUsMjUuNTQ0LDkuNzV6IE0yMy4xODQsMTQuOTU2CgkJYzAuODgyLDAsMS41NjYtMC40NDEsMi4zNi0xLjE5MXYtMi40MjdjLTIuOTM0LDAuMzc2LTMuOTA0LDEuMTQ3LTMuOTA0LDIuMjI5QzIxLjY0LDE0LjUzNiwyMi4yOCwxNC45NTYsMjMuMTg0LDE0Ljk1NnoiLz4KCTxwYXRoIGZpbGw9IiNFOUU5RTkiIGQ9Ik0yOC44MDYsNS44NDZoMi41ODFsMS43Miw1LjYyNGMwLjI4NywxLjA1OSwwLjYxOCwyLjE2MSwwLjkwNCwzLjI2NWgwLjA4OAoJCWMwLjMxLTEuMTA0LDAuNjE4LTIuMjA2LDAuOTI3LTMuMjY1bDEuNzItNS42MjRoMi40NDhsLTMuNjgzLDEwLjgyOWgtMi45MzRMMjguODA2LDUuODQ2eiIvPgoJPHBhdGggZmlsbD0iI0U5RTlFOSIgZD0iTTQwLjE0NSwyLjUxNmMwLTAuODYsMC42NjEtMS40NTYsMS41NjUtMS40NTZzMS41NjYsMC41OTYsMS41NjYsMS40NTZjMCwwLjgzOC0wLjY2MiwxLjQzNC0xLjU2NiwxLjQzNAoJCVM0MC4xNDUsMy4zNTQsNDAuMTQ1LDIuNTE2eiBNNDAuNDMxLDUuODQ2aDIuNTM3djEwLjgyOWgtMi41MzdWNS44NDZ6Ii8+Cgk8cGF0aCBmaWxsPSIjRTlFOUU5IiBkPSJNNDUuNjEzLDEzLjgwOWMwLjk3LDAuNzQ5LDEuODk2LDEuMjEzLDIuOTk5LDEuMjEzYzEuMTcsMCwxLjcyMS0wLjU1MiwxLjcyMS0xLjMwMQoJCWMwLTAuOTA2LTEuMTY5LTEuMzAzLTIuMzE2LTEuNzQ0Yy0xLjQzNC0wLjUyOS0zLjA0My0xLjM0NC0zLjA0My0zLjE1MmMwLTEuODk4LDEuNTIxLTMuMjQzLDMuOTQ4LTMuMjQzCgkJYzEuNDk5LDAsMi43MTMsMC42MTgsMy41OTQsMS4zMDJsLTEuMTY4LDEuNTQzQzUwLjU5Nyw3Ljg3NSw0OS44MjYsNy41LDQ4Ljk2NSw3LjVjLTEuMDgyLDAtMS41ODgsMC41MDctMS41ODgsMS4xOQoJCWMwLDAuODM5LDEuMDgsMS4xOTEsMi4yNDksMS42MWMxLjQ3OSwwLjU1MiwzLjEwOSwxLjI1OCwzLjEwOSwzLjI4N2MwLDEuODUyLTEuNDc4LDMuMzUyLTQuMjEyLDMuMzUyCgkJYy0xLjQ3OCwwLTMuMDQ0LTAuNjM5LTQuMTAyLTEuNUw0NS42MTMsMTMuODA5eiIvPgoJPHBhdGggZmlsbD0iI0U5RTlFOSIgZD0iTTY1LjE3NiwxLjk4N2MxLjc2NCwwLDMuMTk4LDAuODU5LDQuMTAyLDEuODNsLTEuNDExLDEuNTg4Yy0wLjc1LTAuNzI5LTEuNTY1LTEuMTktMi42NjktMS4xOQoJCWMtMi4zNiwwLTQuMDU4LDEuOTg1LTQuMDU4LDUuMjI4YzAsMy4yODYsMS41NjUsNS4yNywzLjk2OSw1LjI3YzEuMjgsMCwyLjIyOC0wLjUyOCwzLjA0NS0xLjQzMmwxLjQxMSwxLjU2NQoJCWMtMS4xNjksMS4zNDUtMi42NjgsMi4wOTUtNC40OTksMi4wOTVjLTMuNjYxLDAtNi41NTEtMi42NDYtNi41NTEtNy40MzNDNTguNTE1LDQuNzg4LDYxLjQ3LDEuOTg3LDY1LjE3NiwxLjk4N3oiLz4KCTxwYXRoIGZpbGw9IiNFOUU5RTkiIGQ9Ik03MS4xMjgsMi4yNTFoMi41NTl2MTQuNDI0aC0yLjU1OVYyLjI1MXoiLz4KPC9nPgo8L3N2Zz4K') no-repeat 20px 18px; } + #top #logo a { + display: block; } + #top ul { + margin: 0; + padding: 0; + list-style: none; + line-height: 30px; } + #top #navigation { + height: 0; + overflow: hidden; } + #top #navigation.is-open { + height: auto; } + #top a, #top span { + color: #fff; + text-decoration: none; } + #top li { + border-top: 1px solid #31363d; } + #top li a, #top li span { + display: block; + padding: 0 12px; } + #top li a:hover, #top li span:hover { + color: #ADC7D0; } + #top a.werehiring { + background-color: #31363d; + border-radius: 4px; + padding: 8px 16px; + line-height: 20px; + margin-right: 80px; + display: inline; } + #top li.traviscicom a { + padding-left: 0px; } + @media only screen and (min-width:40.063em) { + #top { + overflow: visible; + height: 55px; } + #top #navigation { + height: auto; + overflow: visible; } + #top ul { + line-height: 55px; + position: relative; + top: 3px; } + #top li { + display: inline-block; + border: none; } } + @media only screen and (min-width:40.063em) and (max-width:64em) { + #top li.traviscicom { + display: none; } + } + #top .nav-burger { + overflow: auto; } + @media only screen and (min-width:40.063em) { + #top .nav-burger { + display: none; } } + #top #burger { + float: right; + font-size: 50px; + background: none; + border: none; + line-height: 1; + color: #fff; + outline: none !important; } + #top #burger:before, #top #burger:after { + content: ""; + display: table; } + #top #burger:after { + clear: both; } + #top #burger:hover { + cursor: pointer; } + #top .menu { + position: relative; } + #top .menu.signed-out ul { + display: none; } + #top .menu .handle { + margin: 0; } + #top .menu:hover > ul { + display: block; } + #top .menu ul li a { + padding-left: 3em; } + @media only screen and (min-width:40.063em) { + #top .menu ul { + display: none; + position: absolute; + z-index: 300; + right: 0px; + top: 52px; + width: 100%; + background-color: #40454f; } + #top .menu ul li { + display: block; } + #top .menu ul li a { + display: block; + line-height: 24px; + white-space: nowrap; + padding: 5px 20px; } + #top .menu ul li a:hover { + background-color: #30343b; } + } + #top .menu.community { + min-width: 120px; } + #top .user { + text-align: right; } + #top .menu.profile .signing-in { + background: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSI4Ij4KPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOCwgNCkiPgogIDxyZWN0IHg9Ii04IiB5PSItNCIgd2lkdGg9IjUiIGhlaWdodD0iOCI+CiAgICA8YW5pbWF0ZVRyYW5zZm9ybSBpZD0iYSIgYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJzY2FsZSIgZnJvbT0iMSwwLjUiIHRvPSIxIiBkdXI9IjAuNHMiIGJlZ2luPSIwO2IuZW5kIi8+CiAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJmaWxsIiBmcm9tPSIjZWVlIiB0bz0iIzg4OCIgZHVyPSIwLjRzIiBiZWdpbj0iMDtiLmVuZCIvPgogICAgPGFuaW1hdGVUcmFuc2Zvcm0gaWQ9ImIiIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0ic2NhbGUiIGZyb209IjEiIHRvPSIxLDAuNSIgZHVyPSIwLjRzIiBiZWdpbj0iYS5lbmQiLz4KICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImZpbGwiIGZyb209IiM4ODgiIHRvPSIjZWVlIiBkdXI9IjAuNHMiIGJlZ2luPSJhLmVuZCIvPgogIDwvcmVjdD4KICA8cmVjdCB4PSItMiIgeT0iLTQiIHdpZHRoPSI0IiBoZWlnaHQ9IjgiPgogICAgPGFuaW1hdGVUcmFuc2Zvcm0gaWQ9ImMiIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0ic2NhbGUiIGZyb209IjEsMC41IiB0bz0iMSIgZHVyPSIwLjRzIiBiZWdpbj0iMC4xcztkLmVuZCIvPgogICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iZmlsbCIgZnJvbT0iI2VlZSIgdG89IiM4ODgiIGR1cj0iMC40cyIgYmVnaW49IjAuMXM7ZC5lbmQiLz4KICAgIDxhbmltYXRlVHJhbnNmb3JtIGlkPSJkIiBiZWdpbj0iYy5lbmQiIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0ic2NhbGUiIHRvPSIxLDAuNSIgZnJvbT0iMSIgZHVyPSIwLjRzIi8+CiAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJmaWxsIiBmcm9tPSIjODg4IiB0bz0iI2VlZSIgZHVyPSIwLjRzIiBiZWdpbj0iYy5lbmQiLz4KICA8L3JlY3Q+CiAgPHJlY3QgeD0iMyIgeT0iLTQiIHdpZHRoPSI1IiBoZWlnaHQ9IjgiPgogICAgPGFuaW1hdGVUcmFuc2Zvcm0gaWQ9ImUiIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0ic2NhbGUiIGZyb209IjEsMC41IiB0bz0iMSIgZHVyPSIwLjRzIiBiZWdpbj0iMC4ycztmLmVuZCIvPgogICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iZmlsbCIgZnJvbT0iI2VlZSIgdG89IiM4ODgiIGR1cj0iMC40cyIgYmVnaW49IjAuMnM7Zi5lbmQiLz4KICAgIDxhbmltYXRlVHJhbnNmb3JtIGlkPSJmIiBhdHRyaWJ1dGVOYW1lPSJ0cmFuc2Zvcm0iIHR5cGU9InNjYWxlIiBmcm9tPSIxIiB0bz0iMSwwLjUiIGR1cj0iMC40cyIgYmVnaW49ImUuZW5kIi8+CiAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJmaWxsIiBmcm9tPSIjODg4IiB0bz0iI2VlZSIgZHVyPSIwLjRzIiBiZWdpbj0iZS5lbmQiLz4KICA8L3JlY3Q+CjwvZz4KPC9zdmc+Cgo=') no-repeat 110px 22px; } + #top .menu.profile img { + width: 30px; + height: 30px; + border-radius: 100px; } + #top .menu.profile ul { + min-width: 145px; } + #top .menu.profile ul a { + padding: 5px 25px 5px 45px; } + @media only screen and (min-width:40.063em) { + #top .menu.profile { + float: right; } + #top .menu.profile .handle > * { + display: none; + padding: 0 15px 0 45px; } + #top .menu.profile .signed-out, #top .menu.profile .signing-in { + min-width: 110px; } + #top .menu.profile.signed-out .signed-out { + display: block; } + #top .menu.profile.signing-in .signing-in { + display: inline-block; } + #top .menu.profile.signed-in .signed-in { + display: block; } } + #top .menu.profile:not(.signed-in):hover ul { + display: none; } + + #home #navigation .home, #stats #navigation .stats, #profile #navigation .profile { + background-color: transparent; } + #home #navigation .home a, #stats #navigation .stats a, #profile #navigation .profile a { + color: #ffffff; } + #home #navigation .home a:hover, #stats #navigation .stats a:hover, #profile #navigation .profile a:hover { + color: #ADC7D0; } + + #top img { + margin: 10px 10px 7px 10px; + width: 30px; + height: 30px; + border-radius: 100px; } + @media only screen and (min-width:40.063em) { + #top img { + float: right; + margin: 10px 0 0 10px; } } + + .maintenance { + height: 100%; + overflow: hidden; } + .maintenance .full-size { + position: absolute; + top: 0; + height: 100%; + width: 100%; + overflow: hidden; + background-repeat: no-repeat; } + + .main--error { + min-height: 100%; } + + .maintenance-text { + position: absolute; + left: 0; + right: 0; + z-index: 10; } + .maintenance-text h1 { + margin: 1em 0 0.4em; + font-weight: 600; + color: #357389; + font-size: 40px; + line-height: 1; + text-align: center; } + @media only screen and (min-width:40.063em) { + .maintenance-text h1 { + margin: 1.5em 0 0.4em; + font-size: 70px; } } + .maintenance-text p { + padding: 0 1em; + color: #9d9fa1; + font-size: 18px; + text-align: center; } + .maintenance-text a { + color: #9d9fa1; } + .maintenance-text a:hover, .maintenance-text a:focus { + color: #9d9fa1; + text-decoration: underline; } + + .icon-twitter { + display: inline-block; + width: 1.1em; + height: 1.1em; + background-image: url(../images/error/twitter.svg); + background-repeat: no-repeat; + background-size: 100% auto; + background-position: 0 0.2em; } + + .maintenance .maintenance-bg { + background: -webkit-linear-gradient(90deg, #8cad7d, #8cad7d 38.9%, #ccebf7 39%, #fff 60%, #fff); + background: linear-gradient(0deg, #8cad7d, #8cad7d 38.9%, #ccebf7 39%, #fff 60%, #fff); } + .maintenance .hill-left { + background-image: url(../images/error/maintenance-hills-left.svg); + background-size: 80vw auto; + background-position: 0 58%; } + @media only screen and (min-width:40.063em) { + .maintenance .hill-left { + background-size: 58vw auto; + background-position: 0 58%; } } + @media only screen and (min-width:64.063em) { + .maintenance .hill-left { + background-size: 50vw auto; + background-position: 0 56%; } } + .maintenance .hill-right { + background-image: url(../images/error/maintenance-hills-right.svg); + background-size: 38vw auto; + background-position: 99% 59%; + display: none; } + @media only screen and (min-width:40.063em) { + .maintenance .hill-right { + display: block; } } + .maintenance .shadow-left { + background-image: url(../images/error/maintenance-grass-shade-left.svg); + background-size: 24vw auto; + background-position: 6% 72%; } + .maintenance .shadow-right { + background-image: url(../images/error/maintenance-grass-shade-right.svg); + background-size: 17vw auto; + background-position: 95% 79%; } + .maintenance .maintenance-tractor { + background-image: url(../images/error/maintenance-tractor.svg); + background-size: 87vw auto; + background-position: 63% 87%; } + @media only screen and (min-width:40.063em) { + .maintenance .maintenance-tractor { + background-size: auto 44vh; + background-position: 63% 83%; } } + </style> + + + </head> + <body> + <div class="application"> + <div class="ember-view error maintenance"> + <div id="top"> + <div class="row"> + <div class="small-2 medium-2 columns" id="logo"> + <h1><a href="/" class="ember-view">Home</a></h1> + </div> + <ul id="navigation"> + <li><a href="http://blog.travis-ci.com/">Blog</a></li> + <li><a href="http://www.traviscistatus.com/">Status</a></li> + </ul> + </div> + </div> + <main class="main main--error" role="main"> + <div class="maintenance-bg full-size"> + <div class="hill-left full-size"></div> + <div class="hill-right full-size"></div> + <div class="shadow-left full-size"></div> + <div class="shadow-right full-size"></div> + </div> + <div class="maintenance-tractor full-size"></div> + <div class="maintenance-text"> + <h1>Under Maintenance</h1> + <p>Stay up to date with Travis CI by <a href="https://twitter.com/travisci" title="Travis CI on Twitter">following us <span class="icon-twitter"></span></a></p> + </div> + </main> + </div> + </div> + </body> +</html> From faa3f73c7ac4c3608c55baafe0aced61330a9a5f Mon Sep 17 00:00:00 2001 From: Lisa Passing <mail@lislis.de> Date: Mon, 16 Feb 2015 16:27:52 +0100 Subject: [PATCH 06/26] use external css --- public/maintenance.html | 1276 +-------------------------------------- 1 file changed, 1 insertion(+), 1275 deletions(-) diff --git a/public/maintenance.html b/public/maintenance.html index 66bfa596..b449ebfe 100644 --- a/public/maintenance.html +++ b/public/maintenance.html @@ -7,1281 +7,7 @@ <meta name="viewport" content="width=device-width, initial-scale=1"> <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,800" rel="stylesheet" type="text/css"> - - <style> - html, body { - height: 100%; } - - *, *:before, *:after { - box-sizing: border-box; } - - html, body { - font-size: 13px; } - - body { - background: #fff; - color: #666; - padding: 0; - margin: 0; - font-family: 'Source Sans Pro', Helvetica, sans-serif; - font-weight: normal; - font-style: normal; - line-height: 22px; - position: relative; - cursor: auto; } - - - .row { - width: 100%; - margin-left: auto; - margin-right: auto; - margin-top: 0; - margin-bottom: 0; - max-width: 100%; } - .row:before, .row:after { - content: " "; - display: table; } - .row:after { - clear: both; } - .row.collapse > .column, .row.collapse > .columns { - padding-left: 0; - padding-right: 0; } - .row.collapse .row { - margin-left: 0; - margin-right: 0; } - .row .row { - width: auto; - margin-left: -0.9375rem; - margin-right: -0.9375rem; - margin-top: 0; - margin-bottom: 0; - max-width: none; } - .row .row:before, .row .row:after { - content: " "; - display: table; } - .row .row:after { - clear: both; } - .row .row.collapse { - width: auto; - margin: 0; - max-width: none; } - .row .row.collapse:before, .row .row.collapse:after { - content: " "; - display: table; } - .row .row.collapse:after { - clear: both; } - - .column, .columns { - padding-left: 0.9375rem; - padding-right: 0.9375rem; - width: 100%; - float: left; } - - [class*="column"] + [class*="column"]:last-child { - float: right; } - - [class*="column"] + [class*="column"].end { - float: left; } - - @media only screen { - .small-push-0 { - position: relative; - left: 0%; - right: auto; } - - .small-pull-0 { - position: relative; - right: 0%; - left: auto; } - - .small-push-1 { - position: relative; - left: 8.33333%; - right: auto; } - - .small-pull-1 { - position: relative; - right: 8.33333%; - left: auto; } - - .small-push-2 { - position: relative; - left: 16.66667%; - right: auto; } - - .small-pull-2 { - position: relative; - right: 16.66667%; - left: auto; } - - .small-push-3 { - position: relative; - left: 25%; - right: auto; } - - .small-pull-3 { - position: relative; - right: 25%; - left: auto; } - - .small-push-4 { - position: relative; - left: 33.33333%; - right: auto; } - - .small-pull-4 { - position: relative; - right: 33.33333%; - left: auto; } - - .small-push-5 { - position: relative; - left: 41.66667%; - right: auto; } - - .small-pull-5 { - position: relative; - right: 41.66667%; - left: auto; } - - .small-push-6 { - position: relative; - left: 50%; - right: auto; } - - .small-pull-6 { - position: relative; - right: 50%; - left: auto; } - - .small-push-7 { - position: relative; - left: 58.33333%; - right: auto; } - - .small-pull-7 { - position: relative; - right: 58.33333%; - left: auto; } - - .small-push-8 { - position: relative; - left: 66.66667%; - right: auto; } - - .small-pull-8 { - position: relative; - right: 66.66667%; - left: auto; } - - .small-push-9 { - position: relative; - left: 75%; - right: auto; } - - .small-pull-9 { - position: relative; - right: 75%; - left: auto; } - - .small-push-10 { - position: relative; - left: 83.33333%; - right: auto; } - - .small-pull-10 { - position: relative; - right: 83.33333%; - left: auto; } - - .small-push-11 { - position: relative; - left: 91.66667%; - right: auto; } - - .small-pull-11 { - position: relative; - right: 91.66667%; - left: auto; } - - .column, .columns { - position: relative; - padding-left: 0.9375rem; - padding-right: 0.9375rem; - float: left; } - - .small-1 { - width: 8.33333%; } - - .small-2 { - width: 16.66667%; } - - .small-3 { - width: 25%; } - - .small-4 { - width: 33.33333%; } - - .small-5 { - width: 41.66667%; } - - .small-6 { - width: 50%; } - - .small-7 { - width: 58.33333%; } - - .small-8 { - width: 66.66667%; } - - .small-9 { - width: 75%; } - - .small-10 { - width: 83.33333%; } - - .small-11 { - width: 91.66667%; } - - .small-12 { - width: 100%; } - - .small-offset-0 { - margin-left: 0% !important; } - - .small-offset-1 { - margin-left: 8.33333% !important; } - - .small-offset-2 { - margin-left: 16.66667% !important; } - - .small-offset-3 { - margin-left: 25% !important; } - - .small-offset-4 { - margin-left: 33.33333% !important; } - - .small-offset-5 { - margin-left: 41.66667% !important; } - - .small-offset-6 { - margin-left: 50% !important; } - - .small-offset-7 { - margin-left: 58.33333% !important; } - - .small-offset-8 { - margin-left: 66.66667% !important; } - - .small-offset-9 { - margin-left: 75% !important; } - - .small-offset-10 { - margin-left: 83.33333% !important; } - - .small-offset-11 { - margin-left: 91.66667% !important; } - - .small-reset-order { - margin-left: 0; - margin-right: 0; - left: auto; - right: auto; - float: left; } - - .column.small-centered, .columns.small-centered { - margin-left: auto; - margin-right: auto; - float: none; } - - .column.small-uncentered, .columns.small-uncentered { - margin-left: 0; - margin-right: 0; - float: left; } - - .column.small-centered:last-child, .columns.small-centered:last-child { - float: none; } - - .column.small-uncentered:last-child, .columns.small-uncentered:last-child { - float: left; } - - .column.small-uncentered.opposite, .columns.small-uncentered.opposite { - float: right; } - - .row.small-collapse > .column, .row.small-collapse > .columns { - padding-left: 0; - padding-right: 0; } - .row.small-collapse .row { - margin-left: 0; - margin-right: 0; } - .row.small-uncollapse > .column, .row.small-uncollapse > .columns { - padding-left: 0.9375rem; - padding-right: 0.9375rem; - float: left; } - } - - @media only screen and (min-width:40.063em) { - .medium-push-0 { - position: relative; - left: 0%; - right: auto; } - - .medium-pull-0 { - position: relative; - right: 0%; - left: auto; } - - .medium-push-1 { - position: relative; - left: 8.33333%; - right: auto; } - - .medium-pull-1 { - position: relative; - right: 8.33333%; - left: auto; } - - .medium-push-2 { - position: relative; - left: 16.66667%; - right: auto; } - - .medium-pull-2 { - position: relative; - right: 16.66667%; - left: auto; } - - .medium-push-3 { - position: relative; - left: 25%; - right: auto; } - - .medium-pull-3 { - position: relative; - right: 25%; - left: auto; } - - .medium-push-4 { - position: relative; - left: 33.33333%; - right: auto; } - - .medium-pull-4 { - position: relative; - right: 33.33333%; - left: auto; } - - .medium-push-5 { - position: relative; - left: 41.66667%; - right: auto; } - - .medium-pull-5 { - position: relative; - right: 41.66667%; - left: auto; } - - .medium-push-6 { - position: relative; - left: 50%; - right: auto; } - - .medium-pull-6 { - position: relative; - right: 50%; - left: auto; } - - .medium-push-7 { - position: relative; - left: 58.33333%; - right: auto; } - - .medium-pull-7 { - position: relative; - right: 58.33333%; - left: auto; } - - .medium-push-8 { - position: relative; - left: 66.66667%; - right: auto; } - - .medium-pull-8 { - position: relative; - right: 66.66667%; - left: auto; } - - .medium-push-9 { - position: relative; - left: 75%; - right: auto; } - - .medium-pull-9 { - position: relative; - right: 75%; - left: auto; } - - .medium-push-10 { - position: relative; - left: 83.33333%; - right: auto; } - - .medium-pull-10 { - position: relative; - right: 83.33333%; - left: auto; } - - .medium-push-11 { - position: relative; - left: 91.66667%; - right: auto; } - - .medium-pull-11 { - position: relative; - right: 91.66667%; - left: auto; } - - .column, .columns { - position: relative; - padding-left: 0.9375rem; - padding-right: 0.9375rem; - float: left; } - - .medium-1 { - width: 8.33333%; } - - .medium-2 { - width: 16.66667%; } - - .medium-3 { - width: 25%; } - - .medium-4 { - width: 33.33333%; } - - .medium-5 { - width: 41.66667%; } - - .medium-6 { - width: 50%; } - - .medium-7 { - width: 58.33333%; } - - .medium-8 { - width: 66.66667%; } - - .medium-9 { - width: 75%; } - - .medium-10 { - width: 83.33333%; } - - .medium-11 { - width: 91.66667%; } - - .medium-12 { - width: 100%; } - - .medium-offset-0 { - margin-left: 0% !important; } - - .medium-offset-1 { - margin-left: 8.33333% !important; } - - .medium-offset-2 { - margin-left: 16.66667% !important; } - - .medium-offset-3 { - margin-left: 25% !important; } - - .medium-offset-4 { - margin-left: 33.33333% !important; } - - .medium-offset-5 { - margin-left: 41.66667% !important; } - - .medium-offset-6 { - margin-left: 50% !important; } - - .medium-offset-7 { - margin-left: 58.33333% !important; } - - .medium-offset-8 { - margin-left: 66.66667% !important; } - - .medium-offset-9 { - margin-left: 75% !important; } - - .medium-offset-10 { - margin-left: 83.33333% !important; } - - .medium-offset-11 { - margin-left: 91.66667% !important; } - - .medium-reset-order { - margin-left: 0; - margin-right: 0; - left: auto; - right: auto; - float: left; } - - .column.medium-centered, .columns.medium-centered { - margin-left: auto; - margin-right: auto; - float: none; } - - .column.medium-uncentered, .columns.medium-uncentered { - margin-left: 0; - margin-right: 0; - float: left; } - - .column.medium-centered:last-child, .columns.medium-centered:last-child { - float: none; } - - .column.medium-uncentered:last-child, .columns.medium-uncentered:last-child { - float: left; } - - .column.medium-uncentered.opposite, .columns.medium-uncentered.opposite { - float: right; } - - .row.medium-collapse > .column, .row.medium-collapse > .columns { - padding-left: 0; - padding-right: 0; } - .row.medium-collapse .row { - margin-left: 0; - margin-right: 0; } - .row.medium-uncollapse > .column, .row.medium-uncollapse > .columns { - padding-left: 0.9375rem; - padding-right: 0.9375rem; - float: left; } - - .push-0 { - position: relative; - left: 0%; - right: auto; } - - .pull-0 { - position: relative; - right: 0%; - left: auto; } - - .push-1 { - position: relative; - left: 8.33333%; - right: auto; } - - .pull-1 { - position: relative; - right: 8.33333%; - left: auto; } - - .push-2 { - position: relative; - left: 16.66667%; - right: auto; } - - .pull-2 { - position: relative; - right: 16.66667%; - left: auto; } - - .push-3 { - position: relative; - left: 25%; - right: auto; } - - .pull-3 { - position: relative; - right: 25%; - left: auto; } - - .push-4 { - position: relative; - left: 33.33333%; - right: auto; } - - .pull-4 { - position: relative; - right: 33.33333%; - left: auto; } - - .push-5 { - position: relative; - left: 41.66667%; - right: auto; } - - .pull-5 { - position: relative; - right: 41.66667%; - left: auto; } - - .push-6 { - position: relative; - left: 50%; - right: auto; } - - .pull-6 { - position: relative; - right: 50%; - left: auto; } - - .push-7 { - position: relative; - left: 58.33333%; - right: auto; } - - .pull-7 { - position: relative; - right: 58.33333%; - left: auto; } - - .push-8 { - position: relative; - left: 66.66667%; - right: auto; } - - .pull-8 { - position: relative; - right: 66.66667%; - left: auto; } - - .push-9 { - position: relative; - left: 75%; - right: auto; } - - .pull-9 { - position: relative; - right: 75%; - left: auto; } - - .push-10 { - position: relative; - left: 83.33333%; - right: auto; } - - .pull-10 { - position: relative; - right: 83.33333%; - left: auto; } - - .push-11 { - position: relative; - left: 91.66667%; - right: auto; } - - .pull-11 { - position: relative; - right: 91.66667%; - left: auto; } - } - - @media only screen and (min-width:64.063em) { - .large-push-0 { - position: relative; - left: 0%; - right: auto; } - - .large-pull-0 { - position: relative; - right: 0%; - left: auto; } - - .large-push-1 { - position: relative; - left: 8.33333%; - right: auto; } - - .large-pull-1 { - position: relative; - right: 8.33333%; - left: auto; } - - .large-push-2 { - position: relative; - left: 16.66667%; - right: auto; } - - .large-pull-2 { - position: relative; - right: 16.66667%; - left: auto; } - - .large-push-3 { - position: relative; - left: 25%; - right: auto; } - - .large-pull-3 { - position: relative; - right: 25%; - left: auto; } - - .large-push-4 { - position: relative; - left: 33.33333%; - right: auto; } - - .large-pull-4 { - position: relative; - right: 33.33333%; - left: auto; } - - .large-push-5 { - position: relative; - left: 41.66667%; - right: auto; } - - .large-pull-5 { - position: relative; - right: 41.66667%; - left: auto; } - - .large-push-6 { - position: relative; - left: 50%; - right: auto; } - - .large-pull-6 { - position: relative; - right: 50%; - left: auto; } - - .large-push-7 { - position: relative; - left: 58.33333%; - right: auto; } - - .large-pull-7 { - position: relative; - right: 58.33333%; - left: auto; } - - .large-push-8 { - position: relative; - left: 66.66667%; - right: auto; } - - .large-pull-8 { - position: relative; - right: 66.66667%; - left: auto; } - - .large-push-9 { - position: relative; - left: 75%; - right: auto; } - - .large-pull-9 { - position: relative; - right: 75%; - left: auto; } - - .large-push-10 { - position: relative; - left: 83.33333%; - right: auto; } - - .large-pull-10 { - position: relative; - right: 83.33333%; - left: auto; } - - .large-push-11 { - position: relative; - left: 91.66667%; - right: auto; } - - .large-pull-11 { - position: relative; - right: 91.66667%; - left: auto; } - - .column, .columns { - position: relative; - padding-left: 0.9375rem; - padding-right: 0.9375rem; - float: left; } - - .large-1 { - width: 8.33333%; } - - .large-2 { - width: 16.66667%; } - - .large-3 { - width: 25%; } - - .large-4 { - width: 33.33333%; } - - .large-5 { - width: 41.66667%; } - - .large-6 { - width: 50%; } - - .large-7 { - width: 58.33333%; } - - .large-8 { - width: 66.66667%; } - - .large-9 { - width: 75%; } - - .large-10 { - width: 83.33333%; } - - .large-11 { - width: 91.66667%; } - - .large-12 { - width: 100%; } - - .large-offset-0 { - margin-left: 0% !important; } - - .large-offset-1 { - margin-left: 8.33333% !important; } - - .large-offset-2 { - margin-left: 16.66667% !important; } - - .large-offset-3 { - margin-left: 25% !important; } - - .large-offset-4 { - margin-left: 33.33333% !important; } - - .large-offset-5 { - margin-left: 41.66667% !important; } - - .large-offset-6 { - margin-left: 50% !important; } - - .large-offset-7 { - margin-left: 58.33333% !important; } - - .large-offset-8 { - margin-left: 66.66667% !important; } - - .large-offset-9 { - margin-left: 75% !important; } - - .large-offset-10 { - margin-left: 83.33333% !important; } - - .large-offset-11 { - margin-left: 91.66667% !important; } - - .large-reset-order { - margin-left: 0; - margin-right: 0; - left: auto; - right: auto; - float: left; } - - .column.large-centered, .columns.large-centered { - margin-left: auto; - margin-right: auto; - float: none; } - - .column.large-uncentered, .columns.large-uncentered { - margin-left: 0; - margin-right: 0; - float: left; } - - .column.large-centered:last-child, .columns.large-centered:last-child { - float: none; } - - .column.large-uncentered:last-child, .columns.large-uncentered:last-child { - float: left; } - - .column.large-uncentered.opposite, .columns.large-uncentered.opposite { - float: right; } - - .row.large-collapse > .column, .row.large-collapse > .columns { - padding-left: 0; - padding-right: 0; } - .row.large-collapse .row { - margin-left: 0; - margin-right: 0; } - .row.large-uncollapse > .column, .row.large-uncollapse > .columns { - padding-left: 0.9375rem; - padding-right: 0.9375rem; - float: left; } - - .push-0 { - position: relative; - left: 0%; - right: auto; } - - .pull-0 { - position: relative; - right: 0%; - left: auto; } - - .push-1 { - position: relative; - left: 8.33333%; - right: auto; } - - .pull-1 { - position: relative; - right: 8.33333%; - left: auto; } - - .push-2 { - position: relative; - left: 16.66667%; - right: auto; } - - .pull-2 { - position: relative; - right: 16.66667%; - left: auto; } - - .push-3 { - position: relative; - left: 25%; - right: auto; } - - .pull-3 { - position: relative; - right: 25%; - left: auto; } - - .push-4 { - position: relative; - left: 33.33333%; - right: auto; } - - .pull-4 { - position: relative; - right: 33.33333%; - left: auto; } - - .push-5 { - position: relative; - left: 41.66667%; - right: auto; } - - .pull-5 { - position: relative; - right: 41.66667%; - left: auto; } - - .push-6 { - position: relative; - left: 50%; - right: auto; } - - .pull-6 { - position: relative; - right: 50%; - left: auto; } - - .push-7 { - position: relative; - left: 58.33333%; - right: auto; } - - .pull-7 { - position: relative; - right: 58.33333%; - left: auto; } - - .push-8 { - position: relative; - left: 66.66667%; - right: auto; } - - .pull-8 { - position: relative; - right: 66.66667%; - left: auto; } - - .push-9 { - position: relative; - left: 75%; - right: auto; } - - .pull-9 { - position: relative; - right: 75%; - left: auto; } - - .push-10 { - position: relative; - left: 83.33333%; - right: auto; } - - .pull-10 { - position: relative; - right: 83.33333%; - left: auto; } - - .push-11 { - position: relative; - left: 91.66667%; - right: auto; } - - .pull-11 { - position: relative; - right: 91.66667%; - left: auto; } - } - #top { - font-size: 14px; - background: #404650; } - #top #logo { - position: relative; - float: left; - width: 123px; - height: 55px; - margin-right: 14px; - z-index: 999; - text-indent: -9999px; - background: #dc4136 url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE2LjAuNCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHdpZHRoPSI3NXB4IiBoZWlnaHQ9IjE4cHgiIHZpZXdCb3g9IjAgMCA3NSAxOCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNzUgMTgiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8Zz4KCTxwYXRoIGZpbGw9IiNFOUU5RTkiIGQ9Ik01LjQ4Miw0LjQxM0gxLjMxM1YyLjI1MWgxMC44NzN2Mi4xNjFIOC4wNDF2MTIuMjYzSDUuNDgyVjQuNDEzeiIvPgoJPHBhdGggZmlsbD0iI0U5RTlFOSIgZD0iTTExLjk1OCw1Ljg0NmgyLjA5NWwwLjE3NywxLjkxOGgwLjA4OWMwLjc3MS0xLjQxLDEuOTE4LTIuMTgzLDMuMDY1LTIuMTgzYzAuNTUxLDAsMC45MDMsMC4wNjYsMS4yMzQsMC4yMgoJCWwtMC40NDEsMi4yMDZjLTAuMzc1LTAuMTEtMC42NjEtMC4xNzYtMS4xMjUtMC4xNzZjLTAuODU5LDAtMS44OTYsMC41OTUtMi41NTgsMi4yMjh2Ni42MTZoLTIuNTM2VjUuODQ2eiIvPgoJPHBhdGggZmlsbD0iI0U5RTlFOSIgZD0iTTI1LjU0NCw5Ljc1Yy0wLjAyMy0xLjE0Ni0wLjUwOC0yLjExNy0xLjk2NC0yLjExN2MtMS4wOCwwLTIuMDk1LDAuNDg0LTMuMDQzLDEuMDU4bC0wLjkyNy0xLjY5OAoJCWMxLjE5LTAuNzUsMi43MTMtMS40MTEsNC40MzMtMS40MTFjMi43MTQsMCw0LjAzOCwxLjY1NCw0LjAzOCw0LjY3NXY2LjQxOWgtMi4wNzRsLTAuMTk4LTEuMTloLTAuMDY2CgkJYy0wLjk3MSwwLjgxNi0yLjA3MywxLjQ1NS0zLjM1MywxLjQ1NWMtMS44OTcsMC0zLjIyLTEuMjc5LTMuMjItMy4xNzZDMTkuMTcsMTEuNDQ4LDIxLjExMSwxMC4yMzUsMjUuNTQ0LDkuNzV6IE0yMy4xODQsMTQuOTU2CgkJYzAuODgyLDAsMS41NjYtMC40NDEsMi4zNi0xLjE5MXYtMi40MjdjLTIuOTM0LDAuMzc2LTMuOTA0LDEuMTQ3LTMuOTA0LDIuMjI5QzIxLjY0LDE0LjUzNiwyMi4yOCwxNC45NTYsMjMuMTg0LDE0Ljk1NnoiLz4KCTxwYXRoIGZpbGw9IiNFOUU5RTkiIGQ9Ik0yOC44MDYsNS44NDZoMi41ODFsMS43Miw1LjYyNGMwLjI4NywxLjA1OSwwLjYxOCwyLjE2MSwwLjkwNCwzLjI2NWgwLjA4OAoJCWMwLjMxLTEuMTA0LDAuNjE4LTIuMjA2LDAuOTI3LTMuMjY1bDEuNzItNS42MjRoMi40NDhsLTMuNjgzLDEwLjgyOWgtMi45MzRMMjguODA2LDUuODQ2eiIvPgoJPHBhdGggZmlsbD0iI0U5RTlFOSIgZD0iTTQwLjE0NSwyLjUxNmMwLTAuODYsMC42NjEtMS40NTYsMS41NjUtMS40NTZzMS41NjYsMC41OTYsMS41NjYsMS40NTZjMCwwLjgzOC0wLjY2MiwxLjQzNC0xLjU2NiwxLjQzNAoJCVM0MC4xNDUsMy4zNTQsNDAuMTQ1LDIuNTE2eiBNNDAuNDMxLDUuODQ2aDIuNTM3djEwLjgyOWgtMi41MzdWNS44NDZ6Ii8+Cgk8cGF0aCBmaWxsPSIjRTlFOUU5IiBkPSJNNDUuNjEzLDEzLjgwOWMwLjk3LDAuNzQ5LDEuODk2LDEuMjEzLDIuOTk5LDEuMjEzYzEuMTcsMCwxLjcyMS0wLjU1MiwxLjcyMS0xLjMwMQoJCWMwLTAuOTA2LTEuMTY5LTEuMzAzLTIuMzE2LTEuNzQ0Yy0xLjQzNC0wLjUyOS0zLjA0My0xLjM0NC0zLjA0My0zLjE1MmMwLTEuODk4LDEuNTIxLTMuMjQzLDMuOTQ4LTMuMjQzCgkJYzEuNDk5LDAsMi43MTMsMC42MTgsMy41OTQsMS4zMDJsLTEuMTY4LDEuNTQzQzUwLjU5Nyw3Ljg3NSw0OS44MjYsNy41LDQ4Ljk2NSw3LjVjLTEuMDgyLDAtMS41ODgsMC41MDctMS41ODgsMS4xOQoJCWMwLDAuODM5LDEuMDgsMS4xOTEsMi4yNDksMS42MWMxLjQ3OSwwLjU1MiwzLjEwOSwxLjI1OCwzLjEwOSwzLjI4N2MwLDEuODUyLTEuNDc4LDMuMzUyLTQuMjEyLDMuMzUyCgkJYy0xLjQ3OCwwLTMuMDQ0LTAuNjM5LTQuMTAyLTEuNUw0NS42MTMsMTMuODA5eiIvPgoJPHBhdGggZmlsbD0iI0U5RTlFOSIgZD0iTTY1LjE3NiwxLjk4N2MxLjc2NCwwLDMuMTk4LDAuODU5LDQuMTAyLDEuODNsLTEuNDExLDEuNTg4Yy0wLjc1LTAuNzI5LTEuNTY1LTEuMTktMi42NjktMS4xOQoJCWMtMi4zNiwwLTQuMDU4LDEuOTg1LTQuMDU4LDUuMjI4YzAsMy4yODYsMS41NjUsNS4yNywzLjk2OSw1LjI3YzEuMjgsMCwyLjIyOC0wLjUyOCwzLjA0NS0xLjQzMmwxLjQxMSwxLjU2NQoJCWMtMS4xNjksMS4zNDUtMi42NjgsMi4wOTUtNC40OTksMi4wOTVjLTMuNjYxLDAtNi41NTEtMi42NDYtNi41NTEtNy40MzNDNTguNTE1LDQuNzg4LDYxLjQ3LDEuOTg3LDY1LjE3NiwxLjk4N3oiLz4KCTxwYXRoIGZpbGw9IiNFOUU5RTkiIGQ9Ik03MS4xMjgsMi4yNTFoMi41NTl2MTQuNDI0aC0yLjU1OVYyLjI1MXoiLz4KPC9nPgo8L3N2Zz4K') no-repeat 20px 18px; } - #top #logo a { - display: block; } - #top ul { - margin: 0; - padding: 0; - list-style: none; - line-height: 30px; } - #top #navigation { - height: 0; - overflow: hidden; } - #top #navigation.is-open { - height: auto; } - #top a, #top span { - color: #fff; - text-decoration: none; } - #top li { - border-top: 1px solid #31363d; } - #top li a, #top li span { - display: block; - padding: 0 12px; } - #top li a:hover, #top li span:hover { - color: #ADC7D0; } - #top a.werehiring { - background-color: #31363d; - border-radius: 4px; - padding: 8px 16px; - line-height: 20px; - margin-right: 80px; - display: inline; } - #top li.traviscicom a { - padding-left: 0px; } - @media only screen and (min-width:40.063em) { - #top { - overflow: visible; - height: 55px; } - #top #navigation { - height: auto; - overflow: visible; } - #top ul { - line-height: 55px; - position: relative; - top: 3px; } - #top li { - display: inline-block; - border: none; } } - @media only screen and (min-width:40.063em) and (max-width:64em) { - #top li.traviscicom { - display: none; } - } - #top .nav-burger { - overflow: auto; } - @media only screen and (min-width:40.063em) { - #top .nav-burger { - display: none; } } - #top #burger { - float: right; - font-size: 50px; - background: none; - border: none; - line-height: 1; - color: #fff; - outline: none !important; } - #top #burger:before, #top #burger:after { - content: ""; - display: table; } - #top #burger:after { - clear: both; } - #top #burger:hover { - cursor: pointer; } - #top .menu { - position: relative; } - #top .menu.signed-out ul { - display: none; } - #top .menu .handle { - margin: 0; } - #top .menu:hover > ul { - display: block; } - #top .menu ul li a { - padding-left: 3em; } - @media only screen and (min-width:40.063em) { - #top .menu ul { - display: none; - position: absolute; - z-index: 300; - right: 0px; - top: 52px; - width: 100%; - background-color: #40454f; } - #top .menu ul li { - display: block; } - #top .menu ul li a { - display: block; - line-height: 24px; - white-space: nowrap; - padding: 5px 20px; } - #top .menu ul li a:hover { - background-color: #30343b; } - } - #top .menu.community { - min-width: 120px; } - #top .user { - text-align: right; } - #top .menu.profile .signing-in { - background: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSI4Ij4KPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOCwgNCkiPgogIDxyZWN0IHg9Ii04IiB5PSItNCIgd2lkdGg9IjUiIGhlaWdodD0iOCI+CiAgICA8YW5pbWF0ZVRyYW5zZm9ybSBpZD0iYSIgYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJzY2FsZSIgZnJvbT0iMSwwLjUiIHRvPSIxIiBkdXI9IjAuNHMiIGJlZ2luPSIwO2IuZW5kIi8+CiAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJmaWxsIiBmcm9tPSIjZWVlIiB0bz0iIzg4OCIgZHVyPSIwLjRzIiBiZWdpbj0iMDtiLmVuZCIvPgogICAgPGFuaW1hdGVUcmFuc2Zvcm0gaWQ9ImIiIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0ic2NhbGUiIGZyb209IjEiIHRvPSIxLDAuNSIgZHVyPSIwLjRzIiBiZWdpbj0iYS5lbmQiLz4KICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImZpbGwiIGZyb209IiM4ODgiIHRvPSIjZWVlIiBkdXI9IjAuNHMiIGJlZ2luPSJhLmVuZCIvPgogIDwvcmVjdD4KICA8cmVjdCB4PSItMiIgeT0iLTQiIHdpZHRoPSI0IiBoZWlnaHQ9IjgiPgogICAgPGFuaW1hdGVUcmFuc2Zvcm0gaWQ9ImMiIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0ic2NhbGUiIGZyb209IjEsMC41IiB0bz0iMSIgZHVyPSIwLjRzIiBiZWdpbj0iMC4xcztkLmVuZCIvPgogICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iZmlsbCIgZnJvbT0iI2VlZSIgdG89IiM4ODgiIGR1cj0iMC40cyIgYmVnaW49IjAuMXM7ZC5lbmQiLz4KICAgIDxhbmltYXRlVHJhbnNmb3JtIGlkPSJkIiBiZWdpbj0iYy5lbmQiIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0ic2NhbGUiIHRvPSIxLDAuNSIgZnJvbT0iMSIgZHVyPSIwLjRzIi8+CiAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJmaWxsIiBmcm9tPSIjODg4IiB0bz0iI2VlZSIgZHVyPSIwLjRzIiBiZWdpbj0iYy5lbmQiLz4KICA8L3JlY3Q+CiAgPHJlY3QgeD0iMyIgeT0iLTQiIHdpZHRoPSI1IiBoZWlnaHQ9IjgiPgogICAgPGFuaW1hdGVUcmFuc2Zvcm0gaWQ9ImUiIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0ic2NhbGUiIGZyb209IjEsMC41IiB0bz0iMSIgZHVyPSIwLjRzIiBiZWdpbj0iMC4ycztmLmVuZCIvPgogICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iZmlsbCIgZnJvbT0iI2VlZSIgdG89IiM4ODgiIGR1cj0iMC40cyIgYmVnaW49IjAuMnM7Zi5lbmQiLz4KICAgIDxhbmltYXRlVHJhbnNmb3JtIGlkPSJmIiBhdHRyaWJ1dGVOYW1lPSJ0cmFuc2Zvcm0iIHR5cGU9InNjYWxlIiBmcm9tPSIxIiB0bz0iMSwwLjUiIGR1cj0iMC40cyIgYmVnaW49ImUuZW5kIi8+CiAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJmaWxsIiBmcm9tPSIjODg4IiB0bz0iI2VlZSIgZHVyPSIwLjRzIiBiZWdpbj0iZS5lbmQiLz4KICA8L3JlY3Q+CjwvZz4KPC9zdmc+Cgo=') no-repeat 110px 22px; } - #top .menu.profile img { - width: 30px; - height: 30px; - border-radius: 100px; } - #top .menu.profile ul { - min-width: 145px; } - #top .menu.profile ul a { - padding: 5px 25px 5px 45px; } - @media only screen and (min-width:40.063em) { - #top .menu.profile { - float: right; } - #top .menu.profile .handle > * { - display: none; - padding: 0 15px 0 45px; } - #top .menu.profile .signed-out, #top .menu.profile .signing-in { - min-width: 110px; } - #top .menu.profile.signed-out .signed-out { - display: block; } - #top .menu.profile.signing-in .signing-in { - display: inline-block; } - #top .menu.profile.signed-in .signed-in { - display: block; } } - #top .menu.profile:not(.signed-in):hover ul { - display: none; } - - #home #navigation .home, #stats #navigation .stats, #profile #navigation .profile { - background-color: transparent; } - #home #navigation .home a, #stats #navigation .stats a, #profile #navigation .profile a { - color: #ffffff; } - #home #navigation .home a:hover, #stats #navigation .stats a:hover, #profile #navigation .profile a:hover { - color: #ADC7D0; } - - #top img { - margin: 10px 10px 7px 10px; - width: 30px; - height: 30px; - border-radius: 100px; } - @media only screen and (min-width:40.063em) { - #top img { - float: right; - margin: 10px 0 0 10px; } } - - .maintenance { - height: 100%; - overflow: hidden; } - .maintenance .full-size { - position: absolute; - top: 0; - height: 100%; - width: 100%; - overflow: hidden; - background-repeat: no-repeat; } - - .main--error { - min-height: 100%; } - - .maintenance-text { - position: absolute; - left: 0; - right: 0; - z-index: 10; } - .maintenance-text h1 { - margin: 1em 0 0.4em; - font-weight: 600; - color: #357389; - font-size: 40px; - line-height: 1; - text-align: center; } - @media only screen and (min-width:40.063em) { - .maintenance-text h1 { - margin: 1.5em 0 0.4em; - font-size: 70px; } } - .maintenance-text p { - padding: 0 1em; - color: #9d9fa1; - font-size: 18px; - text-align: center; } - .maintenance-text a { - color: #9d9fa1; } - .maintenance-text a:hover, .maintenance-text a:focus { - color: #9d9fa1; - text-decoration: underline; } - - .icon-twitter { - display: inline-block; - width: 1.1em; - height: 1.1em; - background-image: url(../images/error/twitter.svg); - background-repeat: no-repeat; - background-size: 100% auto; - background-position: 0 0.2em; } - - .maintenance .maintenance-bg { - background: -webkit-linear-gradient(90deg, #8cad7d, #8cad7d 38.9%, #ccebf7 39%, #fff 60%, #fff); - background: linear-gradient(0deg, #8cad7d, #8cad7d 38.9%, #ccebf7 39%, #fff 60%, #fff); } - .maintenance .hill-left { - background-image: url(../images/error/maintenance-hills-left.svg); - background-size: 80vw auto; - background-position: 0 58%; } - @media only screen and (min-width:40.063em) { - .maintenance .hill-left { - background-size: 58vw auto; - background-position: 0 58%; } } - @media only screen and (min-width:64.063em) { - .maintenance .hill-left { - background-size: 50vw auto; - background-position: 0 56%; } } - .maintenance .hill-right { - background-image: url(../images/error/maintenance-hills-right.svg); - background-size: 38vw auto; - background-position: 99% 59%; - display: none; } - @media only screen and (min-width:40.063em) { - .maintenance .hill-right { - display: block; } } - .maintenance .shadow-left { - background-image: url(../images/error/maintenance-grass-shade-left.svg); - background-size: 24vw auto; - background-position: 6% 72%; } - .maintenance .shadow-right { - background-image: url(../images/error/maintenance-grass-shade-right.svg); - background-size: 17vw auto; - background-position: 95% 79%; } - .maintenance .maintenance-tractor { - background-image: url(../images/error/maintenance-tractor.svg); - background-size: 87vw auto; - background-position: 63% 87%; } - @media only screen and (min-width:40.063em) { - .maintenance .maintenance-tractor { - background-size: auto 44vh; - background-position: 63% 83%; } } - </style> - + <link rel="stylesheet" href="../assets/travis.css"> </head> <body> From 258300fb21c0512dd89558bc3beef1b1d9b7b1e1 Mon Sep 17 00:00:00 2001 From: Lisa Passing <mail@lislis.de> Date: Mon, 16 Feb 2015 16:29:59 +0100 Subject: [PATCH 07/26] remove maintenance from app, as it is now a .html file --- app/router.coffee | 1 - app/templates/maintenance.hbs | 11 ----------- app/views/maintenance.coffee | 7 ------- 3 files changed, 19 deletions(-) delete mode 100644 app/templates/maintenance.hbs delete mode 100644 app/views/maintenance.coffee diff --git a/app/router.coffee b/app/router.coffee index e161fc11..24d337ef 100644 --- a/app/router.coffee +++ b/app/router.coffee @@ -52,7 +52,6 @@ Router.map -> @resource 'account', path: '/:login' @route 'info', path: '/info' - @route 'maintenance', path: '/maintenance' @route 'error500', path: '/500' @route 'error404', path: '/*path' diff --git a/app/templates/maintenance.hbs b/app/templates/maintenance.hbs deleted file mode 100644 index 957b4ab8..00000000 --- a/app/templates/maintenance.hbs +++ /dev/null @@ -1,11 +0,0 @@ -<div class="maintenance-bg full-size"> - <div class="hill-left full-size"></div> - <div class="hill-right full-size"></div> - <div class="shadow-left full-size"></div> - <div class="shadow-right full-size"></div> -</div> -<div class="maintenance-tractor full-size"></div> -<div class="maintenance-text"> - <h1>Under Maintenance</h1> - <p>Stay up to date with Travis CI by <a href="https://twitter.com/travisci" title="Travis CI on Twitter">following us <span class="icon-twitter"></span></a></p> -</div> diff --git a/app/views/maintenance.coffee b/app/views/maintenance.coffee deleted file mode 100644 index 22e526e3..00000000 --- a/app/views/maintenance.coffee +++ /dev/null @@ -1,7 +0,0 @@ -`import BasicView from 'travis/views/basic'` - -View = BasicView.extend - layoutName: 'layouts/error' - classNames: ['error maintenance'] - -`export default View` From 545facfb227293dcb2636d17348d50b5f655d5fd Mon Sep 17 00:00:00 2001 From: Lisa Passing <mail@lislis.de> Date: Thu, 12 Feb 2015 12:20:28 +0100 Subject: [PATCH 08/26] bring back travis-pro in top --- app/styles/app/top.sass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/styles/app/top.sass b/app/styles/app/top.sass index b9e501bd..5dd7200f 100644 --- a/app/styles/app/top.sass +++ b/app/styles/app/top.sass @@ -55,7 +55,7 @@ display: inline-block border: none - @media #{$medium} + @media #{$medium-only} li.traviscicom display: none From 4eda7ec0d0e69e087141b6024a30ac28e2be4b0d Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki <drogus@gmail.com> Date: Thu, 12 Feb 2015 12:16:10 +0100 Subject: [PATCH 09/26] Fix loading indicator on profile page --- app/styles/app/loading.sass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/styles/app/loading.sass b/app/styles/app/loading.sass index 1a66a3bc..741431fa 100644 --- a/app/styles/app/loading.sass +++ b/app/styles/app/loading.sass @@ -1,5 +1,5 @@ -div.loading +div.loading, p.loading padding: 15px 25px 0 0 span padding-right: 25px From 3af2ca192c66bfbf785be74d2e4438df0363e180 Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki <drogus@gmail.com> Date: Thu, 12 Feb 2015 12:19:04 +0100 Subject: [PATCH 10/26] Replace title by a ruby server --- app/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/index.html b/app/index.html index 993dbc13..7d63a71d 100644 --- a/app/index.html +++ b/app/index.html @@ -3,7 +3,7 @@ <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> - <title>Travis</title> + <title>{{title}}</title> <meta name="description" content=""> <meta name="viewport" content="width=device-width, initial-scale=1"> From 3d0920ecb289076812c6941045bd2704be600571 Mon Sep 17 00:00:00 2001 From: Lisa Passing <mail@lislis.de> Date: Thu, 12 Feb 2015 12:36:33 +0100 Subject: [PATCH 11/26] fix top bar stacing issues --- app/styles/app/top.sass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/styles/app/top.sass b/app/styles/app/top.sass index 5dd7200f..a830aeca 100644 --- a/app/styles/app/top.sass +++ b/app/styles/app/top.sass @@ -1,6 +1,6 @@ #top - font-size: $font-size-small + font-size: $font-size-normal background : $topbar-bg height: 55px overflow: hidden From 997e68351cbe318dc085ee172081bc97b5791577 Mon Sep 17 00:00:00 2001 From: Lisa Passing <mail@lislis.de> Date: Thu, 12 Feb 2015 12:49:51 +0100 Subject: [PATCH 12/26] fix align of hook switched --- app/styles/app/profile/hooks.sass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/styles/app/profile/hooks.sass b/app/styles/app/profile/hooks.sass index 6cece36d..7d6b6b09 100644 --- a/app/styles/app/profile/hooks.sass +++ b/app/styles/app/profile/hooks.sass @@ -51,7 +51,7 @@ .controls position: absolute - top: 10px + top: 8px right: 0 white-space: nowrap a From 10da41b29e8ce5740396164da4b9e8c25b2aeae3 Mon Sep 17 00:00:00 2001 From: Lisa Passing <mail@lislis.de> Date: Thu, 12 Feb 2015 13:08:18 +0100 Subject: [PATCH 13/26] bring back fixed width sidebars --- app/styles/app/layout.sass | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/styles/app/layout.sass b/app/styles/app/layout.sass index 646327ff..d3d173b2 100644 --- a/app/styles/app/layout.sass +++ b/app/styles/app/layout.sass @@ -53,11 +53,12 @@ .wrapper-main overflow: hidden & > div:first-child:nth-last-child(2) - width: grid-calc(18, 24) + width: grid-calc(20, 24) float: left & > div:first-child:nth-last-child(2) ~ div - width: grid-calc(6, 24) + width: grid-calc(4, 24) + max-width: 180px float: right .maximized @@ -75,6 +76,7 @@ width: grid-calc(5, 24) float: left margin-left: -100% + max-width: 325px .wrapper-main width: grid-calc(19, 24) From d2305baa60a97c9d3e92abe35f9df8fa6a11b1a8 Mon Sep 17 00:00:00 2001 From: Lisa Passing <mail@lislis.de> Date: Thu, 12 Feb 2015 15:07:02 +0100 Subject: [PATCH 14/26] finally get profile page full-height while loading --- app/styles/app/layout.sass | 14 ++++++++------ app/styles/app/tabs.sass | 4 ---- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/app/styles/app/layout.sass b/app/styles/app/layout.sass index d3d173b2..022777e9 100644 --- a/app/styles/app/layout.sass +++ b/app/styles/app/layout.sass @@ -2,7 +2,8 @@ .centered .row max-width: 1024px -.main, .profile-view +.main, +.profile-view position: relative width: 100% min-height: 100vh @@ -14,13 +15,10 @@ #not-found #main padding: 100px 50px 0 50px - -#left, #right +#left, #right, .wrapper-main position: relative - min-height: 100% #left - min-height: 100% padding: 0 0 110px 0 background-color: #fbfbfa border-right: 1px solid $color-border-normal @@ -52,6 +50,7 @@ // layout magic http://lea.verou.me/2011/01/styling-children-based-on-their-number-with-css3/ .wrapper-main overflow: hidden + height: 100% & > div:first-child:nth-last-child(2) width: grid-calc(20, 24) float: left @@ -63,7 +62,6 @@ .maximized .wrapper-main - overflow: hidden & > div:first-child:nth-last-child(2) width: grid-calc(24, 24) float: none @@ -72,6 +70,10 @@ display: none @media #{$large-up} + + #left, #right, .wrapper-main + min-height: 100vh + #left width: grid-calc(5, 24) float: left diff --git a/app/styles/app/tabs.sass b/app/styles/app/tabs.sass index 6c00f3e6..94a1c02c 100644 --- a/app/styles/app/tabs.sass +++ b/app/styles/app/tabs.sass @@ -72,10 +72,6 @@ #tab_new.display display: inline-block - @media #{$medium-up} - .tab - min-height: 100vh - #main .tabs border-bottom: 3px solid #f5f5f6 From f17f0ceb7b01475575cacada6a7642d4fcf24f58 Mon Sep 17 00:00:00 2001 From: Lisa Passing <mail@lislis.de> Date: Thu, 12 Feb 2015 16:03:35 +0100 Subject: [PATCH 15/26] add burger toggle --- app/controllers/top.coffee | 5 +++++ app/styles/app/top.sass | 20 ++++++++++++++------ app/templates/top.hbs | 4 ++-- 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/app/controllers/top.coffee b/app/controllers/top.coffee index b71beef0..196b6df7 100644 --- a/app/controllers/top.coffee +++ b/app/controllers/top.coffee @@ -12,4 +12,9 @@ Controller = Ember.Controller.extend "#{location.protocol}//www.gravatar.com/avatar/#{@get('user.gravatarId')}?s=48&d=mm" ).property('user.gravatarId') + actions: { + toggleBurgerMenu: -> + @toggleProperty('is-open') + } + `export default Controller` diff --git a/app/styles/app/top.sass b/app/styles/app/top.sass index a830aeca..3904a624 100644 --- a/app/styles/app/top.sass +++ b/app/styles/app/top.sass @@ -2,8 +2,6 @@ #top font-size: $font-size-normal background : $topbar-bg - height: 55px - overflow: hidden #logo position: relative @@ -21,6 +19,12 @@ @include resetul line-height: 30px + #navigation + height: 0 + overflow: hidden + &.is-open + height: auto + a, span color: $white text-decoration: none @@ -47,6 +51,11 @@ @media #{$medium-up} overflow: visible + height: 55px + + #navigation + height: auto + overflow: visible ul line-height: 55px position: relative @@ -76,13 +85,12 @@ &:hover cursor: pointer - - &.is-open - height: auto - .menu position: relative + &.signed-out + ul + display: none .handle margin: 0 diff --git a/app/templates/top.hbs b/app/templates/top.hbs index cd49aca9..dcd73aa1 100644 --- a/app/templates/top.hbs +++ b/app/templates/top.hbs @@ -5,10 +5,10 @@ {{/link-to}} <div class="nav-burger"> - <button type="button" id="burger">≡</button> + <button type="button" id="burger" {{action 'toggleBurgerMenu'}}>≡</button> </div> -<ul id="navigation"> +<ul id="navigation" {{bind-attr class="is-open"}}> <li class="home"> {{#link-to "main"}}Home{{/link-to}} </li> From 7375fbb440142116d1c0ab0b9622f002ef47b5d4 Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki <drogus@gmail.com> Date: Thu, 12 Feb 2015 18:48:32 +0100 Subject: [PATCH 16/26] Explicitly return false from toggleBurgerMenu to not bubble action --- app/controllers/top.coffee | 1 + 1 file changed, 1 insertion(+) diff --git a/app/controllers/top.coffee b/app/controllers/top.coffee index 196b6df7..614d18ea 100644 --- a/app/controllers/top.coffee +++ b/app/controllers/top.coffee @@ -15,6 +15,7 @@ Controller = Ember.Controller.extend actions: { toggleBurgerMenu: -> @toggleProperty('is-open') + return false } `export default Controller` From 0285cd3a96a61bcdedbc1d1e04f6cf791239c781 Mon Sep 17 00:00:00 2001 From: Lisa Passing <mail@lislis.de> Date: Fri, 13 Feb 2015 11:58:53 +0100 Subject: [PATCH 17/26] push hills around --- app/styles/app/layouts/error.sass | 34 ++++++++++++++++--------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/app/styles/app/layouts/error.sass b/app/styles/app/layouts/error.sass index b55169ad..d6f4b108 100644 --- a/app/styles/app/layouts/error.sass +++ b/app/styles/app/layouts/error.sass @@ -67,22 +67,24 @@ @include error-bg-gradient($error-sand) .hill-left background-image: url(../images/error/500-hills-left.svg) - @include error-position-img(38vw auto, 0 62%) + @include error-position-img(38vw auto, 0 58%) + @media #{$medium-up} + @include error-position-img(38vw auto, 0 54%) .hill-right background-image: url(../images/error/500-hills-right.svg) - @include error-position-img(38vw auto, 99% 63%) + @include error-position-img(38vw auto, 99% 58%) display: none @media #{$medium-up} display: block .shadow-left background-image: url(../images/error/500-hills-shade-left.svg) - @include error-position-img(24vw auto, 6% 82%) + @include error-position-img(24vw auto, 6% 72%) .shadow-right background-image: url(../images/error/500-hills-shade-right.svg) - @include error-position-img(17vw auto, 95% 89%) + @include error-position-img(17vw auto, 95% 79%) .road background-image: url(../images/error/500-road.svg) - @include error-position-img(auto 40vh, 30% 91.3%) + @include error-position-img(auto 40vh, 42% 91.3%) .error404 .error-bg @@ -90,16 +92,16 @@ .hill-left display: none background-image: url(../images/error/404-hills-left.svg) - @include error-position-img(30vw auto, 0 (100% - 37%)) + @include error-position-img(30vw auto, 0 58%) @media #{$medium-up} display: block .hill-right background-image: url(../images/error/404-hills-right.svg) - @include error-position-img(auto 20vw, 99% 63%) + @include error-position-img(auto 20vw, 99% 58%) @media #{$medium-up} - @include error-position-img(50vw auto, 99% 63%) + @include error-position-img(50vw auto, 99% 58%) @media #{$large-up} - @include error-position-img(50vw auto, 99% 61%) + @include error-position-img(50vw auto, 99% 54%) .error-excavator background-image: url(../images/error/excavator.svg) @include error-position-img(auto 25vh, 71% 83%) @@ -117,26 +119,26 @@ @include error-bg-gradient($maintenance-grass) .hill-left background-image: url(../images/error/maintenance-hills-left.svg) - @include error-position-img(80vw auto, 0 62%) + @include error-position-img(80vw auto, 0 56%) @media #{$medium-up} - @include error-position-img(58vw auto, 0 62%) + @include error-position-img(58vw auto, 0 58%) @media #{$large-up} - @include error-position-img(50vw auto, 0 61%) + @include error-position-img(50vw auto, 0 52%) .hill-right background-image: url(../images/error/maintenance-hills-right.svg) - @include error-position-img(38vw auto, 99% 63%) + @include error-position-img(38vw auto, 99% 59%) display: none @media #{$medium-up} display: block .shadow-left background-image: url(../images/error/maintenance-grass-shade-left.svg) - @include error-position-img(24vw auto, 6% 82%) + @include error-position-img(24vw auto, 6% 72%) .shadow-right background-image: url(../images/error/maintenance-grass-shade-right.svg) - @include error-position-img(17vw auto, 95% 89%) + @include error-position-img(17vw auto, 95% 79%) .maintenance-tractor background-image: url(../images/error/maintenance-tractor.svg) @include error-position-img(87vw auto, 63% 87%) @media #{$medium-up} - @include error-position-img(auto 40vh, 63% 87%) + @include error-position-img(auto 44vh, 63% 83%) From b2b70b592fa9615995bef5039cd6d11f84116dd9 Mon Sep 17 00:00:00 2001 From: Lisa Passing <mail@lislis.de> Date: Fri, 13 Feb 2015 12:00:46 +0100 Subject: [PATCH 18/26] add burger markup to error pages --- app/templates/layouts/error.hbs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/templates/layouts/error.hbs b/app/templates/layouts/error.hbs index d4401b49..89952183 100644 --- a/app/templates/layouts/error.hbs +++ b/app/templates/layouts/error.hbs @@ -4,9 +4,9 @@ <h1>{{#link-to "main"}}Home{{/link-to}}</h1> </div> <div class="nav-burger"> - <button type="button" id="burger">≡</button> + <button type="button" id="burger" {{action 'toggleBurgerMenu'}}>≡</button> </div> - <ul> + <ul id="navigation" {{bind-attr class="is-open"}}> <li><a href="#">Blog</a></li> <li><a href="#">Status</a></li> <!-- <div class="small-4 medium-3 columns" id="status"> From 7e1168cae222b04810f20f3d8491ab451d3c6cbb Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki <drogus@gmail.com> Date: Fri, 13 Feb 2015 14:13:45 +0100 Subject: [PATCH 19/26] Add a simple acceptance test for dashboard and tooling needed to run it Apart from adding a test, this commit also adds a dummy implementation for Auth that can be used in tests to control the auth status. --- app/initializers/auth.coffee | 3 +- app/utils/computed-limit.js | 4 +- app/utils/test-auth.coffee | 51 ++++++++++++++++++++ bower.json | 3 +- package.json | 1 + tests/acceptance/dashboard-test.coffee | 67 ++++++++++++++++++++++++++ tests/helpers/start-app.js | 6 +++ 7 files changed, 131 insertions(+), 4 deletions(-) create mode 100644 app/utils/test-auth.coffee create mode 100644 tests/acceptance/dashboard-test.coffee diff --git a/app/initializers/auth.coffee b/app/initializers/auth.coffee index 85e12452..befb2174 100644 --- a/app/initializers/auth.coffee +++ b/app/initializers/auth.coffee @@ -1,7 +1,8 @@ `import Auth from 'travis/utils/auth'` +`import TestAuth from 'travis/utils/test-auth'` initialize = (container, app) -> - app.register 'auth:main', Auth + app.register 'auth:main', if Ember.testing then TestAuth else Auth app.inject('route', 'auth', 'auth:main') app.inject('controller', 'auth', 'auth:main') diff --git a/app/utils/computed-limit.js b/app/utils/computed-limit.js index 3d769069..e594acef 100644 --- a/app/utils/computed-limit.js +++ b/app/utils/computed-limit.js @@ -2,7 +2,7 @@ import Ember from 'ember'; var limit = function(dependentKey, limitKey) { var options = { - addedItem: function(array, item, changeMeta, instanceMeta) { + addedItem: function(array, item, changeMeta) { var limit = Ember.get(this, limitKey); if (changeMeta.index < limit) { array.insertAt(changeMeta.index, item); @@ -12,7 +12,7 @@ var limit = function(dependentKey, limitKey) { } return array; }, - removedItem: function(array, item, changeMeta, instanceMeta) { + removedItem: function(array, item, changeMeta) { var limit = Ember.get(this, limitKey); if (changeMeta.index < limit && changeMeta.index < Ember.get(array, 'length')) { array.removeAt(changeMeta.index, 1); diff --git a/app/utils/test-auth.coffee b/app/utils/test-auth.coffee new file mode 100644 index 00000000..fdffd7a3 --- /dev/null +++ b/app/utils/test-auth.coffee @@ -0,0 +1,51 @@ +`import Ember from 'ember'` + +Auth = Ember.Object.extend + state: 'signed-out' + + # I want to disable auto sign in for tests for now, the plan is to either + # explicitly say that you're signed in or out (the latter being the default) + autoSignIn: (->) + + signOutForTests: -> + @set('state', 'signed-out') + @set('currentUser', null) + + signInForTests: (user) -> + @set('state', 'signed-in') + if user.constructor.typeKey? != 'user' + @store.pushPayload(users: [user]) + user = @store.recordForId('user', user.id) + + @set('currentUser', user) + + # TODO: we use these properties in templates, but there + # really should be something like a 'session' service that can be + # injected where we need it + userName: (-> + @get('currentUser.name') || @get('currentUser.login') + ).property('currentUser.login', 'currentUser.name') + + gravatarUrl: (-> + "#{location.protocol}//www.gravatar.com/avatar/#{@get('currentUser.gravatarId')}?s=48&d=mm" + ).property('currentUser.gravatarId') + + permissions: Ember.computed.alias('currentUser.permissions') + + signedIn: (-> + @get('state') == 'signed-in' + ).property('state') + + signedOut: (-> + @get('state') == 'signed-out' + ).property('state') + + signingIn: (-> + @get('state') == 'signing-in' + ).property('state') + + token: -> + if @get('state') == 'signed-in' + 'a-token' + +`export default Auth` diff --git a/bower.json b/bower.json index 9c9c3106..41e6caee 100644 --- a/bower.json +++ b/bower.json @@ -17,6 +17,7 @@ "JavaScript-MD5": "~1.1.0", "moment": "~2.9.0", "jquery-timeago": "~1.4.1", - "pusher": "~2.2.3" + "pusher": "~2.2.3", + "pretender": "0.1.0" } } diff --git a/package.json b/package.json index 9a53e777..2c46dc0c 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,7 @@ "ember-cli-ic-ajax": "0.1.1", "ember-cli-inject-live-reload": "^1.3.0", "ember-cli-inline-images": "^0.0.3", + "ember-cli-pretender": "0.3.1", "ember-cli-qunit": "0.3.0", "ember-cli-sauce": "0.0.7", "ember-cli-uglify": "1.0.1", diff --git a/tests/acceptance/dashboard-test.coffee b/tests/acceptance/dashboard-test.coffee new file mode 100644 index 00000000..41ede825 --- /dev/null +++ b/tests/acceptance/dashboard-test.coffee @@ -0,0 +1,67 @@ +`import Ember from 'ember'` +`import startApp from '../helpers/start-app'` +`import Pretender from 'pretender'` + +application = null +server = null + +module 'Acceptance: Dashboard', + setup: -> + application = startApp() + Ember.run -> + application.auth.signInForTests(id: 1, login: 'drogus') + server = new Pretender -> + @get('/v3/repos', (request) -> + data = { + "@type": "repositories", + "repositories": [{ + "@type": "repository", + "active": true, + "id": 1, + "name": "travis-web", + "slug": "travis-ci/travis-web", + "description": "The Ember web client for Travis CI", + "github_language": "CoffeeScript", + "private": false, + "owner": { + "@type": "organization", + "id": 1, + "login": "travis-ci" + }, + "last_build": { + "@type": "build", + "id": 1, + "number": "1", + "state": "passed", + "duration": 20, + "started_at": "2015-02-05T09:58:31Z", + "finished_at": "2015-02-05T10:09:10Z" + } + }, { + "@type": "repository", + "active": true, + "id": 2, + "name": "travis-test", + "slug": "travis-ci/travis-test", + "private": false, + "owner": { + "@type": "organization", + "id": 87, + "login": "travis-ci" + }, + "last_build": null + }] + } + return [200, { "Content-Type": "application/json" }, JSON.stringify(data)] + ) + + teardown: -> + Ember.run application, 'destroy' + server.shutdown() + +test 'visiting /dashboard', -> + visit '/dashboard' + + andThen -> + equal find('.tiles .repo').length, 1, 'there should be one repo displayed on dashboard' + equal find('.tiles .repo').text(), 'travis-web', 'travis-web repository should be displayed' diff --git a/tests/helpers/start-app.js b/tests/helpers/start-app.js index 16cc7c39..5e64fef6 100644 --- a/tests/helpers/start-app.js +++ b/tests/helpers/start-app.js @@ -15,5 +15,11 @@ export default function startApp(attrs) { application.injectTestHelpers(); }); + // TODO: I'm not sure if this is the best thing to do, but it seems + // easiest for now. That way in tests I can just write: + // + // application.auth.signInForTests() + application.auth = application.__container__.lookup('auth:main'); + return application; } From a13370b392a0b0f7079e20d916f9488d92215e52 Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki <drogus@gmail.com> Date: Mon, 16 Feb 2015 12:28:40 +0100 Subject: [PATCH 20/26] Run only Sauce Labs on Travis --- .travis.yml | 3 +++ testem.json | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 8febc08b..ca777b12 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,9 @@ --- language: node_js +addons: + sauce_connect: true + sudo: false cache: diff --git a/testem.json b/testem.json index 3705233e..23afdf07 100644 --- a/testem.json +++ b/testem.json @@ -2,8 +2,8 @@ "framework": "qunit", "test_page": "tests/index.html?hidepassed", "launch_in_ci": [ - "PhantomJS", - "Chrome" + "SL_chrome", + "SL_firefox" ], "launch_in_dev": [ "PhantomJS", From 1f2f72677f3d58b3feb94b6e684cd7a9576f8cc7 Mon Sep 17 00:00:00 2001 From: Lisa Passing <mail@lislis.de> Date: Mon, 16 Feb 2015 14:33:28 +0100 Subject: [PATCH 21/26] push some hills around --- app/styles/app/layouts/error.sass | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/app/styles/app/layouts/error.sass b/app/styles/app/layouts/error.sass index d6f4b108..565c890e 100644 --- a/app/styles/app/layouts/error.sass +++ b/app/styles/app/layouts/error.sass @@ -67,12 +67,12 @@ @include error-bg-gradient($error-sand) .hill-left background-image: url(../images/error/500-hills-left.svg) - @include error-position-img(38vw auto, 0 58%) + @include error-position-img(auto 10vh, 0 58%) @media #{$medium-up} - @include error-position-img(38vw auto, 0 54%) + @include error-position-img(38vw auto, 0 58%) .hill-right background-image: url(../images/error/500-hills-right.svg) - @include error-position-img(38vw auto, 99% 58%) + @include error-position-img(38vw auto, 99% 59%) display: none @media #{$medium-up} display: block @@ -84,7 +84,9 @@ @include error-position-img(17vw auto, 95% 79%) .road background-image: url(../images/error/500-road.svg) - @include error-position-img(auto 40vh, 42% 91.3%) + @include error-position-img(auto 27vh, 42% 78%) + @media #{$medium-up} + @include error-position-img(auto 40vh, 42% 91.3%) .error404 .error-bg @@ -119,11 +121,11 @@ @include error-bg-gradient($maintenance-grass) .hill-left background-image: url(../images/error/maintenance-hills-left.svg) - @include error-position-img(80vw auto, 0 56%) + @include error-position-img(80vw auto, 0 58%) @media #{$medium-up} @include error-position-img(58vw auto, 0 58%) @media #{$large-up} - @include error-position-img(50vw auto, 0 52%) + @include error-position-img(50vw auto, 0 56%) .hill-right background-image: url(../images/error/maintenance-hills-right.svg) @include error-position-img(38vw auto, 99% 59%) From 6da7043c674fb1043af945c2b9f2436e150d9593 Mon Sep 17 00:00:00 2001 From: Lisa Passing <mail@lislis.de> Date: Mon, 16 Feb 2015 15:37:49 +0100 Subject: [PATCH 22/26] add maintenance.html --- public/maintenance.html | 1317 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 1317 insertions(+) create mode 100644 public/maintenance.html diff --git a/public/maintenance.html b/public/maintenance.html new file mode 100644 index 00000000..66bfa596 --- /dev/null +++ b/public/maintenance.html @@ -0,0 +1,1317 @@ +<!DOCTYPE html> +<html lang="en"><head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <title>Travis CI - Maintenance</title> + <meta name="description" content=""> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,800" rel="stylesheet" type="text/css"> + + <style> + html, body { + height: 100%; } + + *, *:before, *:after { + box-sizing: border-box; } + + html, body { + font-size: 13px; } + + body { + background: #fff; + color: #666; + padding: 0; + margin: 0; + font-family: 'Source Sans Pro', Helvetica, sans-serif; + font-weight: normal; + font-style: normal; + line-height: 22px; + position: relative; + cursor: auto; } + + + .row { + width: 100%; + margin-left: auto; + margin-right: auto; + margin-top: 0; + margin-bottom: 0; + max-width: 100%; } + .row:before, .row:after { + content: " "; + display: table; } + .row:after { + clear: both; } + .row.collapse > .column, .row.collapse > .columns { + padding-left: 0; + padding-right: 0; } + .row.collapse .row { + margin-left: 0; + margin-right: 0; } + .row .row { + width: auto; + margin-left: -0.9375rem; + margin-right: -0.9375rem; + margin-top: 0; + margin-bottom: 0; + max-width: none; } + .row .row:before, .row .row:after { + content: " "; + display: table; } + .row .row:after { + clear: both; } + .row .row.collapse { + width: auto; + margin: 0; + max-width: none; } + .row .row.collapse:before, .row .row.collapse:after { + content: " "; + display: table; } + .row .row.collapse:after { + clear: both; } + + .column, .columns { + padding-left: 0.9375rem; + padding-right: 0.9375rem; + width: 100%; + float: left; } + + [class*="column"] + [class*="column"]:last-child { + float: right; } + + [class*="column"] + [class*="column"].end { + float: left; } + + @media only screen { + .small-push-0 { + position: relative; + left: 0%; + right: auto; } + + .small-pull-0 { + position: relative; + right: 0%; + left: auto; } + + .small-push-1 { + position: relative; + left: 8.33333%; + right: auto; } + + .small-pull-1 { + position: relative; + right: 8.33333%; + left: auto; } + + .small-push-2 { + position: relative; + left: 16.66667%; + right: auto; } + + .small-pull-2 { + position: relative; + right: 16.66667%; + left: auto; } + + .small-push-3 { + position: relative; + left: 25%; + right: auto; } + + .small-pull-3 { + position: relative; + right: 25%; + left: auto; } + + .small-push-4 { + position: relative; + left: 33.33333%; + right: auto; } + + .small-pull-4 { + position: relative; + right: 33.33333%; + left: auto; } + + .small-push-5 { + position: relative; + left: 41.66667%; + right: auto; } + + .small-pull-5 { + position: relative; + right: 41.66667%; + left: auto; } + + .small-push-6 { + position: relative; + left: 50%; + right: auto; } + + .small-pull-6 { + position: relative; + right: 50%; + left: auto; } + + .small-push-7 { + position: relative; + left: 58.33333%; + right: auto; } + + .small-pull-7 { + position: relative; + right: 58.33333%; + left: auto; } + + .small-push-8 { + position: relative; + left: 66.66667%; + right: auto; } + + .small-pull-8 { + position: relative; + right: 66.66667%; + left: auto; } + + .small-push-9 { + position: relative; + left: 75%; + right: auto; } + + .small-pull-9 { + position: relative; + right: 75%; + left: auto; } + + .small-push-10 { + position: relative; + left: 83.33333%; + right: auto; } + + .small-pull-10 { + position: relative; + right: 83.33333%; + left: auto; } + + .small-push-11 { + position: relative; + left: 91.66667%; + right: auto; } + + .small-pull-11 { + position: relative; + right: 91.66667%; + left: auto; } + + .column, .columns { + position: relative; + padding-left: 0.9375rem; + padding-right: 0.9375rem; + float: left; } + + .small-1 { + width: 8.33333%; } + + .small-2 { + width: 16.66667%; } + + .small-3 { + width: 25%; } + + .small-4 { + width: 33.33333%; } + + .small-5 { + width: 41.66667%; } + + .small-6 { + width: 50%; } + + .small-7 { + width: 58.33333%; } + + .small-8 { + width: 66.66667%; } + + .small-9 { + width: 75%; } + + .small-10 { + width: 83.33333%; } + + .small-11 { + width: 91.66667%; } + + .small-12 { + width: 100%; } + + .small-offset-0 { + margin-left: 0% !important; } + + .small-offset-1 { + margin-left: 8.33333% !important; } + + .small-offset-2 { + margin-left: 16.66667% !important; } + + .small-offset-3 { + margin-left: 25% !important; } + + .small-offset-4 { + margin-left: 33.33333% !important; } + + .small-offset-5 { + margin-left: 41.66667% !important; } + + .small-offset-6 { + margin-left: 50% !important; } + + .small-offset-7 { + margin-left: 58.33333% !important; } + + .small-offset-8 { + margin-left: 66.66667% !important; } + + .small-offset-9 { + margin-left: 75% !important; } + + .small-offset-10 { + margin-left: 83.33333% !important; } + + .small-offset-11 { + margin-left: 91.66667% !important; } + + .small-reset-order { + margin-left: 0; + margin-right: 0; + left: auto; + right: auto; + float: left; } + + .column.small-centered, .columns.small-centered { + margin-left: auto; + margin-right: auto; + float: none; } + + .column.small-uncentered, .columns.small-uncentered { + margin-left: 0; + margin-right: 0; + float: left; } + + .column.small-centered:last-child, .columns.small-centered:last-child { + float: none; } + + .column.small-uncentered:last-child, .columns.small-uncentered:last-child { + float: left; } + + .column.small-uncentered.opposite, .columns.small-uncentered.opposite { + float: right; } + + .row.small-collapse > .column, .row.small-collapse > .columns { + padding-left: 0; + padding-right: 0; } + .row.small-collapse .row { + margin-left: 0; + margin-right: 0; } + .row.small-uncollapse > .column, .row.small-uncollapse > .columns { + padding-left: 0.9375rem; + padding-right: 0.9375rem; + float: left; } + } + + @media only screen and (min-width:40.063em) { + .medium-push-0 { + position: relative; + left: 0%; + right: auto; } + + .medium-pull-0 { + position: relative; + right: 0%; + left: auto; } + + .medium-push-1 { + position: relative; + left: 8.33333%; + right: auto; } + + .medium-pull-1 { + position: relative; + right: 8.33333%; + left: auto; } + + .medium-push-2 { + position: relative; + left: 16.66667%; + right: auto; } + + .medium-pull-2 { + position: relative; + right: 16.66667%; + left: auto; } + + .medium-push-3 { + position: relative; + left: 25%; + right: auto; } + + .medium-pull-3 { + position: relative; + right: 25%; + left: auto; } + + .medium-push-4 { + position: relative; + left: 33.33333%; + right: auto; } + + .medium-pull-4 { + position: relative; + right: 33.33333%; + left: auto; } + + .medium-push-5 { + position: relative; + left: 41.66667%; + right: auto; } + + .medium-pull-5 { + position: relative; + right: 41.66667%; + left: auto; } + + .medium-push-6 { + position: relative; + left: 50%; + right: auto; } + + .medium-pull-6 { + position: relative; + right: 50%; + left: auto; } + + .medium-push-7 { + position: relative; + left: 58.33333%; + right: auto; } + + .medium-pull-7 { + position: relative; + right: 58.33333%; + left: auto; } + + .medium-push-8 { + position: relative; + left: 66.66667%; + right: auto; } + + .medium-pull-8 { + position: relative; + right: 66.66667%; + left: auto; } + + .medium-push-9 { + position: relative; + left: 75%; + right: auto; } + + .medium-pull-9 { + position: relative; + right: 75%; + left: auto; } + + .medium-push-10 { + position: relative; + left: 83.33333%; + right: auto; } + + .medium-pull-10 { + position: relative; + right: 83.33333%; + left: auto; } + + .medium-push-11 { + position: relative; + left: 91.66667%; + right: auto; } + + .medium-pull-11 { + position: relative; + right: 91.66667%; + left: auto; } + + .column, .columns { + position: relative; + padding-left: 0.9375rem; + padding-right: 0.9375rem; + float: left; } + + .medium-1 { + width: 8.33333%; } + + .medium-2 { + width: 16.66667%; } + + .medium-3 { + width: 25%; } + + .medium-4 { + width: 33.33333%; } + + .medium-5 { + width: 41.66667%; } + + .medium-6 { + width: 50%; } + + .medium-7 { + width: 58.33333%; } + + .medium-8 { + width: 66.66667%; } + + .medium-9 { + width: 75%; } + + .medium-10 { + width: 83.33333%; } + + .medium-11 { + width: 91.66667%; } + + .medium-12 { + width: 100%; } + + .medium-offset-0 { + margin-left: 0% !important; } + + .medium-offset-1 { + margin-left: 8.33333% !important; } + + .medium-offset-2 { + margin-left: 16.66667% !important; } + + .medium-offset-3 { + margin-left: 25% !important; } + + .medium-offset-4 { + margin-left: 33.33333% !important; } + + .medium-offset-5 { + margin-left: 41.66667% !important; } + + .medium-offset-6 { + margin-left: 50% !important; } + + .medium-offset-7 { + margin-left: 58.33333% !important; } + + .medium-offset-8 { + margin-left: 66.66667% !important; } + + .medium-offset-9 { + margin-left: 75% !important; } + + .medium-offset-10 { + margin-left: 83.33333% !important; } + + .medium-offset-11 { + margin-left: 91.66667% !important; } + + .medium-reset-order { + margin-left: 0; + margin-right: 0; + left: auto; + right: auto; + float: left; } + + .column.medium-centered, .columns.medium-centered { + margin-left: auto; + margin-right: auto; + float: none; } + + .column.medium-uncentered, .columns.medium-uncentered { + margin-left: 0; + margin-right: 0; + float: left; } + + .column.medium-centered:last-child, .columns.medium-centered:last-child { + float: none; } + + .column.medium-uncentered:last-child, .columns.medium-uncentered:last-child { + float: left; } + + .column.medium-uncentered.opposite, .columns.medium-uncentered.opposite { + float: right; } + + .row.medium-collapse > .column, .row.medium-collapse > .columns { + padding-left: 0; + padding-right: 0; } + .row.medium-collapse .row { + margin-left: 0; + margin-right: 0; } + .row.medium-uncollapse > .column, .row.medium-uncollapse > .columns { + padding-left: 0.9375rem; + padding-right: 0.9375rem; + float: left; } + + .push-0 { + position: relative; + left: 0%; + right: auto; } + + .pull-0 { + position: relative; + right: 0%; + left: auto; } + + .push-1 { + position: relative; + left: 8.33333%; + right: auto; } + + .pull-1 { + position: relative; + right: 8.33333%; + left: auto; } + + .push-2 { + position: relative; + left: 16.66667%; + right: auto; } + + .pull-2 { + position: relative; + right: 16.66667%; + left: auto; } + + .push-3 { + position: relative; + left: 25%; + right: auto; } + + .pull-3 { + position: relative; + right: 25%; + left: auto; } + + .push-4 { + position: relative; + left: 33.33333%; + right: auto; } + + .pull-4 { + position: relative; + right: 33.33333%; + left: auto; } + + .push-5 { + position: relative; + left: 41.66667%; + right: auto; } + + .pull-5 { + position: relative; + right: 41.66667%; + left: auto; } + + .push-6 { + position: relative; + left: 50%; + right: auto; } + + .pull-6 { + position: relative; + right: 50%; + left: auto; } + + .push-7 { + position: relative; + left: 58.33333%; + right: auto; } + + .pull-7 { + position: relative; + right: 58.33333%; + left: auto; } + + .push-8 { + position: relative; + left: 66.66667%; + right: auto; } + + .pull-8 { + position: relative; + right: 66.66667%; + left: auto; } + + .push-9 { + position: relative; + left: 75%; + right: auto; } + + .pull-9 { + position: relative; + right: 75%; + left: auto; } + + .push-10 { + position: relative; + left: 83.33333%; + right: auto; } + + .pull-10 { + position: relative; + right: 83.33333%; + left: auto; } + + .push-11 { + position: relative; + left: 91.66667%; + right: auto; } + + .pull-11 { + position: relative; + right: 91.66667%; + left: auto; } + } + + @media only screen and (min-width:64.063em) { + .large-push-0 { + position: relative; + left: 0%; + right: auto; } + + .large-pull-0 { + position: relative; + right: 0%; + left: auto; } + + .large-push-1 { + position: relative; + left: 8.33333%; + right: auto; } + + .large-pull-1 { + position: relative; + right: 8.33333%; + left: auto; } + + .large-push-2 { + position: relative; + left: 16.66667%; + right: auto; } + + .large-pull-2 { + position: relative; + right: 16.66667%; + left: auto; } + + .large-push-3 { + position: relative; + left: 25%; + right: auto; } + + .large-pull-3 { + position: relative; + right: 25%; + left: auto; } + + .large-push-4 { + position: relative; + left: 33.33333%; + right: auto; } + + .large-pull-4 { + position: relative; + right: 33.33333%; + left: auto; } + + .large-push-5 { + position: relative; + left: 41.66667%; + right: auto; } + + .large-pull-5 { + position: relative; + right: 41.66667%; + left: auto; } + + .large-push-6 { + position: relative; + left: 50%; + right: auto; } + + .large-pull-6 { + position: relative; + right: 50%; + left: auto; } + + .large-push-7 { + position: relative; + left: 58.33333%; + right: auto; } + + .large-pull-7 { + position: relative; + right: 58.33333%; + left: auto; } + + .large-push-8 { + position: relative; + left: 66.66667%; + right: auto; } + + .large-pull-8 { + position: relative; + right: 66.66667%; + left: auto; } + + .large-push-9 { + position: relative; + left: 75%; + right: auto; } + + .large-pull-9 { + position: relative; + right: 75%; + left: auto; } + + .large-push-10 { + position: relative; + left: 83.33333%; + right: auto; } + + .large-pull-10 { + position: relative; + right: 83.33333%; + left: auto; } + + .large-push-11 { + position: relative; + left: 91.66667%; + right: auto; } + + .large-pull-11 { + position: relative; + right: 91.66667%; + left: auto; } + + .column, .columns { + position: relative; + padding-left: 0.9375rem; + padding-right: 0.9375rem; + float: left; } + + .large-1 { + width: 8.33333%; } + + .large-2 { + width: 16.66667%; } + + .large-3 { + width: 25%; } + + .large-4 { + width: 33.33333%; } + + .large-5 { + width: 41.66667%; } + + .large-6 { + width: 50%; } + + .large-7 { + width: 58.33333%; } + + .large-8 { + width: 66.66667%; } + + .large-9 { + width: 75%; } + + .large-10 { + width: 83.33333%; } + + .large-11 { + width: 91.66667%; } + + .large-12 { + width: 100%; } + + .large-offset-0 { + margin-left: 0% !important; } + + .large-offset-1 { + margin-left: 8.33333% !important; } + + .large-offset-2 { + margin-left: 16.66667% !important; } + + .large-offset-3 { + margin-left: 25% !important; } + + .large-offset-4 { + margin-left: 33.33333% !important; } + + .large-offset-5 { + margin-left: 41.66667% !important; } + + .large-offset-6 { + margin-left: 50% !important; } + + .large-offset-7 { + margin-left: 58.33333% !important; } + + .large-offset-8 { + margin-left: 66.66667% !important; } + + .large-offset-9 { + margin-left: 75% !important; } + + .large-offset-10 { + margin-left: 83.33333% !important; } + + .large-offset-11 { + margin-left: 91.66667% !important; } + + .large-reset-order { + margin-left: 0; + margin-right: 0; + left: auto; + right: auto; + float: left; } + + .column.large-centered, .columns.large-centered { + margin-left: auto; + margin-right: auto; + float: none; } + + .column.large-uncentered, .columns.large-uncentered { + margin-left: 0; + margin-right: 0; + float: left; } + + .column.large-centered:last-child, .columns.large-centered:last-child { + float: none; } + + .column.large-uncentered:last-child, .columns.large-uncentered:last-child { + float: left; } + + .column.large-uncentered.opposite, .columns.large-uncentered.opposite { + float: right; } + + .row.large-collapse > .column, .row.large-collapse > .columns { + padding-left: 0; + padding-right: 0; } + .row.large-collapse .row { + margin-left: 0; + margin-right: 0; } + .row.large-uncollapse > .column, .row.large-uncollapse > .columns { + padding-left: 0.9375rem; + padding-right: 0.9375rem; + float: left; } + + .push-0 { + position: relative; + left: 0%; + right: auto; } + + .pull-0 { + position: relative; + right: 0%; + left: auto; } + + .push-1 { + position: relative; + left: 8.33333%; + right: auto; } + + .pull-1 { + position: relative; + right: 8.33333%; + left: auto; } + + .push-2 { + position: relative; + left: 16.66667%; + right: auto; } + + .pull-2 { + position: relative; + right: 16.66667%; + left: auto; } + + .push-3 { + position: relative; + left: 25%; + right: auto; } + + .pull-3 { + position: relative; + right: 25%; + left: auto; } + + .push-4 { + position: relative; + left: 33.33333%; + right: auto; } + + .pull-4 { + position: relative; + right: 33.33333%; + left: auto; } + + .push-5 { + position: relative; + left: 41.66667%; + right: auto; } + + .pull-5 { + position: relative; + right: 41.66667%; + left: auto; } + + .push-6 { + position: relative; + left: 50%; + right: auto; } + + .pull-6 { + position: relative; + right: 50%; + left: auto; } + + .push-7 { + position: relative; + left: 58.33333%; + right: auto; } + + .pull-7 { + position: relative; + right: 58.33333%; + left: auto; } + + .push-8 { + position: relative; + left: 66.66667%; + right: auto; } + + .pull-8 { + position: relative; + right: 66.66667%; + left: auto; } + + .push-9 { + position: relative; + left: 75%; + right: auto; } + + .pull-9 { + position: relative; + right: 75%; + left: auto; } + + .push-10 { + position: relative; + left: 83.33333%; + right: auto; } + + .pull-10 { + position: relative; + right: 83.33333%; + left: auto; } + + .push-11 { + position: relative; + left: 91.66667%; + right: auto; } + + .pull-11 { + position: relative; + right: 91.66667%; + left: auto; } + } + #top { + font-size: 14px; + background: #404650; } + #top #logo { + position: relative; + float: left; + width: 123px; + height: 55px; + margin-right: 14px; + z-index: 999; + text-indent: -9999px; + background: #dc4136 url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE2LjAuNCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHdpZHRoPSI3NXB4IiBoZWlnaHQ9IjE4cHgiIHZpZXdCb3g9IjAgMCA3NSAxOCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNzUgMTgiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8Zz4KCTxwYXRoIGZpbGw9IiNFOUU5RTkiIGQ9Ik01LjQ4Miw0LjQxM0gxLjMxM1YyLjI1MWgxMC44NzN2Mi4xNjFIOC4wNDF2MTIuMjYzSDUuNDgyVjQuNDEzeiIvPgoJPHBhdGggZmlsbD0iI0U5RTlFOSIgZD0iTTExLjk1OCw1Ljg0NmgyLjA5NWwwLjE3NywxLjkxOGgwLjA4OWMwLjc3MS0xLjQxLDEuOTE4LTIuMTgzLDMuMDY1LTIuMTgzYzAuNTUxLDAsMC45MDMsMC4wNjYsMS4yMzQsMC4yMgoJCWwtMC40NDEsMi4yMDZjLTAuMzc1LTAuMTEtMC42NjEtMC4xNzYtMS4xMjUtMC4xNzZjLTAuODU5LDAtMS44OTYsMC41OTUtMi41NTgsMi4yMjh2Ni42MTZoLTIuNTM2VjUuODQ2eiIvPgoJPHBhdGggZmlsbD0iI0U5RTlFOSIgZD0iTTI1LjU0NCw5Ljc1Yy0wLjAyMy0xLjE0Ni0wLjUwOC0yLjExNy0xLjk2NC0yLjExN2MtMS4wOCwwLTIuMDk1LDAuNDg0LTMuMDQzLDEuMDU4bC0wLjkyNy0xLjY5OAoJCWMxLjE5LTAuNzUsMi43MTMtMS40MTEsNC40MzMtMS40MTFjMi43MTQsMCw0LjAzOCwxLjY1NCw0LjAzOCw0LjY3NXY2LjQxOWgtMi4wNzRsLTAuMTk4LTEuMTloLTAuMDY2CgkJYy0wLjk3MSwwLjgxNi0yLjA3MywxLjQ1NS0zLjM1MywxLjQ1NWMtMS44OTcsMC0zLjIyLTEuMjc5LTMuMjItMy4xNzZDMTkuMTcsMTEuNDQ4LDIxLjExMSwxMC4yMzUsMjUuNTQ0LDkuNzV6IE0yMy4xODQsMTQuOTU2CgkJYzAuODgyLDAsMS41NjYtMC40NDEsMi4zNi0xLjE5MXYtMi40MjdjLTIuOTM0LDAuMzc2LTMuOTA0LDEuMTQ3LTMuOTA0LDIuMjI5QzIxLjY0LDE0LjUzNiwyMi4yOCwxNC45NTYsMjMuMTg0LDE0Ljk1NnoiLz4KCTxwYXRoIGZpbGw9IiNFOUU5RTkiIGQ9Ik0yOC44MDYsNS44NDZoMi41ODFsMS43Miw1LjYyNGMwLjI4NywxLjA1OSwwLjYxOCwyLjE2MSwwLjkwNCwzLjI2NWgwLjA4OAoJCWMwLjMxLTEuMTA0LDAuNjE4LTIuMjA2LDAuOTI3LTMuMjY1bDEuNzItNS42MjRoMi40NDhsLTMuNjgzLDEwLjgyOWgtMi45MzRMMjguODA2LDUuODQ2eiIvPgoJPHBhdGggZmlsbD0iI0U5RTlFOSIgZD0iTTQwLjE0NSwyLjUxNmMwLTAuODYsMC42NjEtMS40NTYsMS41NjUtMS40NTZzMS41NjYsMC41OTYsMS41NjYsMS40NTZjMCwwLjgzOC0wLjY2MiwxLjQzNC0xLjU2NiwxLjQzNAoJCVM0MC4xNDUsMy4zNTQsNDAuMTQ1LDIuNTE2eiBNNDAuNDMxLDUuODQ2aDIuNTM3djEwLjgyOWgtMi41MzdWNS44NDZ6Ii8+Cgk8cGF0aCBmaWxsPSIjRTlFOUU5IiBkPSJNNDUuNjEzLDEzLjgwOWMwLjk3LDAuNzQ5LDEuODk2LDEuMjEzLDIuOTk5LDEuMjEzYzEuMTcsMCwxLjcyMS0wLjU1MiwxLjcyMS0xLjMwMQoJCWMwLTAuOTA2LTEuMTY5LTEuMzAzLTIuMzE2LTEuNzQ0Yy0xLjQzNC0wLjUyOS0zLjA0My0xLjM0NC0zLjA0My0zLjE1MmMwLTEuODk4LDEuNTIxLTMuMjQzLDMuOTQ4LTMuMjQzCgkJYzEuNDk5LDAsMi43MTMsMC42MTgsMy41OTQsMS4zMDJsLTEuMTY4LDEuNTQzQzUwLjU5Nyw3Ljg3NSw0OS44MjYsNy41LDQ4Ljk2NSw3LjVjLTEuMDgyLDAtMS41ODgsMC41MDctMS41ODgsMS4xOQoJCWMwLDAuODM5LDEuMDgsMS4xOTEsMi4yNDksMS42MWMxLjQ3OSwwLjU1MiwzLjEwOSwxLjI1OCwzLjEwOSwzLjI4N2MwLDEuODUyLTEuNDc4LDMuMzUyLTQuMjEyLDMuMzUyCgkJYy0xLjQ3OCwwLTMuMDQ0LTAuNjM5LTQuMTAyLTEuNUw0NS42MTMsMTMuODA5eiIvPgoJPHBhdGggZmlsbD0iI0U5RTlFOSIgZD0iTTY1LjE3NiwxLjk4N2MxLjc2NCwwLDMuMTk4LDAuODU5LDQuMTAyLDEuODNsLTEuNDExLDEuNTg4Yy0wLjc1LTAuNzI5LTEuNTY1LTEuMTktMi42NjktMS4xOQoJCWMtMi4zNiwwLTQuMDU4LDEuOTg1LTQuMDU4LDUuMjI4YzAsMy4yODYsMS41NjUsNS4yNywzLjk2OSw1LjI3YzEuMjgsMCwyLjIyOC0wLjUyOCwzLjA0NS0xLjQzMmwxLjQxMSwxLjU2NQoJCWMtMS4xNjksMS4zNDUtMi42NjgsMi4wOTUtNC40OTksMi4wOTVjLTMuNjYxLDAtNi41NTEtMi42NDYtNi41NTEtNy40MzNDNTguNTE1LDQuNzg4LDYxLjQ3LDEuOTg3LDY1LjE3NiwxLjk4N3oiLz4KCTxwYXRoIGZpbGw9IiNFOUU5RTkiIGQ9Ik03MS4xMjgsMi4yNTFoMi41NTl2MTQuNDI0aC0yLjU1OVYyLjI1MXoiLz4KPC9nPgo8L3N2Zz4K') no-repeat 20px 18px; } + #top #logo a { + display: block; } + #top ul { + margin: 0; + padding: 0; + list-style: none; + line-height: 30px; } + #top #navigation { + height: 0; + overflow: hidden; } + #top #navigation.is-open { + height: auto; } + #top a, #top span { + color: #fff; + text-decoration: none; } + #top li { + border-top: 1px solid #31363d; } + #top li a, #top li span { + display: block; + padding: 0 12px; } + #top li a:hover, #top li span:hover { + color: #ADC7D0; } + #top a.werehiring { + background-color: #31363d; + border-radius: 4px; + padding: 8px 16px; + line-height: 20px; + margin-right: 80px; + display: inline; } + #top li.traviscicom a { + padding-left: 0px; } + @media only screen and (min-width:40.063em) { + #top { + overflow: visible; + height: 55px; } + #top #navigation { + height: auto; + overflow: visible; } + #top ul { + line-height: 55px; + position: relative; + top: 3px; } + #top li { + display: inline-block; + border: none; } } + @media only screen and (min-width:40.063em) and (max-width:64em) { + #top li.traviscicom { + display: none; } + } + #top .nav-burger { + overflow: auto; } + @media only screen and (min-width:40.063em) { + #top .nav-burger { + display: none; } } + #top #burger { + float: right; + font-size: 50px; + background: none; + border: none; + line-height: 1; + color: #fff; + outline: none !important; } + #top #burger:before, #top #burger:after { + content: ""; + display: table; } + #top #burger:after { + clear: both; } + #top #burger:hover { + cursor: pointer; } + #top .menu { + position: relative; } + #top .menu.signed-out ul { + display: none; } + #top .menu .handle { + margin: 0; } + #top .menu:hover > ul { + display: block; } + #top .menu ul li a { + padding-left: 3em; } + @media only screen and (min-width:40.063em) { + #top .menu ul { + display: none; + position: absolute; + z-index: 300; + right: 0px; + top: 52px; + width: 100%; + background-color: #40454f; } + #top .menu ul li { + display: block; } + #top .menu ul li a { + display: block; + line-height: 24px; + white-space: nowrap; + padding: 5px 20px; } + #top .menu ul li a:hover { + background-color: #30343b; } + } + #top .menu.community { + min-width: 120px; } + #top .user { + text-align: right; } + #top .menu.profile .signing-in { + background: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSI4Ij4KPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOCwgNCkiPgogIDxyZWN0IHg9Ii04IiB5PSItNCIgd2lkdGg9IjUiIGhlaWdodD0iOCI+CiAgICA8YW5pbWF0ZVRyYW5zZm9ybSBpZD0iYSIgYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJzY2FsZSIgZnJvbT0iMSwwLjUiIHRvPSIxIiBkdXI9IjAuNHMiIGJlZ2luPSIwO2IuZW5kIi8+CiAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJmaWxsIiBmcm9tPSIjZWVlIiB0bz0iIzg4OCIgZHVyPSIwLjRzIiBiZWdpbj0iMDtiLmVuZCIvPgogICAgPGFuaW1hdGVUcmFuc2Zvcm0gaWQ9ImIiIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0ic2NhbGUiIGZyb209IjEiIHRvPSIxLDAuNSIgZHVyPSIwLjRzIiBiZWdpbj0iYS5lbmQiLz4KICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImZpbGwiIGZyb209IiM4ODgiIHRvPSIjZWVlIiBkdXI9IjAuNHMiIGJlZ2luPSJhLmVuZCIvPgogIDwvcmVjdD4KICA8cmVjdCB4PSItMiIgeT0iLTQiIHdpZHRoPSI0IiBoZWlnaHQ9IjgiPgogICAgPGFuaW1hdGVUcmFuc2Zvcm0gaWQ9ImMiIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0ic2NhbGUiIGZyb209IjEsMC41IiB0bz0iMSIgZHVyPSIwLjRzIiBiZWdpbj0iMC4xcztkLmVuZCIvPgogICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iZmlsbCIgZnJvbT0iI2VlZSIgdG89IiM4ODgiIGR1cj0iMC40cyIgYmVnaW49IjAuMXM7ZC5lbmQiLz4KICAgIDxhbmltYXRlVHJhbnNmb3JtIGlkPSJkIiBiZWdpbj0iYy5lbmQiIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0ic2NhbGUiIHRvPSIxLDAuNSIgZnJvbT0iMSIgZHVyPSIwLjRzIi8+CiAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJmaWxsIiBmcm9tPSIjODg4IiB0bz0iI2VlZSIgZHVyPSIwLjRzIiBiZWdpbj0iYy5lbmQiLz4KICA8L3JlY3Q+CiAgPHJlY3QgeD0iMyIgeT0iLTQiIHdpZHRoPSI1IiBoZWlnaHQ9IjgiPgogICAgPGFuaW1hdGVUcmFuc2Zvcm0gaWQ9ImUiIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0ic2NhbGUiIGZyb209IjEsMC41IiB0bz0iMSIgZHVyPSIwLjRzIiBiZWdpbj0iMC4ycztmLmVuZCIvPgogICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iZmlsbCIgZnJvbT0iI2VlZSIgdG89IiM4ODgiIGR1cj0iMC40cyIgYmVnaW49IjAuMnM7Zi5lbmQiLz4KICAgIDxhbmltYXRlVHJhbnNmb3JtIGlkPSJmIiBhdHRyaWJ1dGVOYW1lPSJ0cmFuc2Zvcm0iIHR5cGU9InNjYWxlIiBmcm9tPSIxIiB0bz0iMSwwLjUiIGR1cj0iMC40cyIgYmVnaW49ImUuZW5kIi8+CiAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJmaWxsIiBmcm9tPSIjODg4IiB0bz0iI2VlZSIgZHVyPSIwLjRzIiBiZWdpbj0iZS5lbmQiLz4KICA8L3JlY3Q+CjwvZz4KPC9zdmc+Cgo=') no-repeat 110px 22px; } + #top .menu.profile img { + width: 30px; + height: 30px; + border-radius: 100px; } + #top .menu.profile ul { + min-width: 145px; } + #top .menu.profile ul a { + padding: 5px 25px 5px 45px; } + @media only screen and (min-width:40.063em) { + #top .menu.profile { + float: right; } + #top .menu.profile .handle > * { + display: none; + padding: 0 15px 0 45px; } + #top .menu.profile .signed-out, #top .menu.profile .signing-in { + min-width: 110px; } + #top .menu.profile.signed-out .signed-out { + display: block; } + #top .menu.profile.signing-in .signing-in { + display: inline-block; } + #top .menu.profile.signed-in .signed-in { + display: block; } } + #top .menu.profile:not(.signed-in):hover ul { + display: none; } + + #home #navigation .home, #stats #navigation .stats, #profile #navigation .profile { + background-color: transparent; } + #home #navigation .home a, #stats #navigation .stats a, #profile #navigation .profile a { + color: #ffffff; } + #home #navigation .home a:hover, #stats #navigation .stats a:hover, #profile #navigation .profile a:hover { + color: #ADC7D0; } + + #top img { + margin: 10px 10px 7px 10px; + width: 30px; + height: 30px; + border-radius: 100px; } + @media only screen and (min-width:40.063em) { + #top img { + float: right; + margin: 10px 0 0 10px; } } + + .maintenance { + height: 100%; + overflow: hidden; } + .maintenance .full-size { + position: absolute; + top: 0; + height: 100%; + width: 100%; + overflow: hidden; + background-repeat: no-repeat; } + + .main--error { + min-height: 100%; } + + .maintenance-text { + position: absolute; + left: 0; + right: 0; + z-index: 10; } + .maintenance-text h1 { + margin: 1em 0 0.4em; + font-weight: 600; + color: #357389; + font-size: 40px; + line-height: 1; + text-align: center; } + @media only screen and (min-width:40.063em) { + .maintenance-text h1 { + margin: 1.5em 0 0.4em; + font-size: 70px; } } + .maintenance-text p { + padding: 0 1em; + color: #9d9fa1; + font-size: 18px; + text-align: center; } + .maintenance-text a { + color: #9d9fa1; } + .maintenance-text a:hover, .maintenance-text a:focus { + color: #9d9fa1; + text-decoration: underline; } + + .icon-twitter { + display: inline-block; + width: 1.1em; + height: 1.1em; + background-image: url(../images/error/twitter.svg); + background-repeat: no-repeat; + background-size: 100% auto; + background-position: 0 0.2em; } + + .maintenance .maintenance-bg { + background: -webkit-linear-gradient(90deg, #8cad7d, #8cad7d 38.9%, #ccebf7 39%, #fff 60%, #fff); + background: linear-gradient(0deg, #8cad7d, #8cad7d 38.9%, #ccebf7 39%, #fff 60%, #fff); } + .maintenance .hill-left { + background-image: url(../images/error/maintenance-hills-left.svg); + background-size: 80vw auto; + background-position: 0 58%; } + @media only screen and (min-width:40.063em) { + .maintenance .hill-left { + background-size: 58vw auto; + background-position: 0 58%; } } + @media only screen and (min-width:64.063em) { + .maintenance .hill-left { + background-size: 50vw auto; + background-position: 0 56%; } } + .maintenance .hill-right { + background-image: url(../images/error/maintenance-hills-right.svg); + background-size: 38vw auto; + background-position: 99% 59%; + display: none; } + @media only screen and (min-width:40.063em) { + .maintenance .hill-right { + display: block; } } + .maintenance .shadow-left { + background-image: url(../images/error/maintenance-grass-shade-left.svg); + background-size: 24vw auto; + background-position: 6% 72%; } + .maintenance .shadow-right { + background-image: url(../images/error/maintenance-grass-shade-right.svg); + background-size: 17vw auto; + background-position: 95% 79%; } + .maintenance .maintenance-tractor { + background-image: url(../images/error/maintenance-tractor.svg); + background-size: 87vw auto; + background-position: 63% 87%; } + @media only screen and (min-width:40.063em) { + .maintenance .maintenance-tractor { + background-size: auto 44vh; + background-position: 63% 83%; } } + </style> + + + </head> + <body> + <div class="application"> + <div class="ember-view error maintenance"> + <div id="top"> + <div class="row"> + <div class="small-2 medium-2 columns" id="logo"> + <h1><a href="/" class="ember-view">Home</a></h1> + </div> + <ul id="navigation"> + <li><a href="http://blog.travis-ci.com/">Blog</a></li> + <li><a href="http://www.traviscistatus.com/">Status</a></li> + </ul> + </div> + </div> + <main class="main main--error" role="main"> + <div class="maintenance-bg full-size"> + <div class="hill-left full-size"></div> + <div class="hill-right full-size"></div> + <div class="shadow-left full-size"></div> + <div class="shadow-right full-size"></div> + </div> + <div class="maintenance-tractor full-size"></div> + <div class="maintenance-text"> + <h1>Under Maintenance</h1> + <p>Stay up to date with Travis CI by <a href="https://twitter.com/travisci" title="Travis CI on Twitter">following us <span class="icon-twitter"></span></a></p> + </div> + </main> + </div> + </div> + </body> +</html> From 2eb626193d2386c07c1c61be5ca6fa3e9cfe6dd5 Mon Sep 17 00:00:00 2001 From: Lisa Passing <mail@lislis.de> Date: Mon, 16 Feb 2015 16:27:52 +0100 Subject: [PATCH 23/26] use external css --- public/maintenance.html | 1276 +-------------------------------------- 1 file changed, 1 insertion(+), 1275 deletions(-) diff --git a/public/maintenance.html b/public/maintenance.html index 66bfa596..b449ebfe 100644 --- a/public/maintenance.html +++ b/public/maintenance.html @@ -7,1281 +7,7 @@ <meta name="viewport" content="width=device-width, initial-scale=1"> <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,800" rel="stylesheet" type="text/css"> - - <style> - html, body { - height: 100%; } - - *, *:before, *:after { - box-sizing: border-box; } - - html, body { - font-size: 13px; } - - body { - background: #fff; - color: #666; - padding: 0; - margin: 0; - font-family: 'Source Sans Pro', Helvetica, sans-serif; - font-weight: normal; - font-style: normal; - line-height: 22px; - position: relative; - cursor: auto; } - - - .row { - width: 100%; - margin-left: auto; - margin-right: auto; - margin-top: 0; - margin-bottom: 0; - max-width: 100%; } - .row:before, .row:after { - content: " "; - display: table; } - .row:after { - clear: both; } - .row.collapse > .column, .row.collapse > .columns { - padding-left: 0; - padding-right: 0; } - .row.collapse .row { - margin-left: 0; - margin-right: 0; } - .row .row { - width: auto; - margin-left: -0.9375rem; - margin-right: -0.9375rem; - margin-top: 0; - margin-bottom: 0; - max-width: none; } - .row .row:before, .row .row:after { - content: " "; - display: table; } - .row .row:after { - clear: both; } - .row .row.collapse { - width: auto; - margin: 0; - max-width: none; } - .row .row.collapse:before, .row .row.collapse:after { - content: " "; - display: table; } - .row .row.collapse:after { - clear: both; } - - .column, .columns { - padding-left: 0.9375rem; - padding-right: 0.9375rem; - width: 100%; - float: left; } - - [class*="column"] + [class*="column"]:last-child { - float: right; } - - [class*="column"] + [class*="column"].end { - float: left; } - - @media only screen { - .small-push-0 { - position: relative; - left: 0%; - right: auto; } - - .small-pull-0 { - position: relative; - right: 0%; - left: auto; } - - .small-push-1 { - position: relative; - left: 8.33333%; - right: auto; } - - .small-pull-1 { - position: relative; - right: 8.33333%; - left: auto; } - - .small-push-2 { - position: relative; - left: 16.66667%; - right: auto; } - - .small-pull-2 { - position: relative; - right: 16.66667%; - left: auto; } - - .small-push-3 { - position: relative; - left: 25%; - right: auto; } - - .small-pull-3 { - position: relative; - right: 25%; - left: auto; } - - .small-push-4 { - position: relative; - left: 33.33333%; - right: auto; } - - .small-pull-4 { - position: relative; - right: 33.33333%; - left: auto; } - - .small-push-5 { - position: relative; - left: 41.66667%; - right: auto; } - - .small-pull-5 { - position: relative; - right: 41.66667%; - left: auto; } - - .small-push-6 { - position: relative; - left: 50%; - right: auto; } - - .small-pull-6 { - position: relative; - right: 50%; - left: auto; } - - .small-push-7 { - position: relative; - left: 58.33333%; - right: auto; } - - .small-pull-7 { - position: relative; - right: 58.33333%; - left: auto; } - - .small-push-8 { - position: relative; - left: 66.66667%; - right: auto; } - - .small-pull-8 { - position: relative; - right: 66.66667%; - left: auto; } - - .small-push-9 { - position: relative; - left: 75%; - right: auto; } - - .small-pull-9 { - position: relative; - right: 75%; - left: auto; } - - .small-push-10 { - position: relative; - left: 83.33333%; - right: auto; } - - .small-pull-10 { - position: relative; - right: 83.33333%; - left: auto; } - - .small-push-11 { - position: relative; - left: 91.66667%; - right: auto; } - - .small-pull-11 { - position: relative; - right: 91.66667%; - left: auto; } - - .column, .columns { - position: relative; - padding-left: 0.9375rem; - padding-right: 0.9375rem; - float: left; } - - .small-1 { - width: 8.33333%; } - - .small-2 { - width: 16.66667%; } - - .small-3 { - width: 25%; } - - .small-4 { - width: 33.33333%; } - - .small-5 { - width: 41.66667%; } - - .small-6 { - width: 50%; } - - .small-7 { - width: 58.33333%; } - - .small-8 { - width: 66.66667%; } - - .small-9 { - width: 75%; } - - .small-10 { - width: 83.33333%; } - - .small-11 { - width: 91.66667%; } - - .small-12 { - width: 100%; } - - .small-offset-0 { - margin-left: 0% !important; } - - .small-offset-1 { - margin-left: 8.33333% !important; } - - .small-offset-2 { - margin-left: 16.66667% !important; } - - .small-offset-3 { - margin-left: 25% !important; } - - .small-offset-4 { - margin-left: 33.33333% !important; } - - .small-offset-5 { - margin-left: 41.66667% !important; } - - .small-offset-6 { - margin-left: 50% !important; } - - .small-offset-7 { - margin-left: 58.33333% !important; } - - .small-offset-8 { - margin-left: 66.66667% !important; } - - .small-offset-9 { - margin-left: 75% !important; } - - .small-offset-10 { - margin-left: 83.33333% !important; } - - .small-offset-11 { - margin-left: 91.66667% !important; } - - .small-reset-order { - margin-left: 0; - margin-right: 0; - left: auto; - right: auto; - float: left; } - - .column.small-centered, .columns.small-centered { - margin-left: auto; - margin-right: auto; - float: none; } - - .column.small-uncentered, .columns.small-uncentered { - margin-left: 0; - margin-right: 0; - float: left; } - - .column.small-centered:last-child, .columns.small-centered:last-child { - float: none; } - - .column.small-uncentered:last-child, .columns.small-uncentered:last-child { - float: left; } - - .column.small-uncentered.opposite, .columns.small-uncentered.opposite { - float: right; } - - .row.small-collapse > .column, .row.small-collapse > .columns { - padding-left: 0; - padding-right: 0; } - .row.small-collapse .row { - margin-left: 0; - margin-right: 0; } - .row.small-uncollapse > .column, .row.small-uncollapse > .columns { - padding-left: 0.9375rem; - padding-right: 0.9375rem; - float: left; } - } - - @media only screen and (min-width:40.063em) { - .medium-push-0 { - position: relative; - left: 0%; - right: auto; } - - .medium-pull-0 { - position: relative; - right: 0%; - left: auto; } - - .medium-push-1 { - position: relative; - left: 8.33333%; - right: auto; } - - .medium-pull-1 { - position: relative; - right: 8.33333%; - left: auto; } - - .medium-push-2 { - position: relative; - left: 16.66667%; - right: auto; } - - .medium-pull-2 { - position: relative; - right: 16.66667%; - left: auto; } - - .medium-push-3 { - position: relative; - left: 25%; - right: auto; } - - .medium-pull-3 { - position: relative; - right: 25%; - left: auto; } - - .medium-push-4 { - position: relative; - left: 33.33333%; - right: auto; } - - .medium-pull-4 { - position: relative; - right: 33.33333%; - left: auto; } - - .medium-push-5 { - position: relative; - left: 41.66667%; - right: auto; } - - .medium-pull-5 { - position: relative; - right: 41.66667%; - left: auto; } - - .medium-push-6 { - position: relative; - left: 50%; - right: auto; } - - .medium-pull-6 { - position: relative; - right: 50%; - left: auto; } - - .medium-push-7 { - position: relative; - left: 58.33333%; - right: auto; } - - .medium-pull-7 { - position: relative; - right: 58.33333%; - left: auto; } - - .medium-push-8 { - position: relative; - left: 66.66667%; - right: auto; } - - .medium-pull-8 { - position: relative; - right: 66.66667%; - left: auto; } - - .medium-push-9 { - position: relative; - left: 75%; - right: auto; } - - .medium-pull-9 { - position: relative; - right: 75%; - left: auto; } - - .medium-push-10 { - position: relative; - left: 83.33333%; - right: auto; } - - .medium-pull-10 { - position: relative; - right: 83.33333%; - left: auto; } - - .medium-push-11 { - position: relative; - left: 91.66667%; - right: auto; } - - .medium-pull-11 { - position: relative; - right: 91.66667%; - left: auto; } - - .column, .columns { - position: relative; - padding-left: 0.9375rem; - padding-right: 0.9375rem; - float: left; } - - .medium-1 { - width: 8.33333%; } - - .medium-2 { - width: 16.66667%; } - - .medium-3 { - width: 25%; } - - .medium-4 { - width: 33.33333%; } - - .medium-5 { - width: 41.66667%; } - - .medium-6 { - width: 50%; } - - .medium-7 { - width: 58.33333%; } - - .medium-8 { - width: 66.66667%; } - - .medium-9 { - width: 75%; } - - .medium-10 { - width: 83.33333%; } - - .medium-11 { - width: 91.66667%; } - - .medium-12 { - width: 100%; } - - .medium-offset-0 { - margin-left: 0% !important; } - - .medium-offset-1 { - margin-left: 8.33333% !important; } - - .medium-offset-2 { - margin-left: 16.66667% !important; } - - .medium-offset-3 { - margin-left: 25% !important; } - - .medium-offset-4 { - margin-left: 33.33333% !important; } - - .medium-offset-5 { - margin-left: 41.66667% !important; } - - .medium-offset-6 { - margin-left: 50% !important; } - - .medium-offset-7 { - margin-left: 58.33333% !important; } - - .medium-offset-8 { - margin-left: 66.66667% !important; } - - .medium-offset-9 { - margin-left: 75% !important; } - - .medium-offset-10 { - margin-left: 83.33333% !important; } - - .medium-offset-11 { - margin-left: 91.66667% !important; } - - .medium-reset-order { - margin-left: 0; - margin-right: 0; - left: auto; - right: auto; - float: left; } - - .column.medium-centered, .columns.medium-centered { - margin-left: auto; - margin-right: auto; - float: none; } - - .column.medium-uncentered, .columns.medium-uncentered { - margin-left: 0; - margin-right: 0; - float: left; } - - .column.medium-centered:last-child, .columns.medium-centered:last-child { - float: none; } - - .column.medium-uncentered:last-child, .columns.medium-uncentered:last-child { - float: left; } - - .column.medium-uncentered.opposite, .columns.medium-uncentered.opposite { - float: right; } - - .row.medium-collapse > .column, .row.medium-collapse > .columns { - padding-left: 0; - padding-right: 0; } - .row.medium-collapse .row { - margin-left: 0; - margin-right: 0; } - .row.medium-uncollapse > .column, .row.medium-uncollapse > .columns { - padding-left: 0.9375rem; - padding-right: 0.9375rem; - float: left; } - - .push-0 { - position: relative; - left: 0%; - right: auto; } - - .pull-0 { - position: relative; - right: 0%; - left: auto; } - - .push-1 { - position: relative; - left: 8.33333%; - right: auto; } - - .pull-1 { - position: relative; - right: 8.33333%; - left: auto; } - - .push-2 { - position: relative; - left: 16.66667%; - right: auto; } - - .pull-2 { - position: relative; - right: 16.66667%; - left: auto; } - - .push-3 { - position: relative; - left: 25%; - right: auto; } - - .pull-3 { - position: relative; - right: 25%; - left: auto; } - - .push-4 { - position: relative; - left: 33.33333%; - right: auto; } - - .pull-4 { - position: relative; - right: 33.33333%; - left: auto; } - - .push-5 { - position: relative; - left: 41.66667%; - right: auto; } - - .pull-5 { - position: relative; - right: 41.66667%; - left: auto; } - - .push-6 { - position: relative; - left: 50%; - right: auto; } - - .pull-6 { - position: relative; - right: 50%; - left: auto; } - - .push-7 { - position: relative; - left: 58.33333%; - right: auto; } - - .pull-7 { - position: relative; - right: 58.33333%; - left: auto; } - - .push-8 { - position: relative; - left: 66.66667%; - right: auto; } - - .pull-8 { - position: relative; - right: 66.66667%; - left: auto; } - - .push-9 { - position: relative; - left: 75%; - right: auto; } - - .pull-9 { - position: relative; - right: 75%; - left: auto; } - - .push-10 { - position: relative; - left: 83.33333%; - right: auto; } - - .pull-10 { - position: relative; - right: 83.33333%; - left: auto; } - - .push-11 { - position: relative; - left: 91.66667%; - right: auto; } - - .pull-11 { - position: relative; - right: 91.66667%; - left: auto; } - } - - @media only screen and (min-width:64.063em) { - .large-push-0 { - position: relative; - left: 0%; - right: auto; } - - .large-pull-0 { - position: relative; - right: 0%; - left: auto; } - - .large-push-1 { - position: relative; - left: 8.33333%; - right: auto; } - - .large-pull-1 { - position: relative; - right: 8.33333%; - left: auto; } - - .large-push-2 { - position: relative; - left: 16.66667%; - right: auto; } - - .large-pull-2 { - position: relative; - right: 16.66667%; - left: auto; } - - .large-push-3 { - position: relative; - left: 25%; - right: auto; } - - .large-pull-3 { - position: relative; - right: 25%; - left: auto; } - - .large-push-4 { - position: relative; - left: 33.33333%; - right: auto; } - - .large-pull-4 { - position: relative; - right: 33.33333%; - left: auto; } - - .large-push-5 { - position: relative; - left: 41.66667%; - right: auto; } - - .large-pull-5 { - position: relative; - right: 41.66667%; - left: auto; } - - .large-push-6 { - position: relative; - left: 50%; - right: auto; } - - .large-pull-6 { - position: relative; - right: 50%; - left: auto; } - - .large-push-7 { - position: relative; - left: 58.33333%; - right: auto; } - - .large-pull-7 { - position: relative; - right: 58.33333%; - left: auto; } - - .large-push-8 { - position: relative; - left: 66.66667%; - right: auto; } - - .large-pull-8 { - position: relative; - right: 66.66667%; - left: auto; } - - .large-push-9 { - position: relative; - left: 75%; - right: auto; } - - .large-pull-9 { - position: relative; - right: 75%; - left: auto; } - - .large-push-10 { - position: relative; - left: 83.33333%; - right: auto; } - - .large-pull-10 { - position: relative; - right: 83.33333%; - left: auto; } - - .large-push-11 { - position: relative; - left: 91.66667%; - right: auto; } - - .large-pull-11 { - position: relative; - right: 91.66667%; - left: auto; } - - .column, .columns { - position: relative; - padding-left: 0.9375rem; - padding-right: 0.9375rem; - float: left; } - - .large-1 { - width: 8.33333%; } - - .large-2 { - width: 16.66667%; } - - .large-3 { - width: 25%; } - - .large-4 { - width: 33.33333%; } - - .large-5 { - width: 41.66667%; } - - .large-6 { - width: 50%; } - - .large-7 { - width: 58.33333%; } - - .large-8 { - width: 66.66667%; } - - .large-9 { - width: 75%; } - - .large-10 { - width: 83.33333%; } - - .large-11 { - width: 91.66667%; } - - .large-12 { - width: 100%; } - - .large-offset-0 { - margin-left: 0% !important; } - - .large-offset-1 { - margin-left: 8.33333% !important; } - - .large-offset-2 { - margin-left: 16.66667% !important; } - - .large-offset-3 { - margin-left: 25% !important; } - - .large-offset-4 { - margin-left: 33.33333% !important; } - - .large-offset-5 { - margin-left: 41.66667% !important; } - - .large-offset-6 { - margin-left: 50% !important; } - - .large-offset-7 { - margin-left: 58.33333% !important; } - - .large-offset-8 { - margin-left: 66.66667% !important; } - - .large-offset-9 { - margin-left: 75% !important; } - - .large-offset-10 { - margin-left: 83.33333% !important; } - - .large-offset-11 { - margin-left: 91.66667% !important; } - - .large-reset-order { - margin-left: 0; - margin-right: 0; - left: auto; - right: auto; - float: left; } - - .column.large-centered, .columns.large-centered { - margin-left: auto; - margin-right: auto; - float: none; } - - .column.large-uncentered, .columns.large-uncentered { - margin-left: 0; - margin-right: 0; - float: left; } - - .column.large-centered:last-child, .columns.large-centered:last-child { - float: none; } - - .column.large-uncentered:last-child, .columns.large-uncentered:last-child { - float: left; } - - .column.large-uncentered.opposite, .columns.large-uncentered.opposite { - float: right; } - - .row.large-collapse > .column, .row.large-collapse > .columns { - padding-left: 0; - padding-right: 0; } - .row.large-collapse .row { - margin-left: 0; - margin-right: 0; } - .row.large-uncollapse > .column, .row.large-uncollapse > .columns { - padding-left: 0.9375rem; - padding-right: 0.9375rem; - float: left; } - - .push-0 { - position: relative; - left: 0%; - right: auto; } - - .pull-0 { - position: relative; - right: 0%; - left: auto; } - - .push-1 { - position: relative; - left: 8.33333%; - right: auto; } - - .pull-1 { - position: relative; - right: 8.33333%; - left: auto; } - - .push-2 { - position: relative; - left: 16.66667%; - right: auto; } - - .pull-2 { - position: relative; - right: 16.66667%; - left: auto; } - - .push-3 { - position: relative; - left: 25%; - right: auto; } - - .pull-3 { - position: relative; - right: 25%; - left: auto; } - - .push-4 { - position: relative; - left: 33.33333%; - right: auto; } - - .pull-4 { - position: relative; - right: 33.33333%; - left: auto; } - - .push-5 { - position: relative; - left: 41.66667%; - right: auto; } - - .pull-5 { - position: relative; - right: 41.66667%; - left: auto; } - - .push-6 { - position: relative; - left: 50%; - right: auto; } - - .pull-6 { - position: relative; - right: 50%; - left: auto; } - - .push-7 { - position: relative; - left: 58.33333%; - right: auto; } - - .pull-7 { - position: relative; - right: 58.33333%; - left: auto; } - - .push-8 { - position: relative; - left: 66.66667%; - right: auto; } - - .pull-8 { - position: relative; - right: 66.66667%; - left: auto; } - - .push-9 { - position: relative; - left: 75%; - right: auto; } - - .pull-9 { - position: relative; - right: 75%; - left: auto; } - - .push-10 { - position: relative; - left: 83.33333%; - right: auto; } - - .pull-10 { - position: relative; - right: 83.33333%; - left: auto; } - - .push-11 { - position: relative; - left: 91.66667%; - right: auto; } - - .pull-11 { - position: relative; - right: 91.66667%; - left: auto; } - } - #top { - font-size: 14px; - background: #404650; } - #top #logo { - position: relative; - float: left; - width: 123px; - height: 55px; - margin-right: 14px; - z-index: 999; - text-indent: -9999px; - background: #dc4136 url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE2LjAuNCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHdpZHRoPSI3NXB4IiBoZWlnaHQ9IjE4cHgiIHZpZXdCb3g9IjAgMCA3NSAxOCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNzUgMTgiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8Zz4KCTxwYXRoIGZpbGw9IiNFOUU5RTkiIGQ9Ik01LjQ4Miw0LjQxM0gxLjMxM1YyLjI1MWgxMC44NzN2Mi4xNjFIOC4wNDF2MTIuMjYzSDUuNDgyVjQuNDEzeiIvPgoJPHBhdGggZmlsbD0iI0U5RTlFOSIgZD0iTTExLjk1OCw1Ljg0NmgyLjA5NWwwLjE3NywxLjkxOGgwLjA4OWMwLjc3MS0xLjQxLDEuOTE4LTIuMTgzLDMuMDY1LTIuMTgzYzAuNTUxLDAsMC45MDMsMC4wNjYsMS4yMzQsMC4yMgoJCWwtMC40NDEsMi4yMDZjLTAuMzc1LTAuMTEtMC42NjEtMC4xNzYtMS4xMjUtMC4xNzZjLTAuODU5LDAtMS44OTYsMC41OTUtMi41NTgsMi4yMjh2Ni42MTZoLTIuNTM2VjUuODQ2eiIvPgoJPHBhdGggZmlsbD0iI0U5RTlFOSIgZD0iTTI1LjU0NCw5Ljc1Yy0wLjAyMy0xLjE0Ni0wLjUwOC0yLjExNy0xLjk2NC0yLjExN2MtMS4wOCwwLTIuMDk1LDAuNDg0LTMuMDQzLDEuMDU4bC0wLjkyNy0xLjY5OAoJCWMxLjE5LTAuNzUsMi43MTMtMS40MTEsNC40MzMtMS40MTFjMi43MTQsMCw0LjAzOCwxLjY1NCw0LjAzOCw0LjY3NXY2LjQxOWgtMi4wNzRsLTAuMTk4LTEuMTloLTAuMDY2CgkJYy0wLjk3MSwwLjgxNi0yLjA3MywxLjQ1NS0zLjM1MywxLjQ1NWMtMS44OTcsMC0zLjIyLTEuMjc5LTMuMjItMy4xNzZDMTkuMTcsMTEuNDQ4LDIxLjExMSwxMC4yMzUsMjUuNTQ0LDkuNzV6IE0yMy4xODQsMTQuOTU2CgkJYzAuODgyLDAsMS41NjYtMC40NDEsMi4zNi0xLjE5MXYtMi40MjdjLTIuOTM0LDAuMzc2LTMuOTA0LDEuMTQ3LTMuOTA0LDIuMjI5QzIxLjY0LDE0LjUzNiwyMi4yOCwxNC45NTYsMjMuMTg0LDE0Ljk1NnoiLz4KCTxwYXRoIGZpbGw9IiNFOUU5RTkiIGQ9Ik0yOC44MDYsNS44NDZoMi41ODFsMS43Miw1LjYyNGMwLjI4NywxLjA1OSwwLjYxOCwyLjE2MSwwLjkwNCwzLjI2NWgwLjA4OAoJCWMwLjMxLTEuMTA0LDAuNjE4LTIuMjA2LDAuOTI3LTMuMjY1bDEuNzItNS42MjRoMi40NDhsLTMuNjgzLDEwLjgyOWgtMi45MzRMMjguODA2LDUuODQ2eiIvPgoJPHBhdGggZmlsbD0iI0U5RTlFOSIgZD0iTTQwLjE0NSwyLjUxNmMwLTAuODYsMC42NjEtMS40NTYsMS41NjUtMS40NTZzMS41NjYsMC41OTYsMS41NjYsMS40NTZjMCwwLjgzOC0wLjY2MiwxLjQzNC0xLjU2NiwxLjQzNAoJCVM0MC4xNDUsMy4zNTQsNDAuMTQ1LDIuNTE2eiBNNDAuNDMxLDUuODQ2aDIuNTM3djEwLjgyOWgtMi41MzdWNS44NDZ6Ii8+Cgk8cGF0aCBmaWxsPSIjRTlFOUU5IiBkPSJNNDUuNjEzLDEzLjgwOWMwLjk3LDAuNzQ5LDEuODk2LDEuMjEzLDIuOTk5LDEuMjEzYzEuMTcsMCwxLjcyMS0wLjU1MiwxLjcyMS0xLjMwMQoJCWMwLTAuOTA2LTEuMTY5LTEuMzAzLTIuMzE2LTEuNzQ0Yy0xLjQzNC0wLjUyOS0zLjA0My0xLjM0NC0zLjA0My0zLjE1MmMwLTEuODk4LDEuNTIxLTMuMjQzLDMuOTQ4LTMuMjQzCgkJYzEuNDk5LDAsMi43MTMsMC42MTgsMy41OTQsMS4zMDJsLTEuMTY4LDEuNTQzQzUwLjU5Nyw3Ljg3NSw0OS44MjYsNy41LDQ4Ljk2NSw3LjVjLTEuMDgyLDAtMS41ODgsMC41MDctMS41ODgsMS4xOQoJCWMwLDAuODM5LDEuMDgsMS4xOTEsMi4yNDksMS42MWMxLjQ3OSwwLjU1MiwzLjEwOSwxLjI1OCwzLjEwOSwzLjI4N2MwLDEuODUyLTEuNDc4LDMuMzUyLTQuMjEyLDMuMzUyCgkJYy0xLjQ3OCwwLTMuMDQ0LTAuNjM5LTQuMTAyLTEuNUw0NS42MTMsMTMuODA5eiIvPgoJPHBhdGggZmlsbD0iI0U5RTlFOSIgZD0iTTY1LjE3NiwxLjk4N2MxLjc2NCwwLDMuMTk4LDAuODU5LDQuMTAyLDEuODNsLTEuNDExLDEuNTg4Yy0wLjc1LTAuNzI5LTEuNTY1LTEuMTktMi42NjktMS4xOQoJCWMtMi4zNiwwLTQuMDU4LDEuOTg1LTQuMDU4LDUuMjI4YzAsMy4yODYsMS41NjUsNS4yNywzLjk2OSw1LjI3YzEuMjgsMCwyLjIyOC0wLjUyOCwzLjA0NS0xLjQzMmwxLjQxMSwxLjU2NQoJCWMtMS4xNjksMS4zNDUtMi42NjgsMi4wOTUtNC40OTksMi4wOTVjLTMuNjYxLDAtNi41NTEtMi42NDYtNi41NTEtNy40MzNDNTguNTE1LDQuNzg4LDYxLjQ3LDEuOTg3LDY1LjE3NiwxLjk4N3oiLz4KCTxwYXRoIGZpbGw9IiNFOUU5RTkiIGQ9Ik03MS4xMjgsMi4yNTFoMi41NTl2MTQuNDI0aC0yLjU1OVYyLjI1MXoiLz4KPC9nPgo8L3N2Zz4K') no-repeat 20px 18px; } - #top #logo a { - display: block; } - #top ul { - margin: 0; - padding: 0; - list-style: none; - line-height: 30px; } - #top #navigation { - height: 0; - overflow: hidden; } - #top #navigation.is-open { - height: auto; } - #top a, #top span { - color: #fff; - text-decoration: none; } - #top li { - border-top: 1px solid #31363d; } - #top li a, #top li span { - display: block; - padding: 0 12px; } - #top li a:hover, #top li span:hover { - color: #ADC7D0; } - #top a.werehiring { - background-color: #31363d; - border-radius: 4px; - padding: 8px 16px; - line-height: 20px; - margin-right: 80px; - display: inline; } - #top li.traviscicom a { - padding-left: 0px; } - @media only screen and (min-width:40.063em) { - #top { - overflow: visible; - height: 55px; } - #top #navigation { - height: auto; - overflow: visible; } - #top ul { - line-height: 55px; - position: relative; - top: 3px; } - #top li { - display: inline-block; - border: none; } } - @media only screen and (min-width:40.063em) and (max-width:64em) { - #top li.traviscicom { - display: none; } - } - #top .nav-burger { - overflow: auto; } - @media only screen and (min-width:40.063em) { - #top .nav-burger { - display: none; } } - #top #burger { - float: right; - font-size: 50px; - background: none; - border: none; - line-height: 1; - color: #fff; - outline: none !important; } - #top #burger:before, #top #burger:after { - content: ""; - display: table; } - #top #burger:after { - clear: both; } - #top #burger:hover { - cursor: pointer; } - #top .menu { - position: relative; } - #top .menu.signed-out ul { - display: none; } - #top .menu .handle { - margin: 0; } - #top .menu:hover > ul { - display: block; } - #top .menu ul li a { - padding-left: 3em; } - @media only screen and (min-width:40.063em) { - #top .menu ul { - display: none; - position: absolute; - z-index: 300; - right: 0px; - top: 52px; - width: 100%; - background-color: #40454f; } - #top .menu ul li { - display: block; } - #top .menu ul li a { - display: block; - line-height: 24px; - white-space: nowrap; - padding: 5px 20px; } - #top .menu ul li a:hover { - background-color: #30343b; } - } - #top .menu.community { - min-width: 120px; } - #top .user { - text-align: right; } - #top .menu.profile .signing-in { - background: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSI4Ij4KPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOCwgNCkiPgogIDxyZWN0IHg9Ii04IiB5PSItNCIgd2lkdGg9IjUiIGhlaWdodD0iOCI+CiAgICA8YW5pbWF0ZVRyYW5zZm9ybSBpZD0iYSIgYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJzY2FsZSIgZnJvbT0iMSwwLjUiIHRvPSIxIiBkdXI9IjAuNHMiIGJlZ2luPSIwO2IuZW5kIi8+CiAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJmaWxsIiBmcm9tPSIjZWVlIiB0bz0iIzg4OCIgZHVyPSIwLjRzIiBiZWdpbj0iMDtiLmVuZCIvPgogICAgPGFuaW1hdGVUcmFuc2Zvcm0gaWQ9ImIiIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0ic2NhbGUiIGZyb209IjEiIHRvPSIxLDAuNSIgZHVyPSIwLjRzIiBiZWdpbj0iYS5lbmQiLz4KICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImZpbGwiIGZyb209IiM4ODgiIHRvPSIjZWVlIiBkdXI9IjAuNHMiIGJlZ2luPSJhLmVuZCIvPgogIDwvcmVjdD4KICA8cmVjdCB4PSItMiIgeT0iLTQiIHdpZHRoPSI0IiBoZWlnaHQ9IjgiPgogICAgPGFuaW1hdGVUcmFuc2Zvcm0gaWQ9ImMiIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0ic2NhbGUiIGZyb209IjEsMC41IiB0bz0iMSIgZHVyPSIwLjRzIiBiZWdpbj0iMC4xcztkLmVuZCIvPgogICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iZmlsbCIgZnJvbT0iI2VlZSIgdG89IiM4ODgiIGR1cj0iMC40cyIgYmVnaW49IjAuMXM7ZC5lbmQiLz4KICAgIDxhbmltYXRlVHJhbnNmb3JtIGlkPSJkIiBiZWdpbj0iYy5lbmQiIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0ic2NhbGUiIHRvPSIxLDAuNSIgZnJvbT0iMSIgZHVyPSIwLjRzIi8+CiAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJmaWxsIiBmcm9tPSIjODg4IiB0bz0iI2VlZSIgZHVyPSIwLjRzIiBiZWdpbj0iYy5lbmQiLz4KICA8L3JlY3Q+CiAgPHJlY3QgeD0iMyIgeT0iLTQiIHdpZHRoPSI1IiBoZWlnaHQ9IjgiPgogICAgPGFuaW1hdGVUcmFuc2Zvcm0gaWQ9ImUiIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0ic2NhbGUiIGZyb209IjEsMC41IiB0bz0iMSIgZHVyPSIwLjRzIiBiZWdpbj0iMC4ycztmLmVuZCIvPgogICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iZmlsbCIgZnJvbT0iI2VlZSIgdG89IiM4ODgiIGR1cj0iMC40cyIgYmVnaW49IjAuMnM7Zi5lbmQiLz4KICAgIDxhbmltYXRlVHJhbnNmb3JtIGlkPSJmIiBhdHRyaWJ1dGVOYW1lPSJ0cmFuc2Zvcm0iIHR5cGU9InNjYWxlIiBmcm9tPSIxIiB0bz0iMSwwLjUiIGR1cj0iMC40cyIgYmVnaW49ImUuZW5kIi8+CiAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJmaWxsIiBmcm9tPSIjODg4IiB0bz0iI2VlZSIgZHVyPSIwLjRzIiBiZWdpbj0iZS5lbmQiLz4KICA8L3JlY3Q+CjwvZz4KPC9zdmc+Cgo=') no-repeat 110px 22px; } - #top .menu.profile img { - width: 30px; - height: 30px; - border-radius: 100px; } - #top .menu.profile ul { - min-width: 145px; } - #top .menu.profile ul a { - padding: 5px 25px 5px 45px; } - @media only screen and (min-width:40.063em) { - #top .menu.profile { - float: right; } - #top .menu.profile .handle > * { - display: none; - padding: 0 15px 0 45px; } - #top .menu.profile .signed-out, #top .menu.profile .signing-in { - min-width: 110px; } - #top .menu.profile.signed-out .signed-out { - display: block; } - #top .menu.profile.signing-in .signing-in { - display: inline-block; } - #top .menu.profile.signed-in .signed-in { - display: block; } } - #top .menu.profile:not(.signed-in):hover ul { - display: none; } - - #home #navigation .home, #stats #navigation .stats, #profile #navigation .profile { - background-color: transparent; } - #home #navigation .home a, #stats #navigation .stats a, #profile #navigation .profile a { - color: #ffffff; } - #home #navigation .home a:hover, #stats #navigation .stats a:hover, #profile #navigation .profile a:hover { - color: #ADC7D0; } - - #top img { - margin: 10px 10px 7px 10px; - width: 30px; - height: 30px; - border-radius: 100px; } - @media only screen and (min-width:40.063em) { - #top img { - float: right; - margin: 10px 0 0 10px; } } - - .maintenance { - height: 100%; - overflow: hidden; } - .maintenance .full-size { - position: absolute; - top: 0; - height: 100%; - width: 100%; - overflow: hidden; - background-repeat: no-repeat; } - - .main--error { - min-height: 100%; } - - .maintenance-text { - position: absolute; - left: 0; - right: 0; - z-index: 10; } - .maintenance-text h1 { - margin: 1em 0 0.4em; - font-weight: 600; - color: #357389; - font-size: 40px; - line-height: 1; - text-align: center; } - @media only screen and (min-width:40.063em) { - .maintenance-text h1 { - margin: 1.5em 0 0.4em; - font-size: 70px; } } - .maintenance-text p { - padding: 0 1em; - color: #9d9fa1; - font-size: 18px; - text-align: center; } - .maintenance-text a { - color: #9d9fa1; } - .maintenance-text a:hover, .maintenance-text a:focus { - color: #9d9fa1; - text-decoration: underline; } - - .icon-twitter { - display: inline-block; - width: 1.1em; - height: 1.1em; - background-image: url(../images/error/twitter.svg); - background-repeat: no-repeat; - background-size: 100% auto; - background-position: 0 0.2em; } - - .maintenance .maintenance-bg { - background: -webkit-linear-gradient(90deg, #8cad7d, #8cad7d 38.9%, #ccebf7 39%, #fff 60%, #fff); - background: linear-gradient(0deg, #8cad7d, #8cad7d 38.9%, #ccebf7 39%, #fff 60%, #fff); } - .maintenance .hill-left { - background-image: url(../images/error/maintenance-hills-left.svg); - background-size: 80vw auto; - background-position: 0 58%; } - @media only screen and (min-width:40.063em) { - .maintenance .hill-left { - background-size: 58vw auto; - background-position: 0 58%; } } - @media only screen and (min-width:64.063em) { - .maintenance .hill-left { - background-size: 50vw auto; - background-position: 0 56%; } } - .maintenance .hill-right { - background-image: url(../images/error/maintenance-hills-right.svg); - background-size: 38vw auto; - background-position: 99% 59%; - display: none; } - @media only screen and (min-width:40.063em) { - .maintenance .hill-right { - display: block; } } - .maintenance .shadow-left { - background-image: url(../images/error/maintenance-grass-shade-left.svg); - background-size: 24vw auto; - background-position: 6% 72%; } - .maintenance .shadow-right { - background-image: url(../images/error/maintenance-grass-shade-right.svg); - background-size: 17vw auto; - background-position: 95% 79%; } - .maintenance .maintenance-tractor { - background-image: url(../images/error/maintenance-tractor.svg); - background-size: 87vw auto; - background-position: 63% 87%; } - @media only screen and (min-width:40.063em) { - .maintenance .maintenance-tractor { - background-size: auto 44vh; - background-position: 63% 83%; } } - </style> - + <link rel="stylesheet" href="../assets/travis.css"> </head> <body> From 239aab28618e522b6221bd4c3d553179acf38ed6 Mon Sep 17 00:00:00 2001 From: Lisa Passing <mail@lislis.de> Date: Tue, 17 Feb 2015 14:17:10 +0100 Subject: [PATCH 24/26] add 500.html, delete 500 from app --- app/router.coffee | 1 - app/templates/error500.hbs | 11 ---------- app/views/error500.coffee | 7 ------- public/500.html | 43 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 43 insertions(+), 19 deletions(-) delete mode 100644 app/templates/error500.hbs delete mode 100644 app/views/error500.coffee create mode 100644 public/500.html diff --git a/app/router.coffee b/app/router.coffee index 24d337ef..22be0a06 100644 --- a/app/router.coffee +++ b/app/router.coffee @@ -52,7 +52,6 @@ Router.map -> @resource 'account', path: '/:login' @route 'info', path: '/info' - @route 'error500', path: '/500' @route 'error404', path: '/*path' `export default Router` diff --git a/app/templates/error500.hbs b/app/templates/error500.hbs deleted file mode 100644 index de15327b..00000000 --- a/app/templates/error500.hbs +++ /dev/null @@ -1,11 +0,0 @@ -<div class="error-bg full-size"> - <div class="hill-left full-size"></div> - <div class="hill-right full-size"></div> - <div class="shadow-left full-size"></div> - <div class="shadow-right full-size"></div> - <div class="road full-size"></div> -</div> -<div class="error-text"> - <h1>Something went wrong</h1> - <p>It looks like something went wrong with your request.<br>Please try again later.</p> -</div> diff --git a/app/views/error500.coffee b/app/views/error500.coffee deleted file mode 100644 index c6b7dfb2..00000000 --- a/app/views/error500.coffee +++ /dev/null @@ -1,7 +0,0 @@ -`import BasicView from 'travis/views/basic'` - -View = BasicView.extend - layoutName: 'layouts/error' - classNames: ['error error500'] - -`export default View` diff --git a/public/500.html b/public/500.html new file mode 100644 index 00000000..6efdc791 --- /dev/null +++ b/public/500.html @@ -0,0 +1,43 @@ +<!DOCTYPE html> +<html lang="en"><head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <title>Travis CI - 500</title> + <meta name="description" content=""> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,800" rel="stylesheet" type="text/css"> + <link rel="stylesheet" href="../assets/travis.css"> + + </head> + <body> + <div class="application"> + <div class="ember-view error error500"> + <div id="top"> + <div class="row"> + <div class="small-2 medium-2 columns" id="logo"> + <h1><a href="/" class="ember-view">Home</a></h1> + </div> + <ul id="navigation"> + <li><a href="http://blog.travis-ci.com/">Blog</a></li> + <li><a href="http://www.traviscistatus.com/">Status</a></li> + </ul> + </div> + </div> + <main class="main main--error" role="main"> + <div class="error-bg full-size"> + <div class="hill-left full-size"></div> + <div class="hill-right full-size"></div> + <div class="shadow-left full-size"></div> + <div class="shadow-right full-size"></div> + <div class="road full-size"></div> + </div> + <div class="error-text"> + <h1>Something went wrong</h1> + <p>It looks like something went wrong with your request.<br>Please try again later.</p> + </div> + </main> + </div> + </div> + </body> +</html> From 36059a232960d297c8160bbaede9315943a52e3c Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki <drogus@gmail.com> Date: Tue, 17 Feb 2015 10:01:03 +0100 Subject: [PATCH 25/26] Deploy maintenance page to S3 --- .travis.yml | 16 ++++++++++++++++ Brocfile.js | 20 +++++++++++++------- public/maintenance.html | 2 +- 3 files changed, 30 insertions(+), 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index ca777b12..328f0908 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,3 +25,19 @@ script: notifications: campfire: secure: "JJezWGD9KJY/LC2aznI3Zyohy31VTIhcTKX7RWR4C/C8YKbW9kZv3xV6Vn11\nSHxJTeZo6st2Bpv6tjlWZ+HCR09kyCNavIChedla3+oHOiuL0D4gSo+gkTNW\nUKYZz9mcQUd9RoQpTeyxvdvX+l7z62/7JwFA7txHOqxbTS8jrjc=" + +before_deploy: + - DISABLE_FINGERPRINTS=true ember build --env production + # delete some of the stuff that's useless for maintenance page + - rm -fr dist/assets/*.js dist/images/emoji dist/index.html dist/images/sponsors + - cp dist/maintenance.html dist/index.html + +deploy: + provider: s3 + access_key_id: $MAINTENANCE_S3_ACCESS_KEY_ID + secret_access_key: $MAINTENANCE_S3_SECRET_ACCESS_KEY + bucket: travis-error-pages + skip_cleanup: true + acl: public_read + local_dir: dist + region: us-east-1 diff --git a/Brocfile.js b/Brocfile.js index 7aeb4dc2..328cc541 100644 --- a/Brocfile.js +++ b/Brocfile.js @@ -2,16 +2,22 @@ var EmberApp = require('ember-cli/lib/broccoli/ember-app'); -var fingerprint = { - extensions: ['js', 'css', 'png', 'jpg', 'gif', 'map', 'svg'] - }, +var fingerprint, assetsHost; -if (assetsHost = process.env.ASSETS_HOST) { - if (assetsHost.substr(-1) !== '/') { - assetsHost = assetsHost + '/' +if (process.env.DISABLE_FINGERPRINTS) { + fingerprint = false; +} else { + fingerprint = { + extensions: ['js', 'css', 'png', 'jpg', 'gif', 'map', 'svg'] + }; + + if (assetsHost = process.env.ASSETS_HOST) { + if (assetsHost.substr(-1) !== '/') { + assetsHost = assetsHost + '/' + } + fingerprint.prepend = assetsHost } - fingerprint.prepend = assetsHost } var app = new EmberApp({ diff --git a/public/maintenance.html b/public/maintenance.html index b449ebfe..2b3b6d28 100644 --- a/public/maintenance.html +++ b/public/maintenance.html @@ -7,7 +7,7 @@ <meta name="viewport" content="width=device-width, initial-scale=1"> <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,800" rel="stylesheet" type="text/css"> - <link rel="stylesheet" href="../assets/travis.css"> + <link rel="stylesheet" href="/assets/travis.css"> </head> <body> From 518e99c02f9644068fba601fef3fc76c11b4e0bf Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki <drogus@gmail.com> Date: Tue, 17 Feb 2015 15:05:33 +0100 Subject: [PATCH 26/26] Use absolute path for 500 error --- public/500.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/500.html b/public/500.html index 6efdc791..526b5945 100644 --- a/public/500.html +++ b/public/500.html @@ -7,7 +7,7 @@ <meta name="viewport" content="width=device-width, initial-scale=1"> <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,800" rel="stylesheet" type="text/css"> - <link rel="stylesheet" href="../assets/travis.css"> + <link rel="stylesheet" href="/assets/travis.css"> </head> <body>