mirror of
https://github.com/fosrl/docs-v2.git
synced 2026-09-26 07:49:08 +02:00
1024 lines
21 KiB
CSS
1024 lines
21 KiB
CSS
@import 'tailwindcss';
|
|
@import 'fumadocs-ui/css/neutral.css';
|
|
@import 'fumadocs-ui/css/preset.css';
|
|
|
|
/* -------------------------------------------------------------------------- */
|
|
/* Pangolin palette (ported from the Mintlify docs.json + style.css) */
|
|
/* -------------------------------------------------------------------------- */
|
|
|
|
@theme {
|
|
--font-sans: var(--font-inter), ui-sans-serif, system-ui, sans-serif;
|
|
|
|
--color-pg-beige: #faf9f2; /* page background */
|
|
--color-pg-sand: #f2f0e7; /* nav, sidebar, code, cards */
|
|
--color-pg-line: #bbbbbb; /* hairlines, same as pangolin.net grey-light-8 */
|
|
--color-pg-ink: #202020; /* text + primary */
|
|
--color-pg-orange: #f36117; /* brand accent (dark primary in Mintlify) */
|
|
|
|
--color-fd-background: #faf9f2;
|
|
--color-fd-foreground: #202020;
|
|
--color-fd-muted: #f2f0e7;
|
|
--color-fd-muted-foreground: #6b6a63;
|
|
--color-fd-popover: #faf9f2;
|
|
--color-fd-popover-foreground: #202020;
|
|
--color-fd-card: #f2f0e7;
|
|
--color-fd-card-foreground: #202020;
|
|
--color-fd-border: #bbbbbb;
|
|
--color-fd-primary: #202020;
|
|
--color-fd-primary-foreground: #faf9f2;
|
|
--color-fd-secondary: #f2f0e7;
|
|
--color-fd-secondary-foreground: #202020;
|
|
--color-fd-accent: #e8e7e5;
|
|
--color-fd-accent-foreground: #202020;
|
|
--color-fd-ring: #bbbbbb;
|
|
--color-fd-overlay: rgba(32, 32, 32, 0.2);
|
|
|
|
--pg-code-bg: #f2f0e7;
|
|
--pg-code-border: #bbbbbb;
|
|
}
|
|
|
|
/* only used when `enableDarkMode` is on in lib/shared.ts */
|
|
.dark {
|
|
--color-fd-background: #161614;
|
|
--color-fd-foreground: #ecebe6;
|
|
--color-fd-muted: #1f1e1b;
|
|
--color-fd-muted-foreground: #a3a199;
|
|
--color-fd-popover: #1b1a18;
|
|
--color-fd-popover-foreground: #ecebe6;
|
|
--color-fd-card: #1f1e1b;
|
|
--color-fd-card-foreground: #ecebe6;
|
|
--color-fd-border: #2d2c28;
|
|
--color-fd-primary: #f36117;
|
|
--color-fd-primary-foreground: #161614;
|
|
--color-fd-secondary: #1f1e1b;
|
|
--color-fd-secondary-foreground: #ecebe6;
|
|
--color-fd-accent: #2d2c28;
|
|
--color-fd-accent-foreground: #ecebe6;
|
|
--color-fd-ring: #55534c;
|
|
|
|
--pg-code-bg: #1f1e1b;
|
|
--pg-code-border: #3a3934;
|
|
}
|
|
|
|
html {
|
|
scrollbar-gutter: stable;
|
|
}
|
|
|
|
html > body[data-scroll-locked] {
|
|
margin-right: 0px !important;
|
|
--removed-body-scroll-bar-size: 0px !important;
|
|
}
|
|
|
|
body {
|
|
background-color: var(--color-fd-background);
|
|
color: var(--color-fd-foreground);
|
|
}
|
|
|
|
/* pangolin.net button typeface */
|
|
@font-face {
|
|
font-family: 'Die Grotesk B';
|
|
src: url('/fonts/die-grotesk-b-regular.woff2') format('woff2');
|
|
font-weight: 400;
|
|
font-style: normal;
|
|
font-display: swap;
|
|
}
|
|
|
|
@font-face {
|
|
font-family: 'Die Grotesk B';
|
|
src: url('/fonts/die-grotesk-b-medium.woff2') format('woff2');
|
|
font-weight: 500;
|
|
font-style: normal;
|
|
font-display: swap;
|
|
}
|
|
|
|
/*
|
|
* Hairlines like pangolin.net (0.5px, #bbb). Unlayered, so these win over the 1px
|
|
* Tailwind border utilities used by Fumadocs; 2px accents (active tab) are untouched.
|
|
*/
|
|
.border {
|
|
border-width: 0.5px;
|
|
}
|
|
.border-t {
|
|
border-top-width: 0.5px;
|
|
}
|
|
.border-b {
|
|
border-bottom-width: 0.5px;
|
|
}
|
|
.border-l,
|
|
.border-s {
|
|
border-inline-start-width: 0.5px;
|
|
}
|
|
.border-r,
|
|
.border-e {
|
|
border-inline-end-width: 0.5px;
|
|
}
|
|
.border-x {
|
|
border-inline-width: 0.5px;
|
|
}
|
|
.border-y {
|
|
border-block-width: 0.5px;
|
|
}
|
|
|
|
/* -------------------------------------------------------------------------- */
|
|
/* Chrome: navbar, sidebar, banner */
|
|
/* -------------------------------------------------------------------------- */
|
|
|
|
/*
|
|
* Layout grid (used by app/(docs)/layout.tsx). Desktop: the sidebar is pinned to the
|
|
* left edge and content + TOC are centered in the remaining space, max 70rem like the
|
|
* old Mintlify site; the last column holds the AI chat panel when it is open.
|
|
*/
|
|
#nd-notebook-layout {
|
|
--pg-content-width: 70rem;
|
|
--pg-grid: 'header header' 'sidebar toc-popover' 'sidebar main' 1fr / var(--fd-sidebar-col)
|
|
minmax(0, 1fr);
|
|
}
|
|
|
|
@media (min-width: 1024px) {
|
|
#nd-notebook-layout {
|
|
/* width taken by the AI chat panel when it is open */
|
|
--pg-panel: 0px;
|
|
/* equal gutters that center content + TOC; they collapse to 0 on narrow screens */
|
|
--pg-gutter: max(
|
|
0px,
|
|
calc((100% - var(--fd-sidebar-col) - var(--pg-content-width) - var(--pg-panel)) / 2)
|
|
);
|
|
--pg-grid: 'header header header header header' 'sidebar . toc-popover toc-popover .'
|
|
'sidebar . main toc .' 1fr / var(--fd-sidebar-col) var(--pg-gutter) minmax(0, 1fr)
|
|
var(--fd-toc-width) calc(var(--pg-gutter) + var(--pg-panel));
|
|
}
|
|
|
|
/* set from components/ai/search.tsx while the chat panel is open */
|
|
#nd-notebook-layout[data-ai-open] {
|
|
--pg-panel: 400px;
|
|
}
|
|
|
|
/* slide the content along with the panel's open / close animation */
|
|
#nd-notebook-layout {
|
|
transition: grid-template-columns 200ms ease;
|
|
}
|
|
}
|
|
|
|
@media (min-width: 1536px) {
|
|
#nd-notebook-layout[data-ai-open] {
|
|
--pg-panel: 460px;
|
|
}
|
|
}
|
|
|
|
#nd-subnav {
|
|
background-color: color-mix(in srgb, var(--color-fd-muted) 92%, transparent);
|
|
}
|
|
|
|
#nd-subnav [data-header-body],
|
|
#nd-subnav [data-header-tabs] {
|
|
border-color: var(--color-fd-border);
|
|
}
|
|
|
|
/* tab row under the navbar */
|
|
#nd-subnav [data-header-tabs] a {
|
|
font-weight: 500;
|
|
}
|
|
|
|
#nd-sidebar {
|
|
background-color: var(--color-fd-muted);
|
|
border-inline-end: 0.5px solid var(--color-fd-border);
|
|
}
|
|
|
|
/* separators = Mintlify top-level group headings */
|
|
#nd-sidebar p[data-separator],
|
|
#nd-sidebar [data-separator] {
|
|
color: var(--color-fd-foreground);
|
|
font-weight: 600;
|
|
}
|
|
|
|
/*
|
|
* First group heading ("About") under the anchors: Fumadocs only drops its top margin
|
|
* when it is the very first element, but hidden mobile menu links come before it. Trim
|
|
* it so anchors -> "About" matches the gap between groups (~26px incl. viewport padding).
|
|
*/
|
|
#nd-sidebar p.mt-6:first-of-type {
|
|
margin-top: 0.625rem;
|
|
}
|
|
|
|
/* Mintlify-style sidebar anchors (Discord, Slack): icon tile + medium label */
|
|
.pg-anchor {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.75rem;
|
|
border-radius: 0.5rem;
|
|
padding: 0.25rem 0.5rem;
|
|
font-size: 0.875rem;
|
|
font-weight: 500;
|
|
color: var(--color-fd-muted-foreground);
|
|
transition: color 150ms;
|
|
}
|
|
|
|
.pg-anchor:hover {
|
|
color: var(--color-fd-foreground);
|
|
}
|
|
|
|
.pg-anchor-icon {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 1.5rem;
|
|
height: 1.5rem;
|
|
flex-shrink: 0;
|
|
border: 0.5px solid var(--color-fd-border);
|
|
border-radius: 0.375rem;
|
|
background-color: var(--color-fd-background);
|
|
color: var(--color-fd-muted-foreground);
|
|
transition:
|
|
color 150ms,
|
|
border-color 150ms,
|
|
background-color 150ms;
|
|
}
|
|
|
|
.pg-anchor-icon svg {
|
|
width: 0.875rem;
|
|
height: 0.875rem;
|
|
}
|
|
|
|
.pg-anchor:hover .pg-anchor-icon {
|
|
border-color: var(--color-fd-foreground);
|
|
background-color: var(--color-fd-foreground);
|
|
color: var(--color-fd-background);
|
|
}
|
|
|
|
.pg-banner {
|
|
background-color: var(--color-pg-ink);
|
|
color: #faf9f2;
|
|
font-size: 0.875rem;
|
|
}
|
|
|
|
.pg-banner button {
|
|
color: #faf9f2;
|
|
}
|
|
|
|
/* header buttons: pangolin.net `btn` / `btnSecondary` + `btnSm` */
|
|
.pg-btn {
|
|
display: inline-block;
|
|
border-radius: 9999px;
|
|
border: 0;
|
|
background-color: #202020;
|
|
color: #faf9f2;
|
|
font-family: 'Die Grotesk B', var(--font-sans);
|
|
font-size: 0.875rem;
|
|
font-weight: 500;
|
|
line-height: 1.4;
|
|
padding: 0.75rem 1.25rem;
|
|
white-space: nowrap;
|
|
text-decoration: none;
|
|
transition: transform 300ms;
|
|
}
|
|
|
|
.pg-btn:hover {
|
|
transform: scale(1.025);
|
|
}
|
|
|
|
.pg-btn-secondary {
|
|
border: 1px solid #bbbbbb;
|
|
background-color: #faf9f2;
|
|
color: #202020;
|
|
/* 1px border: keep the same outer size as the primary button */
|
|
padding: calc(0.75rem - 1px) calc(1.25rem - 1px);
|
|
}
|
|
|
|
.dark .pg-btn {
|
|
background-color: #ecebe6;
|
|
color: #161614;
|
|
}
|
|
|
|
.dark .pg-btn-secondary {
|
|
border-color: #3a3934;
|
|
background-color: transparent;
|
|
color: #ecebe6;
|
|
}
|
|
|
|
/* "Ask AI" button to the right of the header search (Mintlify style) */
|
|
.pg-ask-ai-btn {
|
|
display: inline-flex;
|
|
flex-shrink: 0;
|
|
align-items: center;
|
|
gap: 0.4rem;
|
|
height: 2.25rem;
|
|
padding: 0 0.85rem;
|
|
border: 0.5px solid var(--color-fd-border);
|
|
border-radius: 0.75rem;
|
|
background-color: color-mix(in srgb, var(--color-fd-secondary) 50%, transparent);
|
|
color: var(--color-fd-muted-foreground);
|
|
font-size: 0.875rem;
|
|
white-space: nowrap;
|
|
transition:
|
|
background-color 150ms,
|
|
color 150ms;
|
|
}
|
|
|
|
.pg-ask-ai-btn:hover,
|
|
.pg-ask-ai-btn[data-state='open'] {
|
|
background-color: var(--color-fd-accent);
|
|
color: var(--color-fd-accent-foreground);
|
|
}
|
|
|
|
.pg-ask-ai-btn svg {
|
|
width: 1rem;
|
|
height: 1rem;
|
|
color: var(--color-pg-orange);
|
|
}
|
|
|
|
/* logo: fixed height, width from the image's aspect ratio (never stretched) */
|
|
.pg-logo {
|
|
display: block;
|
|
height: 1.5rem;
|
|
width: auto;
|
|
max-width: none;
|
|
flex-shrink: 0;
|
|
object-fit: contain;
|
|
}
|
|
|
|
.pg-logo.hidden {
|
|
display: none;
|
|
}
|
|
|
|
.dark .pg-logo.dark\:block {
|
|
display: block;
|
|
}
|
|
|
|
.dark .pg-logo.dark\:hidden {
|
|
display: none;
|
|
}
|
|
|
|
/* ---------- AI chat input (Mintlify style) ---------- */
|
|
.pg-chat-input {
|
|
border: 0.5px solid var(--color-fd-border);
|
|
border-radius: 1rem;
|
|
background-color: var(--color-fd-background);
|
|
box-shadow: 0 1px 2px rgba(32, 32, 32, 0.04);
|
|
transition:
|
|
border-color 150ms,
|
|
box-shadow 150ms;
|
|
}
|
|
|
|
.pg-chat-input:focus-within {
|
|
border-color: #8d8d8d;
|
|
box-shadow: 0 4px 16px rgba(32, 32, 32, 0.08);
|
|
}
|
|
|
|
.pg-chat-send {
|
|
display: inline-flex;
|
|
flex-shrink: 0;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 1.9rem;
|
|
height: 1.9rem;
|
|
border-radius: 9999px;
|
|
background-color: var(--color-fd-primary);
|
|
color: var(--color-fd-primary-foreground);
|
|
transition:
|
|
opacity 150ms,
|
|
background-color 150ms;
|
|
}
|
|
|
|
.pg-chat-send:disabled {
|
|
background-color: #e8e7e5;
|
|
color: #8d8d8d;
|
|
cursor: default;
|
|
}
|
|
|
|
.dark .pg-chat-send:disabled {
|
|
background-color: #2d2c28;
|
|
}
|
|
|
|
/* sticky bar at the bottom of each page */
|
|
.pg-askbar-wrap {
|
|
position: sticky;
|
|
bottom: 1.25rem;
|
|
z-index: 20;
|
|
display: flex;
|
|
justify-content: center;
|
|
margin-top: 1.5rem;
|
|
pointer-events: none;
|
|
transition:
|
|
opacity 200ms,
|
|
translate 200ms;
|
|
}
|
|
|
|
.pg-askbar-hidden {
|
|
opacity: 0;
|
|
translate: 0 0.75rem;
|
|
}
|
|
|
|
.pg-askbar {
|
|
pointer-events: auto;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.5rem;
|
|
width: min(100%, 28rem);
|
|
padding: 0.4rem 0.4rem 0.4rem 1rem;
|
|
box-shadow: 0 8px 28px rgba(32, 32, 32, 0.1);
|
|
}
|
|
|
|
.pg-askbar-hidden .pg-askbar {
|
|
pointer-events: none;
|
|
}
|
|
|
|
.pg-askbar:focus-within {
|
|
box-shadow: 0 8px 28px rgba(32, 32, 32, 0.14);
|
|
}
|
|
|
|
.pg-askbar input {
|
|
flex: 1;
|
|
min-width: 0;
|
|
background: transparent;
|
|
font-size: 0.9rem;
|
|
outline: none;
|
|
}
|
|
|
|
/* iOS zooms the page when a focused field is under 16px. Search uses text-lg, so it doesn't. */
|
|
@media (hover: none) and (pointer: coarse) {
|
|
.pg-chat-field,
|
|
.pg-askbar input {
|
|
font-size: 16px;
|
|
}
|
|
}
|
|
|
|
.pg-askbar input::placeholder {
|
|
color: #8d8d8d;
|
|
}
|
|
|
|
.pg-askbar-kbd {
|
|
border: 0.5px solid var(--color-fd-border);
|
|
border-radius: 0.375rem;
|
|
padding: 0.05rem 0.35rem;
|
|
font-family: inherit;
|
|
font-size: 0.7rem;
|
|
color: var(--color-fd-muted-foreground);
|
|
}
|
|
|
|
@media (max-width: 767px) {
|
|
.pg-askbar-kbd {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
/* -------------------------------------------------------------------------- */
|
|
/* Content */
|
|
/* -------------------------------------------------------------------------- */
|
|
|
|
/* inline code: match pangolin.net/news */
|
|
.prose :where(code):not(:where(pre code, .not-prose code)) {
|
|
background-color: var(--pg-code-bg);
|
|
border: 0.5px solid var(--pg-code-border);
|
|
border-radius: 4px;
|
|
color: var(--color-fd-foreground);
|
|
font-size: 0.875em;
|
|
font-weight: 400;
|
|
padding: 0.125rem 0.35rem;
|
|
}
|
|
|
|
/* code blocks */
|
|
.prose figure.shiki,
|
|
figure.shiki {
|
|
background-color: var(--pg-code-bg);
|
|
border-color: var(--color-fd-border);
|
|
box-shadow: none;
|
|
}
|
|
|
|
figure.shiki pre,
|
|
figure.shiki .shiki {
|
|
background-color: transparent !important;
|
|
}
|
|
|
|
figure.shiki [data-line].highlighted,
|
|
figure.shiki .line.highlighted {
|
|
background-color: rgba(243, 97, 23, 0.1);
|
|
box-shadow: inset 2px 0 0 var(--color-pg-orange);
|
|
}
|
|
|
|
/* tables */
|
|
.prose table {
|
|
font-size: 0.875rem;
|
|
}
|
|
|
|
/* ---------- callouts: beige with a coloured bar on the left ---------- */
|
|
.pg-callout {
|
|
--pg-callout-bar: #525252;
|
|
position: relative;
|
|
display: flex;
|
|
gap: 0.75rem;
|
|
margin-block: 1.25rem;
|
|
padding: 0.9rem 1rem 0.9rem 1.5rem;
|
|
border-radius: 0.75rem;
|
|
background-color: var(--pg-code-bg);
|
|
color: var(--color-fd-foreground);
|
|
font-size: 0.9rem;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.pg-callout::before {
|
|
content: '';
|
|
position: absolute;
|
|
inset-block: 0;
|
|
left: 0;
|
|
width: 8px;
|
|
background-color: var(--pg-callout-bar);
|
|
}
|
|
|
|
.pg-callout[data-type='note'] {
|
|
--pg-callout-bar: #2563eb;
|
|
}
|
|
.pg-callout[data-type='info'] {
|
|
--pg-callout-bar: #525252;
|
|
}
|
|
.pg-callout[data-type='tip'] {
|
|
--pg-callout-bar: #16a34a;
|
|
}
|
|
.pg-callout[data-type='check'] {
|
|
--pg-callout-bar: #16a34a;
|
|
}
|
|
.pg-callout[data-type='warning'] {
|
|
--pg-callout-bar: #ca8a04;
|
|
}
|
|
.pg-callout[data-type='danger'] {
|
|
--pg-callout-bar: #dc2626;
|
|
}
|
|
|
|
.pg-callout-icon {
|
|
flex-shrink: 0;
|
|
margin-top: 0.15rem;
|
|
color: var(--pg-callout-bar);
|
|
}
|
|
|
|
.pg-callout-icon svg {
|
|
width: 1rem;
|
|
height: 1rem;
|
|
}
|
|
|
|
.pg-callout-body {
|
|
min-width: 0;
|
|
flex: 1;
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.pg-callout-body > :first-child {
|
|
margin-top: 0;
|
|
}
|
|
.pg-callout-body > :last-child {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
/* ---------- cards ---------- */
|
|
.pg-card-group {
|
|
display: grid;
|
|
gap: 1rem;
|
|
margin-block: 1.25rem;
|
|
grid-template-columns: repeat(1, minmax(0, 1fr));
|
|
}
|
|
|
|
@media (min-width: 640px) {
|
|
.pg-card-group {
|
|
grid-template-columns: repeat(min(var(--pg-cols, 2), 2), minmax(0, 1fr));
|
|
}
|
|
}
|
|
|
|
@media (min-width: 1024px) {
|
|
.pg-card-group {
|
|
grid-template-columns: repeat(var(--pg-cols, 2), minmax(0, 1fr));
|
|
}
|
|
}
|
|
|
|
.pg-card {
|
|
display: block;
|
|
overflow: hidden;
|
|
border-radius: 0.75rem;
|
|
background-color: var(--color-fd-card);
|
|
color: var(--color-fd-card-foreground);
|
|
margin-block: 1rem;
|
|
transition: background-color 150ms;
|
|
}
|
|
|
|
.pg-card-group > .pg-card {
|
|
margin-block: 0;
|
|
}
|
|
|
|
.pg-card-link {
|
|
position: relative;
|
|
}
|
|
|
|
.pg-card-link:hover {
|
|
background-color: var(--color-fd-accent);
|
|
}
|
|
|
|
.pg-card-overlay {
|
|
position: absolute;
|
|
inset: 0;
|
|
z-index: 1;
|
|
border-radius: inherit;
|
|
}
|
|
|
|
.pg-card-overlay:focus-visible {
|
|
outline: 2px solid var(--color-fd-ring);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
/* links inside a linked card stay clickable above the overlay */
|
|
.pg-card-link .pg-card-content a {
|
|
position: relative;
|
|
z-index: 2;
|
|
}
|
|
|
|
.pg-card-img {
|
|
width: 100%;
|
|
object-fit: cover;
|
|
}
|
|
|
|
.pg-card-inner {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 0.75rem;
|
|
padding: 1.25rem;
|
|
}
|
|
|
|
.pg-card-horizontal {
|
|
flex-direction: row;
|
|
align-items: center;
|
|
}
|
|
|
|
.pg-card-icon {
|
|
display: inline-flex;
|
|
color: var(--color-fd-foreground);
|
|
}
|
|
|
|
.pg-card-icon svg {
|
|
width: 1.25rem;
|
|
height: 1.25rem;
|
|
}
|
|
|
|
.pg-card-title {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.35rem;
|
|
font-weight: 600;
|
|
font-size: 0.95rem;
|
|
}
|
|
|
|
.pg-card-arrow {
|
|
width: 0.9rem;
|
|
height: 0.9rem;
|
|
color: var(--color-fd-muted-foreground);
|
|
}
|
|
|
|
.pg-card-content {
|
|
margin-top: 0.25rem;
|
|
color: var(--color-fd-muted-foreground);
|
|
font-size: 0.875rem;
|
|
}
|
|
|
|
.pg-card-content > :first-child {
|
|
margin-top: 0;
|
|
}
|
|
.pg-card-content > :last-child {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.pg-card-cta {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 0.2rem;
|
|
margin-top: 0.75rem;
|
|
font-size: 0.875rem;
|
|
font-weight: 500;
|
|
}
|
|
|
|
/* ---------- steps ---------- */
|
|
.pg-steps {
|
|
counter-reset: pg-step;
|
|
margin-block: 1.5rem;
|
|
}
|
|
|
|
.pg-step {
|
|
counter-increment: pg-step;
|
|
position: relative;
|
|
padding-left: 2.75rem;
|
|
padding-bottom: 1.75rem;
|
|
}
|
|
|
|
.pg-step::after {
|
|
content: '';
|
|
position: absolute;
|
|
left: 0.875rem;
|
|
top: 2.25rem;
|
|
bottom: 0.25rem;
|
|
width: 0.5px;
|
|
background-color: var(--color-fd-border);
|
|
}
|
|
|
|
.pg-step:last-child {
|
|
padding-bottom: 0.25rem;
|
|
}
|
|
|
|
.pg-step:last-child::after {
|
|
display: none;
|
|
}
|
|
|
|
.pg-step-marker {
|
|
position: absolute;
|
|
left: 0;
|
|
top: 0;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 1.75rem;
|
|
height: 1.75rem;
|
|
border-radius: 9999px;
|
|
background-color: var(--color-fd-muted);
|
|
font-size: 0.8rem;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.pg-step-marker:empty::before {
|
|
content: counter(pg-step);
|
|
}
|
|
|
|
.pg-step-title {
|
|
margin: 0 !important;
|
|
padding-top: 0.15rem;
|
|
font-weight: 600;
|
|
line-height: 1.5rem;
|
|
}
|
|
|
|
.pg-step-content > :first-child {
|
|
margin-top: 0.5rem;
|
|
}
|
|
.pg-step-content > :last-child {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
/* ---------- accordions & expandables ---------- */
|
|
.pg-accordion-group {
|
|
margin-block: 1.25rem;
|
|
border: 0.5px solid var(--color-fd-border);
|
|
border-radius: 0.75rem;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.pg-accordion {
|
|
border: 0.5px solid var(--color-fd-border);
|
|
border-radius: 0.75rem;
|
|
margin-block: 0.75rem;
|
|
background-color: var(--color-fd-background);
|
|
}
|
|
|
|
.pg-accordion-group > .pg-accordion {
|
|
margin: 0;
|
|
border: 0;
|
|
border-radius: 0;
|
|
}
|
|
|
|
.pg-accordion-group > .pg-accordion + .pg-accordion {
|
|
border-top: 0.5px solid var(--color-fd-border);
|
|
}
|
|
|
|
.pg-accordion > summary,
|
|
.pg-expandable > summary {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.6rem;
|
|
cursor: pointer;
|
|
list-style: none;
|
|
user-select: none;
|
|
}
|
|
|
|
.pg-accordion > summary::-webkit-details-marker,
|
|
.pg-expandable > summary::-webkit-details-marker {
|
|
display: none;
|
|
}
|
|
|
|
.pg-accordion > summary {
|
|
padding: 0.85rem 1rem;
|
|
}
|
|
|
|
.pg-accordion > summary:hover {
|
|
background-color: var(--color-fd-muted);
|
|
}
|
|
|
|
.pg-accordion-chevron {
|
|
width: 1rem;
|
|
height: 1rem;
|
|
flex-shrink: 0;
|
|
color: var(--color-fd-muted-foreground);
|
|
transition: transform 150ms;
|
|
}
|
|
|
|
details[open] > summary > .pg-accordion-chevron {
|
|
transform: rotate(90deg);
|
|
}
|
|
|
|
.pg-accordion-content {
|
|
padding: 0 1rem 1rem 2.6rem;
|
|
}
|
|
|
|
.pg-accordion-content > :first-child {
|
|
margin-top: 0;
|
|
}
|
|
.pg-accordion-content > :last-child {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.pg-expandable {
|
|
margin-top: 0.75rem;
|
|
border: 0.5px solid var(--color-fd-border);
|
|
border-radius: 0.6rem;
|
|
}
|
|
|
|
.pg-expandable > summary {
|
|
padding: 0.4rem 0.75rem;
|
|
font-size: 0.8rem;
|
|
color: var(--color-fd-muted-foreground);
|
|
}
|
|
|
|
.pg-expandable > summary:hover {
|
|
color: var(--color-fd-foreground);
|
|
}
|
|
|
|
.pg-expandable .pg-expandable-open {
|
|
display: none;
|
|
}
|
|
.pg-expandable[open] > summary .pg-expandable-open {
|
|
display: inline;
|
|
}
|
|
.pg-expandable[open] > summary .pg-expandable-closed {
|
|
display: none;
|
|
}
|
|
|
|
.pg-expandable-content {
|
|
padding: 0 0.9rem 0.25rem;
|
|
border-top: 0.5px solid var(--color-fd-border);
|
|
}
|
|
|
|
.pg-expandable-content > .pg-field:last-child {
|
|
border-bottom: 0;
|
|
}
|
|
|
|
/* ---------- response fields ---------- */
|
|
.pg-field {
|
|
padding-block: 1rem;
|
|
border-bottom: 0.5px solid var(--color-fd-border);
|
|
}
|
|
|
|
.pg-field-header {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
gap: 0.5rem;
|
|
font-size: 0.8rem;
|
|
}
|
|
|
|
.pg-field-name {
|
|
font-family: var(--font-mono, ui-monospace, monospace);
|
|
font-weight: 600;
|
|
font-size: 0.875rem;
|
|
color: var(--color-pg-orange);
|
|
background: none !important;
|
|
border: 0 !important;
|
|
padding: 0 !important;
|
|
}
|
|
|
|
.pg-field-type,
|
|
.pg-field-pill {
|
|
border-radius: 0.375rem;
|
|
background-color: var(--color-fd-muted);
|
|
color: var(--color-fd-muted-foreground);
|
|
padding: 0.1rem 0.45rem;
|
|
font-size: 0.75rem;
|
|
}
|
|
|
|
.pg-field-pill code {
|
|
background: none !important;
|
|
border: 0 !important;
|
|
padding: 0 !important;
|
|
font-size: 0.75rem !important;
|
|
}
|
|
|
|
.pg-field-required {
|
|
color: #dc2626;
|
|
font-weight: 500;
|
|
font-size: 0.75rem;
|
|
}
|
|
|
|
.pg-field-deprecated {
|
|
color: #ca8a04;
|
|
font-weight: 500;
|
|
font-size: 0.75rem;
|
|
}
|
|
|
|
.pg-field-body {
|
|
margin-top: 0.5rem;
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.pg-field-body > :first-child {
|
|
margin-top: 0;
|
|
}
|
|
.pg-field-body > :last-child {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
/* ---------- frames ---------- */
|
|
.pg-frame {
|
|
margin-block: 1.5rem;
|
|
}
|
|
|
|
.pg-frame-inner {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
gap: 0.5rem;
|
|
padding: 0.45rem;
|
|
border-radius: 0.75rem;
|
|
background-color: var(--pg-code-bg);
|
|
border: 0.5px solid var(--color-fd-border);
|
|
}
|
|
|
|
.pg-frame-inner img,
|
|
.pg-frame-inner video,
|
|
.pg-frame-inner iframe {
|
|
border-radius: 0.4rem;
|
|
max-width: 100%;
|
|
height: auto;
|
|
margin: 0;
|
|
}
|
|
|
|
.pg-frame-inner video,
|
|
.pg-frame-inner iframe {
|
|
align-self: stretch;
|
|
width: 100%;
|
|
aspect-ratio: 16 / 9;
|
|
}
|
|
|
|
.pg-frame figcaption,
|
|
.pg-frame-hint {
|
|
margin: 0;
|
|
padding-inline: 0.35rem;
|
|
text-align: center;
|
|
font-size: 0.85rem;
|
|
line-height: 1.4;
|
|
color: var(--color-fd-muted-foreground);
|
|
}
|
|
|
|
.prose img {
|
|
border-radius: 0.6rem;
|
|
}
|
|
|
|
/* ---------- changelog updates ---------- */
|
|
.pg-update {
|
|
display: grid;
|
|
gap: 1rem;
|
|
padding-block: 1.5rem;
|
|
border-bottom: 0.5px solid var(--color-fd-border);
|
|
}
|
|
|
|
@media (min-width: 768px) {
|
|
.pg-update {
|
|
grid-template-columns: 10rem 1fr;
|
|
}
|
|
}
|
|
|
|
/* ---------- footer ---------- */
|
|
.pg-footer {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 1rem;
|
|
margin-top: 3rem;
|
|
padding-top: 1.5rem;
|
|
border-top: 0.5px solid var(--color-fd-border);
|
|
}
|
|
|
|
.pg-download {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 0.4rem;
|
|
height: 2.5rem;
|
|
padding: 0 0.75rem;
|
|
border-radius: 0.5rem;
|
|
border: 1px solid var(--color-fd-border);
|
|
background-color: #fff;
|
|
color: var(--color-fd-muted-foreground);
|
|
font-size: 0.875rem;
|
|
line-height: 1;
|
|
white-space: nowrap;
|
|
text-decoration: none;
|
|
transition:
|
|
color 150ms,
|
|
background-color 150ms;
|
|
}
|
|
|
|
.pg-download:hover {
|
|
background-color: var(--color-fd-accent);
|
|
color: var(--color-fd-foreground);
|
|
}
|
|
|
|
.dark .pg-download {
|
|
background-color: var(--color-fd-card);
|
|
}
|