diff --git a/art/box-logo.psd b/art/box-logo.psd new file mode 100644 index 000000000..c1cbe13aa Binary files /dev/null and b/art/box-logo.psd differ diff --git a/art/landing-back-new.psd b/art/landing-back-new.psd new file mode 100644 index 000000000..dce8cafa0 Binary files /dev/null and b/art/landing-back-new.psd differ diff --git a/art/landing-back.psd b/art/landing-back.psd new file mode 100644 index 000000000..60ac7906d Binary files /dev/null and b/art/landing-back.psd differ diff --git a/endpoints/web.py b/endpoints/web.py index 8bef62397..7cd95f1a1 100644 --- a/endpoints/web.py +++ b/endpoints/web.py @@ -67,6 +67,13 @@ def guide(): return index('') +@web.route('/tour/') +@web.route('/tour/') +@no_cache +def tour(path = ''): + return index('') + + @web.route('/tutorial/') @no_cache def tutorial(): diff --git a/static/css/quay.css b/static/css/quay.css index 96d615f55..ce201cd98 100644 --- a/static/css/quay.css +++ b/static/css/quay.css @@ -9,6 +9,28 @@ } } +nav.navbar { + border: 0px; + border-radius: 0px; + background-image: linear-gradient(to top, #535C66 0%,#6E8194 100%); +} + +nav.navbar-default .navbar-nav>li>a { + color: white; + letter-spacing: 0.5px; + font-weight: 600; +} + +.navbar-default .navbar-nav>li>a:hover, .navbar-default .navbar-nav>li>a:focus { + color: #BEE1FF; +} + +.navbar-default .navbar-nav>.open>a, .navbar-default .navbar-nav>.open>a:hover, .navbar-default .navbar-nav>.open>a:focus { + cursor: pointer; + background: rgba(255, 255, 255, 0.4) !important; + color: white; +} + .notification-view-element { cursor: pointer; margin-bottom: 10px; @@ -548,6 +570,7 @@ i.toggle-icon:hover { padding-left: 10px; cursor: pointer; font-size: 14px; + color: black; } .namespace-selector-dropdown .namespace-item { @@ -561,6 +584,10 @@ i.toggle-icon:hover { color: #aaa; } +.namespace-selector-dropdown a.namespace { + color: black !important; +} + .namespace-selector-dropdown .namespace-item.disabled img { -webkit-filter: grayscale(1); opacity: 0.5; @@ -1202,38 +1229,222 @@ i.toggle-icon:hover { text-decoration: none; } +.landing-page .help-block { + color: #C9C9C9; +} + +.landing-page { + color: #555; +} + +.landing-page .wrapper > nav { + display: none; +} + +.landing-page .nav > li > a { + border-radius: 4px; +} + +.landing-page .nav > li > a:hover, .landing-page .nav > li > a:focus { + background: rgba(255, 255, 255, 0.4); +} + +.landing-page .nav .user-view { + color: white !important; + font-weight: bold; +} + +.landing-page .user-tool { + color: white; +} + +.landing { + position: relative; +} + .landing .popover { font-size: 14px; } +.landing-content { + +} + +.landing-background { + z-index: 0; + + position: absolute; + top: 0px; + bottom: 0px; + left: 0px; + right: 0px; + + background-color: #1d1d1d; + background-image: url(../img/landing-back.jpg); + background-repeat: no-repeat; + background-size: cover; +} + +.landing-filter { + z-index: 0; + + position: absolute; + top: 0px; + bottom: 0px; + left: 0px; + right: 0px; +} + +.landing-filter.signedin { +} + +.landing-content { + z-index: 2; +} + .landing { color: white; - background-color: #1d1d1d; - background-position: left -30px; - background-image: url(../img/containers-back-black.jpg); - background-repeat: no-repeat; - - margin-top: -20px; margin-bottom: 0px; - - padding-top: 46px; - + padding-top: 120px; min-height: 440px; } -.landing .messages { - margin-bottom: 40px; +.landing a:not(.btn) { + color: #BEE1FF; +} + +.landing .logo { + position: absolute; + top: 20px; + left: 16px; +} + +.landing .product-name { + position: absolute; + top: 22px; + left: 131px; + color: white; + font-size: 40px; +} + +.landing .header-bar .navbar-brand { + display: none; +} + +.landing .header-bar form { + display: none; +} + +.landing .header-bar { + font-size: 16px; + position: absolute; + right: 20px; + top: 20px; + color: white; + z-index: 100; +} + +.landing .header-bar .user-tools a { + padding-left: 10px; + padding-right: 10px; + background: transparent !important; +} + +.landing .navbar-links a { + font-weight: bold; + color: white; + border-radius: 6px; +} + +.landing .navbar-links li a:hover { + background: rgba(255, 255, 255, 0.2); +} + +.landing .nav .dropdown-menu a { + color: black; + font-weight: normal; +} + +@media (max-width: 971px) { + .landing .navbar-collapse { + background: rgba(0, 0, 0, 0.8); + border-radius: 2px; + } + + .navbar-header { + float: none; + } + + .navbar-toggle { + display: block; + color: white; + font-size: 48px; + line-height: 28px; + padding: 4px; + } + + .navbar-collapse { + border-top: 1px solid transparent; + box-shadow: inset 0 1px 0 rgba(255,255,255,0.1); + } + + .navbar-collapse.collapse { + display: none!important; + } + + .navbar-nav { + float: none!important; + margin: 7.5px -15px; + } + + .navbar-nav>li { + float: none; + } + + .navbar-nav>li>a { + padding-top: 10px; + padding-bottom: 10px; + } + + .navbar-collapse.collapse.in { display: block!important; } } .landing .messages b { - color: #94C9F7; + color: #59B2FF; } .landing .messages h1 { font-size: 48px; } +.landing-section { + padding: 20px; + padding-bottom: 40px; + border-top: 1px solid #ddd; + display: block; +} + +.landing-section:nth-child(even) { + background: #f7f7f7; +} + +.landing-section h2 { + text-align: center; + display: block; + margin-bottom: 30px; + font-weight: 200; +} + +.landing-page .tour-overview { +} + +.landing-page .tour-overview img { + width: 500px; + padding: 10px; + display: inline-block; +} + .form-signup input { margin: 12px; margin-left: 0px; @@ -1247,6 +1458,57 @@ i.toggle-icon:hover { margin-bottom: 10px; } +.landing-page .twitter-tweet { + width: 100%; + margin: 0px; + border: 0px; +} + +.landing-page .twitter-tweet p { + display: block; + text-align: center; + font-size: 20px; +} + +.landing-page .twitter-tweet .attribute { + display: block; + text-align: center; + margin-bottom: 20px; + position: relative; + margin-top: 20px; +} + +.landing-page .twitter-tweet .info-wrap { + display: inline-block; + padding-left: 70px; +} + +.landing-page .twitter-tweet .avatar img { + border-radius: 4px; + border: 2px solid rgb(70, 70, 70); + width: 50px; + float: left; +} + +.landing-page .twitter-tweet .info { + display: inline-block; + margin-left: 10px; + text-align: left; + margin-top: 4px; +} + +.landing-page .twitter-tweet .reference { + display: block; +} + +.landing-page .twitter-tweet .author { + display: block; +} + +.follow-button { + text-align: center; +} + form input.ng-invalid.ng-dirty, *[ng-form] input.ng-invalid.ng-dirty { background-color: #FDD7D9; @@ -1258,10 +1520,9 @@ form input.ng-valid.ng-dirty, } .product-tour .tour-header { - height: 172px; text-align: center; margin-bottom: 40px; - border-bottom: 4px solid black; + border-bottom: 4px solid #333; } .product-tour .tour-header .tour-shoutout-header { @@ -1289,32 +1550,75 @@ form input.ng-valid.ng-dirty, margin-bottom: 20px; } +.product-tour .testimonial { + margin-bottom: 20px; + margin-top: 10px; + padding-top: 20px; + border-top: 4px solid #ccc; +} + .landing .popover-content { color: black; } -.landing .shoutout i { - font-size: 36px; - display: block; +.landing-page .shoutout > i { + font-size: 50px; + display: inline-block; + width: 120px; + height: 120px; + background: #eee; + text-align: center; + border-radius: 50%; + line-height: 120px; } -.landing .shoutout b { +.landing-page .shoutout > b { font-size: 22px; display: block; line-height: 31px; + margin-top: 10px; + margin-bottom: 10px; } -.landing .shoutout { +.landing-page .shoutout { font-size: 14px; text-align: center; line-height: normal; + padding-top: 30px; + margin-bottom: 15px; } -@media (max-height: 768px) { - .landing { - padding: 20px; - padding-top: 20px; - } +.landing-page .shoutout .shoutout-link { + display: block; + margin-top: 16px; + font-size: 18px; + text-align: center; +} + +.landing-page .feature-shoutout { + margin-bottom: 20px; +} + +.landing-page .feature-shoutout > a { + font-size: 22px; + display: block; + line-height: 31px; + padding-top: 10px; + padding-bottom: 10px; + text-align: center; +} + +.landing-page .feature-shoutout .img-responsive { + border: 2px solid #eee; + padding: 6px; +} + +.landing-page .landing-action { + text-align: center; +} + +.landing-page .landing-action a { + font-size: 26px; } .page-footer { @@ -2335,11 +2639,11 @@ p.editable:hover i { } .navbar-brand { - padding: 12px 15px; + padding: 6px; } .navbar-brand img { - height: 25px; + height: 36px; } .user-dropdown > img { @@ -3850,4 +4154,258 @@ pre.command:before { background: red; } +/* +This is the visible area of you carousel. +Set a width here to define how much items are visible. +The width can be either fixed in px or flexible in %. +Position must be relative! +*/ +.jcarousel { + position: relative; + overflow: hidden; + margin-left: 30px; + margin-right: 30px; +} +.jcarousel-wrapper { + position: relative; +} + +.jcarousel-wrapper .jcarousel-control { + font-size: 64px; + position: absolute; + top: -16px; + text-decoration: none !important; +} + +.jcarousel-wrapper .jcarousel-control-prev { + left: 0px; +} + +.jcarousel-wrapper .jcarousel-control-next { + right: 0px; +} + +/* +This is the container of the carousel items. +You must ensure that the position is relative or absolute and +that the width is big enough to contain all items. +*/ +.jcarousel ul { + width: 20000em; + position: relative; + + /* Optional, required in this case since it's a