Skip to content

Commit 5164974

Browse files
committed
Re-vendor boostlook doc CSS fixes
Vendors the boostlook build with the scoping, scrollbar, copy-button, TOC focus, and search dark-mode fixes.
1 parent 07dece2 commit 5164974

1 file changed

Lines changed: 54 additions & 83 deletions

File tree

static/css/v3/boostlook-v3.css

Lines changed: 54 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -1678,36 +1678,14 @@ html.dark .boostlook .listingblock > .content > pre {
16781678
* Applies only if codeblock has child with class .toolbox
16791679
* and it`s title doesn`t includes any other elems as children
16801680
*/
1681+
/* Filename title intentionally hidden in the 2.0 toolbox design (only the copy
1682+
button shows). Collapsed to display:none; the former flex/layout declarations
1683+
were dead because the element never renders. */
16811684
.boostlook .doc .listingblock:has(.source-toolbox) .title:not(:has(a, span, p, code, pre)),
16821685
.boostlook .listingblock:has(.source-toolbox) .title:not(:has(a, span, p, code, pre)) {
1683-
position: absolute;
1684-
top: 1px;
1685-
height: 2rem;
1686-
max-width: calc(100% - 5rem);
1687-
white-space: nowrap;
1688-
overflow: hidden;
1689-
text-overflow: ellipsis;
1690-
padding: 0;
1691-
padding-left: var(--spacing-size-sm);
1692-
display: flex;
1693-
align-items: center;
1694-
gap: var(--spacing-size-2xs, 0.5rem);
1695-
color: var(--text-main-text-body-tetriary, #62676b);
1696-
font-family: "Mona Sans";
1697-
font-size: var(--typography-font-size-2xs, 0.75rem);
1698-
font-style: normal;
1699-
line-height: var(--typography-line-height-sm, 1rem);
1700-
letter-spacing: var(--spacing-size-size-0, 0rem);
1701-
z-index: 1;
17021686
display: none;
17031687
}
17041688

1705-
.boostlook .doc .listingblock:has(.source-toolbox) .title:not(:has(a, span, p, code, pre))::before,
1706-
.boostlook .listingblock:has(.source-toolbox) .title:not(:has(a, span, p, code, pre))::before {
1707-
content: var(--icon-file);
1708-
line-height: 0;
1709-
}
1710-
17111689
/* Code Block Margins */
17121690
.boostlook .listingblock:has(> .content > pre),
17131691
.boostlook .listingblock:has(> .content > pre.highlight),
@@ -1835,17 +1813,23 @@ html.dark .boostlook .listingblock > .content > pre {
18351813
border: 1px solid var(--border-border-primary, #e4e7ea);
18361814
background: var(--surface-background-main-surface-primary, #f5f6f8);
18371815
opacity: 0;
1838-
visibility: hidden;
18391816
transition: all 0.2s ease;
18401817
}
18411818

18421819
.boostlook .content:has(> pre):has(> .source-toolbox) .copy-button:hover {
18431820
border: 1px solid var(--border-border-blue, #92cbe9);
18441821
}
18451822

1846-
.boostlook .content:has(> pre):has(> .source-toolbox):hover .copy-button {
1823+
.boostlook .content:has(> pre):has(> .source-toolbox):hover .copy-button,
1824+
.boostlook .content:has(> pre):has(> .source-toolbox) .copy-button:focus-visible {
18471825
opacity: 1;
1848-
visibility: visible;
1826+
}
1827+
1828+
/* Keyboard users can tab to the copy button (kept in the tab order via opacity
1829+
rather than visibility:hidden) and get a visible focus ring. */
1830+
.boostlook .content:has(> pre):has(> .source-toolbox) .copy-button:focus-visible {
1831+
outline: 2px solid var(--border-border-blue, #92cbe9);
1832+
outline-offset: 2px;
18491833
}
18501834

18511835
/* Mobile: hide copy button (clipboard API requires HTTPS) */
@@ -3514,22 +3498,22 @@ div.source-docs-antora.boostlook:not(:has(.doc)):not(:has(>.boostlook)) > #conte
35143498
.boostlook *,
35153499
.boostlook pre,
35163500
.boostlook code,
3517-
.boostlook:has(:not(.doc)) div.table .table-contents {
3501+
.boostlook:not(:has(.doc)) div.table .table-contents {
35183502
scrollbar-width: thin;
35193503
scrollbar-color: var(--border-border-tetriary, #afb3b6) transparent;
35203504
}
35213505

35223506
@media screen and (min-width: 768px) {
35233507
.boostlook pre,
35243508
.boostlook code,
3525-
.boostlook:has(:not(.doc)) div.table .table-contents {
3509+
.boostlook:not(:has(.doc)) div.table .table-contents {
35263510
scrollbar-width: thin;
35273511
scrollbar-color: transparent transparent;
35283512
}
35293513

35303514
.boostlook pre:hover,
35313515
.boostlook code:hover,
3532-
.boostlook:has(:not(.doc)) div.table .table-contents:hover {
3516+
.boostlook:not(:has(.doc)) div.table .table-contents:hover {
35333517
scrollbar-color: var(--border-border-tetriary, #afb3b6) transparent;
35343518
}
35353519
}
@@ -3551,7 +3535,7 @@ html:not(.v3):has(.boostlook)::-webkit-scrollbar-track {
35513535
.boostlook *::-webkit-scrollbar-track,
35523536
.boostlook pre::-webkit-scrollbar-track,
35533537
.boostlook code::-webkit-scrollbar-track,
3554-
.boostlook:has(:not(.doc)) div.table .table-contents::-webkit-scrollbar-track {
3538+
.boostlook:not(:has(.doc)) div.table .table-contents::-webkit-scrollbar-track {
35553539
width: 6px;
35563540
background: transparent;
35573541
border-radius: var(--spacing-size-2xs, 0.5rem);
@@ -3562,21 +3546,21 @@ html:not(.v3):has(.boostlook)::-webkit-scrollbar-thumb,
35623546
.boostlook *::-webkit-scrollbar-thumb,
35633547
.boostlook pre::-webkit-scrollbar-thumb,
35643548
.boostlook code::-webkit-scrollbar-thumb,
3565-
.boostlook:has(:not(.doc)) div.table .table-contents::-webkit-scrollbar-thumb {
3549+
.boostlook:not(:has(.doc)) div.table .table-contents::-webkit-scrollbar-thumb {
35663550
width: 6px;
35673551
background: var(--border-border-tetriary, #afb3b6);
35683552
}
35693553

35703554
@media screen and (min-width: 768px) {
35713555
.boostlook pre::-webkit-scrollbar-thumb,
35723556
.boostlook code::-webkit-scrollbar-thumb,
3573-
.boostlook:has(:not(.doc)) div.table .table-contents::-webkit-scrollbar-thumb {
3557+
.boostlook:not(:has(.doc)) div.table .table-contents::-webkit-scrollbar-thumb {
35743558
background: transparent;
35753559
}
35763560

35773561
.boostlook pre:hover::-webkit-scrollbar-thumb,
35783562
.boostlook code:hover::-webkit-scrollbar-thumb,
3579-
.boostlook:has(:not(.doc)) div.table .table-contents:hover:-webkit-scrollbar-thumb {
3563+
.boostlook:not(:has(.doc)) div.table .table-contents:hover::-webkit-scrollbar-thumb {
35803564
background-color: var(--border-border-tetriary, #afb3b6);
35813565
}
35823566
}
@@ -4020,6 +4004,13 @@ div.source-docs-antora.boostlook:not(:has(article.doc)):not(:has(> .boostlook))
40204004
transform: none;
40214005
}
40224006

4007+
/* Restore a visible focus ring for keyboard users (the rule above clears the
4008+
default outline). */
4009+
.boostlook #toc .nav-item-toggle:focus-visible {
4010+
outline: 2px solid var(--border-border-blue, #92cbe9);
4011+
outline-offset: 2px;
4012+
}
4013+
40234014
/* Down-pointing caret (collapsed) */
40244015
.boostlook #toc .nav-item-toggle::after {
40254016
content: "";
@@ -4787,7 +4778,7 @@ html.dark .boostlook #toctitle .theme-toggle .theme-icon-dark { display: none; }
47874778
}
47884779

47894780
.boostlook .search-result-item:hover {
4790-
background: var(--colors-primary-50);
4781+
background: var(--surface-background-main-surface-primary);
47914782
}
47924783

47934784
.boostlook .search-result-item .no-result {
@@ -4834,7 +4825,7 @@ html.dark .boostlook #toctitle .theme-toggle .theme-icon-dark { display: none; }
48344825
.boostlook .search-result-document-hit .search-result-highlight {
48354826
padding: 0.1em 0.2em;
48364827
border-radius: var(--radius-xs, 0.125rem);
4837-
background: var(--colors-secondary-50);
4828+
background: var(--surface-background-main-surface-blue-secondary);
48384829
color: var(--text-main-text-link-blue);
48394830
font-weight: 500;
48404831
}
@@ -5237,32 +5228,32 @@ div.source-docs-antora.boostlook:not(:has(.doc)):not(:has(> .boostlook)) div.spi
52375228

52385229
/* Tables */
52395230
/* Make div with Table display block */
5240-
.boostlook:has(:not(.doc)) div.table {
5231+
.boostlook:not(:has(.doc)) div.table {
52415232
display: block;
52425233
}
52435234

52445235
/* Enable Horizontal Scroll */
5245-
.boostlook:has(:not(.doc)) div.table .table-contents,
5246-
.boostlook:has(:not(.doc)) .informaltable:has(> .table) {
5236+
.boostlook:not(:has(.doc)) div.table .table-contents,
5237+
.boostlook:not(:has(.doc)) .informaltable:has(> .table) {
52475238
overflow: auto;
52485239
}
52495240

52505241
/* References Table */
52515242
/* This is specific selector for refences tables which containes many tables and only tables as direct children */
5252-
.boostlook:has(:not(.doc)) .informaltable:has(> table:nth-of-type(2)):not(:has(> *:not(table))) {
5243+
.boostlook:not(:has(.doc)) .informaltable:has(> table:nth-of-type(2)):not(:has(> *:not(table))) {
52535244
display: flex;
52545245
flex-direction: column;
52555246
gap: var(--padding-padding-md, 1.125rem);
52565247
/* border: 2px solid red; */
52575248
}
52585249

52595250
/* Disable margins for all Headings inside table */
5260-
.boostlook:has(:not(.doc)) .informaltable:has(> .table) :is(h1, h2, h3, h4, h5, h6) {
5251+
.boostlook:not(:has(.doc)) .informaltable:has(> .table) :is(h1, h2, h3, h4, h5, h6) {
52615252
margin: 0;
52625253
}
52635254

52645255
/* Table has inner table th */
5265-
.boostlook:has(:not(.doc)) .informaltable:has(> table:nth-of-type(2)):not(:has(> *:not(table))) .table:has(.simplelist) th {
5256+
.boostlook:not(:has(.doc)) .informaltable:has(> table:nth-of-type(2)):not(:has(> *:not(table))) .table:has(.simplelist) th {
52665257
border: none;
52675258
padding: 0 0 var(--padding-padding-xs, 0.75rem) 0;
52685259
background: none;
@@ -5275,24 +5266,24 @@ div.source-docs-antora.boostlook:not(:has(.doc)):not(:has(> .boostlook)) div.spi
52755266
}
52765267

52775268
/* Disable global cell paddings */
5278-
.boostlook:has(:not(.doc)) .informaltable:has(> table:nth-of-type(2)):not(:has(> *:not(table))) .table:has(.simplelist) > tbody > tr > td {
5269+
.boostlook:not(:has(.doc)) .informaltable:has(> table:nth-of-type(2)):not(:has(> *:not(table))) .table:has(.simplelist) > tbody > tr > td {
52795270
padding: 0;
52805271
}
52815272

52825273
/* Add border radius to tbody first row */
5283-
.boostlook:has(:not(.doc)) .informaltable:has(> table:nth-of-type(2)):not(:has(> *:not(table))) .table:has(.simplelist) tr:last-child td:first-child {
5274+
.boostlook:not(:has(.doc)) .informaltable:has(> table:nth-of-type(2)):not(:has(> *:not(table))) .table:has(.simplelist) tr:last-child td:first-child {
52845275
border-top-left-radius: var(--spacing-size-2xs, 0.5rem);
52855276
overflow: hidden;
52865277
}
52875278

52885279
/* Add border radius to tbody first row */
5289-
.boostlook:has(:not(.doc)) .informaltable:has(> table:nth-of-type(2)):not(:has(> *:not(table))) .table:has(.simplelist) tr:last-child td:last-child {
5280+
.boostlook:not(:has(.doc)) .informaltable:has(> table:nth-of-type(2)):not(:has(> *:not(table))) .table:has(.simplelist) tr:last-child td:last-child {
52905281
border-top-right-radius: var(--spacing-size-2xs, 0.5rem);
52915282
overflow: hidden;
52925283
}
52935284

52945285
/* Select Inner Headings and make it look as table head */
5295-
.boostlook:has(:not(.doc)) .informaltable:has(> table:nth-of-type(2)):not(:has(> *:not(table))) .table:has(.simplelist) tbody :is(h1, h2, h3, h4, h5, h6) {
5286+
.boostlook:not(:has(.doc)) .informaltable:has(> table:nth-of-type(2)):not(:has(> *:not(table))) .table:has(.simplelist) tbody :is(h1, h2, h3, h4, h5, h6) {
52965287
padding: var(--padding-padding-3xs, 0.25rem) var(--padding-padding-2xs, 0.5rem);
52975288
gap: var(--spacing-size-xs, 0.75rem);
52985289
background: var(--surface-background-main-surface-primary, #f5f6f8);
@@ -5305,22 +5296,22 @@ div.source-docs-antora.boostlook:not(:has(.doc)):not(:has(> .boostlook)) div.spi
53055296
}
53065297

53075298
/* Inner table styles */
5308-
.boostlook:has(:not(.doc)) .informaltable:has(> table:nth-of-type(2)):not(:has(> *:not(table))) table.simplelist {
5299+
.boostlook:not(:has(.doc)) .informaltable:has(> table:nth-of-type(2)):not(:has(> *:not(table))) table.simplelist {
53095300
width: 100%;
53105301
}
53115302

5312-
.boostlook:has(:not(.doc)) .informaltable:has(> table:nth-of-type(2)):not(:has(> *:not(table))) table.simplelist td {
5303+
.boostlook:not(:has(.doc)) .informaltable:has(> table:nth-of-type(2)):not(:has(> *:not(table))) table.simplelist td {
53135304
border: none;
53145305
padding: var(--padding-padding-3xs, 0.25rem) var(--padding-padding-2xs, 0.5rem);
53155306
}
53165307

53175308
/* Footnotes */
5318-
.boostlook:has(:not(.doc)) .footnotes {
5309+
.boostlook:not(:has(.doc)) .footnotes {
53195310
margin-top: var(--padding-padding-lg);
53205311
border-top: 1px solid var(--border-border-primary);
53215312
}
53225313

5323-
.boostlook:has(:not(.doc)) .footnotes hr {
5314+
.boostlook:not(:has(.doc)) .footnotes hr {
53245315
display: none;
53255316
}
53265317

@@ -5579,16 +5570,10 @@ html.v3 .boostlook {
55795570
background: transparent;
55805571
}
55815572

5582-
/* Non-doc site components use v2's primary text color (near-black in light,
5583-
white in dark) rather than boostlook's lighter doc body grey. Paragraphs
5584-
inherit their container instead of boostlook's hardcoded `.boostlook p`
5585-
grey, so each component's own color flows through.
5586-
Font: boostlook's base container forces "Mona Sans" (!important) plus a
5587-
condensed font-variation-settings ("wght" 400, "wdth" 95). Non-doc site
5588-
components should render the site's own type instead, so inherit both the
5589-
family (!important to beat boostlook's base rule) and the variation settings
5590-
from the host page. Headings that set their own font-family (e.g.
5591-
--font-display) still win. */
5573+
/* Non-doc site components use v2's own text color and type, not boostlook's doc
5574+
grey and forced condensed "Mona Sans". Inherit family (!important to beat
5575+
boostlook's base rule) and variation settings from the host page; headings
5576+
with their own font-family (e.g. --font-display) still win. */
55925577
.boostlook:where(:not(:has(.doc))) {
55935578
color: var(--color-text-primary);
55945579
font-family: inherit !important;
@@ -5636,7 +5621,6 @@ html.v3 .boostlook {
56365621
font-size: var(--font-size-small);
56375622
}
56385623

5639-
/* Sit flush with the top, no leading margin on the first prose element. */
56405624
.boostlook.content-modal__prose > :first-child {
56415625
margin-top: 0;
56425626
}
@@ -5696,9 +5680,8 @@ html.v3 .boostlook {
56965680
color: var(--color-text-primary);
56975681
}
56985682

5699-
/* Ordered lists: native decimal numbering (a custom ::before counter only
5700-
suits the single bullet char and misaligns; browsers render numbers
5701-
cleanly and follow the item's font size). */
5683+
/* Ordered lists: native decimal numbering (a custom ::before counter
5684+
misaligns; native numbers follow the item's font size cleanly). */
57025685
.boostlook.markdown-content ol {
57035686
list-style: decimal;
57045687
padding-left: var(--space-xl);
@@ -5715,10 +5698,8 @@ html.v3 .boostlook {
57155698
text-underline-position: from-font;
57165699
}
57175700

5718-
/* Code blocks: defer to boostlook's own code styling (the boxed .boostlook pre
5719-
with its light/dark background, border and radius, and .boostlook pre code
5720-
for the monospace body). Only add horizontal-scroll safety so a wide line
5721-
scrolls inside the narrow card instead of overflowing it. */
5701+
/* Code blocks defer to boostlook's own code styling; only add horizontal-scroll
5702+
safety so a wide line scrolls inside the narrow card instead of overflowing. */
57225703
.boostlook.markdown-content pre {
57235704
overflow-x: auto;
57245705
}
@@ -5756,21 +5737,15 @@ html.v3 .boostlook {
57565737
font-weight: var(--font-weight-medium);
57575738
}
57585739

5740+
/* Color comes from the non-doc `color: inherit` rule above; this just keeps v2's size/spacing. */
57595741
.boostlook.markdown-content p {
5760-
/* Keep the card's paragraph size/spacing faithful to v2. Color comes from
5761-
the non-doc `color: inherit` rule above, so it follows the container
5762-
(v2's primary near-black) instead of boostlook's grey. */
57635742
font-size: var(--font-size-small);
57645743
line-height: var(--line-height-code);
57655744
letter-spacing: var(--letter-spacing-tight);
57665745
padding: 0;
57675746
margin: 0;
57685747
}
57695748

5770-
/* Inline code + code blocks intentionally have no card-specific override:
5771-
they inherit boostlook's code styling so the card matches the doc/site code
5772-
treatment (monospace inline code, boxed pre blocks with syntax colors). */
5773-
57745749
/* Post detail (news article body) — #2491. The container keeps its layout
57755750
(flex/gap/border) in post-detail.css; the rich-text typography lives here.
57765751
Body copy is intentionally secondary grey (overrides the non-doc primary
@@ -5839,13 +5814,9 @@ html.v3 .boostlook {
58395814
font-weight: var(--font-weight-medium);
58405815
}
58415816

5842-
/* Release highlights card (what's-new descriptions via inline_markdown) — #2491.
5843-
The description's layout and base type (secondary color, size, spacing) stay in
5844-
release-highlights-card.css; the only rich-text spans inline_markdown can emit
5845-
are <strong> and <code>. Bold uses the site's medium weight (the non-doc rule
5846-
above already drops boostlook's condensed axis). Inline code has no override, so
5847-
it inherits boostlook's code treatment — matching the release notes markdown card
5848-
on the same page. */
5817+
/* Release highlights card (what's-new via inline_markdown) — #2491. inline_markdown
5818+
emits only <strong> and <code>; layout/base type stays in release-highlights-card.css.
5819+
Bold uses the site's medium weight; inline code inherits boostlook's treatment. */
58495820
.boostlook.release-highlight__description strong {
58505821
font-weight: var(--font-weight-medium);
58515822
}

0 commit comments

Comments
 (0)