Merge pull request #3839 from hashicorp/new_header

New header/footer redesign
This commit is contained in:
Clint 2015-11-16 16:05:37 -06:00
commit 0346c66d1c
26 changed files with 1156 additions and 624 deletions

View File

@ -186,6 +186,3 @@ PLATFORMS
DEPENDENCIES
middleman-hashicorp!
BUNDLED WITH
1.10.6

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

Before

Width:  |  Height:  |  Size: 556 B

After

Width:  |  Height:  |  Size: 556 B

View File

Before

Width:  |  Height:  |  Size: 994 B

After

Width:  |  Height:  |  Size: 994 B

View File

@ -21,6 +21,12 @@ var Init = {
if (this.Pages[id]) {
this.Pages[id]();
}
//always init sidebar
Init.initializeSidebar();
},
initializeSidebar: function(){
new Sidebar();
},
generateAnimatedLogo: function(){

View File

@ -0,0 +1,50 @@
(function(){
Sidebar = Base.extend({
$body: null,
$overlay: null,
$sidebar: null,
$sidebarHeader: null,
$sidebarImg: null,
$toggleButton: null,
constructor: function(){
this.$body = $('body');
this.$overlay = $('.sidebar-overlay');
this.$sidebar = $('#sidebar');
this.$sidebarHeader = $('#sidebar .sidebar-header');
this.$toggleButton = $('.navbar-toggle');
this.sidebarImg = this.$sidebarHeader.css('background-image');
this.addEventListeners();
},
addEventListeners: function(){
var _this = this;
_this.$toggleButton.on('click', function() {
_this.$sidebar.toggleClass('open');
if ((_this.$sidebar.hasClass('sidebar-fixed-left') || _this.$sidebar.hasClass('sidebar-fixed-right')) && _this.$sidebar.hasClass('open')) {
_this.$overlay.addClass('active');
_this.$body.css('overflow', 'hidden');
} else {
_this.$overlay.removeClass('active');
_this.$body.css('overflow', 'auto');
}
return false;
});
_this.$overlay.on('click', function() {
$(this).removeClass('active');
_this.$body.css('overflow', 'auto');
_this.$sidebar.removeClass('open');
});
}
});
window.Sidebar = Sidebar;
})();

View File

@ -21,4 +21,5 @@
//= require app/Engine.Shape
//= require app/Engine.Shape.Puller
//= require app/Engine.Typewriter
//= require app/Sidebar
//= require app/Init

View File

@ -2,7 +2,7 @@
var Init = {
start: function(){
start: function(){
var classname = this.hasClass(document.body, 'page-sub');
if (classname) {
@ -25,7 +25,7 @@ var Init = {
resizeImage: function(){
var header = document.getElementById('header'),
footer = document.getElementById('footer-wrap'),
footer = document.getElementById('footer'),
main = document.getElementById('main-content'),
vp = window.innerHeight,
bodyHeight = document.body.clientHeight,
@ -33,10 +33,10 @@ var Init = {
fHeight = footer.clientHeight,
withMinHeight = hHeight + fHeight + 830;
if(withMinHeight > bodyHeight ){
if(withMinHeight < vp && bodyHeight < vp){
var newHeight = (vp - (hHeight+fHeight)) + 'px';
main.style.height = newHeight;
}
}
}
};

View File

@ -2,6 +2,7 @@
// Typography
// --------------------------------------------------
//light
.rls-l{
font-family: $font-family-lato;

View File

@ -1,210 +1,88 @@
#footer-wrap{
background-color: white;
padding: 0 0 50px 0;
}
body.page-home{
#footer{
margin-top: -40px;
}
body.page-sub{
#footer{
padding: 40px 0;
margin-top: 0;
}
}
#footer{
padding: 140px 0 40px;
color: black;
a{
color: black;
}
background-color: white;
padding: 150px 0 80px;
margin-top: -40px;
&.white{
background-color: $black;
.footer-links{
margin-bottom: 20px;
.li-under a:hover::after,
.li-under a:focus::after {
opacity: 1;
-webkit-transform: skewY(15deg) translateY(8px);
-moz-transform: skewY(15deg) translateY(8px);
transform: skewY(15deg) translateY(8px);
}
.li-under a::after {
background-color: $purple;
}
li{
a{
text-transform: uppercase;
font-size: 12px;
letter-spacing: 3px;
@include transition( color 0.3s ease );
font-weight: 400;
&:hover{
color: $purple;
@include transition( color 0.3s ease );
background-color: transparent;
}
}
}
li > a {
@include project-footer-a-subpage-style();
}
}
}
.buttons.navbar-nav{
float: none;
display: inline-block;
margin-bottom: 30px;
margin-top: 0px;
li{
&.first{
margin-right: 12px;
}
&.download{
a{
background: image-url('icon-download-purple.png') 8px 6px no-repeat;
@include img-retina("icon-download-purple.png", "icon-download-purple@2x.png", 20px, 20px);
}
}
&.github{
a{
background: image-url('icon-github-purple.png') 8px 6px no-repeat;
@include img-retina("icon-github-purple.png", "icon-github-purple@2x.png", 20px, 20px);
}
}
}
li > a {
padding-top: 6px;
padding-bottom: 6px;
padding-left: 40px;
}
.footer-links{
li > a {
@include project-footer-a-style();
}
}
.footer-hashi{
float: right;
padding-top: 5px;
letter-spacing: 2px;
.hashicorp-project{
margin-top: 24px;
}
a{
color: black;
font-weight: $font-weight-lato-xb;
}
span{
margin-right: 10px;
}
.hashi-logo{
display: inline-block;
vertical-align: middle;
i{
display: inline-block;
width: 37px;
height: 40px;
background: image-url('footer-hashicorp-logo.png') 0 0 no-repeat;
@include img-retina("footer-hashicorp-logo.png", "footer-hashicorp-logo@2x.png", 37px, 40px);
}
}
}
.pull-right{
padding-right: 15px;
}
}
.page-sub{
#footer-wrap{
padding: 0;
}
.edit-page-link{
position: absolute;
top: -70px;
right: 30px;;
#footer{
padding: 140px 0 100px;
background-color: $black;
transform: none;
>.container{
transform: none;
}
a{
color: white;
}
.footer-hashi{
color: white;
.hashi-logo{
i{
background: image-url('footer-hashicorp-white-logo.png') 0 0 no-repeat;
@include img-retina("footer-hashicorp-white-logo.png", "footer-hashicorp-white-logo@2x.png", 37px, 40px);
}
}
}
}
}
@media (min-width: 1500px) {
body.page-home{
#footer{
margin-top: -60px;
padding: 190px 0 40px;
}
}
a{
text-transform: uppercase;
color: $black;
font-size: 13px;
}
}
@media (max-width: 992px) {
.page-sub #footer, #footer{
.footer-hashi {
padding-top: 14px;
span{
margin-right: 6px;
}
.hashi-logo{
i{
margin-top: -6px;
width: 20px;
height: 22px;
background-size: 20px 22px;
}
}
}
.footer-links {
display: block;
text-align: center;
ul{
display: inline-block;;
float: none !important;
}
}
@media (max-width: 768px) {
#footer{
padding: 100px 0 40px;
text-align: center;
.footer-links{
float: none;
display: inline-block;
}
.footer-hashi {
float: none;
display: inline-block;
.pull-right{
float: none !important;
}
}
.footer-hashi{
display: block;
float: none !important;
}
}
}
@media (max-width: 320px) {
#footer{
text-align: center;
@media (max-width: 414px) {
#footer{
ul{
display: block;
li{
display: block;
float: none;
}
.footer-links{
.li-under{
float: none !important;
}
&.external-links{
li{
svg{
position: relative;
left: 0;
top: 2px;
margin-top: 0;
margin-right: 4px;
}
}
}
}
}
}

View File

@ -1,382 +1,87 @@
//
// Header
// - Project Specific
// - edits should be made here
// --------------------------------------------------
body.page-sub{
.terra-btn{
background-color: rgba(130, 47, 247, 1);
}
#header{
height: 90px;
background-color: $purple;
.navbar-collapse{
background-color: rgba(255, 255, 255, 0.98);
}
.nav-logo{
height: 90px;
}
.nav-white{
height: 90px;
background-color: white;
}
.main-links.navbar-nav{
float: left !important;
li > a {
color: black;
@include transition( color 0.3s ease );
}
}
.buttons.nav > li > a, .buttons.nav > li > a {
//background-color: lighten($purple, 1%);
@include transition( background-color 0.3s ease );
}
.buttons.nav > li > a:hover, .buttons.nav > li > a:focus {
background-color: black;
@include transition( background-color 0.3s ease );
}
.main-links.nav > li > a:hover, .main-links.nav > li > a:focus {
color: $purple;
@include transition( color 0.3s ease );
}
}
#header{
background-color: $purple;
}
}
#header {
position: relative;
color: $white;
text-rendering: optimizeLegibility;
margin-bottom: 0;
.navbar-brand {
.logo{
font-size: 20px;
text-transform: uppercase;
@include lato-light();
background: image-url('../images/logo-header.png') 0 0 no-repeat;
@include img-retina("../images/logo-header.png", "../images/logo-header@2x.png", $project-logo-width, $project-logo-height);
background-position: 0 45%;
&.navbar-static-top{
height:70px;
-webkit-transform:translate3d(0,0,0);
-moz-transform:translate3d(0,0,0);
-ms-transform:translate3d(0,0,0);
-o-transform:translate3d(0,0,0);
transform:translate3d(0,0,0);
z-index: 1000;
&:hover{
opacity: .6;
}
}
a{
color: $white;
}
.navbar-toggle{
margin-top: 26px;
margin-bottom: 14px;
margin-right: 0;
border: 2px solid $white;
border-radius: 0;
.icon-bar{
border: 1px solid $white;
border-radius: 0;
.by-hashicorp{
&:hover{
svg{
line{
opacity: .4;
}
}
}
}
}
.buttons{
margin-top: 2px; //baseline everything
ul.navbar-nav{
li {
// &:hover{
// svg path{
// fill: $purple;
// }
// }
svg path{
fill: $white;
}
}
}
}
.main-links,
.external-links {
li > a {
@include project-a-style();
}
}
}
@media (max-width: 414px) {
#header {
.navbar-brand {
&.logo{
margin-top: 15px;
padding: 5px 0 0 68px;
height: 56px;
line-height: 56px;
font-size: 24px;
@include lato-light();
text-transform: uppercase;
background: image-url('consul-header-logo.png') 0 0 no-repeat;
@include img-retina("header-logo.png", "header-logo@2x.png", 50px, 56px);
-webkit-font-smoothing: default;
}
}
.navbar-nav{
-webkit-font-smoothing: antialiased;
li{
position: relative;
> a {
font-size: 12px;
text-transform: uppercase;
letter-spacing: 3px;
padding-left: 22px;
@include transition( color 0.3s ease );
}
&.first{
>a{
padding-left: 15px;
}
}
}
}
.nav > li > a:hover, .nav > li > a:focus {
background-color: transparent;
color: lighten($purple, 15%);
@include transition( color 0.3s ease );
}
.main-links.navbar-nav{
margin-top: 28px;
li + li{
padding-left: 6px;
}
li + li::before {
content: "";
position: absolute;
left: 0;
top: 7px;
width: 1px;
height: 12px;
background-color: $purple;
@include skewY(24deg);
padding-right: 0;
}
li > a {
//border-bottom: 2px solid rgba(255, 255, 255, .2);
line-height: 26px;
margin: 0 8px;
padding: 0 0 0 4px;
}
}
.buttons.navbar-nav{
margin-top: 25px;
margin-left: 30px;
li{
&.first{
margin-right: 13px;
}
&.download{
a{
padding-left: 30px;
background: image-url("header-download-icon.png") 12px 8px no-repeat;
@include img-retina("header-download-icon.png", "header-download-icon@2x.png", 12px, 13px);
}
}
&.github{
a{
background: image-url("header-github-icon.png") 12px 7px no-repeat;
@include img-retina("header-github-icon.png", "header-github-icon@2x.png", 12px, 13px);
}
}
}
li > a {
color: white;
padding-top: 4px;
padding-bottom: 4px;
padding-left: 32px;
padding-right: 12px;
letter-spacing: 0.05em;
}
.logo{
padding-left: 37px;
font-size: 18px;
@include img-retina("../images/logo-header.png", "../images/logo-header@2x.png", $project-logo-width * .75, $project-logo-height * .75);
//background-position: 0 45%;
}
}
}
}
@media (min-width: 1200px) {
#header{
.main-links.navbar-nav{
margin-top: 28px;
li + li{
padding-left: 6px;
}
li + li::before {
content: "";
position: absolute;
left: 0;
top: 9px;
width: 6px;
height: 8px;
background-color: $purple;
@include skewY(24deg);
padding-right: 8px;
}
li > a {
//border-bottom: 2px solid rgba(255, 255, 255, .2);
line-height: 26px;
margin: 0 12px;
padding: 0 0 0 4px;
}
}
}
}
@media (min-width: 992px) {
.collapse{
margin-top: 8px;
}
//homepage has more space at this width to accommodate chevrons
.page-home{
#header{
.main-links.navbar-nav{
li + li{
padding-left: 6px;
}
li + li::before {
content: "";
position: absolute;
left: 0;
top: 9px;
width: 6px;
height: 8px;
background-color: $purple;
@include skewY(24deg);
padding-right: 8px;
}
}
}
}
}
@media (min-width: 768px) and (max-width: 992px) {
body.page-home{
.nav-logo{
width: 30%;
}
.nav-white{
margin-top: 8px;
width: 70%;
}
.buttons.navbar-nav{
li{
> a{
padding-right: 4px !important;
text-indent: -9999px;
white-space: nowrap;
}
}
}
}
}
@media (max-width: 992px) {
#header {
.navbar-brand {
&.logo{
span{
width: 120px;
height: 39px;
margin-top: 12px;
background-size: 120px 39px;
}
}
}
}
}
@media (max-width: 768px) {
body.page-sub{
#header{
.nav-white{
background-color: transparent;
}
}
}
#header{
.buttons.navbar-nav{
float: none !important;
margin: 0;
padding-bottom: 0 !important;
li{
&.first{
margin-right: 0;
}
}
}
}
//#footer,
#header{
.buttons.navbar-nav,
.main-links.navbar-nav{
display: block;
padding-bottom: 15px;
li{
display: block;
float: none;
margin-top: 15px;
}
.li-under a::after,
li + li::before {
display: none;
}
}
}
//#footer,
#header{
.main-links.navbar-nav{
float: left !important;
li > a {
padding: 0;
padding-left: 0;
line-height: 22px;
}
}
}
}
@media (max-width: 763px) {
.navbar-static-top {
.nav-white {
background-color:rgba(0,0,0,0.5);
}
}
}
@media (max-width: 320px) {
#header{
.navbar-brand {
&.logo{
padding:0 0 0 54px !important;
font-size: 20px !important;
line-height:42px !important;
margin-top: 23px !important ;
@include img-retina("../images/header-logo.png", "../images/header-logo@2x.png", 39px, 44px);
}
}
#header {
.navbar-brand {
.logo{
font-size: 0 !important; //hide terraform text
}
}
#feature-auto{
.terminal-text{
line-height: 48px !important;
font-size: 20px !important;
}
}
}
}

View File

@ -0,0 +1,23 @@
//
// Sidebar
// - Project Specific
// - Make sidebar edits here
// --------------------------------------------------
.sidebar {
.sidebar-nav {
// Links
//----------------
li {
a {
color: $black;
svg{
path{
fill: $black;
}
}
}
}
}
}

View File

@ -2,27 +2,11 @@
// Utility classes
// --------------------------------------------------
//
// -------------------------
@mixin anti-alias() {
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
}
@mixin consul-gradient-bg() {
background: #694a9c; /* Old browsers */
background: -moz-linear-gradient(left, #694a9c 0%, #cd2028 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, right top, color-stop(0%,#694a9c), color-stop(100%,#cd2028)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(left, #694a9c 0%,#cd2028 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(left, #694a9c 0%,#cd2028 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(left, #694a9c 0%,#cd2028 100%); /* IE10+ */
background: linear-gradient(to right, #694a9c 0%,#cd2028 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#694a9c', endColorstr='#cd2028',GradientType=1 ); /* IE6-9 */
}
@mixin lato-light() {
font-family: $font-family-lato;
font-weight: 300;

View File

@ -1,13 +1,12 @@
@import 'bootstrap-sprockets';
@import 'bootstrap';
@import url("//fonts.googleapis.com/css?family=Lato:300,400,700");
@import url("//fonts.googleapis.com/css?family=Lato:300,400,700|Open+Sans:300,400,600");
// Core variables and mixins
@import '_variables';
@import '_mixins';
// Utility classes
// Utility
@import '_utilities';
// Core CSS
@ -16,11 +15,18 @@
//Global Site
@import '_global';
// Hashicorp Shared Project Styles
@import 'hashicorp-shared/_project-utility';
@import 'hashicorp-shared/_hashicorp-utility';
@import 'hashicorp-shared/_hashicorp-header';
@import 'hashicorp-shared/_hashicorp-sidebar';
// Components
@import '_header';
@import '_footer';
@import '_jumbotron';
@import '_buttons';
@import '_sidebar';
// Pages
@import '_home';

View File

@ -0,0 +1,343 @@
//
// Hashicorp header
// - Shared throughout projects
// - Edits should not be made here
// --------------------------------------------------
#header{
position: relative;
margin-bottom: 0;
}
.navigation {
color: black;
text-rendering: optimizeLegibility;
transition: all 1s ease;
&.white{
.navbar-brand {
.logo {
color: white;
}
}
.main-links,
.external-links {
li > a {
&:hover{
opacity: 1;
}
}
}
}
&.black{
.navbar-brand {
.logo {
color: black;
}
}
.main-links,
.external-links {
li > a {
color: black;
}
}
}
.navbar-toggle{
height: $header-height;
margin: 0;
border-radius: 0;
.icon-bar{
border: 1px solid $black;
border-radius: 0;
}
}
.external-links {
&.white{
svg path{
fill: $white;
}
}
li {
position: relative;
svg path{
@include transition( all 300ms ease-in );
}
&:hover{
svg path{
@include transition( all 300ms ease-in );
}
}
@include project-svg-external-links-style();
&.download{
margin-right: 10px;
}
> a {
padding-left: 12px !important;
svg{
position: absolute;
left: -12px;
top: 50%;
margin-top: -7px;
width: 14px;
height: 14px;
}
}
}
}
.main-links{
margin-right: $nav-margin-right * 2;
}
.main-links,
.external-links {
&.white{
li > a {
color: white;
}
}
li > a {
@include hashi-a-style();
margin: 0 10px;
padding-top: 1px;
line-height: $header-height;
@include project-a-style();
}
}
.nav > li > a:hover, .nav > li > a:focus {
background-color: transparent;
@include transition( all 300ms ease-in );
}
}
.navbar-brand {
display: block;
height: $header-height;
padding: 0;
margin: 0 10px 0 0;
.logo{
display: inline-block;
height: $header-height;
vertical-align:top;
padding: 0;
line-height: $header-height;
padding-left: $project-logo-width + $project-logo-pad-left;
background-position: 0 center;
@include transition(all 300ms ease-in);
&:hover{
@include transition(all 300ms ease-in);
text-decoration: none;
}
}
}
.navbar-toggle{
&.white{
.icon-bar{
border: 1px solid white;
}
}
}
.by-hashicorp{
display: inline-block;
vertical-align:top;
height: $header-height;
margin-left: 3px;
padding-top: 2px;
color: black;
line-height: $header-height;
font-family: $header-font-family;
font-weight: 600;
font-size: 0;
text-decoration: none;
&.white{
color: white;
font-weight: 300;
svg{
path,
polygon{
fill: white;
}
line{
stroke: white;
}
}
&:focus,
&:hover{
text-decoration: none;
color: white;
}
}
&:focus,
&:hover{
text-decoration: none;
}
.svg-wrap{
font-size: 13px;
}
svg{
&.svg-by{
width: $by-hashicorp-width;
height: $by-hashicorp-height;
margin-bottom: -4px;
margin-left: 4px;
}
&.svg-logo{
width: 16px;
height: 16px;
margin-bottom: -3px;
margin-left: 4px;
}
path,
polygon{
fill: black;
@include transition(all 300ms ease-in);
&:hover{
@include transition(all 300ms ease-in);
}
}
line{
stroke: black;
@include transition(all 300ms ease-in);
&:hover{
@include transition(all 300ms ease-in);
}
}
}
}
.hashicorp-project{
display: inline-block;
height: 30px;
line-height: 30px;
text-decoration: none;
font-size: 14px;
color: $black;
font-weight: 600;
&.white{
color: white;
svg{
path,
polygon{
fill: white;
}
line{
stroke: white;
}
}
}
&:focus{
text-decoration: none;
}
&:hover{
text-decoration: none;
svg{
&.svg-by{
line{
stroke: $purple;
}
}
}
}
span{
margin-right: 4px;
font-family: $header-font-family;
font-weight: 500;
}
span,
svg{
display: inline-block;
}
svg{
&.svg-by{
width: $by-hashicorp-width;
height: $by-hashicorp-height;
margin-bottom: -4px;
margin-left: -3px;
}
&.svg-logo{
width: 30px;
height: 30px;
margin-bottom: -10px;
margin-left: -1px;
}
path,
line{
fill: $black;
@include transition(all 300ms ease-in);
&:hover{
@include transition(all 300ms ease-in);
}
}
}
}
@media (max-width: 480px) {
.navigation {
.main-links{
margin-right: 0;
}
}
}
@media (max-width: 414px) {
#header {
.navbar-toggle{
padding-top: 10px;
height: $header-mobile-height;
}
.navbar-brand {
height: $header-mobile-height;
.logo{
height: $header-mobile-height;
line-height: $header-mobile-height;
}
.by-hashicorp{
height: $header-mobile-height;
line-height: $header-mobile-height;
padding-top: 0;
}
}
.main-links,
.external-links {
li > a {
line-height: $header-mobile-height;
}
}
}
}

View File

@ -0,0 +1,293 @@
//
// Hashicorp Sidebar
// - Shared throughout projects
// - Edits should not be made here
// --------------------------------------------------
// Base variables
// --------------------------------------------------
$screen-tablet: 768px;
$gray-darker: #212121; // #212121 - text
$gray-secondary: #757575; // #757575 - secondary text, icons
$gray: #bdbdbd; // #bdbdbd - hint text
$gray-light: #e0e0e0; // #e0e0e0 - divider
$gray-lighter: #f5f5f5; // #f5f5f5 - background
$link-color: $gray-darker;
$link-bg: transparent;
$link-hover-color: $gray-lighter;
$link-hover-bg: $gray-lighter;
$link-active-color: $gray-darker;
$link-active-bg: $gray-light;
$link-disabled-color: $gray-light;
$link-disabled-bg: transparent;
/* -- Sidebar style ------------------------------- */
// Sidebar variables
// --------------------------------------------------
$zindex-sidebar-fixed: 1035;
$sidebar-desktop-width: 280px;
$sidebar-width: 240px;
$sidebar-padding: 16px;
$sidebar-divider: $sidebar-padding/2;
$sidebar-icon-width: 40px;
$sidebar-icon-height: 20px;
@mixin sidebar-nav-base {
text-align: center;
&:last-child{
border-bottom: none;
}
li > a {
background-color: $link-bg;
}
li:hover > a {
background-color: $link-hover-bg;
}
li:focus > a, li > a:focus {
background-color: $link-bg;
}
> .open > a {
&,
&:hover,
&:focus {
background-color: $link-hover-bg;
}
}
> .active > a {
&,
&:hover,
&:focus {
background-color: $link-active-bg;
}
}
> .disabled > a {
&,
&:hover,
&:focus {
background-color: $link-disabled-bg;
}
}
// Dropdown menu items
> .dropdown {
// Remove background color from open dropdown
> .dropdown-menu {
background-color: $link-hover-bg;
> li > a {
&:focus {
background-color: $link-hover-bg;
}
&:hover {
background-color: $link-hover-bg;
}
}
> .active > a {
&,
&:hover,
&:focus {
color: $link-active-color;
background-color: $link-active-bg;
}
}
}
}
}
//
// Sidebar
// --------------------------------------------------
// Sidebar Elements
//
// Basic style of sidebar elements
.sidebar {
position: relative;
display: block;
min-height: 100%;
overflow-y: auto;
overflow-x: hidden;
border: none;
@include transition(all 0.5s cubic-bezier(0.55, 0, 0.1, 1));
@include clearfix();
background-color: $white;
ul{
padding-left: 0;
list-style-type: none;
}
.sidebar-divider, .divider {
width: 80%;
height: 1px;
margin: 8px auto;
background-color: lighten($gray, 20%);
}
// Sidebar heading
//----------------
.sidebar-header {
position: relative;
margin-bottom: $sidebar-padding;
@include transition(all .2s ease-in-out);
}
.sidebar-image {
padding-top: 24px;
img {
display: block;
margin: 0 auto;
}
}
// Sidebar icons
//----------------
.sidebar-icon {
display: inline-block;
height: $sidebar-icon-height;
margin-right: $sidebar-divider;
text-align: left;
font-size: $sidebar-icon-height;
vertical-align: middle;
&:before, &:after {
vertical-align: middle;
}
}
.sidebar-nav {
margin: 0;
padding: 0;
@include sidebar-nav-base();
// Links
//----------------
li {
position: relative;
list-style-type: none;
text-align: center;
a {
position: relative;
cursor: pointer;
user-select: none;
@include hashi-a-style-core();
svg{
top: 2px;
width: 14px;
height: 14px;
margin-bottom: -2px;
margin-right: 4px;
}
}
}
}
}
// Sidebar toggling
//
// Hide sidebar
.sidebar {
width: 0;
@include translate3d(-$sidebar-desktop-width, 0, 0);
&.open {
min-width: $sidebar-desktop-width;
width: $sidebar-desktop-width;
@include translate3d(0, 0, 0);
}
}
// Sidebar positions: fix the left/right sidebars
.sidebar-fixed-left,
.sidebar-fixed-right,
.sidebar-stacked {
position: fixed;
top: 0;
bottom: 0;
z-index: $zindex-sidebar-fixed;
}
.sidebar-stacked {
left: 0;
}
.sidebar-fixed-left {
left: 0;
box-shadow: 2px 0px 25px rgba(0,0,0,0.15);
-webkit-box-shadow: 2px 0px 25px rgba(0,0,0,0.15);
}
.sidebar-fixed-right {
right: 0;
box-shadow: 0px 2px 25px rgba(0,0,0,0.15);
-webkit-box-shadow: 0px 2px 25px rgba(0,0,0,0.15);
@include translate3d($sidebar-desktop-width, 0, 0);
&.open {
@include translate3d(0, 0, 0);
}
.icon-material-sidebar-arrow:before {
content: "\e614"; // icon-material-arrow-forward
}
}
// Sidebar size
//
// Change size of sidebar and sidebar elements on small screens
@media (max-width: $screen-tablet) {
.sidebar.open {
min-width: $sidebar-width;
width: $sidebar-width;
}
.sidebar .sidebar-header {
//height: $sidebar-width * 9/16; // 16:9 header dimension
}
.sidebar .sidebar-image {
/* img {
width: $sidebar-width/4 - $sidebar-padding;
height: $sidebar-width/4 - $sidebar-padding;
} */
}
}
.sidebar-overlay {
visibility: hidden;
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
opacity: 0;
background: $white;
z-index: $zindex-sidebar-fixed - 1;
-webkit-transition: visibility 0 linear .4s,opacity .4s cubic-bezier(.4,0,.2,1);
-moz-transition: visibility 0 linear .4s,opacity .4s cubic-bezier(.4,0,.2,1);
transition: visibility 0 linear .4s,opacity .4s cubic-bezier(.4,0,.2,1);
-webkit-transform: translateZ(0);
-moz-transform: translateZ(0);
-ms-transform: translateZ(0);
-o-transform: translateZ(0);
transform: translateZ(0);
}
.sidebar-overlay.active {
opacity: 0.3;
visibility: visible;
-webkit-transition-delay: 0;
-moz-transition-delay: 0;
transition-delay: 0;
}

View File

@ -0,0 +1,87 @@
//
// Hashicorp Nav (header/footer) Utiliy Vars and Mixins
//
// Notes:
// - Include this in Application.scss before header and feature-footer
// - Open Sans Google (Semibold - 600) font needs to be included if not already
// --------------------------------------------------
// Variables
$font-family-open-sans: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
$header-font-family: $font-family-open-sans;
$header-font-weight: 600; // semi-bold
$header-height: 74px;
$header-mobile-height: 60px;
$by-hashicorp-width: 74px;
$by-hashicorp-height: 16px;
$nav-margin-right: 12px;
// Mixins
@mixin hashi-a-style-core{
font-family: $header-font-family;
font-weight: $header-font-weight;
font-size: 14px;
//letter-spacing: 0.0625em;
}
@mixin hashi-a-style{
margin: 0 15px;
padding: 0;
line-height: 22px;
@include hashi-a-style-core();
@include transition( all 300ms ease-in );
&:hover{
@include transition( all 300ms ease-in );
background-color: transparent;
}
}
//general shared project mixins
@mixin img-retina($image1x, $image, $width, $height) {
background-image: url($image1x);
background-size: $width $height;
background-repeat: no-repeat;
@media (min--moz-device-pixel-ratio: 1.3),
(-o-min-device-pixel-ratio: 2.6/2),
(-webkit-min-device-pixel-ratio: 1.3),
(min-device-pixel-ratio: 1.3),
(min-resolution: 1.3dppx) {
/* on retina, use image that's scaled by 2 */
background-image: url($image);
background-size: $width $height;
}
}
//
// -------------------------
@mixin anti-alias() {
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
}
@mixin open-light() {
font-family: $font-family-open-sans;
font-weight: 300;
}
@mixin open() {
font-family: $font-family-open-sans;
font-weight: 400;
}
@mixin open-sb() {
font-family: $font-family-open-sans;
font-weight: 600;
}
@mixin open-bold() {
font-family: $font-family-open-sans;
font-weight: 700;
}
@mixin bez-1-transition{
@include transition( all 300ms ease-in-out );
}

View File

@ -0,0 +1,72 @@
//
// Mixins Specific to project
// - make edits to mixins here
// --------------------------------------------------
// Variables
$project-logo-width: 38px;
$project-logo-height: 40px;
$project-logo-pad-left: 8px;
// Mixins
@mixin project-a-style{
color: $white;
font-weight: 400;
opacity: .75;
-webkit-font-smoothing: antialiased;
&:hover{
color: $white;
opacity: 1;
}
}
@mixin project-footer-a-style{
color: $black;
font-weight: 400;
&:hover{
color: $purple;
svg path{
fill: $purple;
}
}
}
@mixin project-footer-a-subpage-style{
color: $white;
font-weight: 300;
svg path{
fill: $white;
}
&:hover{
color: $purple;
svg path{
fill: $purple;
}
}
}
@mixin project-svg-external-links-style{
svg path{
fill: $black;
}
&:hover{
svg path{
fill: $blue;
}
}
}
@mixin project-by-hashicorp-style{
&:hover{
line{
stroke: $blue;
}
}
}

View File

@ -1,28 +1,42 @@
<div class="skew-item" id="footer-wrap">
<div id="footer">
<div class="container">
<div class="row">
<div class="footer-links col-sm-7 col-xs-12">
<ul class="footer-links nav navbar-nav">
<li class="li-under"><a href="/intro/index.html">Intro</a></li>
<li class="active li-under"><a href="/docs/index.html">Docs</a></li>
<li class="li-under"><a href="/community.html">Community</a></li>
<% if current_page.url != '/' %>
<li class="li-under"><a href="<%= github_url :current_page %>">Edit this page</a></li>
<% end %>
</ul>
</div>
<div class="footer-hashi col-sm-5 col-xs-12">
<div class="pull-right">
<span>Copyright &copy; <%= Time.now.year %>. A <a href="https://www.hashicorp.com">HashiCorp</a> Project.</span>
<a class="hashi-logo" href="https://www.hashicorp.com"><i class="hashi-logo"></i></a>
</div>
</div>
</div>
</div>
<div class="skew-item" id="footer-bg"></div>
</div>
</div>
<div class="skew-item ">
<div id="footer" class="navigation <%= current_page.url == "/" ? "black" : "white" %>">
<div class="container">
<div class="row">
<div class="col-xs-12">
<% if current_page.url != '/' %>
<div class="edit-page-link"><a href="<%= github_url :current_page %>">Edit this page</a></div>
<% end %>
<div class="footer-links">
<ul class="main-links nav navbar-nav">
<li><a href="/intro/index.html">Intro</a></li>
<li><a href="/docs/index.html">Docs</a></li>
<li><a href="/community.html">Community</a></li>
</ul>
<ul class="external-links nav navbar-nav">
<li class="first download">
<a href="/downloads.html"><%= partial "layouts/svg/svg-download" %>Download</a>
</li>
<li class="github">
<a href="https://github.com/hashicorp/terraform"><%= partial "layouts/svg/svg-github" %>GitHub</a>
</li>
</ul>
</ div>
<div class="footer-hashi pull-right">
<div class="">
<a class="hashicorp-project <%= current_page.url == "/" ? "black" : "white" %>" href="https://www.hashicorp.com">
<span class="project-text">A </span>
<%= partial "layouts/svg/svg-by-hashicorp" %>
<span class="project-text">Project</span>
<%= partial "layouts/svg/svg-hashicorp-logo" %>
</a>
</div>
</div>
</div>
</div>
<div class="skew-item" id="footer-bg"></div>
</div>
</div>
</div>
</div>
<script>

View File

@ -1,30 +1,37 @@
<div id="header" class="<%= current_page.data.page_title == "home" ? "" : "navbar-static-top" %>">
<div id="header" class="navigation white <%= current_page.data.page_title == "home" ? "" : "navbar-static-top" %>">
<div class="container">
<div class="col-sm-12 col-md-4 nav-logo">
<div class="navbar-header">
<button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".bs-navbar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand logo" href="/">Terraform</a>
</div>
</div>
<div class="col-sm-12 col-md-8 nav-white">
<nav class="collapse navbar-collapse bs-navbar-collapse" role="navigation">
<ul class="buttons nav navbar-nav navbar-right rls-sb">
<li class="first download terra-btn"><a href="/downloads.html">Download</a></li>
<li class="github terra-btn"><a href="https://github.com/hashicorp/terraform">GitHub</a></li>
</ul>
<ul class="main-links nav navbar-nav navbar-right rls-sb">
<li class="first li-under"><a href="/intro/index.html">Intro</a></li>
<li class="li-under"><a href="/docs/index.html">Docs</a></li>
<li class="li-under"><a href="/community.html">Community</a></li>
</ul>
</nav>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<div class="navbar-header">
<div class="navbar-brand">
<a class="logo" href="/">Terraform</a>
<a class="by-hashicorp white" href="https://hashicorp.com/"><span class="svg-wrap">by</span><%= partial "layouts/svg/svg-by-hashicorp" %><%= partial "layouts/svg/svg-hashicorp-logo" %>Hashicorp</a>
</div>
<button class="navbar-toggle white" type="button">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<div class="buttons hidden-xs">
<nav class="navigation-links" role="navigation">
<ul class="external-links nav navbar-nav navbar-right">
<li class="first download">
<a href="/downloads.html"><%= partial "layouts/svg/svg-download" %>Download</a>
</li>
<li class="github">
<a href="https://github.com/hashicorp/terraform"><%= partial "layouts/svg/svg-github" %>GitHub</a>
</li>
</ul>
<ul class="main-links nav navbar-nav navbar-right">
<li class="first li-under"><a href="/intro/index.html">Intro</a></li>
<li class="li-under"><a href="/docs/index.html">Docs</a></li>
<li class="li-under"><a href="/community.html">Community</a></li>
</ul>
</nav>
</div>
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,26 @@
<!-- Overlay for fixed sidebar -->
<div class="sidebar-overlay"></div>
<!-- Material sidebar -->
<aside id="sidebar" class="sidebar sidebar-default sidebar-fixed-right" role="navigation">
<!-- Sidebar header -->
<div class="sidebar-header header-cover">
<!-- Sidebar brand image -->
<div class="sidebar-image">
<img src="<%= image_path('logo-header-black@2x.png') %>" width="50px" height="56px">
</div>
</div>
<!-- Sidebar navigation -->
<ul class="main nav sidebar-nav">
<li class="first"><a href="/intro/index.html">Intro</a></li>
<li class=""><a href="/docs/index.html">Docs</a></li>
<li class=""><a href="/community.html">Community</a></li>
</ul>
<div class="divider"></div>
<!-- Sidebar navigation 2-->
<ul class="external nav sidebar-nav">
<li class="first"><a class="v-btn gray sml" href="/downloads.html"><%= partial "layouts/svg/svg-download" %>Download</a></li>
<li class=""><a class="v-btn gray sml" href="https://github.com/hashicorp/terraform"><%= partial "layouts/svg/svg-github" %>GitHub</a></li>
</ul>
</aside>

View File

@ -1,4 +1,5 @@
<%= partial "layouts/meta" %>
<%= partial "layouts/header" %>
<%= partial "layouts/sidebar" %>
<%= yield %>
<%= partial "layouts/footer" %>

View File

@ -0,0 +1,18 @@
<svg class="svg-by" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" x="0px" y="0px" viewBox="-668 566 50 11" xml:space="preserve" enable-background="new -668 566 50 11">
<style type="text/css">
.st0{fill:none;stroke:#000000;stroke-width:0.75;stroke-miterlimit:10;}
</style>
<g>
<path d="M-663.3 574.4v-3.3h-3v3.4h-1.5v-8h1.5v3.3h3v-3.4h1.5v8H-663.3z"/>
<path d="M-655.7 574.4h-1.2l-0.1-0.4c-0.5 0.3-1.2 0.5-1.7 0.5 -1.1 0-1.5-0.7-1.5-1.7 0-1.2 0.5-1.6 1.7-1.6h1.4v-0.6c0-0.6-0.2-0.9-1.1-0.9 -0.5 0-1.1 0.1-1.6 0.2l-0.3-1.2c0.6-0.2 1.4-0.3 2-0.3 1.8 0 2.4 0.6 2.4 2.1C-655.7 570.5-655.7 574.4-655.7 574.4zM-657.2 572.2h-1.1c-0.5 0-0.6 0.1-0.6 0.6 0 0.4 0.1 0.6 0.6 0.6 0.4 0 0.8-0.1 1.1-0.3V572.2z"/>
<path d="M-652.3 574.6c-0.6 0-1.5-0.1-2-0.3l0.2-1.1c0.5 0.1 1.1 0.3 1.7 0.3s0.7-0.1 0.7-0.6c0-0.4-0.1-0.5-1-0.8 -1.4-0.3-1.6-0.7-1.6-1.8 0-1.2 0.5-1.7 2.2-1.7 0.5 0 1.2 0.1 1.8 0.2l-0.1 1.2c-0.4-0.1-1.2-0.2-1.6-0.2 -0.6 0-0.7 0.1-0.7 0.5 0 0.5 0 0.5 0.8 0.7 1.6 0.4 1.8 0.6 1.8 1.8C-650.2 573.9-650.6 574.6-652.3 574.6z"/>
<path d="M-645.3 574.4v-4c0-0.3-0.1-0.5-0.5-0.5s-1 0.2-1.5 0.5v4.1h-1.5v-8.3l1.5-0.2v3c0.6-0.3 1.5-0.6 2.1-0.6 1 0 1.3 0.7 1.3 1.7v4.2L-645.3 574.4 -645.3 574.4z"/>
<path d="M-642.3 567.8v-1.7h1.5v1.7H-642.3zM-642.3 574.4v-5.8h1.5v5.8H-642.3z"/>
<path d="M-639.4 572.3v-1.6c0-1.6 0.7-2.2 2.5-2.2 0.4 0 1 0.1 1.4 0.2l-0.2 1.2c-0.4-0.1-0.9-0.2-1.2-0.2 -0.8 0-1.1 0.3-1.1 1v1.6c0 0.7 0.3 1 1.1 1 0.4 0 0.8 0 1.2-0.2l0.2 1.2c-0.4 0.1-0.9 0.2-1.4 0.2C-638.7 574.6-639.4 573.9-639.4 572.3z"/>
<path d="M-631.9 574.6c-2 0-2.5-1.1-2.5-2.3v-1.5c0-1.2 0.5-2.3 2.5-2.3s2.5 1.1 2.5 2.3v1.5C-629.4 573.4-629.9 574.6-631.9 574.6zM-631.9 569.7c-0.8 0-1.1 0.3-1.1 1v1.6c0 0.7 0.3 1 1.1 1 0.8 0 1.1-0.3 1.1-1v-1.6C-630.8 570.1-631.1 569.7-631.9 569.7z"/>
<path d="M-624.9 569.8c-0.6 0.3-1 0.5-1.5 0.9v3.8h-1.5v-5.9h1.2l0.1 0.6c0.3-0.2 1-0.6 1.5-0.8L-624.9 569.8z"/>
<path d="M-619 572.5c0 1.3-0.6 2.1-1.9 2.1 -0.5 0-1.1-0.1-1.6-0.2v2.4l-1.4 0.2v-8.4h1.2l0.1 0.5c0.5-0.4 1.1-0.6 1.8-0.6 1.2 0 1.8 0.7 1.8 2V572.5zM-622.5 573.1c0.4 0.1 0.9 0.2 1.3 0.2 0.5 0 0.7-0.3 0.7-0.8v-2c0-0.5-0.2-0.7-0.7-0.7s-1 0.2-1.3 0.5V573.1z"/>
</g>
<line class="st0" x1="-620.9" y1="575.9" x2="-618" y2="575.9"/>
<line class="st0" x1="-668" y1="575.9" x2="-625.2" y2="575.9"/>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -0,0 +1,4 @@
<svg id="svg-download" xmlns="http://www.w3.org/2000/svg" viewBox="-345 275 28 28" style="enable-background:new -345 275 28 28;">
<path d="M-319,275h-24c-1.1,0-2,0.9-2,2v24c0,1.1,0.9,2,2,2h24c1.1,0,2-0.9,2-2v-24C-317,275.9-317.9,275-319,275z M-331.2,297.9
l-6.8-5.6l2-2.4l3.2,2.6V282h3.2v10.5l3.2-2.6l2,2.4L-331.2,297.9z"/>
</svg>

After

Width:  |  Height:  |  Size: 333 B

View File

@ -0,0 +1,9 @@
<svg id="svg-download" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" style="enable-background:new 0 0 14 14;">
<style type="text/css">
</style>
<path class="" d="M13,0H1C0.5,0,0,0.5,0,1v12c0,0.5,0.5,1,1,1h4.7c0,0,0,0,0-0.1c0-0.2,0-0.6,0-1.1c-1.8,0.4-2.2-0.9-2.2-0.9
c-0.3-0.8-0.7-1-0.7-1c-0.6-0.4,0-0.4,0-0.4c0.7,0,1,0.7,1,0.7c0.6,1,1.5,0.7,1.9,0.5c0.1-0.4,0.2-0.7,0.4-0.9c-1.5-0.2-3-0.7-3-3.2
c0-0.7,0.3-1.3,0.7-1.8C3.7,5.8,3.5,5.1,3.9,4.2c0,0,0.6-0.2,1.8,0.7c0.5-0.1,1.1-0.2,1.6-0.2c0.6,0,1.1,0.1,1.6,0.2
c1.3-0.8,1.8-0.7,1.8-0.7c0.4,0.9,0.1,1.6,0.1,1.7c0.4,0.5,0.7,1,0.7,1.8c0,2.5-1.5,3.1-3,3.2C8.7,11.1,9,11.5,9,12.1
c0,0.9,0,1.6,0,1.8c0,0,0,0,0,0.1h4c0.5,0,1-0.5,1-1V1C14,0.5,13.5,0,13,0z"/>
</svg>

After

Width:  |  Height:  |  Size: 735 B

View File

@ -0,0 +1,7 @@
<svg class="svg-logo" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Isolation_Mode" x="0px" y="0px" viewBox="-344 273 29.4 32" xml:space="preserve" enable-background="new -344 273 29.4 32">
<g>
<polygon points="-326.2 296.7 -321.4 294.1 -321.4 275.8 -326.2 273 -326.2 286.6 -332.4 286.6 -332.4 281.3 -337.3 283.9 -337.3 302.2 -332.4 305 -332.4 291.4 -326.2 291.4 "/>
<polygon points="-319.1 277.1 -319.1 295.6 -326.2 299.5 -326.2 305 -314.6 298.3 -314.6 279.7 "/>
<polygon points="-332.4 273 -344 279.7 -344 298.3 -339.5 300.9 -339.5 282.4 -332.4 278.6 "/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 635 B