Files
langflow/docs/css/typography.css
Antônio Alexandre Borges Lima bbe2ccdc91 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>
2026-05-12 22:11:36 +00:00

202 lines
3.9 KiB
CSS

p {
text-align: start;
}
body {
font-size: 16px;
}
/* Typography */
.markdown h1 {
font-size: 2.25rem; /* 36px */
font-weight: 700;
line-height: 1.25;
letter-spacing: -0.02em;
margin-bottom: 0.75rem;
}
.markdown h2 {
font-size: 1.5rem; /* 24px */
font-weight: 650;
line-height: 1.35;
letter-spacing: -0.01em;
margin-top: 2rem;
margin-bottom: 0.75rem;
}
.markdown h3 {
font-size: 1.25rem; /* 20px */
font-weight: 650;
line-height: 1.4;
margin-top: 1.75rem;
margin-bottom: 0.5rem;
}
.markdown h4 {
font-size: 1.125rem; /* 18px */
font-weight: 650;
line-height: 1.45;
margin-top: 1.25rem;
margin-bottom: 0.4rem;
}
.docsearch-logo {
color: #21243d;
}
.apply-button:hover {
color: #fff;
}
/*
* Inline Lucide icons in body copy (<Icon /> in MDX).
* Default lucide-react size is 24px, which reads huge next to Geist body text.
* Scale to the font (and keep card / explicit sizes overridable below).
*/
.markdown p svg.lf-inline-icon,
.markdown li svg.lf-inline-icon,
.markdown td svg.lf-inline-icon,
.markdown th svg.lf-inline-icon,
.markdown blockquote svg.lf-inline-icon {
width: 1em !important;
height: 1em !important;
min-width: 0.875em;
min-height: 0.875em;
vertical-align: -0.14em;
}
/* Card grid: keep icons tied to card title scale, not body 1em */
.lf-card-icon svg.lf-inline-icon {
width: 1.25rem !important;
height: 1.25rem !important;
vertical-align: middle;
}
/* Images */
.image-rendering-crisp {
image-rendering: crisp-edges;
/* alias for google chrome */
image-rendering: -webkit-optimize-contrast;
}
.image-rendering-pixel {
image-rendering: pixelated;
}
.img-center {
display: flex;
justify-content: center;
width: 100%;
}
/* Add comprehensive image control */
.markdown img {
max-width: 100%;
height: auto;
display: block;
margin: 1rem auto;
max-height: 600px;
object-fit: contain;
}
/* Default size for most images — min() ensures container is always respected */
.markdown img:not(.resized-image) {
max-width: min(100%, 600px);
width: auto;
}
.resized-image {
width: 300px;
max-height: 500px;
}
/* Responsive images on mobile devices */
@media (max-width: 768px) {
.markdown img:not(.resized-image) {
max-width: 100%;
max-height: 500px;
}
.resized-image {
width: 100%;
max-width: 300px;
max-height: 400px;
}
}
/* Component details styling */
.markdown details {
width: 100%;
background: var(--ifm-background-color);
border: 1px solid var(--ifm-color-emphasis-300);
border-radius: var(--ifm-global-radius);
margin-bottom: 1rem;
}
.markdown details summary {
display: flex;
align-items: center;
gap: 0.5em;
list-style: none;
outline: none;
cursor: pointer;
}
.markdown details summary:focus-visible {
outline: 2px solid var(--ifm-color-primary, #a855f7);
outline-offset: 2px;
}
.markdown details [class^="collapsibleContent"] {
border-top: none !important;
padding: 0;
}
/* Breadcrumbs - Langfuse style */
.breadcrumbs__link {
background: none;
border: none;
padding: 0;
font-size: 0.875rem;
color: #44444d;
}
.breadcrumbs__link:hover {
background: none;
color: var(--ifm-color-primary);
}
.breadcrumbs__item--active .breadcrumbs__link {
background: none;
color: #2f2f35;
font-weight: 500;
}
[data-theme="dark"] .breadcrumbs__link {
color: #c7c7d0;
}
[data-theme="dark"] .breadcrumbs__item--active .breadcrumbs__link {
color: #e5e5ec;
}
/* Style the native Docusaurus breadcrumb separator */
.breadcrumbs__item--separator {
font-size: 0.75rem;
color: var(--ifm-color-emphasis-400);
margin: 0 0.25rem;
opacity: 0.6;
}
/* Center columns whose header matches "Format" or "Default" (class set by rehype plugin) */
.markdown table td.col-center,
.markdown table th.col-center {
text-align: center;
}
/* Left-align text in the Description column (always last, unless it's a centered column) */
.markdown table td:last-child:not(.col-center) {
text-align: left;
}