diff --git a/website/api/controllers/view-get-started.js b/website/api/controllers/view-get-started.js new file mode 100644 index 0000000000..23b826b0d5 --- /dev/null +++ b/website/api/controllers/view-get-started.js @@ -0,0 +1,27 @@ +module.exports = { + + + friendlyName: 'View get started', + + + description: 'Display "Get started" page.', + + + exits: { + + success: { + viewTemplatePath: 'pages/get-started' + } + + }, + + + fn: async function () { + + // Respond with view. + return {}; + + } + + +}; diff --git a/website/assets/images/github-mark-24x24.svg b/website/assets/images/github-mark-24x24.svg new file mode 100644 index 0000000000..adf53aba47 --- /dev/null +++ b/website/assets/images/github-mark-24x24.svg @@ -0,0 +1,3 @@ + + + diff --git a/website/assets/styles/importer.less b/website/assets/styles/importer.less index b4603738fe..536c6e9203 100644 --- a/website/assets/styles/importer.less +++ b/website/assets/styles/importer.less @@ -24,6 +24,7 @@ // Per-page styles @import 'pages/homepage.less'; +@import 'pages/get-started.less'; @import 'pages/dashboard/welcome.less'; @import 'pages/entrance/signup.less'; @import 'pages/entrance/confirmed-email.less'; diff --git a/website/assets/styles/layout.less b/website/assets/styles/layout.less index 2aacfc570b..7a26430d73 100644 --- a/website/assets/styles/layout.less +++ b/website/assets/styles/layout.less @@ -16,7 +16,7 @@ html, body { padding-bottom: @footer-height; } -[purpose='page-header'] { +[purpose='page-header'].homepage-header { position: absolute; left: 0; right: 0; @@ -24,15 +24,89 @@ html, body { color: #ffffff; cursor: default !important;//lesshint-disable-line importantRule font-family: @navigation-font; + font-weight: @bold; } // .header-btn[aria-expanded='true'] { // color: #6a67fe; // } .header-link { color: #ffffff; + font-weight: @bold; + svg { + path { + fill: #ffffff; + } + } } .header-link:hover { color: #6a67fe; + + svg { + path { + fill: #6a67fe; + } + } + } + .mobile-menu { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + pointer-events: none; + background-color: #ffffff; + } + .collapsing { + opacity: 0; + } + .collapse.show { + opacity: 1; + pointer-events: auto; + } + .collapse { + opacity: 0; + } + .mobile-menu-item { + color: #192147; + border-radius: 4px; + text-decoration: none; + } + .mobile-menu-item:hover { + background-color: #f1f0ff; + font-weight: @bold; + } + .mobile-menu-item:active { + background-color: #f1f0ff; + font-weight: @bold; + } +} + +[purpose='page-header'].header { + position: absolute; + left: 0; + right: 0; + border-bottom: 1px solid #e2e4ea; + .header-btn { + color: #192147; + cursor: default !important;//lesshint-disable-line importantRule + font-family: @navigation-font; + font-weight: @bold; + } + // .header-btn[aria-expanded='true'] { + // color: #6a67fe; + // } + .header-link { + color: #192147; + font-weight: @bold; + } + .header-link:hover { + color: #6a67fe; + + svg { + path { + fill: #6a67fe; + } + } } .mobile-menu { position: fixed; diff --git a/website/assets/styles/pages/get-started.less b/website/assets/styles/pages/get-started.less new file mode 100644 index 0000000000..5f8c227b71 --- /dev/null +++ b/website/assets/styles/pages/get-started.less @@ -0,0 +1,3 @@ +#get-started { + +} diff --git a/website/config/policies.js b/website/config/policies.js index 8723153f49..80d4319d02 100644 --- a/website/config/policies.js +++ b/website/config/policies.js @@ -18,6 +18,7 @@ module.exports.policies = { 'view-homepage-or-redirect': true, 'view-faq': true, 'view-contact': true, + 'view-get-started': true, 'legal/view-terms': true, 'legal/view-privacy': true, 'deliver-contact-form-message': true, diff --git a/website/config/routes.js b/website/config/routes.js index a2c2dafc2b..8592d1133c 100644 --- a/website/config/routes.js +++ b/website/config/routes.js @@ -13,7 +13,7 @@ module.exports.routes = { // ╦ ╦╔═╗╔╗ ╔═╗╔═╗╔═╗╔═╗╔═╗ // ║║║║╣ ╠╩╗╠═╝╠═╣║ ╦║╣ ╚═╗ // ╚╩╝╚═╝╚═╝╩ ╩ ╩╚═╝╚═╝╚═╝ - 'GET /': { action: 'view-homepage-or-redirect' }, + 'GET /': { action: 'view-homepage-or-redirect', locals: { page: 'homepage' } }, '/blog': 'https://medium.com/fleetdm', @@ -31,9 +31,11 @@ module.exports.routes = { '/company/about': '/blog', // FUTURE: brief "about" page explaining the origins of the company '/company/stewardship': 'https://github.com/fleetdm/fleet', // FUTURE: page about how we approach open source and our commitments to the community - 'GET /company/contact': { action: 'view-contact' }, + 'GET /company/contact': { action: 'view-contact', locals: { page: 'contact' } }, + 'GET /get-started': { action: 'view-get-started', locals: { page: 'get-started' } }, '/try-fleet': 'https://github.com/fleetdm/fleet/blob/master/README.md', + // '/try-fleet': '/get-started', FUTURE: uncomment this line and delete the line above to allow navigation to the get-started page '/documentation': 'https://github.com/fleetdm/fleet/tree/master/docs', '/contribute': 'https://github.com/fleetdm/fleet/tree/master/docs/3-Contribution', '/hall-of-fame': 'https://github.com/fleetdm/fleet/pulse', diff --git a/website/views/layouts/layout.ejs b/website/views/layouts/layout.ejs index d7df7b581d..934639ee75 100644 --- a/website/views/layouts/layout.ejs +++ b/website/views/layouts/layout.ejs @@ -46,12 +46,20 @@ +
-
+ <% /* The homepage-header on the homepage has unique styles and images */ %> + <% if (page === 'homepage') { %> +
Fleet logo + <% /* The header on all pages other than the homepage have the same images and styles */ %> + <% } else { %> +
+ Fleet logo + <% } %>
diff --git a/website/views/pages/get-started.ejs b/website/views/pages/get-started.ejs new file mode 100644 index 0000000000..c2157cfdb1 --- /dev/null +++ b/website/views/pages/get-started.ejs @@ -0,0 +1,3 @@ +
+ +
diff --git a/website/views/pages/homepage.ejs b/website/views/pages/homepage.ejs index b915d516de..a6e5638220 100644 --- a/website/views/pages/homepage.ejs +++ b/website/views/pages/homepage.ejs @@ -721,7 +721,7 @@
a bullet point ellipse

- Osquery agent autoupdates*† + Osquery agent autoupdates†

@@ -735,7 +735,7 @@
a bullet point ellipse

- Self-hosted agent autoupdates*† + Self-hosted agent autoupdates†