docs: fix sidebar and TOC styles for Redocusaurus (#12748)

* docs: improve sidebar and TOC readability + scroll progress

- Fix left nav sidebar hugging the left edge (remove margin-left)
- Increase sidebar font sizes and lift muted colors for legibility
- TOC right-side: white inactive items, pink active, gray for passed sections
- Add clientModule (tocProgress.js) to track scroll progress in TOC
- Add Redocusaurus API page styles to match site theme

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: fix sidebar/TOC height stability and active item reflow

- Force sidebarViewport to 100vh to prevent shrinking during scroll
- Replace font-weight on active TOC item with text-shadow to avoid reflow

* docs: left-anchor sidebar and increase fonts on large screens

* docs: constrain prev/next nav to match content max-width

* docs: fix sidebar jump on scroll by moving padding-top inside menu

* docs: fix sidebar-ad spacing with transparent padding on li

* docs: fix sidebarViewport height and MutationObserver leak

* docs: constrain doc content to 75vw and remove dead CSS comments

- Cap docMainContainer at 75vw
- Set pagination-nav to 100% width to match content column
- Remove commented-out .markdown and .ch-scrollycoding blocks

* docs: set docMainContainer max-width to 75% for better reading width

* docs: center main-wrapper on large screens and center docItemWrapper

* fix: revert lodash override to stable 4.17.21

lodash 4.18.0 is a broken release — template.js uses assignWith and
arrayEach without importing them, crashing npm start. Pin to 4.17.21
across all nested overrides.

* fix: prevent horizontal scroll on mobile docs pages

docsWrapper has flex:1 0 auto (flex-shrink:0), so it never shrinks below
the natural content width (~570px on iPhone). Cap it to 100vw and add
min-width:0 down the flex chain (docRoot, docMainContainer) so the
layout stays within viewport on narrow screens.

Also remove the overflow:visible override from ch-code-wrapper, which
was defeating the code block's own horizontal containment.

* feat: responsive navbar search and hide social icons on mobile

Shrink search bar as viewport narrows (160px at 1100px, 100px at 996px),
collapse to icon-only at 960px. Hide GitHub, X, and Discord icons below
996px where the hamburger menu takes over navigation.

* fix: images always respect container width above 996px

Use min(100%, 600px) so images are capped at 600px but never overflow
their container when the content area is narrower (e.g. sidebar open).

* fix: improve TOC progress scroll tracking and bottom-of-page detection

Adds scroll handler with RAF throttle, pauses/resumes MutationObserver
to avoid loops, and forces last TOC link active when scrolled to page bottom.

* fix: translate Portuguese comments to English in custom.css

* fix: sidebar viewport fills full screen height

* feat: sidebar section icon turns pink with ease transition when active

* fix: reduce TOC font size to 0.8rem

* fix: remove docMainContainer right padding and add 48px gap to content col

* fix: card header responsive alignment and title margin reset

* fix: darken card background and active sidebar item bg on light theme

* fix: revert TOC colors and add inline code border radius tweak

* fix: minimal scrollbar for sidebar and TOC — thumb only on hover

* fix: scrollbar fade-in/out transition at 0.25s ease

* feat: add rehype plugin for table column wrapping and centering

Inserts zero-width space after underscores in inline code cells so long
env-var names wrap at underscore boundaries. Also centers Format/Default
columns via a col-center class applied at build time.

* fix: use --ifm-heading-color for sidebar group labels in both themes

* refactor: split docs custom.css into themed partials

Breaks the 1,658-line monolithic custom.css into 8 focused files
(tokens, layout, navbar, sidebar, typography, components, code,
redocusaurus). custom.css is now a thin entry point with @imports.

* fix: align sidebar and navbar with shared --docs-gutter token

Introduces --docs-gutter: 1rem in tokens.css and applies it to both
navbar__inner horizontal padding and sidebar nav.menu padding-left,
keeping the Langflow logo and sidebar items visually aligned.

* fix: match sidebar ad background to page background color

Dark mode uses #111 (same as sidebar bg); light mode uses --ifm-background-color.

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Antônio Alexandre Borges Lima
2026-05-12 19:11:36 -03:00
committed by GitHub
parent 0b93705a8d
commit bbe2ccdc91
15 changed files with 1901 additions and 1429 deletions

91
docs/css/code.css Normal file
View File

@ -0,0 +1,91 @@
.docusaurus-highlight-code-line {
background-color: rgba(0, 0, 0, 0.1);
display: block;
margin: 0 calc(-1 * var(--ifm-pre-padding));
padding: 0 var(--ifm-pre-padding);
}
.ch-scrollycoding-content {
max-width: 55% !important;
min-width: 40% !important;
}
.ch-scrollycoding-sticker {
max-width: 60% !important;
min-width: 45% !important;
}
.ch-scrollycoding-step-content {
min-height: 70px;
}
/* ========================================
Code Blocks - Enhanced (Langfuse style)
======================================== */
/* Code block title/filename label */
.theme-code-block div[class*="codeBlockTitle"] {
font-size: 0.8125rem;
font-weight: 500;
padding: 0.5rem 1rem;
border-bottom: 1px solid var(--ifm-color-emphasis-200);
background: var(--ifm-color-emphasis-100);
border-radius: var(--ifm-global-radius) var(--ifm-global-radius) 0 0;
}
[data-theme="dark"] .theme-code-block div[class*="codeBlockTitle"] {
background: #232328;
border-bottom-color: #303038;
}
/* Code block container */
.theme-code-block {
border: 1px solid var(--ifm-color-emphasis-200);
border-radius: var(--ifm-global-radius);
overflow: hidden;
margin-bottom: 1.5rem;
}
[data-theme="dark"] .theme-code-block {
border-color: #303038;
}
/* Line highlighting in code blocks */
.theme-code-block-highlighted-line {
background-color: rgba(var(--ifm-color-primary-rgb, 200, 100, 150), 0.1);
display: block;
margin: 0 calc(-1 * var(--ifm-pre-padding));
padding: 0 var(--ifm-pre-padding);
border-left: 3px solid var(--ifm-color-primary);
}
/* Code Hike + CodeSnippet: Code Hike uses height:100% on .ch-codeblock > * and omits overflow on the
wrapper when measured; we shrink-wrap the block (fixes <details>/Collapsible height) and put
overflow on <code> only so the copy button stays in the corner while scrolling long lines. */
.markdown .ch-codeblock {
min-width: 0;
max-width: 100%;
height: fit-content;
align-self: flex-start;
}
.markdown .ch-codeblock .ch-code-wrapper {
min-width: 0;
box-sizing: border-box;
height: fit-content !important;
max-height: none !important;
min-height: 0;
}
.markdown .ch-codeblock .ch-code-wrapper > .ch-code-scroll-parent {
display: block;
overflow-x: auto;
overflow-y: auto;
max-width: 100%;
min-width: 0;
}
.markdown .ch-codeblock .ch-code-button {
right: calc(10px + 0.75rem);
z-index: 2;
}