Files
xrpl-dev-portal/@theme/styles.css
2026-08-21 12:32:11 -07:00

460 lines
14 KiB
CSS

html.light pre code {
color: var(--code-block-controls-text-color) !important;
}
ul.nav.navbar-nav {
align-items: center;
width: 100%;
}
.top-nav .topnav-search {
flex-grow: 1;
}
.clio-only-notice {
background-color: var(--admonition-info-bg-color);
margin-left: var(--spacing-sm);
padding: var(--spacing-xs);
border-radius: var(--border-radius);
}
#content .heading-anchor h1,
#content .heading-anchor h2,
#content .heading-anchor h3,
#content .heading-anchor h4,
#content .heading-anchor h5,
#content .heading-anchor h6 {
/* Fix left-alignment of headers in md content */
gap: 0;
}
:root, :root.dark {
--navbar-height: 80px;
/* XRPL color palette; match to styles/_colors.scss
Some colors don't have a 10 equivalent so 9 is repeated.
These are in reverse order of the ones in styles/_colors.scss
so that they correspond to the same-named variables provided by
styled-components as part of Redocly.
*/
/* Redocly doesn't have vars for grays by default */
--color-gray-1: #111112;
--color-gray-2: #232325;
--color-gray-3: #343437;
--color-gray-4: #454549;
--color-gray-5: #838386;
--color-gray-6: #A2A2A4;
--color-gray-7: #C1C1C2;
--color-gray-8: #E0E0E1;
--color-gray-9: #F5F5F7;
--color-gray-10: var(--color-gray-9);
/* color-red = XRPL $magenta */
--color-red-1: #4C0026;
--color-red-2: #4C0026;
--color-red-3: #80003F;
--color-red-4: #B20058;
--color-red-5: #E50071;
--color-red-6: #FF198B;
--color-red-7: #FF4BA4;
--color-red-8: #FF80BF;
--color-red-9: #FFB2D8;
--color-red-10: #FFE5F2;
/* color-green = XRPL $green */
--color-green-1: #0A2E1B;
--color-green-2: #145C35;
--color-green-3: #1E8A50;
--color-green-4: #28B86A;
--color-green-5: #2DCF78;
--color-green-6: #32E685;
--color-green-7: #5BEB9D;
--color-green-8: #84F0B6;
--color-green-9: #ADF5CE;
--color-green-10: #D6FAE7;
/* color-gold = XRPL $yellow */
--color-gold-1: #4B4C00;
--color-gold-2: #4B4C00;
--color-gold-3: #7D8000;
--color-gold-4: #AEB200;
--color-gold-5: #E0E500;
--color-gold-6: #FAFF19;
--color-gold-7: #FBFF4C;
--color-gold-8: #FCFF80;
--color-gold-9: #FDFFB2;
--color-gold-10: #FEFFE5;
/* color-blue = XRPL $blue */
--color-blue-1: #001133;
--color-blue-2: #002E4C;
--color-blue-3: #004D80;
--color-blue-4: #006BB2;
--color-blue-5: #008AE5;
--color-blue-6: #19A3FF;
--color-blue-7: #4BB7FF;
--color-blue-8: #80CCFF;
--color-blue-9: #B2E0FF;
--color-blue-10: #E5F5FF;
/* color purple = XRPL $blue-purple */
--color-purple-1: #20004C;
--color-purple-2: #20004C;
--color-purple-3: #350080;
--color-purple-4: #4A00B2;
--color-purple-5: #5F00E5;
--color-purple-6: #7919FF;
--color-purple-7: #9A52FF;
--color-purple-8: #B480FF;
--color-purple-9: #D2B2FF;
--color-purple-10: #F0E5FF;
/* color-magenta = XRPL $red-purple */
--color-magenta-1: #40004C;
--color-magenta-2: #40004C;
--color-magenta-3: #6B0080;
--color-magenta-4: #9500B2;
--color-magenta-5: #C000E5;
--color-magenta-6: #D919FF;
--color-magenta-7: #E24CFF;
--color-magenta-8: #EA80FF;
--color-magenta-9: #F2B2FF;
--color-magenta-10: #FBE5FF;
/* XRPL doesn't have a color-cyan equivalent*
--color-cyan-1: #002329;*
--color-cyan-2: #00474f;*
--color-cyan-3: #006d75;*
--color-cyan-4: #08979c;*
--color-cyan-5: #13c2c2;*
--color-cyan-6: #36cfc9;*
--color-cyan-7: #5cdbd3;*
--color-cyan-8: #87e8de;*
--color-cyan-9: #b5f5ec;*
--color-cyan-10: #e6fffb; */
/* color-yellow = XRPL $yellow */
--color-yellow-1: #4B4C00;
--color-yellow-2: #4B4C00;
--color-yellow-3: #7D8000;
--color-yellow-4: #AEB200;
--color-yellow-5: #E0E500;
--color-yellow-6: #FAFF19;
--color-yellow-7: #FBFF4C;
--color-yellow-8: #FCFF80;
--color-yellow-9: #FDFFB2;
--color-yellow-10: #FEFFE5;
/* XRPL doesn't have a color-lime equivalent*
--color-lime-1: #254000;*
--color-lime-2: #3f6600;*
--color-lime-3: #5b8c00;*
--color-lime-4: #7cb305;*
--color-lime-5: #a0d911;*
--color-lime-6: #bae637;*
--color-lime-7: #d3f261;*
--color-lime-8: #eaff8f;*
--color-lime-9: #f4ffb8;*
--color-lime-10: #fcffe6; */
/* XRPL doesn't have a color-geekblue equivalent*
--color-geekblue-1: #030852;*
--color-geekblue-2: #061178;*
--color-geekblue-3: #10239e;*
--color-geekblue-4: #1d39c4;*
--color-geekblue-5: #2f54eb;*
--color-geekblue-6: #597ef7;*
--color-geekblue-7: #85a5ff;*
--color-geekblue-8: #adc6ff;*
--color-geekblue-9: #d6e4ff;*
--color-geekblue-10: #f0f5ff; */
/* Dark mode colors by default */
--color-primary-bg: var(--color-gray-10);
/* --color-primary-bg-hover: #d6dfff;
--color-primary-border: #adbcff;
--color-primary-border-hover: #8a99ff;
--color-primary-hover: #6678ff;
--color-primary-base: #434dfa;
--color-primary-active: #2f31d4;
--color-primary-text-hover: #201dad;
--color-primary-text: #161087;
--color-primary-text-active: #0d086e;*/
--link-color-primary: white;
--link-decoration: underline;
--link-font-weight: var(--font-weight-regular);
/* See :root.dark below for the contrast rationale. */
--link-color-primary-hover: var(--color-purple-8);
--link-decoration-hover: underline;
--link-color-visited: white;
--link-visited-decoration: underline;
--bg-color: var(--color-gray-1); /* was --color-gray-10 */
--bg-color-raised: var(--color-gray-2);
--background-color: var(--bg-color);
--font-family-base: 'Work Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
--heading-font-family: var(--font-family-base);
--inline-code-font-family: "Space Mono", monospace;
--inline-code-text-color: var(--color-green-7);
--inline-code-bg-color: var(--color-green-1);
--inline-code-border-radius: 0;
--heading-anchor-color: var(--color-purple-7);
--h1-font-size: 3rem;
--h2-font-size: 2.5rem;
--h3-font-size: 2.125rem;
--h3-font-weight: 600;
--h4-font-size: 1.75rem;
--h4-line-height: 2rem;
--h5-font-size: 1.25rem;
--h5-line-height: 1.5rem;
--menu-container-padding-top: 0;
--md-content-padding: 4px 0;
--toc-offset-top: 2px;
--sidebar-border-color: transparent;
--sidebar-bg-color: transparent;
--sidebar-margin-horizontal: 32px;
--border-radius-md: 4px;
--code-block-bg-color: var(--color-gray-2);
--code-block-controls-bg-color: var(--color-gray-2);
--code-block-controls-border: none;
--code-block-padding: 0 2rem 1.5rem 2rem;
--breadcrumbs-margin-bottom: 0.5rem;
--breadcrumbs-text-color: var(--color-gray-4);
--breadcrumbs-gap: 0 8px;
--breadcrumbs-font-size: 0.833em;
--footer-bg-color: transparent;
--footer-column-divider-color: transparent;
--footer-border-color: transparent;
--footer-title-font-weight: 600;
--footer-title-font-size: 1rem;
--footer-title-text-color: var(--color-gray-6);
--menu-item-padding-horizontal: 0px;
--menu-item-bg-color-active: var(--color-gray-2);
--menu-item-bg-color-active-hover: var(--color-gray-3);
--md-list-left-padding: 40px;
--md-list-margin: 0 0 20px 0;
--md-table-header-bg-color: var(--color-gray-3);
--md-table-border-color: var(--color-gray-3);
--md-tabs-content-padding: 0;
--md-tabs-tab-wrapper-padding: 0;
--text-color-helper: var(--color-gray-6);
--color-text-primary: white;
--button-color-hover: white;
--text-color-secondary: var(--color-gray-9); /* inherited for adominition text color */
--admonition-success-bg-color: var(--color-green-2);
--admonition-info-bg-color: var(--color-blue-4);
/* none of the yellow shades in the XRPL palette work well with "warning"
admonitions, so leave it the default */
--admonition-danger-bg-color: var(--color-red-3);
}
:root.light {
/* #141414 == Sass $black / $gray-900 (styles/_colors.scss). Hardcoded
because this is plain CSS and can't reference Sass vars; defining it on
the SCSS side instead gets stripped by PurgeCSS (its var() consumer, the
generated link rule, lives in this theme layer, not the SCSS bundle). */
--link-color-primary: black;
--link-color-primary-hover: var(--color-purple-4);
--link-color-visited: black;
--text-color-secondary: black;
--code-block-bg-color: var(--color-gray-9);
--code-block-controls-bg-color: var(--color-gray-8);
--code-block-controls-border: none;
--md-tabs-active-tab-bg-color: var(--color-gray-7);
--md-tabs-hover-tab-bg-color: var(--color-gray-8);
--inline-code-bg-color: var(--color-gray-8);
--search-trigger-bg-color: var(--color-gray-8);
--search-trigger-color: var(--color-gray-5);
--modal-bg-color: var(--color-gray-9);
--language-picker-border-color: var(--color-gray-7);
--language-picker-background-color: var(--color-gray-8);
--select-list-bg-color: var(--color-gray-8);
--button-bg-color-secondary: var(--color-gray-8);
--footer-title-text-color: black;
--bg-color: var(--color-gray-9);
--bg-color-raised: var(--color-gray-8);
--button-content-color-link: black;
--menu-item-bg-color-active: var(--color-gray-8);
--menu-item-bg-color-active-hover: var(--color-gray-7);
--md-table-header-bg-color: var(--color-gray-8);
--md-table-border-color: var(--color-gray-8);
--bg-color: var(--color-gray-8);
--code-panel-bg-color: var(--color-blue-4);
--layer-color-hover: var(--color-gray-9);
--code-block-text-color: var(--color-gray-1);
--code-block-tokens-comment-color: var(--color-gray-4);
--code-block-tokens-constant-color: var(--color-gray-1);
--code-block-tokens-function-color: var(--color-red-4);
--code-block-tokens-keyword-color: var(--color-magenta-4);
--code-block-tokens-operator-color: black;
--code-block-tokens-string-color: var(--color-green-2);
--bg-raised-gradient: "";
--text-color-helper: var(--color-gray-4);
--button-color-hover: black;
--admonition-success-bg-color: var(--color-green-9);
--admonition-info-bg-color: var(--color-blue-9);
--admonition-warning-bg-color: var(--color-yellow-9);
--admonition-danger-bg-color: var(--color-red-9);
}
:root.dark {
--link-color-primary: white;
--link-color-visited: white;
/* purple-7 was ~4.5:1 against the dark background, right at the AA line; purple-8 is ~6.7:1. */
--link-color-primary-hover: var(--color-purple-8);
--navbar-bg-color: var(--color-gray-2); /* controls search box bg */
--modal-bg-color: var(--color-gray-2); /* controls search modal bg */
--search-highlight-text-color: var(--color-blue-7);
--code-block-text-color: var(--color-gray-9);
--code-block-tokens-comment-color: var(--color-gray-7);
--code-block-tokens-constant-color: var(--color-gray-9);
--code-block-tokens-keyword-color: var(--color-magenta-8);
--code-block-tokens-string-color: var(--color-blue-8);
--md-tabs-active-tab-bg-color: var(--color-gray-4);
--md-tabs-hover-tab-bg-color: var(--color-gray-3);
--code-panel-bg-color: var(--color-blue-3);
--layer-color-hover: var(--color-gray-3);
--bg-raised-gradient: "";
/* The base value (--color-gray-4) is tuned for the light background; dark mode
needs the inverse end of the scale. gray-6 on gray-1 is 7.41:1, matching light
mode's 7.23:1, so breadcrumbs are equally de-emphasized in both themes. */
--breadcrumbs-text-color: var(--color-gray-6);
}
/* The open breadcrumb dropdown menu inherits the generic --dropdown-menu-item-color
(--text-color-secondary: gray-9 in dark, black in light), which is brighter than
the breadcrumb trail. Re-point the menu at the breadcrumb tokens so the trail, the
trigger, and the open menu all read as one color in both themes. Scoped to
breadcrumbs so the language picker and nav dropdowns are unaffected.
Two things this rule has to live with:
- It belongs in this theme layer, not the SCSS bundle: PurgeCSS runs with
`variables: true`, and these tokens' var() consumers are Redocly's runtime
styled-components under node_modules (excluded from its `content`), so a
custom-property-only rule in the SCSS bundle gets stripped.
- --dropdown-menu-item-color is the token that matters, not
--dropdown-menu-text-color. The former is declared at :root as
var(--dropdown-menu-text-color), so that var() is substituted in :root's
context; redefining only the source token here would silently do nothing. */
[data-component-name="Breadcrumbs/BreadcrumbDropdown"] {
--dropdown-menu-text-color: var(--breadcrumbs-text-color);
--dropdown-menu-item-color: var(--breadcrumbs-text-color);
--dropdown-menu-item-color-hover: var(--breadcrumbs-text-color-active);
}
:root .form-control-plaintext {
color: var(--text-color);
}
/* CodeMirror font overrides */
.cm-theme {
.cm-scroller {
font-family: var(--code-block-font-family) !important;
font-size: var(--code-block-font-size) !important;
}
}
/* Keep active tab visually static on hover */
button[role="tab"].active {
--md-tabs-hover-tab-bg-color: var(--md-tabs-active-tab-bg-color);
--md-tabs-hover-tab-text-color: var(--md-tabs-active-tab-text-color);
}
/* Fix unnecessary horizontal scrolling of tables in Japanese */
[lang="ja"] table.md {
word-break: break-word;
}
[lang="ja"] table.md th {
min-width: 7em;
}
[data-component-name="Search/SearchTrigger"] > div {
justify-content: start;
width: 100%;
}
[data-component-name="Markdown/Markdown"] {
--md-table-font-size: 14px;
--md-table-line-height: 1.5;
}
[data-component-name="Markdown/Markdown"] td p {
font-size: var(--md-table-font-size);
line-height: var(--md-table-line-height);
}
@media screen and (max-width: 959.9px) {
[data-component-name="Layout/PageLayout"] {
flex-direction: column-reverse;
}
[data-component-name="Sidebar/Sidebar"] {
display: block;
position: static;
height: auto;
}
#content {
width: auto;
}
[data-component-name="Menu/MenuContainer"] {
overscroll-behavior: auto;
}
}
:root {
--ai-assistant-button-bottom: 16px;
--ai-assistant-button-right: 71px; /* align w/ Osano cookie widget (mobile) */
}
@media screen and (min-width: 990px) {
:root {
--ai-assistant-button-right: 86px;
}
[data-component-name="LanguagePicker/LanguagePicker"] {
display: block;
}
[data-component-name="Search/SearchTrigger"] > button {
display: none;
}
[data-component-name="Search/SearchTrigger"] > div {
display: inline-flex;
}
}