diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js
index 41df7d8b2..30c97cb21 100644
--- a/website/docusaurus.config.js
+++ b/website/docusaurus.config.js
@@ -1,4 +1,5 @@
const fs = require("fs").promises;
+const generateNavbarDropdown = require("./src/utils.js").generateNavbarDropdown;
/** @type {import('@docusaurus/types').DocusaurusConfig} */
module.exports = async function () {
@@ -21,23 +22,179 @@ module.exports = async function () {
navbar: {
logo: {
alt: "authentik logo",
- src: "img/icon_left_brand.svg",
+ src: "img/icon.svg",
},
items: [
- { to: "blog", label: "Blog", position: "left" },
+ { to: "blog", label: "Why authentik", position: "left" },
{
- to: "docs/",
- label: "Documentation",
+ type: "html",
+ className:
+ "dropdown dropdown--hoverable dropdown--custom",
+ value: generateNavbarDropdown(
+ "Platform",
+ [
+ {
+ label: "Get started",
+ items: [
+ {
+ label: "Docker compose",
+ to: "docs/installation/docker-compose",
+ },
+ {
+ label: "Kubernetes",
+ to: "docs/installation/kubernetes",
+ },
+ ],
+ },
+ {
+ label: "Documentation",
+ items: [
+ {
+ label: "Installation",
+ to: "docs/installation/",
+ },
+ {
+ label: "Integrations",
+ to: "integrations/",
+ },
+ {
+ label: "Release notes",
+ to: "docs/releases/",
+ },
+ {
+ label: "Roadmap",
+ to: "docs/",
+ },
+ ],
+ },
+ {
+ label: "Solutions",
+ items: [
+ {
+ label: "Work",
+ to: "docs/installation/",
+ },
+ {
+ label: "foo",
+ to: "docs/",
+ },
+ {
+ label: "bar",
+ to: "integrations/",
+ },
+ {
+ label: "baz",
+ to: "integrations/",
+ },
+ ],
+ },
+ ],
+ `
`,
+ ),
position: "left",
},
{
- to: "integrations/",
label: "Integrations",
+ to: "integrations/",
+ },
+ {
+ label: "Pricing",
+ to: "pricing/",
+ },
+ {
+ type: "html",
+ className:
+ "dropdown dropdown--hoverable dropdown--custom",
+ value: generateNavbarDropdown("Community", [
+ {
+ label: "Connect",
+ items: [
+ {
+ label: "Blog",
+ to: "blog/",
+ },
+ {
+ label: "Discord",
+ to: "https://goauthentik.io/discord",
+ },
+ {
+ label: "GitHub",
+ to: "https://github.com/goauthentik/authentik",
+ },
+ ],
+ },
+ {
+ label: "Developer",
+ items: [
+ {
+ label: "Set up authentik",
+ to: "developer-docs/setup/full-dev-environment/",
+ },
+ {
+ label: "Writing documentation",
+ to: "developer-docs/docs/writing-documentation",
+ },
+ ],
+ },
+ {
+ label: "Community",
+ items: [
+ {
+ label: "Contributing",
+ to: "developer-docs/",
+ },
+ {
+ label: "Events",
+ to: "developer-docs/events",
+ },
+ ],
+ },
+ {
+ label: "Resources",
+ items: [
+ {
+ label: "Icons & Branding",
+ to: "developer-docs/",
+ },
+ ],
+ },
+ ]),
position: "left",
},
{
- to: "pricing/",
- label: "Pricing",
+ type: "html",
+ className:
+ "dropdown dropdown--hoverable dropdown--custom",
+ value: generateNavbarDropdown("About us", [
+ {
+ label: "",
+ items: [
+ {
+ label: "The company",
+ to: "",
+ },
+ {
+ label: "Jobs",
+ to: "",
+ },
+ {
+ label: "Team",
+ to: "",
+ },
+ {
+ label: "Contact us",
+ to: "",
+ },
+ ],
+ },
+ ]),
position: "left",
},
{
@@ -46,12 +203,6 @@ module.exports = async function () {
"aria-label": "GitHub repository",
position: "right",
},
- {
- href: "https://goauthentik.io/discord",
- className: "header-discord-link",
- "aria-label": "GitHub repository",
- position: "right",
- },
],
},
footer: {
diff --git a/website/sidebarsDev.js b/website/sidebarsDev.js
index 00b62918a..f71289f72 100644
--- a/website/sidebarsDev.js
+++ b/website/sidebarsDev.js
@@ -55,6 +55,11 @@ module.exports = {
{
type: "category",
label: "Community Events",
+ link: {
+ type: "generated-index",
+ title: "Events",
+ slug: "events",
+ },
items: ["hackathon/index"],
},
],
diff --git a/website/src/css/custom.css b/website/src/css/custom.css
index aec8cb4ef..010b1b92b 100644
--- a/website/src/css/custom.css
+++ b/website/src/css/custom.css
@@ -6,6 +6,7 @@
--ifm-color-primary-light: #fd644b;
--ifm-color-primary-lighter: #fd7159;
--ifm-color-primary-lightest: #fe9786;
+ --purple: rgba(47, 6, 75, 1);
--white: #e3e3e3;
--ifm-navbar-link-color: var(--white);
--ifm-navbar-link-hover-color: var(--ifm-color-gray-1000);
@@ -40,7 +41,7 @@
.hero--primary {
background: radial-gradient(
circle,
- rgba(47, 6, 75, 1) 0%,
+ var(--purple) 0%,
var(--ifm-color-primary) 50%
);
padding-bottom: 5.3rem !important;
@@ -68,19 +69,6 @@
no-repeat;
}
-.header-discord-link:hover {
- opacity: 0.6;
-}
-
-.header-discord-link::before {
- content: "";
- width: 24px;
- height: 19px;
- display: flex;
- background: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20127.14%2096.36%22%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill%3A%23fff%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cg%20id%3D%22%E5%9B%BE%E5%B1%82_2%22%20data-name%3D%22%E5%9B%BE%E5%B1%82%202%22%3E%3Cg%20id%3D%22Discord_Logos%22%20data-name%3D%22Discord%20Logos%22%3E%3Cg%20id%3D%22Discord_Logo_-_Large_-_White%22%20data-name%3D%22Discord%20Logo%20-%20Large%20-%20White%22%3E%3Cpath%20class%3D%22cls-1%22%20d%3D%22M107.7%2C8.07A105.15%2C105.15%2C0%2C0%2C0%2C81.47%2C0a72.06%2C72.06%2C0%2C0%2C0-3.36%2C6.83A97.68%2C97.68%2C0%2C0%2C0%2C49%2C6.83%2C72.37%2C72.37%2C0%2C0%2C0%2C45.64%2C0%2C105.89%2C105.89%2C0%2C0%2C0%2C19.39%2C8.09C2.79%2C32.65-1.71%2C56.6.54%2C80.21h0A105.73%2C105.73%2C0%2C0%2C0%2C32.71%2C96.36%2C77.7%2C77.7%2C0%2C0%2C0%2C39.6%2C85.25a68.42%2C68.42%2C0%2C0%2C1-10.85-5.18c.91-.66%2C1.8-1.34%2C2.66-2a75.57%2C75.57%2C0%2C0%2C0%2C64.32%2C0c.87.71%2C1.76%2C1.39%2C2.66%2C2a68.68%2C68.68%2C0%2C0%2C1-10.87%2C5.19%2C77%2C77%2C0%2C0%2C0%2C6.89%2C11.1A105.25%2C105.25%2C0%2C0%2C0%2C126.6%2C80.22h0C129.24%2C52.84%2C122.09%2C29.11%2C107.7%2C8.07ZM42.45%2C65.69C36.18%2C65.69%2C31%2C60%2C31%2C53s5-12.74%2C11.43-12.74S54%2C46%2C53.89%2C53%2C48.84%2C65.69%2C42.45%2C65.69Zm42.24%2C0C78.41%2C65.69%2C73.25%2C60%2C73.25%2C53s5-12.74%2C11.44-12.74S96.23%2C46%2C96.12%2C53%2C91.08%2C65.69%2C84.69%2C65.69Z%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E")
- no-repeat;
-}
-
@media (min-width: 1600px) {
#__docusaurus_skipToContent_fallback > div {
align-self: center;
@@ -94,17 +82,6 @@
max-width: 1600px;
}
-/* Load new font as Roboto */
-
-@font-face {
- font-family: "superMario";
- src: url("https://fonts.googleapis.com/css2?family=Roboto:wght@300&display=swap");
-}
-
-body {
- font-family: "Roboto", sans-serif;
-}
-
/* Container styles */
.content {
width: 100vw;
@@ -135,3 +112,43 @@ body {
.navbar-sidebar__items {
background-color: var(--ifm-color-primary);
}
+
+/* Custom navbar dropdown */
+
+.dropdown--custom div.dropdown__menu {
+ display: flex;
+ font-size: calc(var(--ifm-font-size-base) * 1.2);
+ border-radius: 0;
+}
+.dropdown--custom div.category {
+ min-width: 10rem;
+}
+.dropdown--custom div.category p {
+ color: var(--purple);
+ font-weight: bold;
+ margin: calc(var(--ifm-paragraph-margin-bottom) / 2);
+}
+.dropdown--custom div.category ul {
+ list-style: none;
+ font-size: calc(var(--ifm-font-size-base) * 1.2);
+ padding-left: calc(var(--ifm-paragraph-margin-bottom) / 2);
+}
+.dropdown--custom div.category .dropdown__link {
+ font-size: 1rem;
+}
+
+.dropdown--custom div.category.enterprise {
+ background-color: #2f064b2e;
+ margin: -8px;
+ padding: 8px;
+}
+
+@media screen and (max-width: 830px) {
+ .dropdown--custom div.dropdown__menu {
+ flex-direction: column;
+ }
+ .dropdown--custom div.category.enterprise {
+ margin-top: 8px;
+ padding-top: 0px;
+ }
+}
diff --git a/website/src/utils.js b/website/src/utils.js
index b2d2d4938..c98ef0753 100644
--- a/website/src/utils.js
+++ b/website/src/utils.js
@@ -1,3 +1,24 @@
+function generateNavbarDropdown(label, categories, extra) {
+ return `
+ `;
+}
+
function generateVersionDropdown(sidebar) {
const releases = sidebar.docs
.filter((doc) => doc.link?.slug === "releases")[0]
@@ -28,4 +49,5 @@ function generateVersionDropdown(sidebar) {
module.exports = {
generateVersionDropdown,
+ generateNavbarDropdown,
};