Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/generate.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ def run() -> None:
shutil.rmtree("docs/generated")

pdoc.render.configure(
template_directory="docs",
template_directory=pathlib.Path("docs/templates"),
show_source=True,
search=True,
logo="https://docs.airbyte.com/img/logo-dark.png",
Expand Down
260 changes: 260 additions & 0 deletions docs/templates/custom.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,260 @@
/*
* Python CDK Documentation - Custom Styling
*
* This file applies Airbyte branding and design elements to the Python CDK API documentation.
*
* METHODOLOGY:
* - Colors and design tokens are sourced from the main Airbyte documentation site
* - Primary source: https://github.com/airbytehq/airbyte/blob/main/docusaurus/src/css/custom.css
* - The Airbyte design system uses a purple primary color (#615eff) and Inter font family
* - This CSS overrides pdoc's default theme variables to match Airbyte branding
*
* UPDATING STYLES:
* When Airbyte brand styles are updated, check the following upstream sources:
* 1. Main docs CSS: https://github.com/airbytehq/airbyte/blob/main/docusaurus/src/css/custom.css
* 2. Docusaurus config: https://github.com/airbytehq/airbyte/blob/main/docusaurus/docusaurus.config.js
* 3. Live site: https://docs.airbyte.com (inspect styles in browser dev tools)
*
* Key variables to sync:
* - --ifm-color-primary and variants (primary brand color)
* - --ifm-font-family-base (typography)
* - Color palette variables (grey, green, blue scales)
*
* PDOC INTEGRATION:
* pdoc uses specific CSS variables that we override here:
* - --link: Link color (set to Airbyte primary)
* - --link-hover: Link hover color (set to Airbyte primary-dark)
* - --code: Code background color
* - --accent: Accent/highlight color
* - --text: Main text color
*/

@import url("https://fonts.googleapis.com/css2?family=Inter:wght@200;300;400;500;600;700&display=swap");

:root {
/* Airbyte Primary Colors - from docusaurus/src/css/custom.css */
--airbyte-primary: #615eff;
--airbyte-primary-dark: #3f3bff;
--airbyte-primary-darker: #2e2aff;
--airbyte-primary-darkest: #0500f4;
--airbyte-primary-light: #8381ff;
--airbyte-primary-lighter: #9492ff;
--airbyte-primary-lightest: #c8c7ff;

/* Airbyte Color Palette - from docusaurus/src/css/custom.css */
--color-white: hsl(0, 0%, 100%);
--color-grey-40: hsl(240, 25%, 98%);
--color-grey-100: hsl(240, 12%, 92%);
--color-grey-400: hsl(239, 10%, 59%);
--color-grey-500: hsl(240, 10%, 49%);
--color-grey-900: hsl(240, 19%, 18%);
--color-green-40: hsl(185, 76%, 97%);
--color-green-50: hsl(184, 67%, 92%);
--color-green-600: hsl(185, 100%, 35%);
--color-green-800: hsl(184, 100%, 26%);
--color-blue-30: hsl(240, 100%, 98%);
--color-dark-blue-40: hsl(230, 23%, 95%);
--color-dark-blue-700: hsl(236, 43%, 31%);
}

/* Override pdoc's default theme variables - must be in .pdoc selector for specificity */
.pdoc {
--link: #615eff;
--link-hover: #3f3bff;
--code: hsl(240, 100%, 98%);
--accent: hsl(240, 25%, 98%);
--text: hsl(240, 19%, 18%);
--name: #615eff;
--def: #3f3bff;
}

/* Dark mode colors - from docusaurus/src/css/custom.css */
@media (prefers-color-scheme: dark) {
:root {
--airbyte-primary: #7976ff;
--airbyte-primary-dark: #3f3bff;
--airbyte-primary-darker: #2e2aff;
--airbyte-primary-light: #8381ff;
--airbyte-primary-lighter: #9492ff;
--airbyte-primary-lightest: #c8c7ff;

--color-grey-40: hsl(240, 14%, 14%);
--color-grey-100: hsl(240, 15%, 15%);
--color-grey-400: hsl(240, 13%, 72%);
--color-grey-500: hsl(240, 10%, 70%);
--color-grey-900: hsl(240, 10%, 90%);
--color-green-50: hsl(184, 100%, 12%);
--color-blue-30: hsl(252, 25%, 18%);
--color-dark-blue-700: hsl(240, 100%, 98%);
--color-white: hsl(0, 0%, 16%);
}

/* Override pdoc's default theme variables for dark mode - must be in .pdoc selector */
.pdoc {
--link: #9492ff;
--link-hover: #c8c7ff;
--code: hsl(252, 25%, 18%);
--accent: hsl(240, 14%, 14%);
--text: hsl(240, 10%, 90%);
--name: #9492ff;
--def: #8381ff;
}
}

/* Apply Inter font family - Airbyte's brand font */
body {
font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* Enhanced heading styles */
h1, h2, h3, h4, h5, h6 {
font-weight: 600;
}

/* Enhanced code block styling */
pre code {
border-radius: 8px;
}

/* Style tables with Airbyte theme */
table {
border-spacing: 0;
border-collapse: separate;
border-radius: 10px;
overflow: hidden;
}

table th {
background-color: var(--airbyte-primary);
color: var(--color-white);
font-weight: 600;
padding: 12px;
}

table th:first-child {
border-top-left-radius: 10px;
}

table th:last-child {
border-top-right-radius: 10px;
}

table td {
padding: 10px 12px;
border-bottom: 1px solid var(--color-grey-100);
}

table tr:hover {
background-color: var(--color-grey-40);
transition: background-color 0.2s ease;
}

table tr:last-child td:first-child {
border-bottom-left-radius: 10px;
}

table tr:last-child td:last-child {
border-bottom-right-radius: 10px;
}

/* Style navigation with Airbyte colors - use !important to override pdoc's default nav styles */
nav a {
color: var(--link) !important;
}

nav a:hover {
color: var(--link-hover) !important;
}

/* Style badges and labels */
.badge {
background-color: var(--color-green-40);
border: 1px solid var(--color-green-800);
color: var(--color-green-800);
font-weight: 500;
border-radius: 4px;
padding: 2px 8px;
font-size: 0.85em;
}

/* Add rounded corners to images */
img {
max-width: 100%;
border-radius: 10px;
}

/* Style the header/logo area */
header {
border-bottom: 2px solid var(--airbyte-primary-lightest);
}

/* Style buttons and interactive elements */
button, .button {
background-color: var(--airbyte-primary);
color: var(--color-white);
border: none;
border-radius: 6px;
padding: 8px 16px;
font-weight: 500;
cursor: pointer;
transition: background-color 0.2s ease;
}

button:hover, .button:hover {
background-color: var(--airbyte-primary-dark);
}

/* Improve code syntax highlighting */
.pdoc-code {
border-radius: 8px;
border: 1px solid var(--color-grey-100);
}

/* Style docstring sections */
.docstring {
line-height: 1.6;
}

/* Add subtle shadow to main content area */
main {
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

/* Style search box if present */
input[type="search"], input[type="text"] {
border: 1px solid var(--color-grey-100);
border-radius: 6px;
padding: 8px 12px;
font-family: inherit;
}

input[type="search"]:focus, input[type="text"]:focus {
outline: none;
border-color: var(--airbyte-primary);
box-shadow: 0 0 0 3px var(--airbyte-primary-lightest);
}

/* Improve spacing and readability */
.pdoc-module-list {
line-height: 1.8;
}

/* Style admonitions/notes */
.admonition {
border-left: 4px solid var(--airbyte-primary);
background-color: var(--color-blue-30);
padding: 12px 16px;
border-radius: 4px;
margin: 16px 0;
}

/* Responsive improvements */
@media (max-width: 768px) {
body {
font-size: 14px;
}

table {
font-size: 0.9em;
}
}
22 changes: 22 additions & 0 deletions docs/templates/theme.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
/* pdoc color scheme - Airbyte branded version */
:root {
--pdoc-background: #fff;
}

.pdoc {
/* Airbyte purple color scheme */
--text: hsl(240, 19%, 18%);
--muted: #6c757d;
--link: #615eff;
--link-hover: #3f3bff;
--code: hsl(240, 100%, 98%);
--active: #fff598;

--accent: hsl(240, 25%, 98%);
--accent2: #c1c1c1;

--nav-hover: rgba(97, 94, 255, 0.1);
--name: #615eff;
--def: #3f3bff;
--annotation: #007020;
}
Loading