diff --git a/docs/features/muxing.mdx b/docs/features/muxing.mdx
index 05c2eec..07382bd 100644
--- a/docs/features/muxing.mdx
+++ b/docs/features/muxing.mdx
@@ -25,14 +25,14 @@ workspace.
```mermaid
flowchart LR
- Client(AI Assistant
or Agent)
- CodeGate{CodeGate}
- WS1[Workspace-A]
- WS2[Workspace-B]
- WS3[Workspace-C]
- LLM1(OpenAI/
o3-mini)
- LLM2(Ollama/
deepseek-r1)
- LLM3(OpenRouter/
claude-35-sonnet)
+ Client(AI Assistant
or Agent):::secondary
+ CodeGate{CodeGate}:::primary
+ WS1[Workspace-A]:::primary
+ WS2[Workspace-B]:::primary
+ WS3[Workspace-C]:::primary
+ LLM1(OpenAI/
o3-mini):::tertiary
+ LLM2(Ollama/
deepseek-r1):::tertiary
+ LLM3(OpenRouter/
claude-35-sonnet):::tertiary
Client ---|/v1/mux| CodeGate
CodeGate --> WS1
@@ -43,6 +43,10 @@ flowchart LR
WS2 --> |.md files| LLM2
WS2 --> |.js files| LLM3
WS3 --> |All prompts| LLM3
+
+ classDef primary fill:#E31C79,stroke:#E31C79,color:#FFFFFF,stroke-width:2px
+ classDef secondary fill:#FFFFFF,stroke:#E31C79,color:#333333,stroke-width:2px
+ classDef tertiary fill:#D0D0D0,stroke:#E31C79,color:#333333,stroke-width:2px
```
## Use cases
diff --git a/docs/integrations/copilot.mdx b/docs/integrations/copilot.mdx
index 616119e..01e1392 100644
--- a/docs/integrations/copilot.mdx
+++ b/docs/integrations/copilot.mdx
@@ -36,11 +36,16 @@ GitHub Copilot and your IDE.
```mermaid
flowchart LR
- Plugin[Copilot IDE
Plugin]
- CodeGate["CodeGate
container
(localhost)"]
- Copilot[GitHub
Copilot]
+ Plugin[Copilot IDE
Plugin]:::secondary
+ CodeGate["CodeGate
container
(localhost)"]:::primary
+ Copilot[GitHub
Copilot]:::tertiary
+
Plugin -->|"https
8990"| CodeGate
CodeGate -->|"https
443"| Copilot
+
+ classDef primary fill:#E31C79,stroke:#E31C79,color:#FFFFFF,stroke-width:2px
+ classDef secondary fill:#FFFFFF,stroke:#E31C79,color:#333333,stroke-width:2px
+ classDef tertiary fill:#E8E8E8,stroke:#E31C79,color:#333333,stroke-width:2px
```
## Launch parameters
diff --git a/docusaurus.config.ts b/docusaurus.config.ts
index ec09de2..9271160 100644
--- a/docusaurus.config.ts
+++ b/docusaurus.config.ts
@@ -70,8 +70,8 @@ const config: Config = {
themeConfig: {
colorMode: {
defaultMode: 'light',
- disableSwitch: true,
- respectPrefersColorScheme: false,
+ disableSwitch: false,
+ respectPrefersColorScheme: true,
},
// Replace with your project's social card
// image: 'img/docusaurus-social-card.jpg',
@@ -104,19 +104,19 @@ const config: Config = {
},
{
href: 'https://youtube.com/@stacklok',
- className: 'header-youtube-link',
+ className: 'youtube-link',
position: 'right',
'aria-label': 'YouTube channel',
},
{
href: 'https://github.com/stacklok/codegate',
- className: 'header-github-link',
+ className: 'github-link',
position: 'right',
'aria-label': 'GitHub repository',
},
{
href: 'https://discord.gg/stacklok',
- className: 'header-discord-link',
+ className: 'discord-link',
position: 'right',
'aria-label': 'Discord community',
},
@@ -135,9 +135,9 @@ const config: Config = {
},
{
html: `
-
-
-
+
+
+
`,
},
],
@@ -146,16 +146,16 @@ const config: Config = {
title: 'Links',
items: [
{
- html: '',
+ html: ' Stacklok',
},
{
- html: '',
+ html: ' YouTube',
},
{
- html: '',
+ html: ' GitHub',
},
{
- html: '',
+ html: ' Discord',
},
],
},
@@ -176,12 +176,12 @@ const config: Config = {
copyright: `
Copyright © ${new Date().getFullYear()} CodeGate, All Rights Reserved
-
Powered by

+
`,
},
prism: {
theme: prismThemes.github,
- darkTheme: prismThemes.dracula,
+ darkTheme: prismThemes.vsDark,
additionalLanguages: ['bash', 'json', 'powershell', 'docker', 'lua'],
},
mermaid: {
@@ -189,6 +189,23 @@ const config: Config = {
options: {
themeVariables: {
fontFamily: 'Figtree, system-ui, sans-serif',
+ primaryColor: '#E31C79',
+ primaryBorderColor: '#E31C79',
+ lineColor: '#E31C79',
+ secondaryColor: '#F3E6EE',
+ tertiaryColor: '#FAF0F6',
+ mainBkg: '#E31C79',
+ noteBkgColor: '#444444',
+ noteTextColor: '#FFFFFF',
+ // BEGIN sequenceDiagram styles
+ actorBorder: '#E31C79',
+ actorLineColor: '#E31C79',
+ actorTextColor: '#FFFFFF',
+ activationBkgColor: '#E31C79',
+ activationBorderColor: '#E31C79',
+ labelBoxBkgColor: '#444444',
+ labelTextColor: '#FFFFFF',
+ // END sequenceDiagram styles
},
},
},
diff --git a/src/css/codegate-footer.css b/src/css/codegate-footer.css
new file mode 100644
index 0000000..8071239
--- /dev/null
+++ b/src/css/codegate-footer.css
@@ -0,0 +1,58 @@
+/* Footer classes to match the style of codegate.ai */
+
+.footer {
+ padding: 20px 16px 40px;
+}
+
+.footer .container {
+ margin: auto;
+ padding: 0;
+ max-width: 1200px;
+}
+
+.footer__title {
+ text-transform: uppercase;
+}
+
+.footer__copyright {
+ color: #64748b;
+ text-align: left;
+ font-size: 1rem;
+ line-height: 1.7;
+}
+
+.footer__item {
+ font-size: 16px;
+ font-weight: 500;
+}
+
+.footer__item:not(:last-child) {
+ padding-bottom: 16px;
+}
+
+.footer__icon__custom {
+ padding: 0.25rem 12px;
+}
+
+.footer__link-item {
+ line-height: 24px;
+ --ifm-link-hover-decoration: none;
+}
+
+.footer__col:first-child {
+ max-width: 400px;
+ margin-right: auto;
+}
+
+.footer__col:last-child,
+.footer__col:nth-last-child(2) {
+ max-width: 160px;
+ margin-right: 0px;
+}
+
+.footer__powered_by {
+ margin-left: auto;
+ text-transform: uppercase;
+ font-size: 14px;
+ font-weight: 600;
+}
diff --git a/src/css/custom.css b/src/css/custom.css
index 3322c31..cddb913 100644
--- a/src/css/custom.css
+++ b/src/css/custom.css
@@ -6,6 +6,9 @@
@import url('https://fonts.googleapis.com/css2?family=Figtree:ital,wght@0,300..900;1,300..900&family=Roboto+Mono:ital,wght@0,100..700;1,100..700&display=swap');
+@import './icons.css';
+@import './codegate-footer.css';
+
/* You can override the default Infima variables here. */
:root {
--ifm-font-family-base: 'Figtree', 'system-ui', 'sans-serif';
@@ -18,28 +21,34 @@
--ifm-footer-link-color: #334155;
--ifm-footer-link-hover-color: #5058ff;
--ifm-navbar-link-color: #334155;
-
- --ifm-color-primary: #5058ff;
- --ifm-color-primary-dark: #2f38ff;
- --ifm-color-primary-darker: #1e28ff;
- --ifm-color-primary-darkest: #000beb;
- --ifm-color-primary-light: #7278ff;
- --ifm-color-primary-lighter: #8288ff;
- --ifm-color-primary-lightest: #b4b8ff;
+ --ifm-navbar-background-color: #f8fafc;
+ --ifm-menu-color: #5d6982;
+ --ifm-toc-link-color: #5d6982;
+
+ --ifm-color-primary: #e31c79;
+ --ifm-color-primary-dark: #cc196d;
+ --ifm-color-primary-darker: #c11867;
+ --ifm-color-primary-darkest: #9f1455;
+ --ifm-color-primary-light: #e63386;
+ --ifm-color-primary-lighter: #e73e8d;
+ --ifm-color-primary-lightest: #eb60a1;
--ifm-code-font-size: 95%;
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1);
}
/* For readability concerns, you should choose a lighter palette in dark mode. */
[data-theme='dark'] {
- --ifm-navbar-background-color: #111827;
- --ifm-color-primary: #38bdf8;
- --ifm-color-primary-dark: #1bb3f7;
- --ifm-color-primary-darker: #0caef6;
- --ifm-color-primary-darkest: #0791ce;
- --ifm-color-primary-light: #55c7f9;
- --ifm-color-primary-lighter: #64ccfa;
- --ifm-color-primary-lightest: #90dafb;
+ --ifm-navbar-background-color: #1a1c1f;
+ --ifm-menu-color: #9399ac;
+ --ifm-toc-link-color: #9399ac;
+
+ --ifm-color-primary: #e31c79;
+ --ifm-color-primary-dark: #cc196d;
+ --ifm-color-primary-darker: #c11867;
+ --ifm-color-primary-darkest: #9f1455;
+ --ifm-color-primary-light: #e63386;
+ --ifm-color-primary-lighter: #e73e8d;
+ --ifm-color-primary-lightest: #eb60a1;
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3);
}
@@ -50,140 +59,50 @@
}
html[data-theme='dark'] {
- --ifm-background-color: #111827;
- --ifm-color-content: #d1d5db;
-}
-
-div[role='tabpanel'] {
- border-style: solid;
- border-color: var(--ifm-table-border-color);
- border-width: var(--ifm-table-border-width);
- border-radius: var(--ifm-global-radius);
- padding: var(--ifm-global-spacing);
- box-shadow: var(--ifm-global-shadow-lw);
-}
-
-.footer {
- padding: 20px 16px 40px;
-}
-
-.footer .container {
- margin: auto;
- padding: 0;
- max-width: 1200px;
-}
-
-.footer__title {
- text-transform: uppercase;
-}
-
-.footer__copyright {
- color: #64748b;
- text-align: left;
- font-size: 1rem;
- line-height: 1.7;
+ --ifm-background-color: #101114;
+ /* --ifm-color-content: #9399ac; */
+ --ifm-color-content: #c7ccdc;
}
-.footer__item {
- font-size: 16px;
- font-weight: 500;
+.theme-doc-sidebar-container {
+ background-color: #f8fafc;
}
-.footer__item:not(:last-child) {
- padding-bottom: 16px;
+[data-theme='dark'] .theme-doc-sidebar-container {
+ background-color: #1a1c1f;
}
-.footer__icon__custom {
- padding: 0.25rem 12px;
+/* Mermaid flowchart labels */
+[data-theme='dark'] .edgeLabel p {
+ background-color: var(--ifm-background-color) !important;
}
-.footer__link-item {
- line-height: 24px;
- --ifm-link-hover-decoration: none;
+.tabs-container {
+ background-color: var(--ifm-card-background-color);
+ border: 1px solid var(--ifm-table-border-color);
+ border-radius: var(--ifm-card-border-radius);
+ margin-bottom: 1rem;
}
-.footer__col:first-child {
- max-width: 400px;
- margin-right: auto;
+.tabs-container > ul {
+ background-color: #f8fafc;
}
-.footer__col:last-child,
-.footer__col:nth-last-child(2) {
- max-width: 160px;
- margin-right: 0px;
+[data-theme='dark'] .tabs-container > ul {
+ background-color: #1a1c1f;
+ border-color: #1a1a1c;
}
-/**
- * Navbar & footer icon classes
- */
-.header-github-link::before {
- content: '';
- width: 16px;
- height: 16px;
- display: inline-block;
- vertical-align: middle;
- background-color: rgb(51, 65, 85);
- mask-image: url('/img/github-brands-solid.svg');
- mask-repeat: no-repeat;
- transition: background-color var(--ifm-transition-fast)
- var(--ifm-transition-timing-default);
-}
-
-.header-github-link:hover::before {
- background-color: var(--ifm-navbar-link-hover-color);
-}
-
-.header-discord-link::before {
- content: '';
- width: 20px;
- height: 16px;
- display: inline-block;
- vertical-align: middle;
- background-color: rgb(51, 65, 85);
- mask-image: url('/img/discord-brands-solid.svg');
- mask-repeat: no-repeat;
- mask-position: 0% 50%;
- mask-repeat: no-repeat;
- transition: background-color var(--ifm-transition-fast)
- var(--ifm-transition-timing-default);
-}
-
-.header-discord-link:hover::before {
- background-color: var(--ifm-navbar-link-hover-color);
-}
-
-.header-youtube-link::before {
- content: '';
- width: 18px;
- height: 16px;
- display: inline-block;
- vertical-align: middle;
- background-color: rgb(51, 65, 85);
- mask-image: url('/img/youtube-brands-solid.svg');
- mask-position: 0% 50%;
- mask-repeat: no-repeat;
- transition: background-color var(--ifm-transition-fast)
- var(--ifm-transition-timing-default);
+.tabs-container > ul {
+ border-bottom: 1px solid #f0f0f0;
+ border-top-left-radius: var(--ifm-card-border-radius);
+ border-top-right-radius: var(--ifm-card-border-radius);
}
-.header-youtube-link:hover::before {
- background-color: var(--ifm-navbar-link-hover-color);
+.tabs__item {
+ border-radius: 0;
}
-.header-stacklok-link::before {
- content: '';
- width: 18px;
- height: 16px;
- display: inline-block;
- vertical-align: middle;
- background-color: rgb(51, 65, 85);
- mask-image: url('/img/stacklok-icon-black.svg');
- mask-position: 0% 50%;
- mask-repeat: no-repeat;
- transition: background-color var(--ifm-transition-fast)
- var(--ifm-transition-timing-default);
-}
-
-.header-stacklok-link:hover::before {
- background-color: var(--ifm-navbar-link-hover-color);
+div[role='tabpanel'] {
+ padding: var(--ifm-global-spacing);
}
diff --git a/src/css/icons.css b/src/css/icons.css
new file mode 100644
index 0000000..c3bdeab
--- /dev/null
+++ b/src/css/icons.css
@@ -0,0 +1,90 @@
+/**
+ * Navbar & footer icon classes
+ */
+.github-link::before {
+ content: '';
+ width: 16px;
+ height: 16px;
+ display: inline-block;
+ vertical-align: middle;
+ background-color: rgb(51, 65, 85);
+ mask-image: url('/img/github-brands-solid.svg');
+ mask-repeat: no-repeat;
+ transition: background-color var(--ifm-transition-fast)
+ var(--ifm-transition-timing-default);
+}
+
+[data-theme='dark'] .navbar__item.github-link::before {
+ background-color: var(--ifm-color-content);
+}
+
+.github-link:hover::before {
+ background-color: var(--ifm-navbar-link-hover-color) !important;
+}
+
+.discord-link::before {
+ content: '';
+ width: 20px;
+ height: 16px;
+ display: inline-block;
+ vertical-align: middle;
+ background-color: rgb(51, 65, 85);
+ mask-image: url('/img/discord-brands-solid.svg');
+ mask-repeat: no-repeat;
+ mask-position: 0% 50%;
+ mask-repeat: no-repeat;
+ transition: background-color var(--ifm-transition-fast)
+ var(--ifm-transition-timing-default);
+}
+
+[data-theme='dark'] .navbar__item.discord-link::before {
+ background-color: var(--ifm-color-content);
+}
+
+.discord-link:hover::before {
+ background-color: var(--ifm-navbar-link-hover-color) !important;
+}
+
+.youtube-link::before {
+ content: '';
+ width: 18px;
+ height: 16px;
+ display: inline-block;
+ vertical-align: middle;
+ background-color: rgb(51, 65, 85);
+ mask-image: url('/img/youtube-brands-solid.svg');
+ mask-position: 0% 50%;
+ mask-repeat: no-repeat;
+ transition: background-color var(--ifm-transition-fast)
+ var(--ifm-transition-timing-default);
+}
+
+[data-theme='dark'] .navbar__item.youtube-link::before {
+ background-color: var(--ifm-color-content);
+}
+
+.youtube-link:hover::before {
+ background-color: var(--ifm-navbar-link-hover-color) !important;
+}
+
+.stacklok-link::before {
+ content: '';
+ width: 18px;
+ height: 16px;
+ display: inline-block;
+ vertical-align: middle;
+ background-color: rgb(51, 65, 85);
+ mask-image: url('/img/stacklok-icon-black.svg');
+ mask-position: 0% 50%;
+ mask-repeat: no-repeat;
+ transition: background-color var(--ifm-transition-fast)
+ var(--ifm-transition-timing-default);
+}
+
+[data-theme='dark'] .navbar__item.stacklok-link::before {
+ background-color: var(--ifm-color-content);
+}
+
+.stacklok-link:hover::before {
+ background-color: var(--ifm-navbar-link-hover-color) !important;
+}