From 96958f83ad9653d90f80b0dc8a10f25d772da864 Mon Sep 17 00:00:00 2001 From: miloschwartz Date: Mon, 9 Mar 2026 09:07:01 -0700 Subject: [PATCH] restyle docs --- about/how-pangolin-works.mdx | 1 - about/pangolin-vs-reverse-proxy-vs-vpn.mdx | 3 +- additional-resources/changelog.mdx | 13 -- additional-resources/trust-center.mdx | 15 -- docs.json | 160 +++++++++++++------- favicon.png | Bin 0 -> 816 bytes favicon.svg | 22 --- logo/light.png | Bin 12971 -> 9595 bytes manage/access-control/login-page.mdx | 9 -- manage/blueprints.mdx | 9 -- manage/geoblocking.mdx | 9 -- manage/identity-providers/add-an-idp.mdx | 9 -- manage/identity-providers/azure.mdx | 9 -- manage/identity-providers/google.mdx | 10 -- manage/remote-node/quick-install-remote.mdx | 9 -- self-host/quick-install.mdx | 9 -- style.css | 97 ++++++++++++ 17 files changed, 207 insertions(+), 177 deletions(-) delete mode 100644 additional-resources/changelog.mdx delete mode 100644 additional-resources/trust-center.mdx create mode 100644 favicon.png delete mode 100644 favicon.svg diff --git a/about/how-pangolin-works.mdx b/about/how-pangolin-works.mdx index e14172f..898c95e 100644 --- a/about/how-pangolin-works.mdx +++ b/about/how-pangolin-works.mdx @@ -1,6 +1,5 @@ --- title: "How Pangolin Works" -icon: "brain" description: "Learn about the fundamentals of Pangolin and how they work together to provide simple and secure remote access." --- diff --git a/about/pangolin-vs-reverse-proxy-vs-vpn.mdx b/about/pangolin-vs-reverse-proxy-vs-vpn.mdx index 8bb432a..3645103 100644 --- a/about/pangolin-vs-reverse-proxy-vs-vpn.mdx +++ b/about/pangolin-vs-reverse-proxy-vs-vpn.mdx @@ -1,6 +1,5 @@ --- -title: "Pangolin vs. Reverse Proxy vs. VPN" -icon: "book" +title: "Pangolin vs. Proxy vs. VPN" description: "What are the similarities and differences between Pangolin and traditional reverse proxies and VPNs?" --- diff --git a/additional-resources/changelog.mdx b/additional-resources/changelog.mdx deleted file mode 100644 index fa6cbdf..0000000 --- a/additional-resources/changelog.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: "Changelog" -icon: "clipboard-list" ---- - -import PangolinCloudTocCta from "/snippets/pangolin-cloud-toc-cta.mdx"; - - - - - -To view the complete changelog, please visit our [GitHub Releases -page](https://github.com/fosrl/pangolin/releases). diff --git a/additional-resources/trust-center.mdx b/additional-resources/trust-center.mdx deleted file mode 100644 index afa8651..0000000 --- a/additional-resources/trust-center.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: "Trust Center" -icon: "scale-balanced" ---- - -import PangolinCloudTocCta from "/snippets/pangolin-cloud-toc-cta.mdx"; - - - - - -- [Terms of Service](https://pangolin.net/terms-of-service.html) -- [Privacy Policy](https://pangolin.net/privacy-policy.html) -- [AGLPv3](https://www.gnu.org/licenses/gpl-3.0.en.html) -- [Fossorial Commercial License (FCL)](https://pangolin.net/fcl.html) diff --git a/docs.json b/docs.json index f0112d4..e273677 100644 --- a/docs.json +++ b/docs.json @@ -1,18 +1,26 @@ { "$schema": "https://mintlify.com/docs.json", - "theme": "aspen", + "theme": "mint", "name": "Pangolin Docs", - "description": "Pangolin is the easiest to use identity-based remote access platform based on WireGuard.", + "description": "Zero trust access to all your infrastructure, self-hosted applications, and SaaS tools. Easy to deploy and scale. Better than your existing VPN.", "colors": { - "primary": "#F36117", - "light": "#F36117", + "primary": "#202020", + "light": "#202020", "dark": "#F36117" }, - "favicon": "/favicon.svg", + "background": { + "color": { + "light": "#FAF9F2" + } + }, + "styling": { + "codeblocks": "dark" + }, + "favicon": "/favicon.png", "navigation": { "tabs": [ { - "tab": "Docs", + "tab": "Documentation", "groups": [ { "group": "About", @@ -186,13 +194,6 @@ "self-host/supporter-program" ] }, - { - "group": "Careers", - "pages": [ - "careers/join-us", - "careers/software-engineer-full-stack" - ] - }, { "group": "Development", "pages": [ @@ -200,48 +201,38 @@ "development/contributing", "development/feature-requests-and-bug-reports" ] - }, - { - "group": "Additional Resources", - "pages": [ - "additional-resources/changelog", - "additional-resources/trust-center" - ] } ] }, { - "tab": "Blog", - "href": "https://pangolin.net/blog" + "tab": "Guides", + "href": "https://pangolin.net/news" + }, + { + "tab": "Downloads", + "href": "https://pangolin.net/downloads" }, { "tab": "Website", "href": "https://pangolin.net/" + }, + { + "tab": "Careers", + "href": "https://pangolin.net/careers" + }, + { + "tab": "Trust Center", + "href": "https://trust.pangolin.net/" } - ], - "global": { - "anchors": [ - { - "anchor": "GitHub", - "href": "https://github.com/fosrl/pangolin", - "icon": "github" - }, - { - "anchor": "Slack", - "href": "https://pangolin.net/slack", - "icon": "slack" - }, - { - "anchor": "Discord", - "href": "https://pangolin.net/discord", - "icon": "discord" - } - ] - } + ] }, "interaction": { "drilldown": true }, + "appearance": { + "default": "light", + "strict": true + }, "logo": { "light": "/logo/light.png", "dark": "/logo/dark.png", @@ -250,26 +241,93 @@ "navbar": { "links": [ { - "label": "Log In", + "label": "Log in", "href": "https://app.pangolin.net/auth/login" - }, - { - "label": "Contact Us", - "icon": "envelope", - "href": "mailto:contact@pangolin.net" } ], "primary": { "type": "button", - "label": "Pangolin Dashboard", + "label": "Start for free", "href": "https://app.pangolin.net/auth/signup" } }, "footer": { "socials": { + "slack": "https://pangolin.net/slack", "github": "https://github.com/fosrl/pangolin", - "linkedin": "https://linkedin.com/company/digpangolin" - } + "linkedin": "https://linkedin.com/company/digpangolin", + "youtube": "https://youtube.com/@pangolin" + }, + "links": [ + { + "header": "Product", + "items": [ + { + "label": "Documentation", + "href": "https://docs.pangolin.net" + }, + { + "label": "Downloads", + "href": "https://app.pangolin.net/auth/signup" + }, + { + "label": "Status", + "href": "https://status.pangolin.net" + } + ] + }, + { + "header": "Company", + "items": [ + { + "label": "Careers", + "href": "https://docs.pangolin.net/careers/join-us" + }, + { + "label": "Contact", + "href": "mailto:contact@pangolin.net" + }, + { + "label": "News & Articles", + "href": "https://pangolin.net/news" + } + ] + }, + { + "header": "Legal", + "items": [ + { + "label": "Trust Center", + "href": "https://trust.pangolin.net/" + }, + { + "label": "Privacy", + "href": "https://pangolin.net/privacy-policy.html" + }, + { + "label": "Terms", + "href": "https://pangolin.net/terms-of-service.html" + } + ] + }, + { + "header": "Follow", + "items": [ + { + "label": "GitHub", + "href": "https://github.com/fosrl/pangolin" + }, + { + "label": "LinkedIn", + "href": "https://linkedin.com/company/pangolin-net" + }, + { + "label": "YouTube", + "href": "https://youtube.com/@pangolin" + } + ] + } + ] }, "integrations": { "posthog": { diff --git a/favicon.png b/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..1c71dd43003e5ac32a8c17d05ccb8ac1cc7e114b GIT binary patch literal 816 zcmV-01JC@4P)rp~+BoL0>S>AiMbJ@L}-I+a#ZTONYU}xri z^M1bf&g&j_VyF=UYDVn@BveGavkgbD9s(S6zzZ(%63rXnK zTm=8tWAG?xBu|#Y4O2x=RvKnfcn3cy^x69Yk}XK1{ahPQ2&16D_^7W zEhN!_Dv;z2T-JT2f6|MicTXVty$Zu3Ou}O$kt5JcvIl)vp9D+-L*?I`E8LR{fo4vz z)P&N>RvAd3@$3iY%!nI-G${5|a#iC$h_ZYr6e3;kCoxV&1y)0Z)lx{V=mY0LiE$Dh zF?kon#7y74T2fQps4In+xB9zV>t(N)` zXBOTY)iUn^JfKQkMj(CA(Co?0a_%K7ArWb`K0){S9loy&(sa3N3G(Z&&w>~oPtIK6M(}cVbwf`oEiD_Ku z4bhy*7%zfEgAo#8&lM^C2?>g4>_CF{kfx9~O=XxPkdCVuEr~Ie>(?bG<19jBSB-m0M>1QS z!?k5jth5Me!)o&zi&;+r1MUY#8@7q4yKu#+AMkvLNydA3w=-wtqc?>Ul9d3xGWzfW zhJ{wgB3Q?AIW^x;9=^yYX;lqStZOiY8kzsP^9%~ep?< - - - - - - - - diff --git a/logo/light.png b/logo/light.png index a5a796b50057e4d3b8424b147ee87b9ff3af77da..cf57ecb1f341d981f9424a1594825aa40ecbc705 100644 GIT binary patch literal 9595 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 diff --git a/manage/access-control/login-page.mdx b/manage/access-control/login-page.mdx index dc36958..22aee7a 100644 --- a/manage/access-control/login-page.mdx +++ b/manage/access-control/login-page.mdx @@ -15,15 +15,6 @@ Custom auth pages are only available in [Pangolin Cloud](https://app.pangolin.ne Custom organization authentication pages let you serve the login page at your own domain instead of the default `app.pangolin.net`. This provides better user experience and brand consistency. - - ## Benefits **For Resource Authentication:** diff --git a/manage/blueprints.mdx b/manage/blueprints.mdx index c33fd80..33260db 100644 --- a/manage/blueprints.mdx +++ b/manage/blueprints.mdx @@ -12,15 +12,6 @@ import PangolinCloudTocCta from "/snippets/pangolin-cloud-toc-cta.mdx"; Blueprints provide a way to define your Pangolin resources and their configurations in a structured, declarative format. This allows for easier management, version control, and automation of your resource setups. - - ## Overview Pangolin supports two blueprint formats: diff --git a/manage/geoblocking.mdx b/manage/geoblocking.mdx index 81ae48d..a5201d9 100644 --- a/manage/geoblocking.mdx +++ b/manage/geoblocking.mdx @@ -13,15 +13,6 @@ import PangolinCloudTocCta from "/snippets/pangolin-cloud-toc-cta.mdx"; Geoblocking is available in Pangolin community! Make sure to follow this guide for how to enable: [Enabling Geo Blocking](/self-host/advanced/enable-geoblocking) - - ## Benefits of Geo Blocking Geo blocking provides several important security and compliance advantages: diff --git a/manage/identity-providers/add-an-idp.mdx b/manage/identity-providers/add-an-idp.mdx index fc83fc7..6febbf0 100644 --- a/manage/identity-providers/add-an-idp.mdx +++ b/manage/identity-providers/add-an-idp.mdx @@ -13,15 +13,6 @@ Identity providers allow your users to log into Pangolin and Pangolin resources Here is an example using Microsoft Azure Entra ID as SSO for Pangolin: - - **This feature is for you if:** - Your organization already uses an identity provider like Google Workspace, Microsoft Entra ID, Okta, or similar systems - You want to centralize user management and avoid maintaining separate Pangolin accounts diff --git a/manage/identity-providers/azure.mdx b/manage/identity-providers/azure.mdx index 35b974f..73e0917 100644 --- a/manage/identity-providers/azure.mdx +++ b/manage/identity-providers/azure.mdx @@ -15,15 +15,6 @@ Azure SSO is only available on [Pangolin Cloud](https://app.pangolin.net/auth/si The following steps will integrate Microsoft SSO using the built in Azure Entra ID identity provider in Pangolin. - - #### Create an App Registration diff --git a/manage/identity-providers/google.mdx b/manage/identity-providers/google.mdx index 4d18beb..07c0d8e 100644 --- a/manage/identity-providers/google.mdx +++ b/manage/identity-providers/google.mdx @@ -15,16 +15,6 @@ Google SSO is only available on [Pangolin Cloud](https://app.pangolin.net/auth/s The following steps will integrate Google SSO using the built in Google identity provider in Pangolin. - - - [Create a new Project](https://console.cloud.google.com/projectcreate), or use an [existing Project](https://console.developers.google.com/) you've already created in the Google Developers Console. Setting the organization isn't required, unless you intend to use SSO for [more than 100 users](https://support.google.com/cloud/answer/13464323) externally (not via Google Workspace). diff --git a/manage/remote-node/quick-install-remote.mdx b/manage/remote-node/quick-install-remote.mdx index a93d9ef..e2c4b4b 100644 --- a/manage/remote-node/quick-install-remote.mdx +++ b/manage/remote-node/quick-install-remote.mdx @@ -9,15 +9,6 @@ import PangolinCloudTocCta from "/snippets/pangolin-cloud-toc-cta.mdx"; - - ## Prerequisites Before you begin, ensure you have: diff --git a/self-host/quick-install.mdx b/self-host/quick-install.mdx index 3d63a45..439d966 100644 --- a/self-host/quick-install.mdx +++ b/self-host/quick-install.mdx @@ -10,15 +10,6 @@ import PangolinCloudTocCta from "/snippets/pangolin-cloud-toc-cta.mdx"; - - ## Prerequisites Before you begin, ensure you have: diff --git a/style.css b/style.css index 5455e23..e35c71f 100644 --- a/style.css +++ b/style.css @@ -6,4 +6,101 @@ /* Space above the Pangolin Cloud CTA (below the table of contents links) */ #table-of-contents > *:last-child { margin-top: 1.25rem; + background-color: #F2F0E7; +} + +#navbar .max-w-8xl { + max-width: 100%; + background-color: #F2F0E7; + border-bottom: 1px solid #E8E7E5; +} + +/* No border between search row and tab links */ +#navbar .border-b { + border-bottom: none !important; +} + +#sidebar { + left: 0; + padding-right: 30px; + background-color: #F2F0E7; +} + +#sidebar-content { + padding-left: 2rem; +} + +#sidebar-content ul.sidebar-group { + gap: 0; +} + +#sidebar-content ul.sidebar-group li { + margin-top: 0 !important; +} + +#sidebar .relative .sticky { + opacity: 0; +} + +#header { + padding-bottom: 25px; + padding-top: 25px; + border-bottom: 1px solid #E8E7E5; + margin-bottom: 50px; +} + +#content-area .mt-8 .block { + background-color: #F2F0E7; + border: none !important; +} + +/* No borders on cards */ +[class*="card"], +[class*="Card"], +#table-of-contents > *:last-child { + border: none !important; +} + +/* Step number circle: match card background */ +[data-component-part="step-number"] .rounded-full, +[data-component-part="step-number"] .bg-gray-50, +[data-component-part="step-number"] .dark\:bg-white\/10 { + background-color: #F2F0E7 !important; +} + +#topbar-cta-button .group .flex { + margin-top: 5px; + margin-bottom: 5px; +} + +/* Fully rounded (pill) buttons */ +#navbar .links a, +#topbar-cta-button .group .absolute, +#topbar-cta-button a { + border-radius: 9999px !important; +} + +/* CTA button background (navbar + footer) */ +#topbar-cta-button .group .absolute, +#topbar-cta-button a { + background-color: #202020 !important; +} + +#footer { + background-color: #F2F0E7; + border-color: #E8E7E5 !important; +} + +#footer .border-t { + border-color: #E8E7E5 !important; +} + +#footer .bg-gray-100, +#footer .dark\:bg-white\/5 { + background-color: #E8E7E5 !important; +} + +/* Remove the divider line above "Powered by" */ +#footer div[class*="1px"] { + display: none !important; }