From 1c706822cea5c1ee25039b9e26cfd13a4d2f3e9a Mon Sep 17 00:00:00 2001 From: captainill Date: Sun, 20 Dec 2015 14:07:53 -0800 Subject: [PATCH] migrate www header/siderbar stuff to docs --- website/docs/Gemfile | 2 +- website/docs/Gemfile.lock | 9 +- .../docs/source/images/logo-header-docs.png | Bin 0 -> 6812 bytes .../source/images/logo-header-docs@2x.png | Bin 0 -> 11970 bytes website/docs/source/images/logo-header.png | Bin 0 -> 5010 bytes website/docs/source/images/logo-header@2x.png | Bin 0 -> 8863 bytes website/docs/source/javascripts/Sidebar.js | 50 +++ website/docs/source/javascripts/lib/Base.js | 145 ++++++++ website/docs/source/layouts/_mobile_nav.erb | 19 + website/docs/source/layouts/layout.erb | 45 ++- .../source/layouts/svg/_svg-by-hashicorp.erb | 17 + .../docs/source/layouts/svg/_svg-download.erb | 4 + .../docs/source/layouts/svg/_svg-github.erb | 9 + .../layouts/svg/_svg-hashicorp-logo.erb | 7 + website/docs/source/stylesheets/_header.less | 166 +++++++++ .../source/stylesheets/_media-queries.less | 15 +- website/docs/source/stylesheets/_mixins.less | 19 + .../docs/source/stylesheets/_mobile-nav.less | 43 +++ website/docs/source/stylesheets/_nav.less | 74 ---- .../hashicorp-shared/_hashicorp-header.less | 351 ++++++++++++++++++ .../_hashicorp-mobile-nav.less | 293 +++++++++++++++ .../hashicorp-shared/_hashicorp-utility.less | 89 +++++ .../hashicorp-shared/_project-utility.less | 32 ++ .../docs/source/stylesheets/vagrantup.less | 10 +- 24 files changed, 1302 insertions(+), 97 deletions(-) create mode 100644 website/docs/source/images/logo-header-docs.png create mode 100644 website/docs/source/images/logo-header-docs@2x.png create mode 100644 website/docs/source/images/logo-header.png create mode 100644 website/docs/source/images/logo-header@2x.png create mode 100644 website/docs/source/javascripts/Sidebar.js create mode 100644 website/docs/source/javascripts/lib/Base.js create mode 100644 website/docs/source/layouts/_mobile_nav.erb create mode 100644 website/docs/source/layouts/svg/_svg-by-hashicorp.erb create mode 100644 website/docs/source/layouts/svg/_svg-download.erb create mode 100644 website/docs/source/layouts/svg/_svg-github.erb create mode 100644 website/docs/source/layouts/svg/_svg-hashicorp-logo.erb create mode 100644 website/docs/source/stylesheets/_header.less create mode 100644 website/docs/source/stylesheets/_mobile-nav.less delete mode 100644 website/docs/source/stylesheets/_nav.less create mode 100755 website/docs/source/stylesheets/hashicorp-shared/_hashicorp-header.less create mode 100644 website/docs/source/stylesheets/hashicorp-shared/_hashicorp-mobile-nav.less create mode 100755 website/docs/source/stylesheets/hashicorp-shared/_hashicorp-utility.less create mode 100755 website/docs/source/stylesheets/hashicorp-shared/_project-utility.less diff --git a/website/docs/Gemfile b/website/docs/Gemfile index a2e8e3374..45b497f6b 100644 --- a/website/docs/Gemfile +++ b/website/docs/Gemfile @@ -2,7 +2,7 @@ source "https://rubygems.org" ruby "2.2.2" -gem "less", "~> 2.2.2" +gem "less", "~> 2.6.0" gem "middleman", "~> 3.0.6" gem "middleman-minify-html", "~> 3.0.0" gem "rack-contrib", "~> 1.1.0" diff --git a/website/docs/Gemfile.lock b/website/docs/Gemfile.lock index c79012744..103f8d809 100644 --- a/website/docs/Gemfile.lock +++ b/website/docs/Gemfile.lock @@ -36,8 +36,8 @@ GEM rack (>= 1.0.0) url_mount (~> 0.2.1) i18n (0.6.1) - less (2.2.2) - commonjs (~> 0.2.6) + less (2.6.0) + commonjs (~> 0.2.7) libv8 (3.16.14.7) listen (0.7.3) maruku (0.6.1) @@ -134,7 +134,7 @@ PLATFORMS DEPENDENCIES highline (~> 1.6.15) - less (~> 2.2.2) + less (~> 2.6.0) middleman (~> 3.0.6) middleman-minify-html (~> 3.0.0) rack-contrib (~> 1.1.0) @@ -143,3 +143,6 @@ DEPENDENCIES redcarpet (~> 2.2.2) therubyracer (~> 0.12.0) thin (~> 1.5.0) + +BUNDLED WITH + 1.10.6 diff --git a/website/docs/source/images/logo-header-docs.png b/website/docs/source/images/logo-header-docs.png new file mode 100644 index 0000000000000000000000000000000000000000..497994a04bd602854a79803765a1e534854596f9 GIT binary patch literal 6812 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 KMNUMnLSTY~+$cN% literal 0 HcmV?d00001 diff --git a/website/docs/source/images/logo-header-docs@2x.png b/website/docs/source/images/logo-header-docs@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..47eb8378a6f0ab105ef9d23f31e3db564d948808 GIT binary patch literal 11970 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 literal 0 HcmV?d00001 diff --git a/website/docs/source/images/logo-header.png b/website/docs/source/images/logo-header.png new file mode 100644 index 0000000000000000000000000000000000000000..a058de16f12580fbc7e20901f6569695851d18b3 GIT binary patch literal 5010 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 z 1) { // extending with a name/value pair + var ancestor = this[source]; + if (ancestor && (typeof value === 'function') && // overriding a method? + // the valueOf() comparison is to avoid circular references + (!ancestor.valueOf || ancestor.valueOf() !== value.valueOf()) && /\bbase\b/.test(value)) { + // get the underlying method + var method = value.valueOf(); + // override + value = function () { + var previous = this.base || Base.prototype.base; + this.base = ancestor; + var returnValue = method.apply(this, arguments); + this.base = previous; + return returnValue; + }; + // point to the underlying method + value.valueOf = function (type) { + return (type === 'object') ? value : method; + }; + value.toString = Base.toString; + } + this[source] = value; + } else if (source) { // extending with an object literal + var extend = Base.prototype.extend; + // if this object has a customized extend method then use it + if (!Base._prototyping && typeof this !== 'function') { + extend = this.extend || extend; + } + var proto = { + toSource: null + }; + // do the "toString" and other methods manually + var hidden = ['constructor', 'toString', 'valueOf']; + // if we are prototyping then include the constructor + for (var i = Base._prototyping ? 0 : 1; i < hidden.length; i++) { + var h = hidden[i]; + if (source[h] !== proto[h]) + extend.call(this, h, source[h]); + } + // copy each of the source object's properties to this object + for (var key in source) { + if (!proto[key]) extend.call(this, key, source[key]); + } + } + return this; + } + }; + + // initialize + Base = Base.extend({ + constructor: function () { + this.extend(arguments[0]); + } + }, { + ancestor: Object, + version: '1.1', + forEach: function (object, block, context) { + for (var key in object) { + if (this.prototype[key] === undefined) { + block.call(context, object[key], key, object); + } + } + }, + implement: function () { + for (var i = 0; i < arguments.length; i++) { + if (typeof arguments[i] === 'function') { + // if it's a function, call it + arguments[i](this.prototype); + } else { + // add the interface using the extend method + this.prototype.extend(arguments[i]); + } + } + return this; + }, + toString: function () { + return String(this.valueOf()); + } + }); + + // Return Base implementation + return Base; +}); diff --git a/website/docs/source/layouts/_mobile_nav.erb b/website/docs/source/layouts/_mobile_nav.erb new file mode 100644 index 000000000..1fb76cf66 --- /dev/null +++ b/website/docs/source/layouts/_mobile_nav.erb @@ -0,0 +1,19 @@ + +
+ + + diff --git a/website/docs/source/layouts/layout.erb b/website/docs/source/layouts/layout.erb index db40d692b..c544e133e 100644 --- a/website/docs/source/layouts/layout.erb +++ b/website/docs/source/layouts/layout.erb @@ -30,21 +30,33 @@
- + + - + <%= partial "layouts/mobile_nav" %>
@@ -364,10 +376,15 @@
+ <%= javascript_include_tag "lib/Base" %> + <%= javascript_include_tag "Sidebar" %> + diff --git a/website/docs/source/layouts/svg/_svg-by-hashicorp.erb b/website/docs/source/layouts/svg/_svg-by-hashicorp.erb new file mode 100644 index 000000000..607d16b1e --- /dev/null +++ b/website/docs/source/layouts/svg/_svg-by-hashicorp.erb @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/website/docs/source/layouts/svg/_svg-download.erb b/website/docs/source/layouts/svg/_svg-download.erb new file mode 100644 index 000000000..6d8441fea --- /dev/null +++ b/website/docs/source/layouts/svg/_svg-download.erb @@ -0,0 +1,4 @@ + + + diff --git a/website/docs/source/layouts/svg/_svg-github.erb b/website/docs/source/layouts/svg/_svg-github.erb new file mode 100644 index 000000000..f0264d5aa --- /dev/null +++ b/website/docs/source/layouts/svg/_svg-github.erb @@ -0,0 +1,9 @@ + + + + diff --git a/website/docs/source/layouts/svg/_svg-hashicorp-logo.erb b/website/docs/source/layouts/svg/_svg-hashicorp-logo.erb new file mode 100644 index 000000000..60663e140 --- /dev/null +++ b/website/docs/source/layouts/svg/_svg-hashicorp-logo.erb @@ -0,0 +1,7 @@ + diff --git a/website/docs/source/stylesheets/_header.less b/website/docs/source/stylesheets/_header.less new file mode 100644 index 000000000..2a01bd332 --- /dev/null +++ b/website/docs/source/stylesheets/_header.less @@ -0,0 +1,166 @@ +// +// Header +// - Project Specific +// - edits should be made here +// -------------------------------------------------- + +#header { + width: 100%; + // font-size: 15px; + text-transform: uppercase; + height: @header-height; + position: fixed; + top: 0; + left: 0; + background-color: @white; + z-index: 1001; + + &.docs { + background: @gray-background; + } + + .navbar-toggle{ + margin-right: 15px; + } + + .navbar-brand { + float: left; + .logo{ + padding-left: 36px; + font-size: 0; + line-height: 77px; + width: @project-logo-width; + padding-left: 0; + .img-retina('/images/logo-header-docs.png', @project-logo-width, @project-logo-height, no-repeat); + background-position: 0 center; + + &:hover{ + opacity: .6; + } + } + + .by-hashicorp{ + color: @project-link-color; + + svg{ + path, + polygon, + rect{ + fill: @project-link-color; + } + } + + &:hover{ + color: black; + svg{ + path, + polygon, + rect{ + fill: black; + } + } + } + + .svg-wrap{ + font-weight: 400; + } + } + } + + .buttons{ + display: none; + margin-top: 2px; //baseline everything + + .navigation-links{ + float: right; + } + } + + .main-links, + .external-links { + li > a { + .project-a-style(); + } + } + + .main-links { + margin-right: 0; + + li { + &.pill{ + background-color: #48b4fb; + border-radius: 25px; + padding: 5px 2px; + line-height: 26px; + margin-top: 22px; + a{ + color: #FFF; + line-height: 24px; + } + } + + > a { + color: @project-link-color; + + &:hover{ + color: @black; + } + } + } + } +} + +@media (min-width: 768px) { + .navbar-toggle{ + display: none; + } + + #header{ + .buttons{ + display: block; + } + } +} + +@media (max-width: 768px) { + .navbar-header{ + margin-left: 15px; + } +} + +@media (max-width: 480px) { + #header { + height: auto; + + .navbar-toggle{ + padding-top: 7px; + } + + .by-hashicorp{ + margin-top: 2px; + } + + .navbar-brand { + .logo{ + width: @project-logo-width * .75; + background-size: (@project-logo-width * .75) (@project-logo-height * .75); + //background-position: 0 45%; + } + } + } +} + + +@media (max-width: 320px) { + #header { + .by-hashicorp{ + margin-left: -2px; + } + + .navbar-brand { + .logo{ + width: 40px; + } + } + } +} diff --git a/website/docs/source/stylesheets/_media-queries.less b/website/docs/source/stylesheets/_media-queries.less index 3dce5d028..a654b9a39 100644 --- a/website/docs/source/stylesheets/_media-queries.less +++ b/website/docs/source/stylesheets/_media-queries.less @@ -324,10 +324,6 @@ background-position: center center !important; } - .wrapper { - margin-top: 128px; - } - .sidebar { ul { @@ -450,3 +446,14 @@ } } // < 767 + + +@media (max-width: 480px){ + #header{ + height: 60px; + } + + .wrapper{ + margin-top: 60px; + } +} diff --git a/website/docs/source/stylesheets/_mixins.less b/website/docs/source/stylesheets/_mixins.less index 45dd9e745..174bc1d41 100644 --- a/website/docs/source/stylesheets/_mixins.less +++ b/website/docs/source/stylesheets/_mixins.less @@ -72,6 +72,25 @@ will-change: transform; } +.transition(@transition) { + -webkit-transition: @transition; + -o-transition: @transition; + transition: @transition; +} + +.translate3d (@x, @y: 0, @z: 0) { + -webkit-transform: translate3d(@x, @y, @z); + -moz-transform: translate3d(@x, @y, @z); + -ms-transform: translate3d(@x, @y, @z); + -o-transform: translate3d(@x, @y, @z); +} + +.clearfix{ + zoom:1; + &:before, &:after{ content:""; display:table; } + &:after{ clear: both; } +} + .inner-bg-large { background-image: #c1b4d5; /* Old browsers */ background-image: url(/images/sidebar_background_inner.png), -moz-linear-gradient(45deg, #c1b4d5 0%, #98d3f8 100%); /* FF3.6+ */ diff --git a/website/docs/source/stylesheets/_mobile-nav.less b/website/docs/source/stylesheets/_mobile-nav.less new file mode 100644 index 000000000..55e5db76b --- /dev/null +++ b/website/docs/source/stylesheets/_mobile-nav.less @@ -0,0 +1,43 @@ +// +// Sidebar +// - Project Specific +// - Make sidebar edits here +// -------------------------------------------------- + +#mobile-nav { + .mobile-nav-nav { + width: 100%; + text-align: center; + // Links + //---------------- + // + li{ + float: none; + + &.pill{ + background-color: #48b4fb; + border-radius: 25px; + padding: 5px 2px; + line-height: 26px; + margin: 10px 10px 10px 10px; + + &:focus, + &:hover{ + a{ + background-color: transparent; + } + } + + a{ + color: @white; + line-height: 24px; + } + } + + a{ + .anti-alias(); + font-size: 13px; + } + } + } +} diff --git a/website/docs/source/stylesheets/_nav.less b/website/docs/source/stylesheets/_nav.less deleted file mode 100644 index 4adfdbfdc..000000000 --- a/website/docs/source/stylesheets/_nav.less +++ /dev/null @@ -1,74 +0,0 @@ -// roll your own nav - -nav { - width: 100%; - font-size: 15px; - text-transform: uppercase; - .museo-sans-light; - color: @medium-gray-text; - height: 80px; - position: fixed; - top: 0; - left: 0; - background-color: @white; - z-index: 9999999999; - - &.docs { - background: @gray-background; - } - - .vagrant-logo { - display: block; - text-indent: -999999px; - background: url(/images/logo_vagrant.png) no-repeat 0 0; - height: 70px; - width: 275px; - float: left; - margin: 10px 20px; - } - - .vagrant-docs-logo { - display: block; - text-indent: -999999px; - background: url(/images/logo_docs.png) no-repeat 0 0; - height: 70px; - width: 350px; - float: left; - margin: 10px 20px; - } - - ul { - margin: 25px 20px; - - li { - display: inline; - margin-left: 15px; - } - - li.pill { - background-color: #48b4fb; - border-radius: 50px; - color: #FFF; - padding: 10px 18px; - } - } - - .active-nav { - color: @blue; - } - - .contact { - - &:hover { - background-color: @light-gray-background; - padding: 10px; - margin-right: -10px; - margin-left: 5px; - .rounded; - } - - &:active { - background-color: darken(@light-gray-background, 5%); - } - } -} diff --git a/website/docs/source/stylesheets/hashicorp-shared/_hashicorp-header.less b/website/docs/source/stylesheets/hashicorp-shared/_hashicorp-header.less new file mode 100755 index 000000000..388df9468 --- /dev/null +++ b/website/docs/source/stylesheets/hashicorp-shared/_hashicorp-header.less @@ -0,0 +1,351 @@ +// +// Hashicorp nav +// -------------------------------------------------- + +.nav{ + float: left; + margin: 0; + padding: 0; + list-style: none; + + li{ + display: block; + float: left; + + a{ + position: relative; + display: block; + } + } +} + +.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; + } + } + } + } + + .navbar-toggle{ + height: @header-height; + margin: 0; + position: relative; + float: right; + padding: 9px 10px; + background-color: transparent; + background-image: none; + border: none; + + .bar{ + display: block; + width: 22px; + height: 2px; + margin-top: 4px; + background-color: @project-link-color; + } + } + + .external-links { + &.white{ + svg path{ + fill: @white; + } + } + + li { + position: relative; + + svg path{ + .transition( all 300ms ease-in ); + } + + &:hover{ + svg path{ + .transition( all 300ms ease-in ); + } + } + + &.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 { + .hashi-a-style(); + margin: 0 10px; + padding-top: 1px; + line-height: @header-height; + .project-a-style(); + } + } + + .nav > li > a:hover, .nav > li > a:focus { + background-color: transparent; + .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; + background-position: 0 center; + .transition(all 300ms ease-in); + + &:hover{ + .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; + letter-spacing: 0; + text-decoration: none; + text-transform: none; + + &.white{ + color: white; + font-weight: 300; + svg{ + path, + polygon, + rect{ + fill: white; + } + } + } + + &:focus, + &:hover{ + text-decoration: none; + } + + &:hover{ + .transition(all 300ms ease-in); + } + + .svg-wrap{ + font-size: 13px; + .transition(all 300ms ease-in); + } + + 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, + rect{ + fill: black; + .transition(all 300ms ease-in); + + &:hover{ + .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; + .transition(all 300ms ease-in); + + &:hover{ + .transition(all 300ms ease-in); + } + } + } +} + +@media (max-width: 992px) { + .navigation { + > .container{ + width: 100%; + } + } +} + +@media (max-width: 768px) { + .navigation { + .main-links{ + margin-right: 0; + } + } +} + +@media (max-width: 480px) { + #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; + } + } + } +} + + +@media (min-width: 768px){ + .navbar-toggle { + display: none; + } +} diff --git a/website/docs/source/stylesheets/hashicorp-shared/_hashicorp-mobile-nav.less b/website/docs/source/stylesheets/hashicorp-shared/_hashicorp-mobile-nav.less new file mode 100644 index 000000000..a24e03608 --- /dev/null +++ b/website/docs/source/stylesheets/hashicorp-shared/_hashicorp-mobile-nav.less @@ -0,0 +1,293 @@ +// +// Hashicorp mobile-nav +// - 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; + +/* -- mobile-nav style ------------------------------- */ + +// mobile-nav variables +// -------------------------------------------------- +@zindex-mobile-nav-fixed: 1035; + +@mobile-nav-desktop-width: 280px; +@mobile-nav-width: 240px; + +@mobile-nav-padding: 16px; +@mobile-nav-divider: @mobile-nav-padding/2; + +@mobile-nav-icon-width: 40px; +@mobile-nav-icon-height: 20px; + +.mobile-nav-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; + } + } + } + } +} + +// +// mobile-nav +// -------------------------------------------------- + +// mobile-nav Elements +// +// Basic style of mobile-nav elements +.mobile-nav { + position: relative; + display: block; + min-height: 100%; + overflow-y: auto; + overflow-x: hidden; + border: none; + .transition(all 0.5s cubic-bezier(0.55, 0, 0.1, 1)); + .clearfix(); + background-color: @white; + + ul{ + padding-left: 0; + list-style-type: none; + } + + .mobile-nav-divider, .divider { + width: 80%; + height: 1px; + margin: 8px auto; + background-color: lighten(@gray, 20%); + } + + // mobile-nav heading + //---------------- + .mobile-nav-header { + position: relative; + margin-bottom: @mobile-nav-padding; + .transition(all .2s ease-in-out); + } + + .mobile-nav-image { + padding-top: 24px; + img { + display: block; + margin: 0 auto; + } + } + + + // mobile-nav icons + //---------------- + .mobile-nav-icon { + display: inline-block; + height: @mobile-nav-icon-height; + margin-right: @mobile-nav-divider; + text-align: left; + font-size: @mobile-nav-icon-height; + vertical-align: middle; + + &:before, &:after { + vertical-align: middle; + } + } + + .mobile-nav-nav { + margin: 0; + padding: 0; + + .mobile-nav-nav-base(); + + // Links + //---------------- + li { + position: relative; + list-style-type: none; + text-align: center; + + a { + position: relative; + cursor: pointer; + user-select: none; + .hashi-a-style-core(); + + svg{ + top: 2px; + width: 14px; + height: 14px; + margin-bottom: -2px; + margin-right: 4px; + } + } + } + } +} + +// mobile-nav toggling +// +// Hide mobile-nav +.mobile-nav { + width: 0; + .translate3d(-@mobile-nav-desktop-width, 0, 0); + + &.open { + min-width: @mobile-nav-desktop-width; + width: @mobile-nav-desktop-width; + .translate3d(0, 0, 0); + } +} + +// mobile-nav positions: fix the left/right mobile-navs +.mobile-nav-fixed-left, +.mobile-nav-fixed-right, +.mobile-nav-stacked { + position: fixed; + top: 0; + bottom: 0; + z-index: @zindex-mobile-nav-fixed; +} +.mobile-nav-stacked { + left: 0; +} +.mobile-nav-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); +} +.mobile-nav-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); + + .translate3d(@mobile-nav-desktop-width, 0, 0); + &.open { + .translate3d(0, 0, 0); + } + .icon-material-mobile-nav-arrow:before { + content: "\e614"; // icon-material-arrow-forward + } +} + +// mobile-nav size +// +// Change size of mobile-nav and mobile-nav elements on small screens +@media (max-width: @screen-tablet) { + .mobile-nav.open { + min-width: @mobile-nav-width; + width: @mobile-nav-width; + } + + .mobile-nav .mobile-nav-header { + //height: @mobile-nav-width * 9/16; // 16:9 header dimension + } + + .mobile-nav .mobile-nav-image { + /* img { + width: @mobile-nav-width/4 - @mobile-nav-padding; + height: @mobile-nav-width/4 - @mobile-nav-padding; + } */ + } +} + +.mobile-nav-overlay { + visibility: hidden; + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + opacity: 0; + background: @white; + z-index: @zindex-mobile-nav-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); +} + +.mobile-nav-overlay.active { + opacity: 0.3; + visibility: visible; + -webkit-transition-delay: 0; + -moz-transition-delay: 0; + transition-delay: 0; +} diff --git a/website/docs/source/stylesheets/hashicorp-shared/_hashicorp-utility.less b/website/docs/source/stylesheets/hashicorp-shared/_hashicorp-utility.less new file mode 100755 index 000000000..8ecb75ee6 --- /dev/null +++ b/website/docs/source/stylesheets/hashicorp-shared/_hashicorp-utility.less @@ -0,0 +1,89 @@ +// +// 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: 80px; +@header-mobile-height: 60px; +@by-hashicorp-width: 74px; +@by-hashicorp-height: 16px; +@nav-margin-right: 12px; + +// Mixins +.hashi-a-style-core{ + font-family: @header-font-family; + font-weight: @header-font-weight; + font-size: 14px; + //letter-spacing: 0.0625em; +} + +.hashi-a-style{ + margin: 0 15px; + padding: 0; + line-height: 22px; + .hashi-a-style-core(); + .transition( all 0.3s ease ); + + &:hover{ + .transition( all 0.3s ease ); + background-color: transparent; + } +} + +.img-retina(@image, @width, @height, @repeat: no-repeat) { + @filename : ~`/(.*)\.(jpg|jpeg|png|gif)/.exec(@{image})[1]`; + @extension : ~`/(.*)\.(jpg|jpeg|png|gif)/.exec(@{image})[2]`; + background-image: ~`"url(@{filename}.@{extension})"`; + background-repeat: @repeat; + + @media + only screen and (-webkit-min-device-pixel-ratio: 2), + only screen and ( min--moz-device-pixel-ratio: 2), + only screen and ( -o-min-device-pixel-ratio: 2/1), + only screen and ( min-device-pixel-ratio: 2), + only screen and ( min-resolution: 192dpi), + only screen and ( min-resolution: 2dppx) { + /* on retina, use image that's scaled by 2 */ + background-image: ~`"url(@{filename}@2x.@{extension})"`; + background-size: @width @height; + } +} + +// +// ------------------------- +.anti-alias() { + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; +} + +.open-light() { + font-family: @font-family-open-sans; + font-weight: 300; +} + +.open() { + font-family: @font-family-open-sans; + font-weight: 400; +} + +.open-sb() { + font-family: @font-family-open-sans; + font-weight: 600; +} + +.open-bold() { + font-family: @font-family-open-sans; + font-weight: 700; +} + +.bez-1-transition{ + .transition( all 300ms ease-in-out ); +} diff --git a/website/docs/source/stylesheets/hashicorp-shared/_project-utility.less b/website/docs/source/stylesheets/hashicorp-shared/_project-utility.less new file mode 100755 index 000000000..dac8b0e93 --- /dev/null +++ b/website/docs/source/stylesheets/hashicorp-shared/_project-utility.less @@ -0,0 +1,32 @@ +// +// Mixins Specific to project +// - make edits to mixins here +// -------------------------------------------------- + +// Variables +@project-logo-width: 231px; +@project-logo-height: 46px; +@project-logo-pad-left: 0px; +@project-link-color: #8d9ba8; + +// Mixins +.project-a-style{ + font-weight: 600; + font-size: 14px; + letter-spacing: 0; + text-transform: none; + color: @project-link-color; + .anti-alias(); + + &:hover{ + color: @black; + } +} + +.project-footer-a-style{ + line-height: 30px; + + &:hover{ + opacity: .5; + } +} diff --git a/website/docs/source/stylesheets/vagrantup.less b/website/docs/source/stylesheets/vagrantup.less index b30130124..bc9c07af3 100644 --- a/website/docs/source/stylesheets/vagrantup.less +++ b/website/docs/source/stylesheets/vagrantup.less @@ -8,9 +8,17 @@ v a g r a n t u p @import '_type'; @import '_mixins'; @import '_base'; -@import '_nav'; + +@import 'hashicorp-shared/_hashicorp-utility'; +@import 'hashicorp-shared/_project-utility'; +@import 'hashicorp-shared/_hashicorp-header'; +@import 'hashicorp-shared/_hashicorp-mobile-nav'; + +// @import '_nav'; +@import '_header'; @import '_components'; @import '_sidebar'; +@import '_mobile-nav'; @import '_pages'; @import '_footer'; @import '_media-queries';