diff --git a/website/Gemfile b/website/Gemfile
index 08e6fe65e5..405a8c9926 100644
--- a/website/Gemfile
+++ b/website/Gemfile
@@ -1,3 +1,3 @@
source "https://rubygems.org"
-gem "middleman-hashicorp", "0.3.13"
+gem "middleman-hashicorp", "0.3.22"
diff --git a/website/Gemfile.lock b/website/Gemfile.lock
index 0811f6d62e..229218ac9f 100644
--- a/website/Gemfile.lock
+++ b/website/Gemfile.lock
@@ -6,7 +6,7 @@ GEM
minitest (~> 5.1)
thread_safe (~> 0.3, >= 0.3.4)
tzinfo (~> 1.1)
- autoprefixer-rails (6.7.6)
+ autoprefixer-rails (6.7.7.1)
execjs
bootstrap-sass (3.3.7)
autoprefixer-rails (>= 5.2.1)
@@ -77,7 +77,7 @@ GEM
rack (>= 1.4.5, < 2.0)
thor (>= 0.15.2, < 2.0)
tilt (~> 1.4.1, < 2.0)
- middleman-hashicorp (0.3.13)
+ middleman-hashicorp (0.3.22)
bootstrap-sass (~> 3.3)
builder (~> 3.2)
middleman (~> 3.4)
@@ -103,7 +103,7 @@ GEM
mini_portile2 (2.1.0)
minitest (5.10.1)
multi_json (1.12.1)
- nokogiri (1.7.0.1)
+ nokogiri (1.7.1)
mini_portile2 (~> 2.1.0)
padrino-helpers (0.12.8.1)
i18n (~> 0.6, >= 0.6.7)
@@ -138,7 +138,7 @@ GEM
turbolinks (5.0.1)
turbolinks-source (~> 5)
turbolinks-source (5.0.0)
- tzinfo (1.2.2)
+ tzinfo (1.2.3)
thread_safe (~> 0.1)
uber (0.0.15)
uglifier (2.7.2)
@@ -151,7 +151,7 @@ PLATFORMS
ruby
DEPENDENCIES
- middleman-hashicorp (= 0.3.13)
+ middleman-hashicorp (= 0.3.22)
BUNDLED WITH
1.14.6
diff --git a/website/Makefile b/website/Makefile
index 41fcf114ed..0e83eb946c 100644
--- a/website/Makefile
+++ b/website/Makefile
@@ -1,4 +1,4 @@
-VERSION?="0.3.13"
+VERSION?="0.3.22"
website:
@echo "==> Starting website in Docker..."
diff --git a/website/config.rb b/website/config.rb
index 266f4421b1..e50c6164d1 100644
--- a/website/config.rb
+++ b/website/config.rb
@@ -11,6 +11,33 @@ activate :hashicorp do |h|
end
helpers do
+ # Get the title for the page.
+ #
+ # @param [Middleman::Page] page
+ #
+ # @return [String]
+ def title_for(page)
+ if page && page.data.page_title
+ return "#{page.data.page_title} - Consul by HashiCorp"
+ end
+
+ "Consul by HashiCorp"
+ end
+
+ # Get the description for the page
+ #
+ # @param [Middleman::Page] page
+ #
+ # @return [String]
+ def description_for(page)
+ description = (page.data.description || "")
+ .gsub('"', '')
+ .gsub(/\n+/, ' ')
+ .squeeze(' ')
+
+ return escape_html(description)
+ end
+
# This helps by setting the "active" class for sidebar nav elements
# if the YAML frontmatter matches the expected value.
def sidebar_current(expected)
@@ -22,27 +49,47 @@ helpers do
end
end
- # Get the title for the page.
- #
- # @param [Middleman::Page] page
- #
+ # Returns the id for this page.
# @return [String]
- def title_for(page)
- if page && page.data.page_title
- return "#{page.data.page_title} - Consul by HashiCorp"
+ def body_id_for(page)
+ if !(name = page.data.sidebar_current).blank?
+ return "page-#{name.strip}"
+ end
+ if page.url == "/" || page.url == "/index.html"
+ return "page-home"
+ end
+ if !(title = page.data.page_title).blank?
+ return title
+ .downcase
+ .gsub('"', '')
+ .gsub(/[^\w]+/, '-')
+ .gsub(/_+/, '-')
+ .squeeze('-')
+ .squeeze(' ')
+ end
+ return ""
+ end
+
+ # Returns the list of classes for this page.
+ # @return [String]
+ def body_classes_for(page)
+ classes = []
+
+ if !(layout = page.data.layout).blank?
+ classes << "layout-#{page.data.layout}"
end
- "Consul by HashiCorp"
- end
+ if !(title = page.data.page_title).blank?
+ title = title
+ .downcase
+ .gsub('"', '')
+ .gsub(/[^\w]+/, '-')
+ .gsub(/_+/, '-')
+ .squeeze('-')
+ .squeeze(' ')
+ classes << "page-#{title}"
+ end
- # Get the description for the page
- #
- # @param [Middleman::Page] page
- #
- # @return [String]
- def description_for(page)
- description = page.data.description || ""
- description = description.gsub(/\n+/, " ")
- return escape_html(description)
+ return classes.join(" ")
end
end
diff --git a/website/packer.json b/website/packer.json
index b51f638015..35de632323 100644
--- a/website/packer.json
+++ b/website/packer.json
@@ -8,7 +8,7 @@
"builders": [
{
"type": "docker",
- "image": "hashicorp/middleman-hashicorp:0.3.13",
+ "image": "hashicorp/middleman-hashicorp:0.3.22",
"discard": "true",
"run_command": ["-d", "-i", "-t", "{{ .Image }}", "/bin/sh"]
}
diff --git a/website/source/404.html.erb b/website/source/404.html.erb
deleted file mode 100644
index e7dcdc5a2b..0000000000
--- a/website/source/404.html.erb
+++ /dev/null
@@ -1,5 +0,0 @@
----
-noindex: true
----
-
-
Page Not Found
diff --git a/website/source/404.html.md b/website/source/404.html.md
new file mode 100644
index 0000000000..e99ce088b3
--- /dev/null
+++ b/website/source/404.html.md
@@ -0,0 +1,14 @@
+---
+layout: "inner"
+page_title: "Not Found"
+noindex: true
+description: |-
+ Page not found!
+---
+
+# Page Not Found
+
+Sorry, the page you tried to visit does not exist. This could be our fault,
+and if so we will fix that up right away.
+
+Please go back, or go back to get back on track.
diff --git a/website/source/android-manifest.json.erb b/website/source/android-manifest.json.erb
new file mode 100644
index 0000000000..f4af77dd43
--- /dev/null
+++ b/website/source/android-manifest.json.erb
@@ -0,0 +1,18 @@
+{
+ "name": "HashiCorp Consul",
+ "icons": [
+ {
+ "src": "<%= image_path('favicons/android-chrome-192x192.png') %>",
+ "sizes": "192x192",
+ "type": "image/png"
+ },
+ {
+ "src": "<%= image_path('favicons/android-chrome-512x512.png') %>",
+ "sizes": "512x512",
+ "type": "image/png"
+ }
+ ],
+ "theme_color": "#ffffff",
+ "background_color": "#ffffff",
+ "display": "standalone"
+}
diff --git a/website/source/assets/images/atlas_web_ui.png b/website/source/assets/images/atlas_web_ui.png
deleted file mode 100644
index d47d67eaa4..0000000000
Binary files a/website/source/assets/images/atlas_web_ui.png and /dev/null differ
diff --git a/website/source/assets/images/consul-footer-logo.png b/website/source/assets/images/consul-footer-logo.png
deleted file mode 100644
index a4edf6ce60..0000000000
Binary files a/website/source/assets/images/consul-footer-logo.png and /dev/null differ
diff --git a/website/source/assets/images/consul-footer-logo@2x.png b/website/source/assets/images/consul-footer-logo@2x.png
deleted file mode 100644
index 8ba91ae494..0000000000
Binary files a/website/source/assets/images/consul-footer-logo@2x.png and /dev/null differ
diff --git a/website/source/assets/images/consul-header-lockup.png b/website/source/assets/images/consul-header-lockup.png
deleted file mode 100644
index 1576c0d436..0000000000
Binary files a/website/source/assets/images/consul-header-lockup.png and /dev/null differ
diff --git a/website/source/assets/images/consul-header-lockup@2x.png b/website/source/assets/images/consul-header-lockup@2x.png
deleted file mode 100644
index 88437be0d0..0000000000
Binary files a/website/source/assets/images/consul-header-lockup@2x.png and /dev/null differ
diff --git a/website/source/assets/images/consul-hero-logo.png b/website/source/assets/images/consul-hero-logo.png
deleted file mode 100644
index 703382e074..0000000000
Binary files a/website/source/assets/images/consul-hero-logo.png and /dev/null differ
diff --git a/website/source/assets/images/consul-hero-logo@2x.png b/website/source/assets/images/consul-hero-logo@2x.png
deleted file mode 100644
index d28c4dea8c..0000000000
Binary files a/website/source/assets/images/consul-hero-logo@2x.png and /dev/null differ
diff --git a/website/source/assets/images/favicon.png b/website/source/assets/images/favicon.png
deleted file mode 100644
index 3368fefcfc..0000000000
Binary files a/website/source/assets/images/favicon.png and /dev/null differ
diff --git a/website/source/assets/images/favicons/android-chrome-192x192.png b/website/source/assets/images/favicons/android-chrome-192x192.png
new file mode 100644
index 0000000000..17ac1c61cf
Binary files /dev/null and b/website/source/assets/images/favicons/android-chrome-192x192.png differ
diff --git a/website/source/assets/images/favicons/android-chrome-512x512.png b/website/source/assets/images/favicons/android-chrome-512x512.png
new file mode 100644
index 0000000000..c48430c0dc
Binary files /dev/null and b/website/source/assets/images/favicons/android-chrome-512x512.png differ
diff --git a/website/source/assets/images/favicons/apple-touch-icon.png b/website/source/assets/images/favicons/apple-touch-icon.png
new file mode 100644
index 0000000000..c17b6c50a3
Binary files /dev/null and b/website/source/assets/images/favicons/apple-touch-icon.png differ
diff --git a/website/source/assets/images/favicons/favicon-16x16.png b/website/source/assets/images/favicons/favicon-16x16.png
new file mode 100644
index 0000000000..4ab61bb4e2
Binary files /dev/null and b/website/source/assets/images/favicons/favicon-16x16.png differ
diff --git a/website/source/assets/images/favicons/favicon-32x32.png b/website/source/assets/images/favicons/favicon-32x32.png
new file mode 100644
index 0000000000..1672aaf6dd
Binary files /dev/null and b/website/source/assets/images/favicons/favicon-32x32.png differ
diff --git a/website/source/assets/images/favicons/favicon.ico b/website/source/assets/images/favicons/favicon.ico
new file mode 100644
index 0000000000..f8fcb4732c
Binary files /dev/null and b/website/source/assets/images/favicons/favicon.ico differ
diff --git a/website/source/assets/images/favicons/mstile-150x150.png b/website/source/assets/images/favicons/mstile-150x150.png
new file mode 100644
index 0000000000..e3c0befd5a
Binary files /dev/null and b/website/source/assets/images/favicons/mstile-150x150.png differ
diff --git a/website/source/assets/images/favicons/safari-pinned-tab.svg b/website/source/assets/images/favicons/safari-pinned-tab.svg
new file mode 100644
index 0000000000..010e88a90d
--- /dev/null
+++ b/website/source/assets/images/favicons/safari-pinned-tab.svg
@@ -0,0 +1,61 @@
+
+
+
+
+Created by potrace 1.11, written by Peter Selinger 2001-2013
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/source/assets/images/feature-config.png b/website/source/assets/images/feature-config.png
deleted file mode 100644
index f759903c85..0000000000
Binary files a/website/source/assets/images/feature-config.png and /dev/null differ
diff --git a/website/source/assets/images/feature-config.svg b/website/source/assets/images/feature-config.svg
new file mode 100644
index 0000000000..216afac0e0
--- /dev/null
+++ b/website/source/assets/images/feature-config.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/source/assets/images/feature-config@2x.png b/website/source/assets/images/feature-config@2x.png
deleted file mode 100644
index 7e55ad3c53..0000000000
Binary files a/website/source/assets/images/feature-config@2x.png and /dev/null differ
diff --git a/website/source/assets/images/feature-discovery.png b/website/source/assets/images/feature-discovery.png
deleted file mode 100644
index 1366eb7495..0000000000
Binary files a/website/source/assets/images/feature-discovery.png and /dev/null differ
diff --git a/website/source/assets/images/feature-discovery.svg b/website/source/assets/images/feature-discovery.svg
new file mode 100644
index 0000000000..a663eaebe6
--- /dev/null
+++ b/website/source/assets/images/feature-discovery.svg
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/website/source/assets/images/feature-discovery@2x.png b/website/source/assets/images/feature-discovery@2x.png
deleted file mode 100644
index b02fa91858..0000000000
Binary files a/website/source/assets/images/feature-discovery@2x.png and /dev/null differ
diff --git a/website/source/assets/images/feature-health.png b/website/source/assets/images/feature-health.png
deleted file mode 100644
index 8b8e6b93de..0000000000
Binary files a/website/source/assets/images/feature-health.png and /dev/null differ
diff --git a/website/source/assets/images/feature-health.svg b/website/source/assets/images/feature-health.svg
new file mode 100644
index 0000000000..16a4864a15
--- /dev/null
+++ b/website/source/assets/images/feature-health.svg
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/source/assets/images/feature-health@2x.png b/website/source/assets/images/feature-health@2x.png
deleted file mode 100644
index a9e291f8f7..0000000000
Binary files a/website/source/assets/images/feature-health@2x.png and /dev/null differ
diff --git a/website/source/assets/images/feature-multi.png b/website/source/assets/images/feature-multi.png
deleted file mode 100644
index 097d119f56..0000000000
Binary files a/website/source/assets/images/feature-multi.png and /dev/null differ
diff --git a/website/source/assets/images/feature-multi.svg b/website/source/assets/images/feature-multi.svg
new file mode 100644
index 0000000000..96376e2e93
--- /dev/null
+++ b/website/source/assets/images/feature-multi.svg
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/website/source/assets/images/feature-multi@2x.png b/website/source/assets/images/feature-multi@2x.png
deleted file mode 100644
index 9df0875bcc..0000000000
Binary files a/website/source/assets/images/feature-multi@2x.png and /dev/null differ
diff --git a/website/source/assets/images/footer-hashicorp-logo.png b/website/source/assets/images/footer-hashicorp-logo.png
deleted file mode 100644
index 568af0de87..0000000000
Binary files a/website/source/assets/images/footer-hashicorp-logo.png and /dev/null differ
diff --git a/website/source/assets/images/footer-hashicorp-logo@2x.png b/website/source/assets/images/footer-hashicorp-logo@2x.png
deleted file mode 100644
index 139ef3d1dc..0000000000
Binary files a/website/source/assets/images/footer-hashicorp-logo@2x.png and /dev/null differ
diff --git a/website/source/assets/images/hero-dots-below.png b/website/source/assets/images/hero-dots-below.png
deleted file mode 100644
index 84f70a2a07..0000000000
Binary files a/website/source/assets/images/hero-dots-below.png and /dev/null differ
diff --git a/website/source/assets/images/hero-dots-below@2x.png b/website/source/assets/images/hero-dots-below@2x.png
deleted file mode 100644
index 65462320ae..0000000000
Binary files a/website/source/assets/images/hero-dots-below@2x.png and /dev/null differ
diff --git a/website/source/assets/images/hero-dots.png b/website/source/assets/images/hero-dots.png
deleted file mode 100644
index 6e7bdbbdcd..0000000000
Binary files a/website/source/assets/images/hero-dots.png and /dev/null differ
diff --git a/website/source/assets/images/hero-dots@2x.png b/website/source/assets/images/hero-dots@2x.png
deleted file mode 100644
index f14866bc89..0000000000
Binary files a/website/source/assets/images/hero-dots@2x.png and /dev/null differ
diff --git a/website/source/assets/images/icon-download-purple.png b/website/source/assets/images/icon-download-purple.png
deleted file mode 100644
index fd9cf94132..0000000000
Binary files a/website/source/assets/images/icon-download-purple.png and /dev/null differ
diff --git a/website/source/assets/images/icon-download-purple@2x.png b/website/source/assets/images/icon-download-purple@2x.png
deleted file mode 100644
index 7935e39412..0000000000
Binary files a/website/source/assets/images/icon-download-purple@2x.png and /dev/null differ
diff --git a/website/source/assets/images/icon-download.png b/website/source/assets/images/icon-download.png
deleted file mode 100644
index 200f73aa43..0000000000
Binary files a/website/source/assets/images/icon-download.png and /dev/null differ
diff --git a/website/source/assets/images/icon-download@2x.png b/website/source/assets/images/icon-download@2x.png
deleted file mode 100644
index 618ba1f4f9..0000000000
Binary files a/website/source/assets/images/icon-download@2x.png and /dev/null differ
diff --git a/website/source/assets/images/icon-github-purple.png b/website/source/assets/images/icon-github-purple.png
deleted file mode 100644
index 27467e1ea2..0000000000
Binary files a/website/source/assets/images/icon-github-purple.png and /dev/null differ
diff --git a/website/source/assets/images/icon-github-purple@2x.png b/website/source/assets/images/icon-github-purple@2x.png
deleted file mode 100644
index e72e1299d7..0000000000
Binary files a/website/source/assets/images/icon-github-purple@2x.png and /dev/null differ
diff --git a/website/source/assets/images/icon-github.png b/website/source/assets/images/icon-github.png
deleted file mode 100644
index 8d74442bda..0000000000
Binary files a/website/source/assets/images/icon-github.png and /dev/null differ
diff --git a/website/source/assets/images/icon-github@2x.png b/website/source/assets/images/icon-github@2x.png
deleted file mode 100644
index 6e60655cb1..0000000000
Binary files a/website/source/assets/images/icon-github@2x.png and /dev/null differ
diff --git a/website/source/assets/images/logo-header-gradient@2x.png b/website/source/assets/images/logo-header-gradient@2x.png
deleted file mode 100644
index 6be50827cc..0000000000
Binary files a/website/source/assets/images/logo-header-gradient@2x.png and /dev/null differ
diff --git a/website/source/assets/images/logo-header.svg b/website/source/assets/images/logo-header.svg
deleted file mode 100644
index 7ee9d85ca4..0000000000
--- a/website/source/assets/images/logo-header.svg
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
- HashiCorp Consul
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/website/source/assets/images/logo-text.svg b/website/source/assets/images/logo-text.svg
new file mode 100644
index 0000000000..11f60999c2
--- /dev/null
+++ b/website/source/assets/images/logo-text.svg
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/website/source/assets/images/logo_large.png b/website/source/assets/images/logo_large.png
deleted file mode 100644
index bc1d528a9a..0000000000
Binary files a/website/source/assets/images/logo_large.png and /dev/null differ
diff --git a/website/source/assets/images/nav-dotpipes.png b/website/source/assets/images/nav-dotpipes.png
deleted file mode 100644
index 852dd11a78..0000000000
Binary files a/website/source/assets/images/nav-dotpipes.png and /dev/null differ
diff --git a/website/source/assets/images/nav-dotpipes@2x.png b/website/source/assets/images/nav-dotpipes@2x.png
deleted file mode 100644
index 9248f47fa8..0000000000
Binary files a/website/source/assets/images/nav-dotpipes@2x.png and /dev/null differ
diff --git a/website/source/assets/images/sidebar-dots.jpg b/website/source/assets/images/sidebar-dots.jpg
deleted file mode 100644
index 90973e9072..0000000000
Binary files a/website/source/assets/images/sidebar-dots.jpg and /dev/null differ
diff --git a/website/source/assets/javascripts/_app/Sidebar.js b/website/source/assets/javascripts/_app/Sidebar.js
deleted file mode 100644
index b36e508c4a..0000000000
--- a/website/source/assets/javascripts/_app/Sidebar.js
+++ /dev/null
@@ -1,50 +0,0 @@
-(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;
-
-})();
diff --git a/website/source/assets/javascripts/_app/app.js b/website/source/assets/javascripts/_app/app.js
deleted file mode 100644
index 4cff2744f4..0000000000
--- a/website/source/assets/javascripts/_app/app.js
+++ /dev/null
@@ -1,27 +0,0 @@
-//
-// app.js
-//
-
-var APP = (function() {
-
- function initializeSidebar() {
- new Sidebar();
- }
-
- function initialize() {
- APP.Utils.runIfClassNamePresent('page-home', initHome);
-
- //always init sidebar
- initializeSidebar();
- }
-
- function initHome() {
- APP.Homepage.init();
- }
-
- //api
- return {
- initialize: initialize
- }
-
-})();
diff --git a/website/source/assets/javascripts/_app/docs.js b/website/source/assets/javascripts/_app/docs.js
deleted file mode 100644
index 9a44b86b0f..0000000000
--- a/website/source/assets/javascripts/_app/docs.js
+++ /dev/null
@@ -1,48 +0,0 @@
-(function(){
-
- var mainContentMin = 600;
-
- var Init = {
-
- start: function(){
- var classname = this.hasClass(document.body, 'page-sub');
-
- if (classname) {
- this.addEventListeners();
- }
- },
-
- hasClass: function (elem, className) {
- return new RegExp(' ' + className + ' ').test(' ' + elem.className + ' ');
- },
-
- addEventListeners: function(){
- var _this = this;
- //console.log(document.querySelectorAll('.navbar-static-top')[0]);
- window.addEventListener('resize', _this.resizeImage, false);
-
- this.resizeImage();
- },
-
- resizeImage: function(){
-
- var header = document.getElementById('header'),
- footer = document.getElementById('footer'),
- main = document.getElementById('main-content'),
- vp = window.innerHeight,
- bodyHeight = document.body.clientHeight,
- hHeight = header.clientHeight,
- fHeight = footer.clientHeight,
- withMinHeight = hHeight + fHeight + mainContentMin;
-
- if(withMinHeight < vp && bodyHeight < vp){
- var newHeight = mainContentMin + (vp-withMinHeight) + 'px';
- main.style.height = newHeight;
- }
- }
-
- };
-
- Init.start();
-
-})();
diff --git a/website/source/assets/javascripts/_app/homepage.js b/website/source/assets/javascripts/_app/homepage.js
deleted file mode 100644
index 79ff40e3e8..0000000000
--- a/website/source/assets/javascripts/_app/homepage.js
+++ /dev/null
@@ -1,48 +0,0 @@
-//homepage.js
-
-var APP = APP || {};
-
-(function () {
- APP.Homepage = (function () {
- return {
-
- ui : null,
-
- init: function () {
- var _this = this;
-
- //cache elements
- this.ui = {
- $doc: $(window),
- $hero: $('#jumbotron'),
- $collapse: $('.navbar-collapse')
- }
-
- this.addEventListeners();
-
- },
-
- addEventListeners: function(){
- var _this = this;
-
- if(APP.Utils.isMobile)
- return;
-
- _this.ui.$doc.scroll(function() {
-
- //if collapseable menu is open dont do parrallax. It looks wonky. Bootstrap conflict
- if( _this.ui.$collapse.hasClass('in'))
- return;
-
- var top = _this.ui.$doc.scrollTop(),
- speedAdj = (top*0.8),
- speedAdjOffset = speedAdj - top;
-
- _this.ui.$hero.css('webkitTransform', 'translate(0, '+ speedAdj +'px)');
- _this.ui.$hero.find('.container').css('webkitTransform', 'translate(0, '+ speedAdjOffset +'px)');
- })
- }
- }
- }());
-
-}(jQuery, this));
diff --git a/website/source/assets/javascripts/_app/util.js b/website/source/assets/javascripts/_app/util.js
deleted file mode 100644
index 0025c2678f..0000000000
--- a/website/source/assets/javascripts/_app/util.js
+++ /dev/null
@@ -1,33 +0,0 @@
-//
-// util.js
-//
-var APP = APP || {};
-
-APP.Utils = (function () {
- return {
- //check for mobile user agents
- isMobile : (function(){
- if( navigator.userAgent.match(/Android/i)
- || navigator.userAgent.match(/webOS/i)
- || navigator.userAgent.match(/iPhone/i)
- //|| navigator.userAgent.match(/iPad/i)
- || navigator.userAgent.match(/iPod/i)
- || navigator.userAgent.match(/BlackBerry/i)
- || navigator.userAgent.match(/Windows Phone/i)
- ){
- return true;
- }
- else {
- return false;
- }
- })(),
-
- runIfClassNamePresent: function(selector, initFunction) {
- var elms = document.getElementsByClassName(selector);
- if (elms.length > 0) {
- initFunction();
- }
- }
-}
-
-}());
diff --git a/website/source/assets/javascripts/application.coffee b/website/source/assets/javascripts/application.coffee
deleted file mode 100644
index 9f94cfd047..0000000000
--- a/website/source/assets/javascripts/application.coffee
+++ /dev/null
@@ -1,13 +0,0 @@
-# From middleman-hashicorp
-#= require jquery
-#= require bootstrap
-
-#= require lib/Base
-
-#= require _app/docs
-#= require _app/Sidebar
-#= require _app/app
-#= require _app/homepage
-#= require _app/util
-
-#= require hashicorp/mega-nav
diff --git a/website/source/assets/javascripts/application.js b/website/source/assets/javascripts/application.js
new file mode 100644
index 0000000000..ad181b4cce
--- /dev/null
+++ b/website/source/assets/javascripts/application.js
@@ -0,0 +1,5 @@
+//= require turbolinks
+//= require jquery
+
+//= require hashicorp/mega-nav
+//= require hashicorp/sidebar
diff --git a/website/source/assets/javascripts/lib/Base.js b/website/source/assets/javascripts/lib/Base.js
deleted file mode 100644
index 504e2beea1..0000000000
--- a/website/source/assets/javascripts/lib/Base.js
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- Based on Base.js 1.1a (c) 2006-2010, Dean Edwards
- Updated to pass JSHint and converted into a module by Kenneth Powers
- License: http://www.opensource.org/licenses/mit-license.php
-*/
-/*global define:true module:true*/
-/*jshint eqeqeq:true*/
-(function (name, global, definition) {
- if (typeof module !== 'undefined') {
- module.exports = definition();
- } else if (typeof define !== 'undefined' && typeof define.amd === 'object') {
- define(definition);
- } else {
- global[name] = definition();
- }
-})('Base', this, function () {
- // Base Object
- var Base = function () {};
-
- // Implementation
- Base.extend = function (_instance, _static) { // subclass
- var extend = Base.prototype.extend;
- // build the prototype
- Base._prototyping = true;
- var proto = new this();
- extend.call(proto, _instance);
- proto.base = function () {
- // call this method from any other method to invoke that method's ancestor
- };
- delete Base._prototyping;
- // create the wrapper for the constructor function
- //var constructor = proto.constructor.valueOf(); //-dean
- var constructor = proto.constructor;
- var klass = proto.constructor = function () {
- if (!Base._prototyping) {
- if (this._constructing || this.constructor === klass) { // instantiation
- this._constructing = true;
- constructor.apply(this, arguments);
- delete this._constructing;
- } else if (arguments[0] !== null) { // casting
- return (arguments[0].extend || extend).call(arguments[0], proto);
- }
- }
- };
- // build the class interface
- klass.ancestor = this;
- klass.extend = this.extend;
- klass.forEach = this.forEach;
- klass.implement = this.implement;
- klass.prototype = proto;
- klass.toString = this.toString;
- klass.valueOf = function (type) {
- return (type === 'object') ? klass : constructor.valueOf();
- };
- extend.call(klass, _static);
- // class initialization
- if (typeof klass.init === 'function') klass.init();
- return klass;
- };
-
- Base.prototype = {
- extend: function (source, value) {
- if (arguments.length > 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/source/assets/stylesheets/_announcement-bnr.scss b/website/source/assets/stylesheets/_announcement-bnr.scss
deleted file mode 100755
index 205a522172..0000000000
--- a/website/source/assets/stylesheets/_announcement-bnr.scss
+++ /dev/null
@@ -1,142 +0,0 @@
-//
-// announcement bnr
-// --------------------------------------------------
-
-$enterprise-bnr-font-weight: 300;
-$enterprise-bnr-consul-color: #B52A55;
-$enterprise-color-dark-white: #A9B1B5;
-
-body{
- // when _announcment-bnr.erb (ie. Consul Enterprise Announcment) is being used in layout we need to push down content to accommodate
- // add this class to body
- &.-displaying-bnr{
- #header{
- > .container{
- padding-top: 8px;
- -webkit-transform: translateY(32px);
- -ms-transform: translateY(32px);
- transform: translateY(32px);
- }
- }
-
- #jumbotron {
- .container{
- .jumbo-logo-wrap{
- margin-top: 160px;
- }
- }
- }
-
- &.page-sub{
- #header{
- > .container{
- padding-bottom: 32px;
- }
- }
- }
- }
-}
-
-
-#announcement-bnr {
- height: 40px;
- flex-shrink: 0;
- background-color: #000;
-
- &.-absolute{
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- z-index: 9999;
- }
-
- a,p{
- font-size: 14px;
- color: $enterprise-color-dark-white;
- font-family: $header-font-family;
- font-weight: $enterprise-bnr-font-weight;
- font-size: 13px;
- line-height: 40px;
- margin-bottom: 0;
- }
-
- .link-highlight{
- display: inline-block;
- margin-left: 3px;
- color: lighten($enterprise-bnr-consul-color, 10%);
- font-weight: 400;
- -webkit-transform: translateY(1px);
- -ms-transform: translateY(1px);
- transform: translateY(1px);
- }
-
- .enterprise-logo{
- position: relative;
- top: 4px;
-
- &:hover{
- text-decoration: none;
-
- svg{
- rect{
- fill: $enterprise-color-dark-white;
- }
- }
- }
-
- svg{
- width: 140px;
- height: 19px;
- fill: $white;
- margin-right: 4px;
- margin-left: 3px;
-
- rect{
- @include transition(all .1s ease-in);
- }
- }
- }
-}
-
-.hcaret{
- display: inline-block;
- -moz-transform: translate(0, -1px) rotate(135deg);
- -webkit-transform: translate(0, -1px) rotate(135deg);
- transform: translate(0, -1px) rotate(135deg);
- width: 7px;
- height: 7px;
- border-top: 1px solid lighten($enterprise-bnr-consul-color, 10%);
- border-left: 1px solid lighten($enterprise-bnr-consul-color, 10%);
- @include transition(all .1s ease-in);
-}
-
-@media (max-width: 768px) {
- #announcement-bnr {
- .tagline{
- display: none;
- }
- }
-}
-
-@media (max-width: 320px) {
- #announcement-bnr {
- a,p{
- font-size: 12px;
- }
-
- .link-highlight{
- display: inline-block;
- margin-left: 1px;
- }
-
- .enterprise-logo svg{
- width: 128px;
- margin-left: 2px;
- }
-
- .hcaret{
- display: none;
- }
- }
-}
diff --git a/website/source/assets/stylesheets/_buttons.scss b/website/source/assets/stylesheets/_buttons.scss
index 9076eaf2e2..e1037e818b 100755
--- a/website/source/assets/stylesheets/_buttons.scss
+++ b/website/source/assets/stylesheets/_buttons.scss
@@ -1,56 +1,37 @@
-//
-// Button Styles
-// --------------------------------------------------
+.button {
+ background: $button-background;
+ border: 1px solid $button-font-color;
+ box-shadow: 3px 4px 0 rgba(0,0,0,0.1);
+ color: $button-font-color;
+ display: inline-block;
+ font-family: $button-font-family;
+ font-size: $button-font-size;
+ font-weight: $button-font-weight;
+ letter-spacing: 1px;
+ margin-bottom: 4px;
+ padding: 10px 30px;
+ text-transform: uppercase;
+ text-decoration: none;
-.outline-btn{
- background-color: transparent;
- color: $white;
- border: 2px solid $white;
- border-radius: $btn-border-radius;
- text-decoration: none !important;
- @include transition(background-color .3s ease-in-out);
-
- &.purple{
- color: $purple;
- border: 2px solid $purple;
+ &:hover,
+ &:active,
+ &:focus {
+ text-decoration: none;
}
- &:hover{
- color: $white;
- background-color: rgba(255, 255, 255, .2);
- @include transition(background-color .3s ease-in-out);
+ &:hover {
+ background: $button-font-color;
+ border: 1px solid $button-font-color;
+ color: $button-background;
+ }
- &.purple{
- background-color: rgba(255, 255, 255, .5);
+ &.primary {
+ background: $button-primary-background;
+ border: 1px solid darken($button-primary-background, 5%);
+ color: $button-primary-font-color;
+
+ &:hover {
+ background: lighten($button-primary-background, 5%);
}
}
}
-
-//dot animation on header main nav link hover
-.li-under a::after {
- position: absolute;
- top: 68%;
- left: 50%;
- margin-left: -4px;
- width: 8px;
- height: 8px;
- background-color: $white;
- border-radius: 4px;
- content: '';
- opacity: 0;
- text-decoration: none;
- -webkit-transition: height 0.3s, opacity 0.3s, -webkit-transform 0.3s;
- -moz-transition: height 0.3s, opacity 0.3s, -moz-transform 0.3s;
- transition: height 0.3s, opacity 0.3s, transform 0.3s;
- -webkit-transform: translateY(-10px);
- -moz-transform: translateY(-10px);
- transform: translateY(-10px);
-}
-
-.li-under a:hover::after,
-.li-under a:focus::after {
- opacity: .5;
- -webkit-transform: translateY(0px);
- -moz-transform: translateY(0px);
- transform: translateY(0px);
-}
diff --git a/website/source/assets/stylesheets/_community.scss b/website/source/assets/stylesheets/_community.scss
index e94cfa76d9..1ff047de69 100644
--- a/website/source/assets/stylesheets/_community.scss
+++ b/website/source/assets/stylesheets/_community.scss
@@ -1,15 +1,22 @@
-.people {
- margin-top: 30px;
+#inner {
+ .people {
+ margin-top: 30px;
- .person {
- margin-bottom: 40px;
+ .person {
+ &:after {
+ display: block;
+ clear: both;
+ content: ' ';
+ }
- h3 {
- text-transform: none;
- }
+ img {
+ width: 125px;
+ margin: auto auto;
+ }
- .bio {
- padding-left: 150px;
+ .bio {
+ padding-left: 150px;
+ }
}
}
}
diff --git a/website/source/assets/stylesheets/_docs.scss b/website/source/assets/stylesheets/_docs.scss
index 10f8f13171..ccbbf21351 100755
--- a/website/source/assets/stylesheets/_docs.scss
+++ b/website/source/assets/stylesheets/_docs.scss
@@ -1,277 +1,75 @@
-//
-// Docs
-// --------------------------------------------------
-
-body.layout-docs,
-body.layout-intro{
- background: $light-purple image-url('sidebar-dots.jpg') left 62px no-repeat;
-
- #main-content{
- min-height: 600px;
-
- h1, h2, h3, h4, h5 {
- font-family: $font-family-open-sans;
- text-transform: none;
- }
- }
-
- >.container{
- .col-md-8[role=main]{
- min-height: 800px;
- background-color: white;
-
- &::before {
- content: "";
- position: absolute;
- top: 0;
- bottom: 0;
- left: -9999px;
- right: 0;
- border-left: none;
- box-shadow: 9999px 0 0 white;
- }
-
- >div{
- position: relative;
- z-index: 10;
- }
- }
- }
-}
-
-.docs-sidebar{
- position: relative;
- z-index: 20;
+#docs-sidebar {
margin-bottom: 30px;
margin-top: 50px;
- margin-right: 4%;
- background-color: $light-purple;
- border-radius: $el-border-radius;
- a{
- color: $purple;
- }
-
- .docs-sidenav{
- padding-top: 15px;
+ ul.nav.docs-sidenav {
+ display: block;
padding-bottom: 15px;
- :last-child{
- border-bottom: none;
- }
+ li {
+ a {
+ color: $sidebar-link-color;
+ font-size: $sidebar-font-size;
+ padding: 10px 0 10px 15px;
- //all li > a
- li{
- position: relative;
-
- > a{
- color: $purple;
- @include transition( color 0.5s ease );
- }
-
- > a:hover,
- > a:focus {
- background-color: transparent !important;
- color: $black;
- @include transition( color 0.5s ease );
- }
- }
-
-
- > li {
- padding: 10px 0;
- margin: 0 30px;
- border-bottom: 2px solid #fff;
-
- >.nav{
- li{
- a{
- color: $black;
- }
- }
- }
-
- &.active {
- &:before{
- content: '';
+ &:before {
+ color: $sidebar-link-color-active;
+ content: '\203A';
+ font-size: $font-size;
+ left: 0;
+ line-height: 100%;
+ opacity: 0.4;
position: absolute;
- width: 8px;
- height: 8px;
- background-color: $purple;
- border-radius: 4px;
- top: 26px;
- left: -10px;
- }
- > a{
- -webkit-font-smoothing: antialiased;
+
+ height: 100%;
+ width: 8px
}
- /*> a:hover,
- > a:focus {
- font-weight: font-weight-xb;
- }*/
+ &:focus,
+ &:hover {
+ background-color: transparent;
+ color: $sidebar-link-color-hover;
- .nav {
+ &:before {
+ opacity: 1;
+ }
+ }
+ }
+
+ // For forcing sub-navs to appear - in the long term, this should not
+ // be a thing anymore...
+ > ul.nav-visible {
display: block;
-
- li.active a {
- font-weight: font-weight-xb;
- }
-
- li.active .subnav {
- display: block;
-
- li a {
- font-weight: $font-weight-sb;
- }
-
- li.active a {
- font-weight: font-weight-xb;
- }
- }
}
}
- > a {
- font-family: $font-family-open-sans;
- font-weight: 600;
- -webkit-font-smoothing: antialiased;
- }
- }
+ li.active {
+ > a {
+ color: $sidebar-link-color-active;
- .nav {
- display: none;
- margin-bottom: 15px;
-
- > li{
- margin-left: 20px;
-
- > a{
- padding: 6px 15px;
- font-weight: 500;
- -webkit-font-smoothing: antialiased;
+ &:before {
+ opacity: 1;
+ }
}
- .subnav {
- display: none;
- margin-bottom: 15px;
- list-style: none;
- > li{
- padding: 6px 0;
- > a{
- -webkit-font-smoothing: antialiased;
- }
+ // Open nested navigations
+ > ul.nav {
+ display: block;
+ }
+ }
+
+ // subnav
+ ul.nav {
+ display: none;
+ margin: 10px;
+
+ li {
+ margin-left: 10px;
+
+ a {
+ padding: 6px 15px;
}
}
}
}
}
-}
-
-
-.bs-docs-section{
- padding-top: 10px;
- padding-left: 3%;
- padding-bottom: 80px;
-
- .alert {
- a {
- color: inherit;
- font-size: inherit;
- font-weight: inherit;
- }
- }
-
- .lead{
- margin-bottom: 48px
- }
-
- .doc-sectional{
- margin-bottom: 48px;
- }
-
- p, li, .alert {
- font-size: 18px;
- font-weight: 400;
- line-height: 1.5em;
- margin: 0 0 18px;
- -webkit-font-smoothing: antialiased;
- }
-
- li p a, li a {
- text-decoration: none;
- }
-
- pre {
- margin: 0 0 18px;
-
- // This will force the code to scroll horizontally on small screens
- // instead of wrapping.
- code {
- overflow-wrap: normal;
- white-space: pre;
- }
- }
-
- a{
- color: $purple;
- &:hover{
- text-decoration: underline;
- }
- }
-
- img{
- max-width: 650px;
- margin-top: 25px;
- margin-bottom: 25px;
- }
-
- h1{
- color: $purple;
- text-transform: uppercase;
- padding-bottom: 24px;
- margin-top: 40px;
- margin-bottom: 24px;
- border-bottom: 1px solid #eeeeee;
- }
-
- h2, h3, h4{
- margin-top: 42px;
- margin-bottom: 16px;
- }
-
- #graph {
- margin-top: 30px;
- }
-
- .alert p {
- margin-bottom: 0;
- }
-}
-
-
-@media (max-width: 992px) {
- body.layout-docs,
- body.layout-intro{
- >.container{
- .col-md-8[role=main]{
- min-height: 0;
- &::before {
- border-left: 9999px solid white;
- }
- }
- }
- }
-}
-
-@media (max-width: 480px) {
- .bs-docs-section{
- img{
- max-width: 450px;
- }
-
- h1{
- font-size: 32px;
- }
- }
-}
diff --git a/website/source/assets/stylesheets/_downloads.scss b/website/source/assets/stylesheets/_downloads.scss
index ff758bf952..97a4dfc66b 100644
--- a/website/source/assets/stylesheets/_downloads.scss
+++ b/website/source/assets/stylesheets/_downloads.scss
@@ -1,59 +1,60 @@
-.downloads {
- margin-top: 20px;
+body.layout-downloads {
+ #inner {
+ .downloads {
+ margin-top: 20px;
- .description {
- margin-bottom: 20px;
- }
-
- .download {
- border-bottom: 1px solid #b2b2b2;
- padding-bottom: 15px;
- margin-top: 10px;
- margin-bottom: 10px;
-
- .details {
- padding-left: 95px;
-
- h2 {
- margin-top: 0px;
+ .description {
+ margin-bottom: 20px;
}
- ul {
- padding-left: 0px;
- }
+ .download {
+ align-items: center;
+ border-bottom: 1px solid #b2b2b2;
+ display: flex;
+ padding: 15px;
- li {
- display: inline-block;
+ .details {
+ padding-left: 20px;
- &:after {
- content: " | ";
+ h2 {
+ margin-top: 4px;
+ border: none;
+ }
+
+ ul {
+ padding-left: 0px;
+ margin: -8px 0 0 0;
+ }
+
+ li {
+ display: inline-block;
+
+ &:after {
+ content: " | ";
+ }
+
+ &:last-child:after {
+ content: "";
+ }
+ }
}
- &:last-child:after {
- content: "";
+ .icon {
+ svg {
+ width: 75px;
+ }
+ }
+
+ .os-name {
+ font-size: 40px;
+ margin-bottom: -3px;
}
}
- }
- .icon {
- img {
- width: 75px;
+ .poweredby {
+ margin-top: 20px;
+ text-align: center;
}
}
-
- .os-name {
- font-size: 40px;
- margin-bottom: -3px;
- }
- }
-
- .poweredby {
- margin-top: 20px;
-
- img {
- display: block;
- margin: 0 auto;
- width: 122px;
- }
}
}
diff --git a/website/source/assets/stylesheets/_footer.scss b/website/source/assets/stylesheets/_footer.scss
index 13ffebd474..ae34a057a4 100644
--- a/website/source/assets/stylesheets/_footer.scss
+++ b/website/source/assets/stylesheets/_footer.scss
@@ -1,68 +1,22 @@
-#footer{
- padding: 64px 0;
- background-color: $black;
+#footer {
+ padding-top: 50px;
- .hashicorp-project{
- margin-top: 24px;
- }
+ ul.footer-links {
+ li {
+ a {
+ color: $footer-link-color;
+ font-size: $footer-font-size;
+ font-family: $font-family-open-sans;
+ text-decoration: none;
- .pull-right{
- padding-right: 15px;
- }
-}
+ &:hover, &:focus, &:active {
+ background-color: transparent;
+ color: $footer-link-color-hover;
+ outline: 0;
+ }
-.edit-page-link{
- position: absolute;
- top: -110px;
- right: 30px;
- z-index: 9999;
-
- a{
- text-transform: uppercase;
- color: $black;
- }
-}
-
-@media (max-width: 768px) {
- #footer{
- text-align: center;
-
- .footer-hashi {
- float: none !important;
- display: block;
-
- .pull-right{
- float: none !important;
- padding-right: 0;
- }
- }
-
- ul{
- float: none;
- display: inline-block;
- margin-bottom: 36px;
- }
- }
-}
-
-@media (max-width: 414px) {
- #footer{
- ul{
- display: block;
- li{
- display: block;
- float: none;
- }
-
- &.external-links{
- li{
- svg{
- position: relative;
- left: 0;
- top: 2px;
- margin-top: 0;
- margin-right: 4px;
- }
+ @media (max-width: 992px) {
+ text-align: center;
}
}
}
diff --git a/website/source/assets/stylesheets/_global.scss b/website/source/assets/stylesheets/_global.scss
index c719032b6a..3b69c05ddc 100755
--- a/website/source/assets/stylesheets/_global.scss
+++ b/website/source/assets/stylesheets/_global.scss
@@ -1,102 +1,35 @@
-//
-// Global Site
-// --------------------------------------------------
-
-/*html{
-text-rendering: optimizeLegibility;
--webkit-font-smoothing: antialiased;
-}*/
+html {
+ height: 100%;
+ min-height: 100%;
+ text-rendering: optimizeLegibility;
+ -webkit-font-smoothing: antialiased;
+}
body {
- font-size: 15px;
- color: $black;
+ -webkit-font-smoothing: antialiased;
+ color: $body-font-color;
+ background-color: $white;
+ font-size: $font-size;
font-family: $font-family-open-sans;
- font-weight: 300;
+ font-weight: $font-weight-reg;
+ height: 100%;
+ min-height: 100%;
}
h1, h2, h3, h4, h5 {
font-family: $font-family-klavika;
- text-transform: uppercase;
+ -webkit-font-smoothing: antialiased;
}
-h1{
- font-size: 42px;
- line-height: 42px;
- font-weight: $font-weight-sb;
+h1 {
margin-bottom: 24px;
}
-h3{
- font-size: 28px;
- line-height: 28px;
- font-weight: $font-weight-sb;
+// Avoid FOUT
+.wf-loading {
+ visibility: hidden;
}
-p, a, input, .alert {
-
-}
-
-//an alternative color for buttons in the doc body
-.btn-serf{
- color: $white !important;
- background-color: $btn-color;
- border-radius: $btn-border-radius;
- //@include box-shadow( $shadow );
-}
-
-.highlight{
- margin-bottom: 18px;
-}
-
-pre {
- background-color: $black;
- color: $white;
- font-size: 14px;
- font-weight: normal;
- font-family: "Courier New", Monaco, Menlo, Consolas, monospace;
- border: none;
- padding: 20px;
- margin-bottom: 0;
-}
-
-tt {
- font-size: 18px;
- font-family: "Menlo", "Monaco", "Courier New", monospace;
-}
-
-//fixed grid below 992 to prevent smaller responsive sizes
-@media (max-width: 992px) {
- .container{
- max-width: 970px;
- }
-}
-
-//all below styles are overriding corrections for below (min-width: 992px)
-//below (min-width: 992px) these styles change
-.navbar-nav {
- margin: 0;
-}
-
-.navbar-right {
- float: right !important;
-}
-
-.navbar-nav > li {
- float: left;
-}
-
-.navbar-nav > li > a {
- padding-top: 15px;
- padding-bottom: 15px;
-}
-
-.center {
- text-align: center;
-}
-
-.edit-this-page{
- padding-top: 48px;
- a{
- text-transform: uppercase;
- }
+.wf-active, .wf-inactive {
+ visibility: visible;
}
diff --git a/website/source/assets/stylesheets/_header.scss b/website/source/assets/stylesheets/_header.scss
index 917acbd312..dde70d7d66 100755
--- a/website/source/assets/stylesheets/_header.scss
+++ b/website/source/assets/stylesheets/_header.scss
@@ -1,65 +1,78 @@
-//
-// Header
-// - Project Specific
-// - edits should be made here
-// --------------------------------------------------
+#header {
+ background: $header-background-color;
-body.page-sub{
- #header{
- @include consul-gradient-bg();
+ .navbar-toggle {
+ height: $header-height;
+ margin: 0;
+ padding-right: 15px;
+ border-radius: 0;
- .navbar-brand {
- .logo{
- &:hover{
- color: $black;
+ .icon-bar {
+ border: 1px solid $white;
+ border-radius: 0;
+ }
+ }
+
+ .navbar-brand {
+ display: block;
+ margin: 0;
+ padding: 0;
+
+ a {
+ display: flex;
+ align-items: center;
+ height: $header-height;
+ line-height: $header-height;
+
+ svg.logo {
+ transition: opacity 0.15s ease-in-out;
+ @extend svg.logo.white;
+
+ &:hover, &:focus, &:active {
+ opacity: 0.6;
+ outline: 0;
+ text-decoration: none;
}
}
}
}
-}
-#header {
- .navbar-brand {
- .logo{
- width: $project-logo-width;
- padding: 0;
- line-height: $header-height;
- background-position: 0 center;
- font-size: 0;
- text-transform: uppercase;
- background: url("../images/logo-header.svg") center no-repeat;
- background-size: 100%;
+ ul.nav {
+ li {
+ a {
+ color: $header-link-color;
+ font-size: $header-font-size;
+ font-family: $font-family-open-sans;
+ font-weight: $font-weight-bold;
+ height: $header-height;
+ line-height: $header-height;
+ padding: 0 10px;
+ margin: 0;
+ text-decoration: none;
- &:hover{
- opacity: .4;
- }
- }
+ &:hover, &:focus, &:active {
+ background-color: transparent;
+ color: $header-link-color-hover;
+ outline: 0;
- .by-hashicorp{
- &:hover{
- svg{
- .svg-bg-line{
- opacity: .4;
+ svg {
+ fill: $header-link-color-hover;
}
}
+
+ svg {
+ fill: $header-link-color;
+ position: relative;
+ top: 2px;
+ width: 14px;
+ height: 14px;
+ margin-right: 3px;
+ }
}
}
}
- .buttons{
- margin-top: 2px; //baseline everything
- }
-}
-
-@media (max-width: 414px) {
- #header {
- .navbar-brand {
- .logo{
- width: $project-logo-width * .75;
- }
- .by-hashicorp{
- margin-top: 2px;
- }
- }
+ .buttons {
+ margin-top: 2px;
}
}
diff --git a/website/source/assets/stylesheets/_home.scss b/website/source/assets/stylesheets/_home.scss
index a8e72d972f..3ce6ddbc6a 100755
--- a/website/source/assets/stylesheets/_home.scss
+++ b/website/source/assets/stylesheets/_home.scss
@@ -1,328 +1,216 @@
-//
-// Home
-// --------------------------------------------------
-body.page-home{
- background-color: #f8f8f8;
-}
+#page-home {
+ // Override the main header
+ #header {
+ background: $home-header-background-color;
-#features{
- @include anti-alias();
- padding: 130px 0 0 0;
- background: #f8f8f8 image-url('hero-dots-below@2x.png') center top no-repeat;
- background-size: 1280px 49px;
- position: relative;
- top: $negative-hero-margin;
-
- .double-row{
- padding: 0 0 50px 0;
- }
-
- h2{
- font-size: 24px;
- letter-spacing: 1px;
- color: $purple;
- font-family: $font-family-klavika;
- font-weight: font-weight-xb;
- }
- p{
- font-size: 16px;
- line-height: 1.5em;
- color: $consul-gray;
- font-family: $font-family-open-sans;
- font-weight: $font-weight-sb;
- }
-
- .icn{
- display: block;
- width: 186px;
- height: 272px;
- margin: 0 auto;
- background-position: center 0;
- background-repeat: no-repeat;
- }
-
- .discovery{
- background-image: image-url('feature-discovery@2x.png');
- background-size: 181px 181px;
- }
- .health{
- background-image: image-url('feature-health@2x.png');
- background-size: 125px 179px;
- }
- .multi{
- background-image: image-url('feature-multi@2x.png');
- background-size: 182px 184px;
- }
- .config{
- background-image: image-url('feature-config@2x.png');
- background-size: 157px 179px;
- }
-}
-
-@media (max-width: 992px) {
- #features{
- top: $large-negative-hero-margin;
- .double-row{
- padding: 0 0 0 0;
- .row{
- padding-bottom: 90px;
+ .navbar-toggle {
+ .icon-bar {
+ border: 1px solid $home-header-link-color;
}
}
- .icn{
- height: 200px;
- }
- }
-}
-
-@media (max-width: 768px){
- #cta{
- text-align: center;
- .intro{
- .left{
- text-align: center !important;
- }
- }
- }
-}
-
-@media (max-width: 480px) {
- #features{
- text-align: center;
- }
-}
-
-#cta {
- padding: 130px 0 130px;
-
- .intro {
- .left {
- text-align: right;
- }
-
- .right {
- margin-top: 12px;
- }
-
- }
-
- p{
- font-size: 18px;
- line-height: 1.5em;
- color: $consul-gray;
- font-weight: $font-weight-sb;
- }
-
- .outline-btn {
- padding: 8px;
- display: inline-block;
-
- &:focus {
- outline: 0;
- }
- }
-
- a {
- font-weight: 500;
- font-size: 16px;
- text-transform: uppercase;
- letter-spacing: 1px;
- color: $purple;
- &:hover {
- text-decoration: none;
- }
- }
-}
-
-#demos{
- padding: 30px 0 60px;
- background-color: $light-purple;
- background: $light-purple image-url('sidebar-dots.jpg') left 62px no-repeat;
-
- .explantion {
- margin: 40px 0 40px 0;
-
- h2 {
- font-size: 22px;
- text-transform: uppercase;
- font-family: $font-family-klavika;
- font-weight: font-weight-xb;
- }
-
- p{
- font-size: 16px;
- line-height: 1.5em;
- color: $consul-gray;
- font-family: $font-family-open-sans;
- font-weight: $font-weight-sb;
- }
- }
-
- .terminals{
- margin-bottom: 80px;
-
- .terminal-item{
- border-bottom: 1px solid #eaeae;
-
- &.last{
- border-bottom: none;
- }
- >header{
- .left{
- span.icn{
- display: inline-block;
- width: 83px;
- height: 74px;
- }
+ .navbar-brand {
+ a {
+ svg.logo {
+ @extend svg.logo.color;
}
+ }
+ }
- .right{
- padding-left: 25px;
+ ul.nav {
+ li {
+ a {
+ color: $home-header-link-color;
- h2{
- margin-top: 0;
- font-size: 28px;
- text-transform: uppercase;
+ &:hover, &:focus, &:active {
+ background-color: transparent;
+ color: $home-header-link-color-hover;
+
+ svg {
+ fill: $home-header-link-color-hover;
+ }
}
- p{
- font-size: 16px;
+ svg {
+ fill: $home-header-link-color;
}
}
}
+ }
+ }
- .terminal{
- background-color: darken($gray-darker, 15%);
- border-radius: 4px;
+ header {
+ .hero {
+ margin: 140px auto 160px auto;
+ text-align: center;
- header{
- position: relative;
- background-color: $consul-gray;
+ .button {
+ margin: 5px;
+
+ @media (max-width: 768px) {
+ display: block;
+ margin-top: 10px;
text-align: center;
- padding: 3px;
- border-top-left-radius: 4px;
- border-top-right-radius: 4px;
-
- h4{
- font-size: 14px;
- letter-spacing: 1px;
- color: $gray-darker;
- font-family: $font-family-klavika;
- font-weight: font-weight-xb;
- }
-
- ul.shell-dots{
- position: absolute;
- top: 10px;
- left: 8px;
- padding-left: 0;
-
- li{
- display: inline-block;
- width: 12px;
- height: 12px;
- border-radius: 6px;
- background-color: $gray-darker;
- margin-left: 6px;
- }
- }
- }
-
- .terminal-window{
- min-height: 140px;
- padding: 20px;
- font-size: 15px;
- font-weight: normal;
- color: $white;
-
- .txt-r {
- color: lighten($red, 8%);;
- }
- .txt-p {
- font-weight: bold;
- color: lighten($purple, 15%);
- }
- p{
- margin-bottom: 2px;
- font-family: $font-family-mono;
- white-space: pre-wrap;
- }
- .cursor {
- background-color: $light-purple;
- }
}
}
- .feature-bullets{
- list-style-type: none;
- padding-left: 35px;
+ svg {
+ max-width: 90%;
+ }
+ }
+ }
- li{
- padding: 5px 0 5px 45px;
+ section {
+ background: $white;
+ padding: 100px 0;
+ }
+
+ section.marketing {
+ h2 {
+ font-family: $font-family-klavika;
+ font-size: 36px;
+ font-weight: $font-weight-bold;
+ line-height: 1.25;
+ letter-spacing: -0.02em;
+ margin: 0;
+ padding: 0;
+ }
+
+ p {
+ font-family: $font-family-open-sans;
+ font-size: 16px;
+ letter-spacing: 0.01em;
+ line-height: 1.8;
+ margin: 0 0 10px;
+ }
+
+ span.callout {
+ background: $black;
+ color: $white;
+ display: inline-block;
+ font-family: $font-family-klavika;
+ font-size: 18px;
+ font-weight: $font-weight-bold;
+ line-height: 1;
+ margin: 0;
+ padding: 5px;
+ letter-spacing: 0.05em;
+ text-transform: uppercase;
+ }
+
+ &.pink {
+ background: $consul-pink;
+
+ h2 {
+ color: $white;
+ }
+
+ p {
+ color: $white;
+ font-weight: $font-weight-bold;
+ }
+
+ span.callout {
+ background: $white;
+ color: $black;
+ }
+ }
+
+ &.pink-dark {
+ background: $consul-pink-dark;
+
+ h2 {
+ color: $white;
+ }
+
+ p {
+ color: $white;
+ font-weight: $font-weight-bold;
+ }
+
+ span.callout {
+ background: $white;
+ color: $black;
+ }
+ }
+
+ &.black {
+ background: $black;
+
+ h2 {
+ color: $white;
+ }
+
+ p {
+ color: $white;
+ font-weight: $font-weight-bold;
+ }
+
+ span.callout {
+ background: $white;
+ color: $black;
+ }
+ }
+
+ features {
+ .feature-icon {
+ text-align: center;
+ }
+
+ h2, svg {
+ padding-top: 50px;
+ }
+
+ svg {
+ margin-top: 20px;
+ }
+ }
+
+ cta {
+ margin-top: -150px;
+ padding: 0 0 50px 0;
+ text-align: center;
+ }
+ }
+
+ .terminal {
+ border: 1px solid $white;
+ background-color: $black;
+ box-sizing: border-box;
+ color: $white;
+ font-family: $font-family-monospace;
+ font-size: 14px;
+ line-height: 1.8;
+ margin: 20px auto 120px auto;
+ padding: 10px 20px 20px 20px;
+
+ .terminal-content {
+ margin-top: 15px;
+ overflow-x: scroll;
+ width: 100%;
+ white-space: nowrap;
+
+ span {
+ display: block;
+
+ span {
+ display: inline;
}
+
+ &.text-pink {
+ color: lighten($consul-pink, 20%);
+ }
+ }
+ }
+
+ span.circle {
+ &:before {
+ content: '\25CF';
+ color: $white;
+ font-size: 20px;
+ line-height: 1;
+ height: 100%;
}
}
}
}
-
-
-@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
- #demos{
- .terminals{
- .terminal-item{
- .feature-bullets{
- li{
- background-size: 12px 12px;
- }
- }
- }
- }
- }
-}
-
-
-
-@media (max-width: 992px) {
- #demos{
- .terminals{
- .terminal-item{
- >header{
- .left{
- span.icn{
- }
- }
-
- .right{
- padding-left: 54px;
- }
- }
- }
- }
- }
-}
-
-@media (max-width: 768px) {
- #demos{
- .terminals{
- .terminal-item{
- >header{
- .left{
- span.icn{
- padding-bottom: 15px;
- }
- }
-
- .right{
- padding-left: 15px;
- }
- }
- }
- }
- }
-}
-
-@media (max-width: 480px) {
- #features {
- top: $negative-hero-margin;
- }
-}
diff --git a/website/source/assets/stylesheets/_inner.scss b/website/source/assets/stylesheets/_inner.scss
new file mode 100644
index 0000000000..d20d71398d
--- /dev/null
+++ b/website/source/assets/stylesheets/_inner.scss
@@ -0,0 +1,89 @@
+#inner {
+ p, li, .alert {
+ font-size: $font-size;
+ font-family: $font-family-open-sans;
+ font-weight: $font-weight-reg;
+ line-height: 1.84em;
+ margin: 0 0 $font-size;
+ -webkit-font-smoothing: antialiased;
+ }
+
+ .alert p:last-child {
+ margin-bottom: 0;
+ }
+
+ pre {
+ font-family: $font-family-monospace;
+ font-size: ($font-size - 3);
+ font-weight: normal;
+ padding: 20px;
+ margin: 0 0 $font-size;
+
+ // This will force the code to scroll horizontally on small screens
+ // instead of wrapping.
+ code {
+ overflow-wrap: normal;
+ white-space: pre;
+ }
+ }
+
+ a {
+ color: $body-link-color;
+ text-decoration: none;
+
+ &:hover {
+ text-decoration: underline;
+ }
+
+ code {
+ background: inherit;
+ color: $body-link-color;
+ }
+ }
+
+ img {
+ display: block;
+ margin: 25px auto;
+ max-width: 650px;
+ height: auto;
+ width: 90%;
+ }
+
+ h1,
+ h2,
+ h3,
+ h4 {
+ color: $body-font-color;
+ margin-top: 54px;
+ margin-bottom: $font-size;
+ line-height: 1.3;
+ }
+
+ h2 {
+ padding-bottom: 3px;
+ border-bottom: 1px solid $gray-light;
+ }
+
+ h1 > code,
+ h2 > code,
+ h3 > code,
+ h4 > code,
+ h5 > code
+ h6 > code,
+ li code,
+ table code,
+ p code,
+ tt,
+ .alert code {
+ font-family: $font-family-monospace;
+ font-size: 90%;
+ background-color: transparent;
+ color: inherit;
+ padding: 0;
+ }
+
+ table {
+ @extend .table;
+ @extend .table-striped;
+ }
+}
diff --git a/website/source/assets/stylesheets/_jumbotron.scss b/website/source/assets/stylesheets/_jumbotron.scss
deleted file mode 100755
index c2d3004d60..0000000000
--- a/website/source/assets/stylesheets/_jumbotron.scss
+++ /dev/null
@@ -1,95 +0,0 @@
-//
-// Jumbotron
-// --------------------------------------------------
-
-#jumbotron-mask,
-#jumbotron-mask-dummy{
- overflow: hidden;
- width: 100%;
- height: $jumbotron-total-height;
-}
-#jumbotron-mask {
- position: absolute;
- top: 0;
-}
-#jumbotron-mask-dummy{
- visibility: hidden;
- position:relative;
- top: $negative-hero-margin;
-}
-
-#jumbotron {
- position: relative;
- height: $jumbotron-total-height;
- padding-top: 0;
- padding-bottom: 0;
- margin-top: $negative-hero-margin;
- color: $jumbotron-color;
- -webkit-backface-visibility:hidden;
- @include consul-gradient-bg();
-
- .jumbotron-dots{
- position: absolute;
- top: 0;
- left: 0;
- height: 632px;
- width: 100%;
- margin-top: $negative-hero-margin;
- background: transparent image-url('hero-dots.png') center $header-height no-repeat;
- }
-
-
- .container{
- position: relative;
- height: 100%;
- margin-top: $header-height;
- padding-left: 0;
- -webkit-backface-visibility:hidden;
-
- .jumbo-logo-wrap{
- margin-top: 155px;
-
- .jumbo-logo{
- width: 318px;
- height: 316px;
- background: transparent image-url('consul-hero-logo@2x.png') 0 0 no-repeat;
- background-size: 318px 316px;
- z-index: 20;
- }
- }
-
- h2{
- margin-top: 220px;
- font-size: 40px;
- line-height: 48px;
- letter-spacing: 1px;
- }
-
- .lead {
- font-weight: $font-weight-sb;
- letter-spacing: .5px;
- opacity: .89;
- }
- }
-}
-
-@media (max-width: 992px) {
- #jumbotron .container {
- h2, p.lead{
- text-align: center;
- margin-left: 0;
- }
- }
- #jumbotron-mask-dummy{
- top: $large-negative-hero-margin;
- }
-}
-
-@media (max-width: 480px) {
- #jumbotron .container {
- h2{
- margin-top: 200px;
- font-size: 32px;
- }
- }
-}
diff --git a/website/source/assets/stylesheets/_logos.scss b/website/source/assets/stylesheets/_logos.scss
new file mode 100644
index 0000000000..87b50d375b
--- /dev/null
+++ b/website/source/assets/stylesheets/_logos.scss
@@ -0,0 +1,51 @@
+svg.logo {
+ &.color {
+ opacity: 1.0;
+
+ path.text {
+ fill: $black;
+ opacity: 1.0;
+ }
+
+ path.center-c {
+ fill: $consul-pink-dark;
+ opacity: 1.0;
+ }
+
+ path.circles {
+ fill: $consul-pink;
+ opacity: 1.0;
+ }
+
+ path.c {
+ fill: $consul-pink;
+ opacity: 1.0;
+ }
+ }
+
+ // The default logo class is the colored version
+ @extend .color;
+
+ &.white {
+ opacity: 1.0;
+
+ path.text {
+ fill: $white;
+ }
+
+ path.center-c {
+ fill: $white;
+ opacity: 0.7;
+ }
+
+ path.circles {
+ fill: $white;
+ opacity: 1.0;
+ }
+
+ path.c {
+ fill: $white;
+ opacity: 1.0;
+ }
+ }
+}
diff --git a/website/source/assets/stylesheets/_sidebar.scss b/website/source/assets/stylesheets/_sidebar.scss
deleted file mode 100644
index debcb14f01..0000000000
--- a/website/source/assets/stylesheets/_sidebar.scss
+++ /dev/null
@@ -1,23 +0,0 @@
-//
-// Sidebar
-// - Project Specific
-// - Make sidebar edits here
-// --------------------------------------------------
-
-.sidebar {
- .sidebar-nav {
- // Links
- //----------------
- li {
- a {
- color: $purple;
-
- svg{
- path{
- fill: $purple;
- }
- }
- }
- }
- }
-}
diff --git a/website/source/assets/stylesheets/_syntax.scss.erb b/website/source/assets/stylesheets/_syntax.scss.erb
new file mode 100644
index 0000000000..b7ddc9e5b8
--- /dev/null
+++ b/website/source/assets/stylesheets/_syntax.scss.erb
@@ -0,0 +1,14 @@
+pre.highlight code {
+ color: #333333;
+}
+
+<%= Rouge::Themes::Github.render(scope: ".highlight") %>
+
+pre.highlight {
+ border: 1px solid #CCCCCC;
+}
+
+pre.highlight code span.c1 {
+ font-style: normal;
+ opacity: 0.8;
+}
diff --git a/website/source/assets/stylesheets/_utilities.scss b/website/source/assets/stylesheets/_utilities.scss
deleted file mode 100755
index 7df4c7c4a6..0000000000
--- a/website/source/assets/stylesheets/_utilities.scss
+++ /dev/null
@@ -1,23 +0,0 @@
-//
-// 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 */
-}
diff --git a/website/source/assets/stylesheets/_variables.scss b/website/source/assets/stylesheets/_variables.scss
index 2fa9161a5e..afbec98539 100755
--- a/website/source/assets/stylesheets/_variables.scss
+++ b/website/source/assets/stylesheets/_variables.scss
@@ -1,60 +1,61 @@
-//
-// Variables
-// --------------------------------------------------
+// Colors
+$white: #FFFFFF;
+$black: #000000;
+$gray-darker: #555555;
-
-// Global values
-// --------------------------------------------------
-
-$jumbotron-height: 540px;
-$header-height: 92px;
-$jumbotron-total-height: 542px; //jumbo+header
-$jumbotron-color: #fff;
-$btn-border-radius: 4px;
-$el-border-radius: 6px;
-$negative-hero-margin: -93px;
-$large-negative-hero-margin: -154px;
-// colors
-// -------------------------
-
-$white: #fff;
-$black: #242424;
-$gray-darker: #555;
-$gray: #777;
-$gray-light: #939393;
-$gray-lighter: #979797;
-$red: #dd4e58;
-$red-dark: #c5454e;
-$red-darker: #b03c44;
-$tan: #f0f0e5;
-$consul-gray: #909090;
-$consul-footer-gray: #d7d4d7;
-$purple: #69499a;
-$light-purple: #f7f3f9;
-$btn-color: #4592C5;
-
-
-// Scaffolding
-// -------------------------
-$body-bg: #fff;
-$text-color: $gray;
-
-// Links
-// -------------------------
-$link-color: $red-dark;
-$link-hover-color: darken($link-color, 15%);
+$consul-pink: #D62783;
+$consul-pink-dark: #961D59;
+$packer-blue: #1DAEFF;
+$packer-blue-dark: #1D94DD;
+$vagrant-blue: #1563FF;
+$vagrant-blue-dark: #104EB2;
+$vault-black: #000000;
+$vault-blue: #00ABE0;
+$vault-gray: #919FA8;
// Typography
-// -------------------------
-$font-family-open-sans: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
-$font-family-klavika: "klavika-web", "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
-$font-family-mono: "Courier New", Monaco, Menlo, Consolas, monospace;
-$font-weight-xl: 100;
-$font-weight-reg: 300;
-$font-weight-sb: 500;
-$font-weight-xb: 700;
-$font-weight-open: $font-weight-reg;
+$font-family-klavika: 'klavika-web', 'Open Sans', "Helvetica Neue", Helvetica, Arial, sans-serif;
+$font-family-open-sans: 'Open Sans', "Helvetica Neue", Helvetica, Arial, sans-serif;
+$font-family-monospace: 'Menlo', 'Monaco', 'Consolas', "Courier New", monospace;
+$font-size: 15px;
+$font-weight-reg: 400;
+$font-weight-bold: 600;
+// Body
+$body-font-color: $gray-darker;
+$body-link-color: $consul-pink;
-$text-shadow: 1px 1px 1px #000;
-$shadow: $text-shadow;
+// Home
+$home-header-background-color: transparent;
+$home-header-link-color: $gray-darker;
+$home-header-link-color-hover: $black;
+
+// Sidebar
+$sidebar-background-color: $white;
+$sidebar-font-size: $font-size - 2;
+$sidebar-link-color: $body-font-color;
+$sidebar-link-color-hover: $black;
+$sidebar-link-color-active: $body-link-color;
+$sidebar-font-family: $font-family-open-sans;
+$sidebar-font-weight: $font-weight-reg;
+
+// Header
+$header-background-color: $consul-pink;
+$header-font-size: $font-size - 2;
+$header-height: 92px;
+$header-link-color: rgba($white, 0.85);
+$header-link-color-hover: $white;
+
+// Footer
+$footer-font-size: $font-size - 2;
+$footer-link-color: $body-font-color;
+$footer-link-color-hover: $black;
+
+// Button
+$button-background: $white;
+$button-font-color: #7b8A8E;
+$button-font-family: $font-family-klavika;
+$button-font-size: $font-size;
+$button-font-weight: $font-weight-bold;
+$button-primary-background: $consul-pink;
+$button-primary-font-color: $white;
diff --git a/website/source/assets/stylesheets/application.scss b/website/source/assets/stylesheets/application.scss
index ad1c17c4a9..f5bcd7a16b 100644
--- a/website/source/assets/stylesheets/application.scss
+++ b/website/source/assets/stylesheets/application.scss
@@ -1,37 +1,33 @@
-// Import bootstrap
-@import "bootstrap-sprockets";
-@import "bootstrap";
+@import 'bootstrap-sprockets';
+@import 'bootstrap';
-// Remote fonts
-@import url("//fonts.googleapis.com/css?family=Open+Sans:300,400,600");
+@import url("//fonts.googleapis.com/css?family=Open+Sans:400,600");
// Mega Nav
@import 'hashicorp/mega-nav';
-// Core variables and mixins
-@import "_variables";
+// Anchor links
+@import 'hashicorp/anchor-links';
-// Utility classes
-@import "_utilities";
+// Core variables and mixins
+@import '_variables';
+
+// Sidebar
+@import 'hashicorp/sidebar';
//Global Site
-@import "_global";
-
-// Hashicorp Shared Project Styles
-@import 'hashicorp-shared/_hashicorp-utility';
-@import 'hashicorp-shared/_project-utility';
-@import 'hashicorp-shared/_hashicorp-header';
-@import 'hashicorp-shared/_hashicorp-sidebar';
+@import '_global';
// Components
-@import "_header";
+@import '_header';
@import '_footer';
-@import "_jumbotron";
-@import "_buttons";
-@import '_sidebar';
+@import '_inner';
+@import '_buttons';
+@import '_syntax';
+@import '_logos';
// Pages
-@import "_home";
@import "_community";
@import "_docs";
@import "_downloads";
+@import "_home";
diff --git a/website/source/assets/stylesheets/hashicorp-shared/_hashicorp-header.scss b/website/source/assets/stylesheets/hashicorp-shared/_hashicorp-header.scss
deleted file mode 100755
index cbc9e341cb..0000000000
--- a/website/source/assets/stylesheets/hashicorp-shared/_hashicorp-header.scss
+++ /dev/null
@@ -1,323 +0,0 @@
-//
-// 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;
- }
- }
- }
- }
-
- .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 );
- }
- }
-
- &.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 8px;
- 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,
- rect{
- fill: 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);
- }
- }
- .svg-bg-line{
- @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,
- rect{
- fill: 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: 992px) {
- .navigation {
- > .container{
- width: 100%;
- }
- }
-}
-
-@media (max-width: 768px) {
- .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;
- }
- }
- }
-}
diff --git a/website/source/assets/stylesheets/hashicorp-shared/_hashicorp-sidebar.scss b/website/source/assets/stylesheets/hashicorp-shared/_hashicorp-sidebar.scss
deleted file mode 100644
index 99f77f6c52..0000000000
--- a/website/source/assets/stylesheets/hashicorp-shared/_hashicorp-sidebar.scss
+++ /dev/null
@@ -1,293 +0,0 @@
-//
-// 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;
-}
diff --git a/website/source/assets/stylesheets/hashicorp-shared/_hashicorp-utility.scss b/website/source/assets/stylesheets/hashicorp-shared/_hashicorp-utility.scss
deleted file mode 100755
index fc4f1634a2..0000000000
--- a/website/source/assets/stylesheets/hashicorp-shared/_hashicorp-utility.scss
+++ /dev/null
@@ -1,87 +0,0 @@
-//
-// 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 0.3s ease );
-
- &:hover{
- @include transition( all 0.3s ease );
- 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 );
-}
diff --git a/website/source/assets/stylesheets/hashicorp-shared/_project-utility.scss b/website/source/assets/stylesheets/hashicorp-shared/_project-utility.scss
deleted file mode 100755
index a0608f2ada..0000000000
--- a/website/source/assets/stylesheets/hashicorp-shared/_project-utility.scss
+++ /dev/null
@@ -1,30 +0,0 @@
-//
-// Mixins Specific to project
-// - make edits to mixins here
-// --------------------------------------------------
-
-// Variables
-$project-logo-width: 154px;
-$project-logo-height: 48px;
-$project-logo-pad-left: 0px;
-$header-height: 80px;
-
-// Mixins
-@mixin project-a-style{
- font-weight: 400;
- opacity: .75;
- @include anti-alias();
-
- &:hover{
- color: $white;
- opacity: 1;
- }
-}
-
-@mixin project-footer-a-style{
- line-height: 30px;
-
- &:hover{
- opacity: .5;
- }
-}
diff --git a/website/source/community.html.erb b/website/source/community.html.erb
index d49df502d3..ffadd63874 100644
--- a/website/source/community.html.erb
+++ b/website/source/community.html.erb
@@ -1,185 +1,164 @@
---
+layout: "inner"
page_title: "Community"
description: |-
Consul is a new project with a growing community. Despite this, there are active, dedicated users willing to help you through various mediums.
---
-
-
-
-
Community
+
Community
-
- Consul is a new project with a growing community. Despite this,
- there are active, dedicated users willing to help you through various
- mediums.
-
-
- Chat: Consul on Gitter
-
-
- Mailing list:
- Consul Google Group
-
-
- Bug Tracker:
- Issue tracker
- on GitHub . Please only use this for reporting bugs. Do not ask
- for general help here. Use IRC or the mailing list for that.
-
+
+Consul is a new project with a growing community. Despite this,
+there are active, dedicated users willing to help you through various
+mediums.
+
+
+ Chat: Consul on Gitter
+
+
+Mailing list:
+Consul Google Group
+
+
+Bug Tracker:
+Issue tracker
+ on GitHub . Please only use this for reporting bugs. Do not ask
+for general help here. Use IRC or the mailing list for that.
+
+
+ Community Tools:
+ Download Community Tools . Please
+ check out some of the awesome Consul tooling our amazing community has
+ helped build.
+
+
+ Training:
+ Paid HashiCorp training courses
+ are also available in a city near you. Private training courses are also available.
+
+
+
People
+
+The following people are some of the faces behind Consul. They each
+contribute to Consul in some core way. Over time, faces may appear and
+disappear from this list as contributors come and go.
+
+
+
+
+
+
Armon Dadgar (@armon )
- Community Tools:
- Download Community Tools . Please
- check out some of the awesome Consul tooling our amazing community has
- helped build.
-
+ Armon Dadgar is the creator of Consul. He researched and developed
+ most of the internals of how Consul works, including the
+ gossip layer, leader election, etc. Armon is also the creator of
+
Serf ,
+
Statsite , and
+
Bloomd .
+
+
+
+
+
+
+
Mitchell Hashimoto (@mitchellh )
- Training:
- Paid HashiCorp training courses
- are also available in a city near you. Private training courses are also available.
+ Mitchell Hashimoto is a co-creator of Consul. He primarily took
+ a management role in the creation of Consul, guiding product
+ and user experience decisions on top of Armon's technical decisions.
+ Mitchell Hashimoto is also the creator of
+ Vagrant ,
+ Packer , and
+ Serf .
+
+
-
People
-
- The following people are some of the faces behind Consul. They each
- contribute to Consul in some core way. Over time, faces may appear and
- disappear from this list as contributors come and go.
-
-
-
-
-
-
Armon Dadgar (@armon )
-
- Armon Dadgar is the creator of Consul. He researched and developed
- most of the internals of how Consul works, including the
- gossip layer, leader election, etc. Armon is also the creator of
- Serf ,
- Statsite , and
- Bloomd .
-
-
+
+
+
+
+
+ Jack Pearkes created and maintains the Consul web UI.
+ He is also a core committer to
+ Packer and maintains
+ many successful
+ open source projects
+ while also being an employee of
+ HashiCorp .
+
+
+
-
+
+
+
+
+
+ Ryan Uber is a core contributor to Consul where he works on all
+ facets of Consul. He is also a core committer to
+ Serf ,
+ Nomad , and
+ the Consul tools ecosystem, all while being an employee at
+ HashiCorp .
+
+
+
-
-
-
-
Mitchell Hashimoto (@mitchellh )
-
- Mitchell Hashimoto is a co-creator of Consul. He primarily took
- a management role in the creation of Consul, guiding product
- and user experience decisions on top of Armon's technical decisions.
- Mitchell Hashimoto is also the creator of
- Vagrant ,
- Packer , and
- Serf .
-
-
-
+
+
+
+
+
+ James Phillips is a core contributor to Consul where he works on all
+ facets of Consul, including network tomography and prepared
+ queries. He is also a core committer to
+ Serf and
+ the Consul tools ecosystem, all while being an employee at
+ HashiCorp .
+
+
+
-
+
+
+
+
+
+ Seth Vargo is a contributor to Consul, but his main focus is the
+ Consul tools ecosystem .
+ He is also a core committer to
+ Vagrant ,
+ Packer , and
+ Vault , and many more
+ open source projects, all while being an employee at
+ HashiCorp .
+
+
+
-
-
-
-
-
- Jack Pearkes created and maintains the Consul web UI.
- He is also a core committer to
- Packer and maintains
- many successful
- open source projects
- while also being an employee of
- HashiCorp .
-
-
-
+
+
+
+
+
William Tisäter is a Consul core committer. He is also the maintainer of
+ pygeoip and builds things daily at
+ Tictail .
+
+
-
-
-
-
-
-
-
- Ryan Uber is a core contributor to Consul where he works on all
- facets of Consul. He is also a core committer to
- Serf ,
- Nomad , and
- the Consul tools ecosystem, all while being an employee at
- HashiCorp .
-
-
-
-
-
-
-
-
-
-
-
- James Phillips is a core contributor to Consul where he works on all
- facets of Consul, including network tomography and prepared
- queries. He is also a core committer to
- Serf and
- the Consul tools ecosystem, all while being an employee at
- HashiCorp .
-
-
-
-
-
-
-
-
-
-
-
- Seth Vargo is a contributor to Consul, but his main focus is the
- Consul tools ecosystem .
- He is also a core committer to
- Vagrant ,
- Packer , and
- Vault , and many more
- open source projects, all while being an employee at
- HashiCorp .
-
-
-
-
-
-
-
-
-
-
-
William Tisäter is a Consul core committer. He is also the maintainer of
- pygeoip and builds things daily at
- Tictail .
-
-
-
-
-
-
-
-
-
-
- Ryan Breen is a Consul committer. He is also the maintainer of
- git2consul ,
- fsconsul , and
- gosecret .
- Ryan works at Cimpress
- building infrastructure for mass customization of consumer goods.
-
-
-
-
-
-
-
-
+
+
+
+
+
+ Ryan Breen is a Consul committer. He is also the maintainer of
+ git2consul ,
+ fsconsul , and
+ gosecret .
+ Ryan works at Cimpress
+ building infrastructure for mass customization of consumer goods.
+
+
+
diff --git a/website/source/downloads.html.erb b/website/source/downloads.html.erb
index 1df51a43df..6c79b43e22 100644
--- a/website/source/downloads.html.erb
+++ b/website/source/downloads.html.erb
@@ -3,7 +3,7 @@ layout: "downloads"
page_title: "Download Consul"
sidebar_current: "downloads-consul"
description: |-
- Below are all available downloads for the latest version of Consul. Please download the proper package for your operating system and architecture.
+ Download Consul
---
Download Consul
@@ -25,23 +25,15 @@ description: |-
verify the checksums signature file
- which has been signed using
HashiCorp's GPG key .
+ which has been signed using
HashiCorp's GPG key .
You can also
download older versions of Consul from the releases service.
- Checkout the v<%= latest_version %> CHANGELOG for information on the latest release.
+ Check out the v<%= latest_version %> CHANGELOG for information on the latest release.
-
-
<% product_versions.each do |os, arches| %>
<% next if os == "web" %>
@@ -63,7 +55,7 @@ description: |-
diff --git a/website/source/downloads_tools.html.erb b/website/source/downloads_tools.html.erb
index 60ea54414f..4b31c71cab 100644
--- a/website/source/downloads_tools.html.erb
+++ b/website/source/downloads_tools.html.erb
@@ -3,181 +3,173 @@ layout: "downloads"
page_title: "Download Consul Tools"
sidebar_current: "downloads-tools"
description: |-
- From this page you can download various tools for Consul. These tools are maintained by HashiCorp and the Consul Community.
+ From this page you can download various tools for Consul. These tools are
+ maintained by HashiCorp and the Consul Community.
---
Download Consul Tools
-
-
-
- From this page you can download various tools for Consul. These tools are maintained by HashiCorp and the Consul Community.
-
+
+ From this page you can download various tools for Consul. These tools are maintained by HashiCorp and the Consul Community.
+
-
HashiCorp Tools
-
- These Consul tools are created and managed by the dedicated engineers at HashiCorp:
-
+
HashiCorp Tools
+
+ These Consul tools are created and managed by the dedicated engineers at HashiCorp:
+
+
+
+ Envconsul - Read and set environmental variables for processes from Consul.
+
+
+ Consul Replicate - Consul cross-DC KV replication daemon.
+
+
+ Consul Template - Generic template rendering and notifications with Consul
+
+
+ Consul Migrate - Data migration tool to handle Consul upgrades to 0.5.1+
+
+
-
-
- Envconsul - Read and set environmental variables for processes from Consul.
-
-
- Consul Replicate - Consul cross-DC KV replication daemon.
-
-
- Consul Template - Generic template rendering and notifications with Consul
-
-
- Consul Migrate - Data migration tool to handle Consul upgrades to 0.5.1+
-
-
-
+Consul SDK
+
+ These Consul SDK are created and managed by the amazing members of the Consul community:
+
+
+
+ api - Official Go client for the Consul HTTP API
+
+
+ consulate - Python client for the Consul HTTP API
+
+
+ python-consul - Python client for the Consul HTTP API
+
+
+ consul-kv - Python 3 client for the Consul KV-store
+
+
+ consul-php-sdk - PHP client for the Consul HTTP API
+
+
+ php-consul-api - GO-like PHP Client for the Consul HTTP API
+
+
+ envoy - Consul Clojure client with watchers and other goodies
+
+
+ clj-consul-catalog - Clojure discovery client for the Consul HTTP API
+
+
+ scala-consul - Scala client for the Consul HTTP API
+
+
+ consul-client - Java client for the Consul HTTP API
+
+
+ consul-api - Java client for the Consul HTTP API
+
+
+ discovery - Erlang/OTP client for the Consul HTTP API
+
+
+ consul-client - Ruby client for the Consul HTTP API
+
+
+ diplomat - Ruby library to query Consul's KV-store and services directory
+
+
+ node-consul - Node.js client for the Consul HTTP API
+
+
+ Consul.NET - C# client for the Consul HTTP API
+
+
+ Consul - Perl client for the Consul HTTP API
+
+
+ CondenserDotNet - C# an opinionated API for .NET that provides higher level functionality for services using the HTTP API
+
+
-
-
Consul SDK
-
- These Consul SDK are created and managed by the amazing members of the Consul community:
-
-
-
- api - Official Go client for the Consul HTTP API
-
-
- consulate - Python client for the Consul HTTP API
-
-
- python-consul - Python client for the Consul HTTP API
-
-
- consul-kv - Python 3 client for the Consul KV-store
-
-
- consul-php-sdk - PHP client for the Consul HTTP API
-
-
- php-consul-api - GO-like PHP Client for the Consul HTTP API
-
-
- envoy - Consul Clojure client with watchers and other goodies
-
-
- clj-consul-catalog - Clojure discovery client for the Consul HTTP API
-
-
- scala-consul - Scala client for the Consul HTTP API
-
-
- consul-client - Java client for the Consul HTTP API
-
-
- consul-api - Java client for the Consul HTTP API
-
-
- discovery - Erlang/OTP client for the Consul HTTP API
-
-
- consul-client - Ruby client for the Consul HTTP API
-
-
- diplomat - Ruby library to query Consul's KV-store and services directory
-
-
- node-consul - Node.js client for the Consul HTTP API
-
-
- Consul.NET - C# client for the Consul HTTP API
-
-
- Consul - Perl client for the Consul HTTP API
-
-
- CondenserDotNet - C# an opinionated API for .NET that provides higher level functionality for services using the HTTP API
-
-
-
+Community Tools
+
+ These Consul tools are created and managed by the amazing members of the Consul community:
+
+
+
+ hashi-ui - A modern user interface for the Consul and Nomad
+
+
+ cfg4j - Configuration library for Java distributed apps. Reads and auto-updates configuration from Consul KVs (and others)
+
+
+ cfg4j-pusher - Command line app that pushes values from configuration files (YAML, properties, etc.) to Consul KVs
+
+
+ confd - Manage local application configuration files using templates and data from etcd or Consul
+
+
+ consul-announcer - Command line wrapper for registering services in Consul
+
+
+ consul-backinator - Command line Consul KV backup and restoration utility
+
+
+ consul-cli - Command line interface to Consul HTTP API
+
+
+ consul-do - Do something, such as run HA cronjobs, based on Consul leadership status
+
+
+ Consultant - Library for Java services to self register and deregister, fetching configuration, and subscribing to configuration changes.
+
+
+ crypt - Store and retrieve encrypted configuration parameters from etcd or Consul
+
+
+ Dropwizard Consul Bundle - Service discovery and configuration integration with the Dropwizard framework
+
+
+ docker-consul - Dockerized Consul Agent
+
+
+ fabio - Fast, zero-conf, consul-aware load-balancing HTTP/HTTPS router
+
+
+ git2consul - Mirror the contents of a Git repository into Consul KVs
+
+
+ gradle-consul-plugin - A Consul Gradle plugin
+
+
+ helios-consul - Service registrar plugin for Helios
+
+
+ registrator - Service registry bridge for Docker
+
+
+ Spring Cloud Consul - Service discovery, configuration and events for Spring Cloud
+
+
+ marathon-consul - Service registry bridge for Marathon
+
+
+ marathon-consul - Bridge from Marathon apps to the Consul K/V store
+
+
+ mesos-consul - Service registry bridge for Mesos
+
+
+ NodeFabric - Turnkey CentOS 7 Atomic Host image with integrated Consul, Registrator and HAProxy - enabling rapid MariaDB-Galera and Ceph deployments
+
+
+ Embedded Consul - Library for JVM based applications, provides easy way to run Consul in integration tests
+
+
-
-
Community Tools
-
- These Consul tools are created and managed by the amazing members of the Consul community:
-
-
-
-
- hashi-ui - A modern user interface for the Consul and Nomad
-
-
- cfg4j - Configuration library for Java distributed apps. Reads and auto-updates configuration from Consul KVs (and others)
-
-
- cfg4j-pusher - Command line app that pushes values from configuration files (YAML, properties, etc.) to Consul KVs
-
-
- confd - Manage local application configuration files using templates and data from etcd or Consul
-
-
- consul-announcer - Command line wrapper for registering services in Consul
-
-
- consul-backinator - Command line Consul KV backup and restoration utility
-
-
- consul-cli - Command line interface to Consul HTTP API
-
-
- consul-do - Do something, such as run HA cronjobs, based on Consul leadership status
-
-
- Consultant - Library for Java services to self register and deregister, fetching configuration, and subscribing to configuration changes.
-
-
- crypt - Store and retrieve encrypted configuration parameters from etcd or Consul
-
-
- Dropwizard Consul Bundle - Service discovery and configuration integration with the Dropwizard framework
-
-
- docker-consul - Dockerized Consul Agent
-
-
- fabio - Fast, zero-conf, consul-aware load-balancing HTTP/HTTPS router
-
-
- git2consul - Mirror the contents of a Git repository into Consul KVs
-
-
- gradle-consul-plugin - A Consul Gradle plugin
-
-
- helios-consul - Service registrar plugin for Helios
-
-
- registrator - Service registry bridge for Docker
-
-
- Spring Cloud Consul - Service discovery, configuration and events for Spring Cloud
-
-
- marathon-consul - Service registry bridge for Marathon
-
-
- marathon-consul - Bridge from Marathon apps to the Consul K/V store
-
-
- mesos-consul - Service registry bridge for Mesos
-
-
- NodeFabric - Turnkey CentOS 7 Atomic Host image with integrated Consul, Registrator and HAProxy - enabling rapid MariaDB-Galera and Ceph deployments
-
-
- Embedded Consul - Library for JVM based applications, provides easy way to run Consul in integration tests
-
-
-
-
- Are you the author of a tool and you would like to be featured on this page? The Consul website is open source and is embedded inside the Consul repository on GitHub. You can submit a Pull Request to add your tool to the list and we will gladly review it.
-
-
+
+ Are you the author of a tool and you would like to be featured on this page? The Consul website is open source and is embedded inside the Consul repository on GitHub. You can submit a Pull Request to add your tool to the list and we will gladly review it.
+
diff --git a/website/source/favicon.ico b/website/source/favicon.ico
new file mode 100644
index 0000000000..f8fcb4732c
Binary files /dev/null and b/website/source/favicon.ico differ
diff --git a/website/source/index.html.erb b/website/source/index.html.erb
index a12a18a484..9424b531d2 100644
--- a/website/source/index.html.erb
+++ b/website/source/index.html.erb
@@ -5,206 +5,160 @@ description: |-
systems and configuration easy.
---
-
-
-
-
-
-
- Service discovery and configuration made easy.
-
-
- Distributed, highly available, and
- datacenter-aware.
-
+
-
-
-
-
-
-
- Service discovery and configuration made easy.
- Distributed, highly available, and
- datacenter-aware.
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
Service Discovery
-
- Consul makes it simple for services to register themselves
- and to discover other services via a DNS or HTTP interface.
- Register external services such as SaaS providers as well.
-
-
+
+
+
+ <%= inline_svg "feature-discovery.svg", width: 100 %>
+
+
+
Service Discovery
+
+ Consul makes it simple for services to register themselves and to
+ discover other services via a DNS or HTTP interface. Register external
+ services such as SaaS providers as well.
+
-
-
-
-
-
-
-
Failure Detection
-
Pairing service discovery with health checking prevents routing requests to unhealthy hosts and enables services to easily provide circuit breakers.
-
+
+
+ <%= inline_svg "feature-health.svg", width: 100 %>
+
+
+
Failure Detection
+
+ Pairing service discovery with health checking prevents routing
+ requests to unhealthy hosts and enables services to easily provide
+ circuit breakers.
+
-
-
-
-
-
-
-
-
Multi Datacenter
-
Consul scales to multiple datacenters out of the box with no complicated configuration. Look up services in other datacenters, or keep the request local.
-
+
+
+
+
+ <%= inline_svg "feature-multi.svg", width: 100 %>
+
+
+
Multi Datacenter
+
+ Consul scales to multiple datacenters out of the box with no
+ complicated configuration. Look up services in other datacenters, or
+ keep the request local.
+
-
-
-
-
-
-
-
Key/Value Storage
-
Flexible key/value store for dynamic configuration, feature flagging, coordination, leader election and more. Long poll for near-instant notification of configuration changes.
-
+
+
+ <%= inline_svg "feature-config.svg", width: 85 %>
+
+
+
Key/Value Storage
+
+ Flexible key/value store for dynamic configuration, feature flagging,
+ coordination, leader election and more. Long poll for near-instant
+ notification of configuration changes.
+
-
-
-
-
+
+
+
-
-
+
+
DNS Query Interface
Look up services using Consul's built-in DNS server. Support
existing infrastructure without any code change.
-
+
+
+
-
-
-
-
-
admin@hashicorp : dig web-frontend.service.consul. ANY
-
; <<>> DiG 9.8.3-P1 <<>> web-frontend.service.consul. ANY
-
;; global options: +cmd
-
-
;; Got answer:
-
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29981
-
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
-
-
;; QUESTION SECTION:
-
;web-frontend.service.consul. IN ANY
-
-
;; ANSWER SECTION:
-
web-frontend.service.consul. 0 IN A 10.0.3.83
-
web-frontend.service.consul. 0 IN A 10.0.1.109
-
admin@hashicorp :
-
-
+
+
+
+
+ admin@hashicorp.com: dig web-frontend.service.consul. ANY
+ ; <<>> DiG 9.8.3-P1 <<>> web-frontend.service.consul. ANY
+ ;; global options: +cmd
+
+ ;; Got answer:
+ ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29981
+ ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
+
+ ;; QUESTION SECTION:
+ ;web-frontend.service.consul. IN ANY
+
+ ;; ANSWER SECTION:
+ web-frontend.service.consul. 0 IN A 10.0.3.83
+ web-frontend.service.consul. 0 IN A 10.0.1.109
-
-
+
+
+
Key Value Storage
Consul provides a hierarchical key/value store with a simple HTTP API.
Managing configuration has never been simpler.
-
+
+
+
-
-
-
-
-
admin@hashicorp : consul kv put foo bar
-
Success! Data written to: foo
-
admin@hashicorp : consul kv get foo
-
bar
-
admin@hashicorp : consul kv get -detailed foo
-
CreateIndex 5
-
Flags 0
-
Key foo
-
LockIndex 0
-
ModifyIndex 5
-
Session -
-
Value bar
-
admin@hashicorp : consul kv delete foo
-
Success! Deleted key: foo
-
admin@hashicorp :
-
-
+
+
+
+
+ admin@hashicorp: consul kv put foo bar
+ Success! Data written to: foo
+ admin@hashicorp: consul kv get foo
+ bar
+ admin@hashicorp: consul kv get -detailed foo
+ CreateIndex 5
+ Flags 0
+ Key foo
+ LockIndex 0
+ ModifyIndex 5
+ Session -
+ Value bar
+ admin@hashicorp: consul kv delete foo
+ Success! Deleted key: foo
-
-
-
-
+
+
+
-
-
-
The intro and getting started guide contain
- a simple and approachable walkthrough for running Consul locally.
-
-
-
-
+
Read the Introduction
-
+
diff --git a/website/source/layouts/_announcement-bnr.erb b/website/source/layouts/_announcement-bnr.erb
deleted file mode 100644
index caa9cf541e..0000000000
--- a/website/source/layouts/_announcement-bnr.erb
+++ /dev/null
@@ -1,18 +0,0 @@
-
diff --git a/website/source/layouts/_footer.erb b/website/source/layouts/_footer.erb
deleted file mode 100644
index 0d9a3de8d4..0000000000
--- a/website/source/layouts/_footer.erb
+++ /dev/null
@@ -1,97 +0,0 @@
-
-
-
-
-
-
-<%= javascript_include_tag 'application' %>
-
-
-
-
-
-
-
-
-