baseline-foundry 0.1.4 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -9
- package/config/experiments/ibm-plex-engine-smoke.json +1 -1
- package/config/experiments/ubuntu-engine-smoke.json +1 -1
- package/config/foundation-theme.json +1 -1
- package/config/tiers/app.json +6 -6
- package/config/tiers/documentation.json +2 -2
- package/config/tiers/editorial.json +1 -1
- package/config/tiers/os.json +6 -6
- package/dist/baseline-grid-overlay.js +2 -2
- package/dist/build.js +4 -4
- package/dist/code-snippet.js +1 -1
- package/dist/css-app-tier.js +16 -5
- package/dist/css-components/article-pagination.js +9 -8
- package/dist/css-components/button-actions.js +24 -4
- package/dist/css-components/cards-options.js +8 -8
- package/dist/css-components/chip-badge-status.d.ts +0 -3
- package/dist/css-components/chip-badge-status.js +57 -10
- package/dist/css-components/content-card.d.ts +7 -7
- package/dist/css-components/content-card.js +17 -16
- package/dist/css-components/control-row.d.ts +1 -1
- package/dist/css-components/control-row.js +1 -1
- package/dist/css-components/document-navigation.js +66 -29
- package/dist/css-components/editorial-content.js +1 -1
- package/dist/css-components/interactive-feedback.js +50 -28
- package/dist/css-components/interactive-tables.js +13 -8
- package/dist/css-components/legacy-navigation.d.ts +0 -1
- package/dist/css-components/legacy-navigation.js +108 -32
- package/dist/css-components/linked-logo-site-layout.d.ts +3 -3
- package/dist/css-components/linked-logo-site-layout.js +17 -20
- package/dist/css-components/list-tree.js +21 -19
- package/dist/css-components/list.js +9 -7
- package/dist/css-components/logo-media.d.ts +6 -6
- package/dist/css-components/logo-media.js +38 -27
- package/dist/css-components/navigation-layout.js +6 -8
- package/dist/css-components/panel.js +12 -12
- package/dist/css-components/search-box-and-filter.d.ts +0 -1
- package/dist/css-components/search-box-and-filter.js +18 -19
- package/dist/css-components/sites-editorial-ports.d.ts +3 -4
- package/dist/css-components/sites-editorial-ports.js +61 -29
- package/dist/css-components/sites-foundation.js +15 -19
- package/dist/css-components/sites-rich-lists.d.ts +5 -5
- package/dist/css-components/sites-rich-lists.js +26 -36
- package/dist/css-components/static-content-ports.d.ts +3 -3
- package/dist/css-components/static-content-ports.js +51 -37
- package/dist/css-components/tab-section.d.ts +3 -3
- package/dist/css-components/tab-section.js +34 -26
- package/dist/css-components/table.js +4 -7
- package/dist/css-components/tabs-choice-breadcrumbs.js +25 -21
- package/dist/css-components/tiered-list-equal-height-row.js +10 -10
- package/dist/css-components.js +243 -124
- package/dist/css-grid.d.ts +1 -1
- package/dist/css-grid.js +18 -8
- package/dist/css.js +94 -18
- package/dist/experiments/ibm-plex-engine-smoke/styles.css +1005 -563
- package/dist/experiments/ibm-plex-engine-smoke/surfaces.json +2 -2
- package/dist/experiments/ibm-plex-engine-smoke/tokens.json +1 -1
- package/dist/in-page-navigation.js +1 -1
- package/dist/presets/app-tier/styles.css +1046 -593
- package/dist/presets/app-tier/surfaces.json +17 -17
- package/dist/presets/app-tier/tokens.json +7 -7
- package/dist/presets/prose/styles.css +1036 -587
- package/dist/presets/prose/surfaces.json +17 -17
- package/dist/presets/prose/tokens.json +1 -1
- package/dist/resizable-aside.js +12 -4
- package/dist/styles.css +1036 -587
- package/dist/surfaces.json +17 -17
- package/dist/tiers/app/styles.css +1046 -593
- package/dist/tiers/app/surfaces.json +17 -17
- package/dist/tiers/app/tokens.json +7 -7
- package/dist/tiers/documentation/styles.css +1037 -588
- package/dist/tiers/documentation/surfaces.json +17 -17
- package/dist/tiers/documentation/tokens.json +2 -2
- package/dist/tiers/editorial/styles.css +1036 -587
- package/dist/tiers/editorial/surfaces.json +17 -17
- package/dist/tiers/editorial/tokens.json +1 -1
- package/dist/tiers/os/styles.css +1042 -593
- package/dist/tiers/os/surfaces.json +17 -17
- package/dist/tiers/os/tokens.json +7 -7
- package/dist/tokens.json +1 -1
- package/dist/types.d.ts +1 -1
- package/docs/publishing.md +1 -1
- package/package.json +2 -2
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
background-image: linear-gradient(
|
|
29
29
|
to top,
|
|
30
30
|
var(--bf-baseline-grid-color),
|
|
31
|
-
var(--bf-baseline-grid-color)
|
|
32
|
-
transparent
|
|
31
|
+
var(--bf-baseline-grid-color) 0.0625rem,
|
|
32
|
+
transparent 0.0625rem,
|
|
33
33
|
transparent
|
|
34
34
|
);
|
|
35
35
|
background-size: 100% var(--bf-baseline-grid-size);
|
|
@@ -455,7 +455,7 @@ html.u-baseline-grid::after {
|
|
|
455
455
|
:where(.bf-theme) :where(a) {
|
|
456
456
|
color: var(--bf-color-link);
|
|
457
457
|
text-decoration: none;
|
|
458
|
-
text-decoration-thickness:
|
|
458
|
+
text-decoration-thickness: 0.0625rem;
|
|
459
459
|
text-underline-offset: 0.12em;
|
|
460
460
|
}
|
|
461
461
|
|
|
@@ -468,8 +468,22 @@ html.u-baseline-grid::after {
|
|
|
468
468
|
}
|
|
469
469
|
|
|
470
470
|
:where(.bf-theme) :where(a:focus-visible) {
|
|
471
|
-
outline:
|
|
472
|
-
outline-offset:
|
|
471
|
+
outline: 0.125rem solid var(--bf-color-focus);
|
|
472
|
+
outline-offset: 0.125rem;
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
/* Standalone anchors need the same metric-owned text box as adjacent body
|
|
476
|
+
* controls. Raw anchors remain inline so prose links still participate in the
|
|
477
|
+
* surrounding line box. */
|
|
478
|
+
:where(.bf-theme) :where(a.bf-text-link) {
|
|
479
|
+
display: inline-block;
|
|
480
|
+
font-family: var(--bf-body-font-family);
|
|
481
|
+
font-size: var(--bf-body-font-size);
|
|
482
|
+
font-style: var(--bf-body-font-style);
|
|
483
|
+
font-weight: var(--bf-body-font-weight);
|
|
484
|
+
line-height: var(--bf-body-line-height);
|
|
485
|
+
margin-block: 0 var(--bf-body-margin-bottom);
|
|
486
|
+
padding-block: var(--bf-body-nudge-start) 0;
|
|
473
487
|
}
|
|
474
488
|
|
|
475
489
|
:where(.bf-theme) :where(code) {
|
|
@@ -480,7 +494,7 @@ html.u-baseline-grid::after {
|
|
|
480
494
|
:where(.bf-theme) :where(.bf-page) {
|
|
481
495
|
margin-inline: auto;
|
|
482
496
|
max-inline-size: var(--bf-content-max-width);
|
|
483
|
-
padding-inline:
|
|
497
|
+
padding-inline: var(--bf-page-margin);
|
|
484
498
|
}
|
|
485
499
|
|
|
486
500
|
:where(.bf-theme) :where(.bf-page.is-fill) {
|
|
@@ -563,7 +577,14 @@ html.u-baseline-grid::after {
|
|
|
563
577
|
}
|
|
564
578
|
|
|
565
579
|
:where(.bf-theme) :where(.bf-stack.is-flush) {
|
|
566
|
-
--bf-stack-space:
|
|
580
|
+
--bf-stack-space: 0rem;
|
|
581
|
+
}
|
|
582
|
+
|
|
583
|
+
/* A metric-flush stack is an explicit relationship between adjacent text
|
|
584
|
+
* roles. It retains the outer role nudges while cancelling only the preceding
|
|
585
|
+
* end compensation and following start nudge; no guessed negative gap is used. */
|
|
586
|
+
:where(.bf-theme) :where(.bf-stack.is-metric-flush) {
|
|
587
|
+
--bf-stack-space: 0rem;
|
|
567
588
|
}
|
|
568
589
|
|
|
569
590
|
:where(.bf-theme) :where(.bf-stack.is-extra-dense) {
|
|
@@ -591,10 +612,19 @@ html.u-baseline-grid::after {
|
|
|
591
612
|
}
|
|
592
613
|
|
|
593
614
|
:where(.bf-theme) :where(.bf-cluster) {
|
|
615
|
+
--bf-cluster-space: var(--bf-space-2);
|
|
594
616
|
align-items: flex-start;
|
|
595
617
|
display: flex;
|
|
596
618
|
flex-wrap: wrap;
|
|
597
|
-
gap: var(--bf-space
|
|
619
|
+
gap: var(--bf-cluster-space);
|
|
620
|
+
}
|
|
621
|
+
|
|
622
|
+
:where(.bf-theme) :where(.bf-cluster.is-dense) {
|
|
623
|
+
--bf-cluster-space: var(--bf-space-1);
|
|
624
|
+
}
|
|
625
|
+
|
|
626
|
+
:where(.bf-theme) :where(.bf-cluster.is-nowrap) {
|
|
627
|
+
flex-wrap: nowrap;
|
|
598
628
|
}
|
|
599
629
|
|
|
600
630
|
:where(.bf-theme) :where(.bf-cluster.is-split) {
|
|
@@ -716,6 +746,14 @@ html.u-baseline-grid::after {
|
|
|
716
746
|
}
|
|
717
747
|
|
|
718
748
|
|
|
749
|
+
:where(.bf-theme) .bf-stack.is-metric-flush > :where(blockquote, p, h1, h2, h3, h4, h5, h6, .bf-body, .bf-h1, .bf-h2, .bf-h3, .bf-h4, .bf-h5, .bf-h6):has(+ :where(blockquote, p, h1, h2, h3, h4, h5, h6, .bf-body, .bf-h1, .bf-h2, .bf-h3, .bf-h4, .bf-h5, .bf-h6)) {
|
|
750
|
+
margin-block-end: 0;
|
|
751
|
+
}
|
|
752
|
+
|
|
753
|
+
:where(.bf-theme) .bf-stack.is-metric-flush > :where(blockquote, p, h1, h2, h3, h4, h5, h6, .bf-body, .bf-h1, .bf-h2, .bf-h3, .bf-h4, .bf-h5, .bf-h6) + :where(blockquote, p, h1, h2, h3, h4, h5, h6, .bf-body, .bf-h1, .bf-h2, .bf-h3, .bf-h4, .bf-h5, .bf-h6) {
|
|
754
|
+
padding-block-start: 0;
|
|
755
|
+
}
|
|
756
|
+
|
|
719
757
|
/* DEMO ONLY — Cap-derived nudges are unreliable (ascender ≠ cap height).
|
|
720
758
|
The approximation (line-height + 1cap) / 2 drifts at larger sizes.
|
|
721
759
|
Kept as a reference for why metrics-derived nudges are used instead. */
|
|
@@ -771,10 +809,36 @@ html.u-baseline-grid::after {
|
|
|
771
809
|
|
|
772
810
|
:where(.bf-theme) :where(ul, ol) {
|
|
773
811
|
margin-bottom: 0;
|
|
812
|
+
padding-block-end: 0;
|
|
774
813
|
}
|
|
775
814
|
|
|
776
|
-
:where(.bf-theme) :where(.bf-prose
|
|
777
|
-
padding-inline-start: var(--bf-
|
|
815
|
+
:where(.bf-theme) :where(.bf-prose ol) {
|
|
816
|
+
padding-inline-start: calc(var(--bf-leading-mark-group-inset) + var(--bf-leading-mark-offset) - (var(--bf-leading-mark-size) * 0.5));
|
|
817
|
+
}
|
|
818
|
+
|
|
819
|
+
:where(.bf-theme) :where(.bf-prose ol > li) {
|
|
820
|
+
padding-inline-start: calc(var(--bf-leading-mark-size) * 0.5);
|
|
821
|
+
}
|
|
822
|
+
|
|
823
|
+
:where(.bf-theme) :where(.bf-prose ul) {
|
|
824
|
+
list-style: none;
|
|
825
|
+
padding-inline-start: var(--bf-leading-mark-group-inset);
|
|
826
|
+
}
|
|
827
|
+
|
|
828
|
+
:where(.bf-theme) :where(.bf-prose ul > li) {
|
|
829
|
+
padding-inline-start: var(--bf-leading-mark-offset);
|
|
830
|
+
position: relative;
|
|
831
|
+
}
|
|
832
|
+
|
|
833
|
+
:where(.bf-theme) :where(.bf-prose ul > li)::before {
|
|
834
|
+
background: currentColor;
|
|
835
|
+
block-size: var(--bf-list-marker-dot-size);
|
|
836
|
+
border-radius: 50%;
|
|
837
|
+
content: "";
|
|
838
|
+
inline-size: var(--bf-list-marker-dot-size);
|
|
839
|
+
inset-block-start: calc(var(--bf-tick-box-offset) + ((var(--bf-leading-mark-size) - var(--bf-list-marker-dot-size)) * 0.5));
|
|
840
|
+
inset-inline-start: calc((var(--bf-leading-mark-size) - var(--bf-list-marker-dot-size)) * 0.5);
|
|
841
|
+
position: absolute;
|
|
778
842
|
}
|
|
779
843
|
|
|
780
844
|
:where(.bf-theme) :where(.bf-prose li) {
|
|
@@ -784,39 +848,37 @@ html.u-baseline-grid::after {
|
|
|
784
848
|
}
|
|
785
849
|
|
|
786
850
|
:where(.bf-theme) :where(.bf-prose blockquote) {
|
|
787
|
-
|
|
788
|
-
color: var(--bf-color-muted);
|
|
851
|
+
color: var(--bf-color-text-default);
|
|
789
852
|
font-family: var(--bf-body-font-family, "IBM Plex Sans", "Segoe UI", system-ui, sans-serif);
|
|
790
853
|
font-size: var(--bf-body-font-size, 1rem);
|
|
791
854
|
font-style: var(--bf-body-font-style, normal);
|
|
792
855
|
font-weight: var(--bf-body-font-weight, 400);
|
|
793
856
|
line-height: var(--bf-body-line-height, 1.5rem);
|
|
794
857
|
margin-bottom: var(--bf-body-margin-bottom, 0.125rem);
|
|
795
|
-
max-inline-size:
|
|
858
|
+
max-inline-size: var(--bf-measure);
|
|
796
859
|
padding-block-end: 0rem;
|
|
797
860
|
padding-block-start: var(--bf-body-nudge-start, 0.375rem);
|
|
798
|
-
padding-inline-start: var(--bf-space-3);
|
|
799
861
|
}
|
|
800
862
|
|
|
801
|
-
:where(.bf-theme) :where(
|
|
863
|
+
:where(.bf-theme) :where(hr) {
|
|
802
864
|
background: var(--bf-color-rule);
|
|
803
|
-
block-size:
|
|
865
|
+
block-size: 0.0625rem;
|
|
804
866
|
border: 0;
|
|
805
867
|
inline-size: 100%;
|
|
806
868
|
/* Reserve one half-rem rhythm step after the rule, including its */
|
|
807
869
|
/* thickness, so borderless content does not touch the divider. */
|
|
808
|
-
margin: 0 0 calc(0.5rem -
|
|
870
|
+
margin: 0 0 calc(0.5rem - 0.0625rem);
|
|
809
871
|
}
|
|
810
872
|
|
|
811
873
|
/* Highlight rules share the same scalable emphasis-bar geometry as active
|
|
812
874
|
* navigation, tabs, notifications, and document-navigation markers. */
|
|
813
|
-
:where(.bf-theme) :where(
|
|
875
|
+
:where(.bf-theme) :where(hr.is-highlighted) {
|
|
814
876
|
block-size: var(--bf-bar-thickness);
|
|
815
877
|
margin-block-end: calc(0.5rem - var(--bf-bar-thickness));
|
|
816
878
|
}
|
|
817
879
|
|
|
818
880
|
:where(.bf-theme) :where(.bf-token-row) {
|
|
819
|
-
border-top:
|
|
881
|
+
border-top: 0.0625rem solid var(--bf-color-rule);
|
|
820
882
|
display: grid;
|
|
821
883
|
gap: var(--bf-space-1);
|
|
822
884
|
padding-top: var(--bf-space-2);
|
|
@@ -828,7 +890,7 @@ html.u-baseline-grid::after {
|
|
|
828
890
|
}
|
|
829
891
|
|
|
830
892
|
:where(.bf-theme) {
|
|
831
|
-
--bf-border-width:
|
|
893
|
+
--bf-border-width: 0.0625rem;
|
|
832
894
|
--bf-bar-thickness: 0.1875rem;
|
|
833
895
|
--bf-radius: 0rem;
|
|
834
896
|
--bf-control-block-padding: 0.5rem;
|
|
@@ -846,22 +908,48 @@ html.u-baseline-grid::after {
|
|
|
846
908
|
/* Action surfaces keep comfortable command targets; field surfaces can tighten independently. */
|
|
847
909
|
--bf-disclosure-gap: 1rem;
|
|
848
910
|
--bf-disclosure-icon-inline-size: 1rem;
|
|
911
|
+
--bf-icon-label-inline-offset: calc(var(--bf-disclosure-icon-inline-size) + var(--bf-disclosure-gap));
|
|
912
|
+
--bf-disclosure-label-inline-offset: var(--bf-icon-label-inline-offset);
|
|
913
|
+
/* Every component-owned inline start resolves to one of these three rails.
|
|
914
|
+
Field and action values remain tier inputs; continuation is the shared
|
|
915
|
+
icon/mark-to-copy line. Structural page, grid and navigation-depth offsets
|
|
916
|
+
are deliberately outside this component inset contract. */
|
|
917
|
+
--bf-component-inline-inset-field: var(--bf-control-inline-padding-field);
|
|
918
|
+
--bf-component-inline-inset-action: var(--bf-control-inline-padding-action);
|
|
919
|
+
--bf-component-inline-inset-continuation: var(--bf-disclosure-label-inline-offset);
|
|
849
920
|
--bf-input-block-padding: var(--bf-body-nudge-start, 0.375rem);
|
|
850
921
|
--bf-button-block-padding: var(--bf-body-nudge-start, 0.375rem);
|
|
922
|
+
/* One border-aware occupied-block contract for body-sized, single-line UI.
|
|
923
|
+
Components may paint their block borders differently, but their text line,
|
|
924
|
+
padding and trailing baseline compensation must resolve through this pair. */
|
|
925
|
+
--bf-single-line-row-padding-block: max(0rem, calc(var(--bf-button-block-padding) - var(--bf-border-width)));
|
|
926
|
+
--bf-single-line-row-margin-block-end: calc(0rem + mod(calc(var(--bf-baseline) - mod(calc(var(--bf-body-line-height, 1.5rem) + (var(--bf-button-block-padding) * 2)), var(--bf-baseline))), var(--bf-baseline)));
|
|
927
|
+
--bf-single-line-row-block-size: calc(var(--bf-body-line-height, 1.5rem) + (var(--bf-single-line-row-padding-block) * 2) + (var(--bf-border-width) * 2) + var(--bf-single-line-row-margin-block-end));
|
|
928
|
+
--bf-single-line-row-in-box-padding-block-start: var(--bf-body-nudge-start, 0.375rem);
|
|
929
|
+
--bf-single-line-row-in-box-padding-block-end: max(0rem, calc(var(--bf-single-line-row-block-size) - var(--bf-body-line-height, 1.5rem) - var(--bf-single-line-row-in-box-padding-block-start)));
|
|
930
|
+
--bf-single-line-row-visual-offset: calc(var(--bf-body-nudge-start, 0.375rem) + ((var(--bf-body-line-height, 1.5rem) - var(--bf-control-visual-size)) / 2));
|
|
931
|
+
/* Auxiliary surfaces may opt into a host-owned nested composition. The
|
|
932
|
+
shorter line and capped symmetric padding fit their complete paint inside
|
|
933
|
+
the host body line without introducing a second row rhythm. */
|
|
934
|
+
--bf-nested-auxiliary-line-height: max(1em, calc(var(--bf-body-line-height) - var(--bf-baseline)));
|
|
935
|
+
--bf-nested-auxiliary-padding-block: min(var(--bf-single-line-row-padding-block), max(0rem, calc((var(--bf-body-line-height) - var(--bf-nested-auxiliary-line-height)) / 2)));
|
|
851
936
|
--bf-slider-track-size: calc(var(--bf-baseline) * 0.25);
|
|
852
|
-
--bf-slider-row-block-size:
|
|
937
|
+
--bf-slider-row-block-size: var(--bf-single-line-row-block-size);
|
|
853
938
|
--bf-slider-track-offset: calc(var(--bf-body-nudge-start, 0.375rem) + ((var(--bf-body-line-height, 1.5rem) - var(--bf-slider-track-size)) / 2));
|
|
854
939
|
--bf-table-row-border-size: var(--bf-border-width);
|
|
855
|
-
--bf-table-row-padding: var(--bf-
|
|
856
|
-
--bf-table-row-
|
|
857
|
-
--bf-table-row-block-
|
|
858
|
-
--bf-table-row-line-height:
|
|
859
|
-
--bf-switch-
|
|
860
|
-
--bf-
|
|
861
|
-
--bf-
|
|
862
|
-
--bf-
|
|
863
|
-
--bf-
|
|
864
|
-
--bf-
|
|
940
|
+
--bf-table-row-padding-block-start: var(--bf-single-line-row-in-box-padding-block-start);
|
|
941
|
+
--bf-table-row-block-size: var(--bf-single-line-row-block-size);
|
|
942
|
+
--bf-table-row-padding-block-end: max(0rem, calc(var(--bf-table-row-block-size) - var(--bf-body-line-height, 1.5rem) - var(--bf-table-row-padding-block-start) - var(--bf-table-row-border-size)));
|
|
943
|
+
--bf-table-row-line-height: var(--bf-body-line-height, 1.5rem);
|
|
944
|
+
--bf-switch-track-offset: var(--bf-single-line-row-visual-offset);
|
|
945
|
+
--bf-tick-box-offset: var(--bf-single-line-row-visual-offset);
|
|
946
|
+
--bf-leading-mark-size: var(--bf-control-visual-size);
|
|
947
|
+
--bf-leading-mark-gap: var(--bf-component-inline-inset-field);
|
|
948
|
+
--bf-leading-mark-offset: calc(var(--bf-leading-mark-size) + var(--bf-leading-mark-gap));
|
|
949
|
+
--bf-leading-mark-group-inset: calc(var(--bf-component-inline-inset-continuation) - var(--bf-leading-mark-offset));
|
|
950
|
+
--bf-tick-label-offset: var(--bf-leading-mark-offset);
|
|
951
|
+
--bf-radio-dot-size: calc((var(--bf-control-visual-size) * 0.375) + var(--bf-border-width));
|
|
952
|
+
--bf-list-marker-dot-size: calc(var(--bf-border-width) * 4);
|
|
865
953
|
--bf-app-drawer-width-icon: 2rem;
|
|
866
954
|
--bf-app-drawer-width-small: 15rem;
|
|
867
955
|
--bf-app-drawer-width-small-max: 20rem;
|
|
@@ -873,7 +961,9 @@ html.u-baseline-grid::after {
|
|
|
873
961
|
--bf-app-aside-width-max: var(--bf-app-drawer-width-medium-max);
|
|
874
962
|
--bf-app-navigation-width: 15rem;
|
|
875
963
|
--bf-app-navigation-width-collapsed: 3rem;
|
|
876
|
-
--bf-
|
|
964
|
+
--bf-icon-label-optical-offset-block: 0.1875rem;
|
|
965
|
+
--bf-disclosure-icon-optical-offset-block: var(--bf-icon-label-optical-offset-block);
|
|
966
|
+
--bf-side-navigation-icon-optical-offset-block: var(--bf-icon-label-optical-offset-block);
|
|
877
967
|
--bf-side-navigation-icon-gap: 0.625rem;
|
|
878
968
|
--bf-navigation-bar-min-block-size: calc(var(--bf-baseline) * 6);
|
|
879
969
|
--bf-authoring-accent: #f6b73c;
|
|
@@ -886,9 +976,10 @@ html.u-baseline-grid::after {
|
|
|
886
976
|
--bf-authoring-accent-focus-ring: rgba(246, 183, 60, 0.55);
|
|
887
977
|
--bf-application-resize-handle-active: var(--bf-authoring-accent-strong);
|
|
888
978
|
--bf-application-resize-handle-focus-ring: var(--bf-authoring-accent-focus-ring);
|
|
889
|
-
--bf-
|
|
890
|
-
--bf-top-navigation-
|
|
891
|
-
--bf-top-navigation-
|
|
979
|
+
--bf-control-inline-padding-action-bordered: max(0rem, calc(var(--bf-component-inline-inset-action) - var(--bf-border-width)));
|
|
980
|
+
--bf-top-navigation-link-padding-inline: var(--bf-component-inline-inset-action);
|
|
981
|
+
--bf-top-navigation-end-slot-inline-size: calc(1rem + var(--bf-component-inline-inset-field));
|
|
982
|
+
--bf-top-navigation-search-toggle-inline-size: calc(1rem + (var(--bf-component-inline-inset-field) * 2));
|
|
892
983
|
--bf-top-navigation-link-padding-block: max(var(--bf-body-nudge-start), calc(var(--bf-baseline) * 1.5));
|
|
893
984
|
--bf-top-navigation-search-max-inline-size: 20rem;
|
|
894
985
|
--bf-top-navigation-logo-tag-inline-size: 1.375rem;
|
|
@@ -897,18 +988,18 @@ html.u-baseline-grid::after {
|
|
|
897
988
|
--bf-top-navigation-logo-tag-gap: 0.25rem;
|
|
898
989
|
--bf-top-navigation-logo-icon-bottom-offset: 0.375rem;
|
|
899
990
|
--bf-top-navigation-logo-icon-optical-offset-inline: -0.0125rem;
|
|
900
|
-
--bf-navigation-brand-
|
|
991
|
+
--bf-navigation-brand-line-center-block: calc(var(--bf-top-navigation-logo-tag-block-size) - var(--bf-top-navigation-logo-icon-bottom-offset) - (var(--bf-top-navigation-logo-icon-size) / 2));
|
|
992
|
+
--bf-navigation-brand-block-size: calc(var(--bf-navigation-brand-line-center-block) * 2);
|
|
901
993
|
--bf-icon-size-default: 1rem;
|
|
902
994
|
--bf-icon-size-medium: 2.5rem;
|
|
903
995
|
--bf-icon-size-large: 4rem;
|
|
904
996
|
--bf-icon-size-x-large: 4.5rem;
|
|
905
997
|
--bf-icon-size-xx-large: 6rem;
|
|
906
|
-
--bf-leading-icon-size:
|
|
907
|
-
--bf-leading-icon-gap:
|
|
908
|
-
--bf-leading-icon-offset:
|
|
909
|
-
--bf-ui-chip-padding-inline:
|
|
910
|
-
--bf-ui-chip-
|
|
911
|
-
--bf-ui-chip-block-size: calc(var(--bf-body-line-height, 1.5rem) + (var(--bf-ui-chip-padding-block) * 2) + (var(--bf-border-width) * 2));
|
|
998
|
+
--bf-leading-icon-size: var(--bf-leading-mark-size);
|
|
999
|
+
--bf-leading-icon-gap: var(--bf-leading-mark-gap);
|
|
1000
|
+
--bf-leading-icon-offset: var(--bf-single-line-row-visual-offset);
|
|
1001
|
+
--bf-ui-chip-padding-inline: var(--bf-component-inline-inset-field);
|
|
1002
|
+
--bf-ui-chip-radius: 999rem;
|
|
912
1003
|
--bf-ui-badge-padding-inline: calc(var(--bf-body-line-height, 1.5rem) * 0.25);
|
|
913
1004
|
--bf-ui-badge-overhang: calc(var(--bf-ui-badge-padding-inline) * -0.75);
|
|
914
1005
|
--bf-grid-max-inline-size: var(--bf-content-max-width);
|
|
@@ -971,6 +1062,7 @@ html.u-baseline-grid::after {
|
|
|
971
1062
|
--bf-color-focus: var(--vf-color-focus, #2e96ff);
|
|
972
1063
|
|
|
973
1064
|
--bf-ui-icon-chevron-down: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.25 6.25 8 10l3.75-3.75'/%3E%3C/svg%3E");
|
|
1065
|
+
--bf-ui-icon-number-stepper: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.25 5.75 8 2l3.75 3.75M4.25 10.25 8 14l3.75-3.75'/%3E%3C/svg%3E");
|
|
974
1066
|
--bf-ui-icon-close: url("data:image/svg+xml,%3Csvg width='16' height='16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4.25 4.25 11.75 11.75M11.75 4.25 4.25 11.75' fill='none' stroke='%23111' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
|
|
975
1067
|
--bf-ui-icon-error-grey: url("data:image/svg+xml,%3Csvg width='16' height='16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 1.52588e-05C12.4183 1.52588e-05 16 3.58174 16 8.00002C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8.00002C0 3.58174 3.58172 1.52588e-05 8 1.52588e-05ZM10.2821 4.63808L11.3427 5.69874L9.05007 7.99008L11.3427 10.2821L10.2821 11.3427L7.99007 9.05008L5.69873 11.3427L4.63807 10.2821L6.92907 7.99008L4.63807 5.69874L5.69873 4.63808L7.99007 6.92908L10.2821 4.63808ZM1.5 8.00002C1.5 4.41016 4.41015 1.50002 8 1.50002C11.5899 1.50002 14.5 4.41016 14.5 8.00002C14.5 11.5899 11.5899 14.5 8 14.5C4.41015 14.5 1.5 11.5899 1.5 8.00002Z' fill='%23111' fill-rule='evenodd'/%3E%3C/svg%3E");
|
|
976
1068
|
--bf-ui-icon-search: url("data:image/svg+xml,%3Csvg width='16' height='16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.964 1a5.964 5.964 0 014.709 9.623l4.303 4.305-1.06 1.06-4.306-4.305A5.964 5.964 0 116.963 1zm0 1.5a4.464 4.464 0 100 8.927 4.464 4.464 0 000-8.927z' fill='%23111' fill-rule='nonzero'/%3E%3C/svg%3E");
|
|
@@ -995,11 +1087,9 @@ html.u-baseline-grid::after {
|
|
|
995
1087
|
}
|
|
996
1088
|
|
|
997
1089
|
:where(.bf-theme.bf-surface-ubuntu-engine-smoke) {
|
|
998
|
-
--bf-control-baseline-reserve: 0rem;
|
|
999
1090
|
--bf-input-block-padding: 0.41rem;
|
|
1000
1091
|
--bf-button-block-padding: 0.41rem;
|
|
1001
|
-
--bf-
|
|
1002
|
-
--bf-border-width: 1px;
|
|
1092
|
+
--bf-border-width: 0.0625rem;
|
|
1003
1093
|
--bf-bar-thickness: 0.1875rem;
|
|
1004
1094
|
--bf-radius: 0rem;
|
|
1005
1095
|
--bf-control-block-padding: 0.5rem;
|
|
@@ -1018,7 +1108,6 @@ html.u-baseline-grid::after {
|
|
|
1018
1108
|
}
|
|
1019
1109
|
|
|
1020
1110
|
|
|
1021
|
-
:where(.bf-theme.is-dark),
|
|
1022
1111
|
:where(.bf-theme.is-dark) {
|
|
1023
1112
|
--bf-color-text-default: var(--vf-color-text-default, var(--bf-color-text, #ffffff));
|
|
1024
1113
|
--bf-color-text-muted: var(--vf-color-text-muted, var(--bf-color-muted, rgba(255, 255, 255, 0.6)));
|
|
@@ -1068,6 +1157,7 @@ html.u-baseline-grid::after {
|
|
|
1068
1157
|
--bf-color-focus: var(--vf-color-focus, #99ccff);
|
|
1069
1158
|
|
|
1070
1159
|
--bf-ui-icon-chevron-down: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23fff' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.25 6.25 8 10l3.75-3.75'/%3E%3C/svg%3E");
|
|
1160
|
+
--bf-ui-icon-number-stepper: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23fff' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.25 5.75 8 2l3.75 3.75M4.25 10.25 8 14l3.75-3.75'/%3E%3C/svg%3E");
|
|
1071
1161
|
--bf-ui-icon-close: url("data:image/svg+xml,%3Csvg width='16' height='16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4.25 4.25 11.75 11.75M11.75 4.25 4.25 11.75' fill='none' stroke='%23fff' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
|
|
1072
1162
|
--bf-ui-icon-error-grey: url("data:image/svg+xml,%3Csvg width='16' height='16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 1.52588e-05C12.4183 1.52588e-05 16 3.58174 16 8.00002C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8.00002C0 3.58174 3.58172 1.52588e-05 8 1.52588e-05ZM10.2821 4.63808L11.3427 5.69874L9.05007 7.99008L11.3427 10.2821L10.2821 11.3427L7.99007 9.05008L5.69873 11.3427L4.63807 10.2821L6.92907 7.99008L4.63807 5.69874L5.69873 4.63808L7.99007 6.92908L10.2821 4.63808ZM1.5 8.00002C1.5 4.41016 4.41015 1.50002 8 1.50002C11.5899 1.50002 14.5 4.41016 14.5 8.00002C14.5 11.5899 11.5899 14.5 8 14.5C4.41015 14.5 1.5 11.5899 1.5 8.00002Z' fill='%23fff' fill-rule='evenodd'/%3E%3C/svg%3E");
|
|
1073
1163
|
--bf-ui-icon-search: url("data:image/svg+xml,%3Csvg width='16' height='16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.964 1a5.964 5.964 0 014.709 9.623l4.303 4.305-1.06 1.06-4.306-4.305A5.964 5.964 0 116.963 1zm0 1.5a4.464 4.464 0 100 8.927 4.464 4.464 0 000-8.927z' fill='%23fff' fill-rule='nonzero'/%3E%3C/svg%3E");
|
|
@@ -1161,6 +1251,10 @@ html.u-baseline-grid::after {
|
|
|
1161
1251
|
grid-template-columns: minmax(0, 1fr);
|
|
1162
1252
|
}
|
|
1163
1253
|
|
|
1254
|
+
:where(.bf-theme) :where(.bf-field.is-range.is-stacked) > :where(.bf-control, .bf-form-help) {
|
|
1255
|
+
grid-column: 1;
|
|
1256
|
+
}
|
|
1257
|
+
|
|
1164
1258
|
:where(.bf-theme) :where(.bf-field.is-range.is-stacked) > :where(.bf-control) {
|
|
1165
1259
|
min-inline-size: 0;
|
|
1166
1260
|
}
|
|
@@ -1178,7 +1272,7 @@ html.u-baseline-grid::after {
|
|
|
1178
1272
|
margin: 0;
|
|
1179
1273
|
min-inline-size: 0;
|
|
1180
1274
|
padding-block-end: calc(var(--bf-panel-padding-block) - var(--bf-border-width));
|
|
1181
|
-
padding-inline: var(--bf-
|
|
1275
|
+
padding-inline: var(--bf-component-inline-inset-continuation);
|
|
1182
1276
|
padding-block-start: var(--bf-panel-padding-block);
|
|
1183
1277
|
}
|
|
1184
1278
|
|
|
@@ -1205,13 +1299,36 @@ html.u-baseline-grid::after {
|
|
|
1205
1299
|
min-inline-size: 0;
|
|
1206
1300
|
margin-bottom: calc(0rem + mod(calc(var(--bf-baseline) - mod(calc(var(--bf-body-line-height, 1.5rem) + (var(--bf-input-block-padding) * 2)), var(--bf-baseline))), var(--bf-baseline)));
|
|
1207
1301
|
padding-block: max(0rem, calc(var(--bf-input-block-padding) - var(--bf-border-width)));
|
|
1208
|
-
padding-inline: var(--bf-
|
|
1302
|
+
padding-inline: var(--bf-component-inline-inset-field);
|
|
1209
1303
|
}
|
|
1210
1304
|
|
|
1211
|
-
:where(.bf-theme) :where(
|
|
1305
|
+
:where(.bf-theme) :where(.bf-color-control) {
|
|
1306
|
+
display: grid;
|
|
1307
|
+
grid-template-areas: "color-control";
|
|
1212
1308
|
inline-size: 4rem;
|
|
1213
|
-
|
|
1214
|
-
|
|
1309
|
+
}
|
|
1310
|
+
|
|
1311
|
+
/* Native color inputs do not expose a body-text line box. This invisible
|
|
1312
|
+
metric strut gives their wrapper the same natural padding/border/margin
|
|
1313
|
+
construction as every textual control, including under browser zoom. */
|
|
1314
|
+
:where(.bf-theme) :where(.bf-color-control)::before {
|
|
1315
|
+
border-block: var(--bf-border-width) solid transparent;
|
|
1316
|
+
content: "\00a0";
|
|
1317
|
+
grid-area: color-control;
|
|
1318
|
+
line-height: var(--bf-body-line-height);
|
|
1319
|
+
margin-bottom: var(--bf-single-line-row-margin-block-end);
|
|
1320
|
+
padding-block: var(--bf-single-line-row-padding-block);
|
|
1321
|
+
visibility: hidden;
|
|
1322
|
+
}
|
|
1323
|
+
|
|
1324
|
+
:where(.bf-theme) :where(.bf-color-control) > :where(input[type='color'].bf-color-input) {
|
|
1325
|
+
align-self: stretch;
|
|
1326
|
+
block-size: auto;
|
|
1327
|
+
grid-area: color-control;
|
|
1328
|
+
inline-size: 100%;
|
|
1329
|
+
margin-bottom: var(--bf-single-line-row-margin-block-end);
|
|
1330
|
+
min-block-size: 0;
|
|
1331
|
+
padding: var(--bf-border-width);
|
|
1215
1332
|
}
|
|
1216
1333
|
|
|
1217
1334
|
:where(.bf-theme) :where(.bf-input, input[type='text'], input[type='number'], input[type='search'], input[type='password'], input[type='email'], input[type='url'], textarea, select):hover {
|
|
@@ -1224,8 +1341,8 @@ html.u-baseline-grid::after {
|
|
|
1224
1341
|
|
|
1225
1342
|
:where(.bf-theme) :where(.bf-input, input[type='text'], input[type='number'], input[type='search'], input[type='password'], input[type='email'], input[type='url'], textarea, select):focus-visible {
|
|
1226
1343
|
background-color: var(--bf-color-background-active);
|
|
1227
|
-
outline:
|
|
1228
|
-
outline-offset:
|
|
1344
|
+
outline: 0.125rem solid var(--bf-color-focus);
|
|
1345
|
+
outline-offset: 0.125rem;
|
|
1229
1346
|
}
|
|
1230
1347
|
|
|
1231
1348
|
:where(.bf-theme) :where(.bf-input, input[type='text'], input[type='number'], input[type='search'], input[type='password'], input[type='email'], input[type='url'], textarea, select):disabled {
|
|
@@ -1252,13 +1369,12 @@ html.u-baseline-grid::after {
|
|
|
1252
1369
|
line-height: var(--bf-body-line-height, 1.5rem);
|
|
1253
1370
|
background: transparent;
|
|
1254
1371
|
border: 0 solid transparent;
|
|
1255
|
-
|
|
1256
|
-
border-top: var(--bf-border-width) solid transparent;
|
|
1372
|
+
box-shadow: inset 0 calc(var(--bf-border-width) * -1) 0 var(--bf-color-border-default);
|
|
1257
1373
|
color: var(--bf-color-text-default);
|
|
1258
1374
|
margin-bottom: calc(0rem + mod(calc(var(--bf-baseline) - mod(calc(var(--bf-body-line-height, 1.5rem) + (var(--bf-input-block-padding) * 2)), var(--bf-baseline))), var(--bf-baseline)));
|
|
1259
1375
|
max-inline-size: 100%;
|
|
1260
1376
|
min-inline-size: 0;
|
|
1261
|
-
padding-block:
|
|
1377
|
+
padding-block: 0;
|
|
1262
1378
|
padding-inline: 0;
|
|
1263
1379
|
width: 100%;
|
|
1264
1380
|
}
|
|
@@ -1276,9 +1392,9 @@ html.u-baseline-grid::after {
|
|
|
1276
1392
|
color: var(--bf-color-text-default);
|
|
1277
1393
|
cursor: pointer;
|
|
1278
1394
|
margin-inline-end: var(--bf-field-gap);
|
|
1279
|
-
min-block-size:
|
|
1280
|
-
padding-block:
|
|
1281
|
-
padding-inline: var(--bf-control-inline-padding-action);
|
|
1395
|
+
min-block-size: 0;
|
|
1396
|
+
padding-block: var(--bf-single-line-row-padding-block);
|
|
1397
|
+
padding-inline: var(--bf-control-inline-padding-action-bordered);
|
|
1282
1398
|
}
|
|
1283
1399
|
|
|
1284
1400
|
:where(.bf-theme) :where(input[type='file'])::file-selector-button:hover {
|
|
@@ -1287,16 +1403,31 @@ html.u-baseline-grid::after {
|
|
|
1287
1403
|
|
|
1288
1404
|
:where(.bf-theme) :where(select) {
|
|
1289
1405
|
background-image: var(--bf-ui-icon-chevron-down);
|
|
1290
|
-
background-position: right var(--bf-
|
|
1406
|
+
background-position: right var(--bf-component-inline-inset-field) center;
|
|
1291
1407
|
background-repeat: no-repeat;
|
|
1292
1408
|
background-size: 1rem 1rem;
|
|
1293
|
-
|
|
1409
|
+
overflow: hidden;
|
|
1410
|
+
padding-inline-end: calc(var(--bf-component-inline-inset-field) * 2.5);
|
|
1411
|
+
text-overflow: ellipsis;
|
|
1412
|
+
white-space: nowrap;
|
|
1294
1413
|
}
|
|
1295
1414
|
|
|
1296
1415
|
:where(.bf-theme) :where(input[type='number'], .bf-slider-input) {
|
|
1297
1416
|
font-variant-numeric: tabular-nums;
|
|
1298
1417
|
}
|
|
1299
1418
|
|
|
1419
|
+
/* Number fields retain their native input semantics and keyboard stepping,
|
|
1420
|
+
while one field-owned background paints the compact pair. Sharing select's
|
|
1421
|
+
1rem canvas and end position avoids a second browser-reserved spin slot. */
|
|
1422
|
+
:where(.bf-theme) :where(input[type='number']) {
|
|
1423
|
+
appearance: textfield;
|
|
1424
|
+
background-image: var(--bf-ui-icon-number-stepper);
|
|
1425
|
+
background-position: right var(--bf-component-inline-inset-field) center;
|
|
1426
|
+
background-repeat: no-repeat;
|
|
1427
|
+
background-size: 1rem 1rem;
|
|
1428
|
+
padding-inline-end: calc(var(--bf-component-inline-inset-field) * 2.5);
|
|
1429
|
+
}
|
|
1430
|
+
|
|
1300
1431
|
:where(.bf-theme) :where(.bf-slider-input) {
|
|
1301
1432
|
flex: 0 1 5rem;
|
|
1302
1433
|
inline-size: min(100%, 5rem);
|
|
@@ -1308,12 +1439,14 @@ html.u-baseline-grid::after {
|
|
|
1308
1439
|
|
|
1309
1440
|
:where(.bf-theme) :where(input[type='number'])::-webkit-inner-spin-button,
|
|
1310
1441
|
:where(.bf-theme) :where(input[type='number'])::-webkit-outer-spin-button {
|
|
1442
|
+
appearance: none;
|
|
1311
1443
|
margin: 0;
|
|
1312
1444
|
}
|
|
1313
1445
|
|
|
1314
1446
|
:where(.bf-theme) :where(.bf-checkbox, .bf-radio) {
|
|
1447
|
+
display: grid;
|
|
1315
1448
|
margin: 0;
|
|
1316
|
-
|
|
1449
|
+
padding-inline-start: var(--bf-leading-mark-group-inset);
|
|
1317
1450
|
position: relative;
|
|
1318
1451
|
}
|
|
1319
1452
|
|
|
@@ -1334,12 +1467,11 @@ html.u-baseline-grid::after {
|
|
|
1334
1467
|
font-weight: var(--bf-body-font-weight, 400);
|
|
1335
1468
|
line-height: var(--bf-body-line-height, 1.5rem);
|
|
1336
1469
|
color: var(--bf-color-text-default);
|
|
1470
|
+
border-block: var(--bf-border-width) solid transparent;
|
|
1337
1471
|
cursor: pointer;
|
|
1338
1472
|
display: block;
|
|
1339
|
-
margin
|
|
1340
|
-
|
|
1341
|
-
padding-block-end: var(--bf-body-nudge-end);
|
|
1342
|
-
padding-block-start: var(--bf-body-nudge-start, 0.375rem);
|
|
1473
|
+
margin: 0 0 var(--bf-single-line-row-margin-block-end);
|
|
1474
|
+
padding-block: var(--bf-single-line-row-padding-block);
|
|
1343
1475
|
padding-inline-start: var(--bf-tick-label-offset);
|
|
1344
1476
|
position: relative;
|
|
1345
1477
|
}
|
|
@@ -1370,7 +1502,7 @@ html.u-baseline-grid::after {
|
|
|
1370
1502
|
border-left: calc(var(--bf-border-width) * 2) solid var(--bf-color-background-default);
|
|
1371
1503
|
inline-size: calc(var(--bf-control-visual-size) * 0.6);
|
|
1372
1504
|
inset-inline-start: calc(var(--bf-control-visual-size) * 0.2);
|
|
1373
|
-
inset-block-start: calc(var(--bf-tick-box-offset) + (var(--bf-control-visual-size) * 0.18));
|
|
1505
|
+
inset-block-start: calc(var(--bf-tick-box-offset) + (var(--bf-control-visual-size) * 0.18) + (var(--bf-border-width) * 2));
|
|
1374
1506
|
opacity: 0;
|
|
1375
1507
|
transform: rotate(-45deg);
|
|
1376
1508
|
}
|
|
@@ -1408,20 +1540,19 @@ html.u-baseline-grid::after {
|
|
|
1408
1540
|
}
|
|
1409
1541
|
|
|
1410
1542
|
:where(.bf-theme) :where(.bf-checkbox-input:focus-visible + .bf-checkbox-label)::before {
|
|
1411
|
-
outline:
|
|
1412
|
-
outline-offset:
|
|
1543
|
+
outline: 0.125rem solid var(--bf-color-focus);
|
|
1544
|
+
outline-offset: 0.125rem;
|
|
1413
1545
|
}
|
|
1414
1546
|
|
|
1415
1547
|
:where(.bf-theme) :where(.bf-radio-input:focus-visible + .bf-radio-label)::before {
|
|
1416
|
-
outline:
|
|
1417
|
-
outline-offset:
|
|
1548
|
+
outline: 0.125rem solid var(--bf-color-focus);
|
|
1549
|
+
outline-offset: 0.125rem;
|
|
1418
1550
|
}
|
|
1419
1551
|
|
|
1420
1552
|
:where(.bf-theme) :where(.bf-switch) {
|
|
1421
1553
|
align-items: flex-start;
|
|
1422
1554
|
display: inline-flex;
|
|
1423
1555
|
gap: var(--bf-field-gap);
|
|
1424
|
-
min-block-size: var(--bf-switch-row-block-size);
|
|
1425
1556
|
position: relative;
|
|
1426
1557
|
}
|
|
1427
1558
|
|
|
@@ -1470,8 +1601,8 @@ html.u-baseline-grid::after {
|
|
|
1470
1601
|
}
|
|
1471
1602
|
|
|
1472
1603
|
:where(.bf-theme) :where(.bf-switch-input:focus-visible + .bf-switch-slider) {
|
|
1473
|
-
outline:
|
|
1474
|
-
outline-offset:
|
|
1604
|
+
outline: 0.125rem solid var(--bf-color-focus);
|
|
1605
|
+
outline-offset: 0.125rem;
|
|
1475
1606
|
}
|
|
1476
1607
|
|
|
1477
1608
|
:where(.bf-theme) :where(.bf-switch-input:disabled + .bf-switch-slider) {
|
|
@@ -1485,11 +1616,11 @@ html.u-baseline-grid::after {
|
|
|
1485
1616
|
font-weight: var(--bf-body-font-weight, 400);
|
|
1486
1617
|
line-height: var(--bf-body-line-height, 1.5rem);
|
|
1487
1618
|
color: var(--bf-color-text-default);
|
|
1619
|
+
border-block: var(--bf-border-width) solid transparent;
|
|
1488
1620
|
cursor: pointer;
|
|
1489
1621
|
display: inline-block;
|
|
1490
|
-
margin: 0 0 var(--bf-
|
|
1491
|
-
padding-block
|
|
1492
|
-
padding-block-start: var(--bf-body-nudge-start, 0.375rem);
|
|
1622
|
+
margin: 0 0 var(--bf-single-line-row-margin-block-end);
|
|
1623
|
+
padding-block: var(--bf-single-line-row-padding-block);
|
|
1493
1624
|
}
|
|
1494
1625
|
|
|
1495
1626
|
:where(.bf-theme) :where(.bf-validation-message) {
|
|
@@ -1498,11 +1629,12 @@ html.u-baseline-grid::after {
|
|
|
1498
1629
|
font-style: var(--bf-body-font-style, normal);
|
|
1499
1630
|
font-weight: var(--bf-body-font-weight, 400);
|
|
1500
1631
|
line-height: var(--bf-body-line-height, 1.5rem);
|
|
1632
|
+
border-block: var(--bf-border-width) solid transparent;
|
|
1501
1633
|
color: var(--bf-color-text-muted);
|
|
1502
|
-
margin: 0 0 var(--bf-
|
|
1503
|
-
|
|
1504
|
-
padding-block
|
|
1505
|
-
padding-inline-start:
|
|
1634
|
+
margin: 0 0 var(--bf-single-line-row-margin-block-end);
|
|
1635
|
+
margin-inline-start: var(--bf-leading-mark-group-inset);
|
|
1636
|
+
padding-block: var(--bf-single-line-row-padding-block);
|
|
1637
|
+
padding-inline-start: var(--bf-leading-mark-offset);
|
|
1506
1638
|
position: relative;
|
|
1507
1639
|
}
|
|
1508
1640
|
|
|
@@ -1621,6 +1753,15 @@ html.u-baseline-grid::after {
|
|
|
1621
1753
|
padding: 0;
|
|
1622
1754
|
}
|
|
1623
1755
|
|
|
1756
|
+
/* A composite slider's numeric field owns the shared occupied row. Stretching
|
|
1757
|
+
the track within that real sibling height avoids a second nominal-height
|
|
1758
|
+
calculation that can diverge when rem borders are rasterised under zoom. */
|
|
1759
|
+
:where(.bf-theme) :where(.bf-slider:not(.is-stacked)):not(:where(.bf-field.is-range.is-stacked) :where(.bf-slider)) > :where(input[type='range']) {
|
|
1760
|
+
align-self: stretch;
|
|
1761
|
+
block-size: auto;
|
|
1762
|
+
margin-block: 0;
|
|
1763
|
+
}
|
|
1764
|
+
|
|
1624
1765
|
:where(.bf-theme) :where(input[type='range']):focus:not(:focus-visible) {
|
|
1625
1766
|
outline: none;
|
|
1626
1767
|
}
|
|
@@ -1637,7 +1778,7 @@ html.u-baseline-grid::after {
|
|
|
1637
1778
|
border: var(--bf-border-width) solid var(--bf-color-border-high-contrast);
|
|
1638
1779
|
block-size: var(--bf-control-visual-size);
|
|
1639
1780
|
border-radius: 50%;
|
|
1640
|
-
box-shadow: 0 0 calc(var(--bf-control-visual-size) * 0.25)
|
|
1781
|
+
box-shadow: 0 0 calc(var(--bf-control-visual-size) * 0.25) 0.0625rem rgba(0, 0, 0, 0.2);
|
|
1641
1782
|
inline-size: var(--bf-control-visual-size);
|
|
1642
1783
|
margin-top: calc((var(--bf-slider-track-size) - var(--bf-control-visual-size)) / 2);
|
|
1643
1784
|
}
|
|
@@ -1663,7 +1804,7 @@ html.u-baseline-grid::after {
|
|
|
1663
1804
|
border: var(--bf-border-width) solid var(--bf-color-border-high-contrast);
|
|
1664
1805
|
block-size: var(--bf-control-visual-size);
|
|
1665
1806
|
border-radius: 50%;
|
|
1666
|
-
box-shadow: 0 0 calc(var(--bf-control-visual-size) * 0.25)
|
|
1807
|
+
box-shadow: 0 0 calc(var(--bf-control-visual-size) * 0.25) 0.0625rem rgba(0, 0, 0, 0.2);
|
|
1667
1808
|
inline-size: var(--bf-control-visual-size);
|
|
1668
1809
|
}
|
|
1669
1810
|
|
|
@@ -1762,9 +1903,9 @@ html.u-baseline-grid::after {
|
|
|
1762
1903
|
color: var(--bf-color-text-default);
|
|
1763
1904
|
cursor: pointer;
|
|
1764
1905
|
display: inline-block;
|
|
1765
|
-
margin-bottom:
|
|
1766
|
-
padding-block:
|
|
1767
|
-
padding-inline: var(--bf-control-inline-padding-action);
|
|
1906
|
+
margin-bottom: var(--bf-single-line-row-margin-block-end);
|
|
1907
|
+
padding-block: var(--bf-single-line-row-padding-block);
|
|
1908
|
+
padding-inline: var(--bf-control-inline-padding-action-bordered);
|
|
1768
1909
|
text-align: center;
|
|
1769
1910
|
text-decoration: none;
|
|
1770
1911
|
}
|
|
@@ -1782,6 +1923,13 @@ html.u-baseline-grid::after {
|
|
|
1782
1923
|
background-color: var(--bf-color-background-hover);
|
|
1783
1924
|
}
|
|
1784
1925
|
|
|
1926
|
+
/* Anchor buttons are controls, not prose links. Qualifying the element and
|
|
1927
|
+
* its interaction states prevents the generic anchor underline from leaking
|
|
1928
|
+
* through while leaving the explicit is-link variant unchanged. */
|
|
1929
|
+
:where(.bf-theme) :where(a.bf-button:not(.is-link):is(:hover, :active)) {
|
|
1930
|
+
text-decoration: none;
|
|
1931
|
+
}
|
|
1932
|
+
|
|
1785
1933
|
:where(.bf-theme) :where(.bf-button:not(.is-base):is(:active, [aria-pressed='true'])) {
|
|
1786
1934
|
background-color: var(--bf-color-background-active);
|
|
1787
1935
|
}
|
|
@@ -1791,8 +1939,8 @@ html.u-baseline-grid::after {
|
|
|
1791
1939
|
}
|
|
1792
1940
|
|
|
1793
1941
|
:where(.bf-theme) :where(.bf-button, .bf-button.is-base):focus-visible {
|
|
1794
|
-
outline:
|
|
1795
|
-
outline-offset:
|
|
1942
|
+
outline: 0.125rem solid var(--bf-color-focus);
|
|
1943
|
+
outline-offset: 0.125rem;
|
|
1796
1944
|
}
|
|
1797
1945
|
|
|
1798
1946
|
/* ------------------------------------------------------------------ */
|
|
@@ -1864,7 +2012,7 @@ html.u-baseline-grid::after {
|
|
|
1864
2012
|
background-color: transparent;
|
|
1865
2013
|
color: var(--bf-color-link-default);
|
|
1866
2014
|
text-decoration: underline;
|
|
1867
|
-
text-decoration-thickness:
|
|
2015
|
+
text-decoration-thickness: 0.0625rem;
|
|
1868
2016
|
text-underline-offset: 0.075em;
|
|
1869
2017
|
}
|
|
1870
2018
|
|
|
@@ -1891,6 +2039,19 @@ html.u-baseline-grid::after {
|
|
|
1891
2039
|
justify-content: center;
|
|
1892
2040
|
}
|
|
1893
2041
|
|
|
2042
|
+
/* An icon-only flex button has no text line box to preserve the occupied
|
|
2043
|
+
* control rhythm. A zero-width metric strut restores the active body line
|
|
2044
|
+
* without imposing a target block size or changing icon/label spacing. */
|
|
2045
|
+
:where(.bf-theme) :where(.bf-button.is-icon:not(:has(.bf-button-label))) {
|
|
2046
|
+
column-gap: 0;
|
|
2047
|
+
}
|
|
2048
|
+
|
|
2049
|
+
:where(.bf-theme) :where(.bf-button.is-icon:not(:has(.bf-button-label)))::before {
|
|
2050
|
+
block-size: var(--bf-body-line-height);
|
|
2051
|
+
content: "";
|
|
2052
|
+
inline-size: 0;
|
|
2053
|
+
}
|
|
2054
|
+
|
|
1894
2055
|
:where(.bf-theme) :where(.bf-button-label) {
|
|
1895
2056
|
min-inline-size: 0;
|
|
1896
2057
|
}
|
|
@@ -2051,7 +2212,7 @@ html.u-baseline-grid::after {
|
|
|
2051
2212
|
border-inline-start: var(--bf-bar-thickness) solid var(--bf-notice-border);
|
|
2052
2213
|
color: var(--bf-color-text-default);
|
|
2053
2214
|
display: flow-root;
|
|
2054
|
-
margin
|
|
2215
|
+
margin: 0;
|
|
2055
2216
|
max-inline-size: 100%;
|
|
2056
2217
|
padding-block: var(--bf-space-2);
|
|
2057
2218
|
padding-inline: var(--bf-space-2);
|
|
@@ -2097,16 +2258,15 @@ html.u-baseline-grid::after {
|
|
|
2097
2258
|
/* ------------------------------------------------------------------ */
|
|
2098
2259
|
/* Static content ports — Vanilla data spotlight and divided section. */
|
|
2099
2260
|
/* Their children retain role-owned rhythm; these layout */
|
|
2100
|
-
/* wrappers add only structural columns, rules, and
|
|
2261
|
+
/* wrappers add only structural columns, rules, and internal gaps. */
|
|
2101
2262
|
/* ------------------------------------------------------------------ */
|
|
2102
2263
|
|
|
2103
2264
|
/* Data spotlight: Vanilla's equal-height wrap becomes an intrinsic grid.
|
|
2104
2265
|
Each item begins with a public highlighted rule using the shared emphasis
|
|
2105
|
-
thickness.
|
|
2106
|
-
shallow inter-row rhythm when the pattern narrows. */
|
|
2266
|
+
thickness. The items container owns every inter-row gap. */
|
|
2107
2267
|
:where(.bf-theme) :where(.bf-data-spotlight) {
|
|
2108
2268
|
container-type: inline-size;
|
|
2109
|
-
margin
|
|
2269
|
+
margin: 0;
|
|
2110
2270
|
min-inline-size: 0;
|
|
2111
2271
|
}
|
|
2112
2272
|
|
|
@@ -2119,15 +2279,13 @@ html.u-baseline-grid::after {
|
|
|
2119
2279
|
display: grid;
|
|
2120
2280
|
grid-template-columns: minmax(0, 1fr);
|
|
2121
2281
|
min-inline-size: 0;
|
|
2282
|
+
row-gap: var(--bf-section-space-shallow);
|
|
2122
2283
|
}
|
|
2123
2284
|
|
|
2124
2285
|
:where(.bf-theme) :where(.bf-data-spotlight-item) {
|
|
2125
2286
|
min-inline-size: 0;
|
|
2126
2287
|
overflow-wrap: anywhere;
|
|
2127
|
-
|
|
2128
|
-
|
|
2129
|
-
:where(.bf-theme) :where(.bf-data-spotlight-item:not(:last-child)) {
|
|
2130
|
-
padding-block-end: var(--bf-section-space-shallow);
|
|
2288
|
+
padding: 0;
|
|
2131
2289
|
}
|
|
2132
2290
|
|
|
2133
2291
|
:where(.bf-theme) :where(.bf-data-spotlight-stat) {
|
|
@@ -2180,6 +2338,14 @@ html.u-baseline-grid::after {
|
|
|
2180
2338
|
@container (width >= 38.75rem) {
|
|
2181
2339
|
:where(.bf-theme) :where(.bf-data-spotlight-items) {
|
|
2182
2340
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
2341
|
+
row-gap: var(--bf-space-1);
|
|
2342
|
+
}
|
|
2343
|
+
|
|
2344
|
+
:where(.bf-theme) :where(.bf-data-spotlight-items)::after {
|
|
2345
|
+
block-size: calc(var(--bf-section-space-shallow) - (var(--bf-space-1) * 2));
|
|
2346
|
+
content: "";
|
|
2347
|
+
grid-column: 1 / -1;
|
|
2348
|
+
grid-row: 6;
|
|
2183
2349
|
}
|
|
2184
2350
|
|
|
2185
2351
|
:where(.bf-theme) :where(.bf-data-spotlight-header, .bf-data-spotlight-item) {
|
|
@@ -2188,10 +2354,6 @@ html.u-baseline-grid::after {
|
|
|
2188
2354
|
grid-template-rows: subgrid;
|
|
2189
2355
|
}
|
|
2190
2356
|
|
|
2191
|
-
:where(.bf-theme) :where(.bf-data-spotlight-item) {
|
|
2192
|
-
padding-block-end: 0;
|
|
2193
|
-
}
|
|
2194
|
-
|
|
2195
2357
|
:where(.bf-theme) :where(.bf-data-spotlight.is-three-blocks) :where(.bf-data-spotlight-header) {
|
|
2196
2358
|
block-size: 0;
|
|
2197
2359
|
overflow: visible;
|
|
@@ -2199,7 +2361,13 @@ html.u-baseline-grid::after {
|
|
|
2199
2361
|
|
|
2200
2362
|
:where(.bf-theme) :where(.bf-data-spotlight.is-three-blocks) :where(.bf-data-spotlight-item:first-of-type),
|
|
2201
2363
|
:where(.bf-theme) :where(.bf-data-spotlight.is-four-blocks) :where(.bf-data-spotlight-item:nth-child(-n + 2)) {
|
|
2202
|
-
|
|
2364
|
+
grid-row: span 5;
|
|
2365
|
+
}
|
|
2366
|
+
|
|
2367
|
+
:where(.bf-theme) :where(.bf-data-spotlight.is-two-blocks) :where(.bf-data-spotlight-item:nth-of-type(2)),
|
|
2368
|
+
:where(.bf-theme) :where(.bf-data-spotlight.is-three-blocks) :where(.bf-data-spotlight-item:nth-of-type(n + 2)),
|
|
2369
|
+
:where(.bf-theme) :where(.bf-data-spotlight.is-four-blocks) :where(.bf-data-spotlight-item:nth-of-type(n + 3)) {
|
|
2370
|
+
grid-row: 7 / span 5;
|
|
2203
2371
|
}
|
|
2204
2372
|
}
|
|
2205
2373
|
|
|
@@ -2212,15 +2380,18 @@ html.u-baseline-grid::after {
|
|
|
2212
2380
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
2213
2381
|
}
|
|
2214
2382
|
|
|
2383
|
+
:where(.bf-theme) :where(.bf-data-spotlight-items)::after {
|
|
2384
|
+
content: none;
|
|
2385
|
+
}
|
|
2386
|
+
|
|
2215
2387
|
:where(.bf-theme) :where(.bf-data-spotlight.is-two-blocks) :where(.bf-data-spotlight-header) {
|
|
2216
2388
|
block-size: 0;
|
|
2217
2389
|
grid-column: span 2;
|
|
2218
2390
|
overflow: visible;
|
|
2219
2391
|
}
|
|
2220
2392
|
|
|
2221
|
-
:where(.bf-theme) :where(.bf-data-spotlight
|
|
2222
|
-
|
|
2223
|
-
padding-block-end: 0;
|
|
2393
|
+
:where(.bf-theme) :where(.bf-data-spotlight-item) {
|
|
2394
|
+
grid-row: span 5;
|
|
2224
2395
|
}
|
|
2225
2396
|
}
|
|
2226
2397
|
|
|
@@ -2229,7 +2400,7 @@ html.u-baseline-grid::after {
|
|
|
2229
2400
|
headings, copy, and content items keep their own metric-derived rhythm. */
|
|
2230
2401
|
:where(.bf-theme) :where(.bf-divided-section) {
|
|
2231
2402
|
container-type: inline-size;
|
|
2232
|
-
margin
|
|
2403
|
+
margin: 0;
|
|
2233
2404
|
min-inline-size: 0;
|
|
2234
2405
|
}
|
|
2235
2406
|
|
|
@@ -2248,37 +2419,41 @@ html.u-baseline-grid::after {
|
|
|
2248
2419
|
}
|
|
2249
2420
|
|
|
2250
2421
|
:where(.bf-theme) :where(.bf-divided-section-list) {
|
|
2251
|
-
|
|
2252
|
-
|
|
2422
|
+
--bf-divided-section-rule-to-content: calc(0.5rem - var(--bf-border-width));
|
|
2423
|
+
--bf-stack-space: 1.5rem;
|
|
2253
2424
|
list-style: none;
|
|
2254
2425
|
margin: 0;
|
|
2255
2426
|
padding: 0;
|
|
2256
2427
|
}
|
|
2257
2428
|
|
|
2429
|
+
/* Preserve the pre-0.1.5 list markup; canonical composition also carries
|
|
2430
|
+
bf-stack so the container remains the explicit owner of item spacing. */
|
|
2431
|
+
:where(.bf-theme) :where(.bf-divided-section-list:not(.bf-stack)) {
|
|
2432
|
+
align-content: start;
|
|
2433
|
+
display: grid;
|
|
2434
|
+
gap: var(--bf-stack-space);
|
|
2435
|
+
}
|
|
2436
|
+
|
|
2258
2437
|
:where(.bf-theme) :where(.bf-divided-section-item) {
|
|
2259
2438
|
align-content: start;
|
|
2260
2439
|
display: grid;
|
|
2440
|
+
margin: 0;
|
|
2261
2441
|
min-inline-size: 0;
|
|
2262
2442
|
overflow-wrap: anywhere;
|
|
2443
|
+
padding: 0;
|
|
2444
|
+
position: relative;
|
|
2263
2445
|
}
|
|
2264
2446
|
|
|
2265
|
-
:where(.bf-theme) :where(.bf-divided-section-item
|
|
2266
|
-
|
|
2267
|
-
|
|
2268
|
-
|
|
2269
|
-
:
|
|
2270
|
-
|
|
2271
|
-
|
|
2272
|
-
}
|
|
2273
|
-
|
|
2274
|
-
@container (width >= 38.75rem) {
|
|
2275
|
-
:where(.bf-theme) :where(.bf-divided-section.is-split-medium) :where(.bf-divided-section-layout) {
|
|
2276
|
-
column-gap: var(--bf-grid-gap-inline);
|
|
2277
|
-
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
2278
|
-
}
|
|
2447
|
+
:where(.bf-theme) :where(.bf-divided-section-item + .bf-divided-section-item)::before {
|
|
2448
|
+
background: var(--bf-color-border-low-contrast);
|
|
2449
|
+
block-size: var(--bf-border-width);
|
|
2450
|
+
content: "";
|
|
2451
|
+
inset-block-start: calc((var(--bf-divided-section-rule-to-content) + var(--bf-border-width)) * -1);
|
|
2452
|
+
inset-inline: 0;
|
|
2453
|
+
position: absolute;
|
|
2279
2454
|
}
|
|
2280
2455
|
|
|
2281
|
-
@container (width >=
|
|
2456
|
+
@container (width >= 45rem) {
|
|
2282
2457
|
:where(.bf-theme) :where(.bf-divided-section) :where(.bf-divided-section-layout) {
|
|
2283
2458
|
column-gap: var(--bf-grid-gap-inline);
|
|
2284
2459
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
@@ -2363,12 +2538,13 @@ html.u-baseline-grid::after {
|
|
|
2363
2538
|
border: var(--bf-border-width) solid var(--bf-color-border-default);
|
|
2364
2539
|
border-inline-start: var(--bf-bar-thickness) solid var(--bf-notification-accent);
|
|
2365
2540
|
color: var(--bf-color-text-default);
|
|
2366
|
-
margin-block: 0
|
|
2541
|
+
margin-block: 0;
|
|
2367
2542
|
max-inline-size: 100%;
|
|
2368
2543
|
min-inline-size: 0;
|
|
2369
2544
|
overflow-wrap: anywhere;
|
|
2370
|
-
padding-block: calc(var(--bf-space-
|
|
2371
|
-
padding-
|
|
2545
|
+
padding-block-end: max(0rem, calc(var(--bf-space-half) - var(--bf-border-width)));
|
|
2546
|
+
padding-block-start: 0;
|
|
2547
|
+
padding-inline: calc(var(--bf-icon-label-inline-offset) - var(--bf-bar-thickness)) var(--bf-space-1);
|
|
2372
2548
|
position: relative;
|
|
2373
2549
|
}
|
|
2374
2550
|
|
|
@@ -2391,14 +2567,14 @@ html.u-baseline-grid::after {
|
|
|
2391
2567
|
:where(.bf-theme) :where(.bf-notification.is-borderless) {
|
|
2392
2568
|
border: 0;
|
|
2393
2569
|
padding-block: 0;
|
|
2394
|
-
padding-inline: calc(var(--bf-
|
|
2570
|
+
padding-inline: calc(var(--bf-icon-size-default) + var(--bf-space-1)) 0;
|
|
2395
2571
|
}
|
|
2396
2572
|
|
|
2397
2573
|
:where(.bf-theme) :where(.bf-notification-icon) {
|
|
2398
2574
|
background-color: var(--bf-notification-accent);
|
|
2399
2575
|
background-image: none;
|
|
2400
|
-
inset-block-start: calc(
|
|
2401
|
-
inset-inline-start: var(--bf-space-
|
|
2576
|
+
inset-block-start: calc(((var(--bf-h6-line-height) - var(--bf-icon-size-default)) / 2) + var(--bf-h6-nudge-start) - var(--bf-border-width));
|
|
2577
|
+
inset-inline-start: calc(var(--bf-icon-label-inline-offset) - var(--bf-bar-thickness) - var(--bf-icon-size-default) - var(--bf-space-1));
|
|
2402
2578
|
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0zm0 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13zm-.75 5.25h1.5v5h-1.5v-5zM8 3.5a1 1 0 1 1 0 2 1 1 0 0 1 0-2z'/%3E%3C/svg%3E");
|
|
2403
2579
|
mask-position: center;
|
|
2404
2580
|
mask-repeat: no-repeat;
|
|
@@ -2419,22 +2595,52 @@ html.u-baseline-grid::after {
|
|
|
2419
2595
|
}
|
|
2420
2596
|
|
|
2421
2597
|
:where(.bf-theme) :where(.bf-notification.is-borderless > .bf-notification-icon) {
|
|
2422
|
-
inset-block-start: calc(((var(--bf-
|
|
2598
|
+
inset-block-start: calc(((var(--bf-h6-line-height) - var(--bf-icon-size-default)) / 2) + var(--bf-h6-nudge-start));
|
|
2423
2599
|
inset-inline-start: 0;
|
|
2424
2600
|
}
|
|
2425
2601
|
|
|
2602
|
+
:where(.bf-theme) :where(.bf-notification.is-inline > .bf-notification-icon) {
|
|
2603
|
+
inset-block-start: calc(((var(--bf-body-line-height) - var(--bf-icon-size-default)) / 2) + var(--bf-body-nudge-start) - var(--bf-border-width));
|
|
2604
|
+
}
|
|
2605
|
+
|
|
2426
2606
|
:where(.bf-theme) :where(.bf-notification-content, .bf-notification-meta) {
|
|
2427
2607
|
max-inline-size: 100%;
|
|
2428
2608
|
min-inline-size: 0;
|
|
2429
2609
|
}
|
|
2430
2610
|
|
|
2431
2611
|
:where(.bf-theme) :where(.bf-notification-content) {
|
|
2432
|
-
|
|
2433
|
-
|
|
2434
|
-
padding-
|
|
2612
|
+
/* Neutralise the shell's top border so the first metric role starts on-grid. */
|
|
2613
|
+
margin-block: calc(var(--bf-border-width) * -1) 0;
|
|
2614
|
+
padding-block-start: 0;
|
|
2615
|
+
padding-inline-end: calc(var(--bf-icon-size-default) + var(--bf-space-1));
|
|
2616
|
+
}
|
|
2617
|
+
|
|
2618
|
+
:where(.bf-theme) :where(.bf-notification.is-borderless .bf-notification-content) {
|
|
2619
|
+
--bf-stack-space: 0rem;
|
|
2620
|
+
margin-block-start: 0;
|
|
2621
|
+
}
|
|
2622
|
+
|
|
2623
|
+
/* Metadata-bearing notifications use a full baseline between title and copy,
|
|
2624
|
+
and pair it with the full end inset. This keeps both the metadata boundary
|
|
2625
|
+
and the complete shell on-grid; simpler messages retain compact rhythm. */
|
|
2626
|
+
:where(.bf-theme) :where(.bf-notification:has(> .bf-notification-meta)) {
|
|
2627
|
+
padding-block-end: calc(var(--bf-space-1) - var(--bf-border-width));
|
|
2628
|
+
}
|
|
2629
|
+
|
|
2630
|
+
:where(.bf-theme) :where(.bf-notification.is-inline) {
|
|
2631
|
+
padding-block-end: calc(var(--bf-space-1) - var(--bf-border-width));
|
|
2632
|
+
}
|
|
2633
|
+
|
|
2634
|
+
/* Return the cancelled H6/body metric edges to the shell boundary. The
|
|
2635
|
+
* Documentation tier deliberately gives those roles different metrics, so
|
|
2636
|
+
* deriving this inset keeps every bordered notification on-grid without
|
|
2637
|
+
* reopening the visible title/copy gap. Keep this after the shell variants so
|
|
2638
|
+
* the metric relationship owns their final compensation. */
|
|
2639
|
+
:where(.bf-theme) :where(.bf-notification:has(> .bf-notification-content.is-metric-flush):not(.is-borderless)) {
|
|
2640
|
+
padding-block-end: calc(var(--bf-space-1) - var(--bf-border-width) + var(--bf-baseline) - var(--bf-h6-nudge-start) - var(--bf-body-margin-bottom));
|
|
2435
2641
|
}
|
|
2436
2642
|
|
|
2437
|
-
:where(.bf-theme) :where(.bf-notification-
|
|
2643
|
+
:where(.bf-theme) :where(.bf-notification-message, .bf-notification-timestamp) {
|
|
2438
2644
|
font-family: var(--bf-body-font-family);
|
|
2439
2645
|
font-size: var(--bf-body-font-size);
|
|
2440
2646
|
font-style: var(--bf-body-font-style);
|
|
@@ -2442,20 +2648,11 @@ html.u-baseline-grid::after {
|
|
|
2442
2648
|
max-inline-size: 100%;
|
|
2443
2649
|
}
|
|
2444
2650
|
|
|
2445
|
-
:where(.bf-theme) :where(.bf-notification-title) {
|
|
2446
|
-
font-weight: 600;
|
|
2447
|
-
margin-block: 0;
|
|
2448
|
-
padding-block: 0;
|
|
2449
|
-
}
|
|
2450
|
-
|
|
2451
2651
|
:where(.bf-theme) :where(.bf-notification-message) {
|
|
2452
2652
|
font-weight: var(--bf-body-font-weight);
|
|
2453
|
-
margin-block: 0;
|
|
2454
|
-
padding-block: 0;
|
|
2455
|
-
|
|
2456
|
-
|
|
2457
|
-
:where(.bf-theme) :where(.bf-notification.is-inline .bf-notification-title, .bf-notification.is-inline .bf-notification-message) {
|
|
2458
|
-
display: inline;
|
|
2653
|
+
margin-block: 0 var(--bf-body-margin-bottom);
|
|
2654
|
+
padding-block-end: 0;
|
|
2655
|
+
padding-block-start: var(--bf-body-nudge-start);
|
|
2459
2656
|
}
|
|
2460
2657
|
|
|
2461
2658
|
:where(.bf-theme) :where(.bf-notification-close) {
|
|
@@ -2465,8 +2662,8 @@ html.u-baseline-grid::after {
|
|
|
2465
2662
|
margin-block-end: 0;
|
|
2466
2663
|
padding: 0;
|
|
2467
2664
|
position: absolute;
|
|
2468
|
-
inset-block-start:
|
|
2469
|
-
inset-inline-end:
|
|
2665
|
+
inset-block-start: 0;
|
|
2666
|
+
inset-inline-end: 0;
|
|
2470
2667
|
}
|
|
2471
2668
|
|
|
2472
2669
|
:where(.bf-theme) :where(.bf-notification.is-borderless .bf-notification-close) {
|
|
@@ -2481,7 +2678,7 @@ html.u-baseline-grid::after {
|
|
|
2481
2678
|
flex-wrap: wrap;
|
|
2482
2679
|
gap: var(--bf-space-1) var(--bf-space-2);
|
|
2483
2680
|
justify-content: space-between;
|
|
2484
|
-
margin-block-end:
|
|
2681
|
+
margin-block-end: 0;
|
|
2485
2682
|
padding-block-start: calc(var(--bf-space-1) - var(--bf-border-width));
|
|
2486
2683
|
padding-inline-end: var(--bf-space-2);
|
|
2487
2684
|
}
|
|
@@ -2494,7 +2691,7 @@ html.u-baseline-grid::after {
|
|
|
2494
2691
|
:where(.bf-theme) :where(.bf-notification-timestamp) {
|
|
2495
2692
|
color: var(--bf-color-text-muted);
|
|
2496
2693
|
font-weight: var(--bf-body-font-weight);
|
|
2497
|
-
margin-block: 0
|
|
2694
|
+
margin-block: 0 var(--bf-body-margin-bottom);
|
|
2498
2695
|
padding-block: var(--bf-body-nudge-start) 0;
|
|
2499
2696
|
}
|
|
2500
2697
|
|
|
@@ -2509,7 +2706,7 @@ html.u-baseline-grid::after {
|
|
|
2509
2706
|
|
|
2510
2707
|
:where(.bf-theme) :where(.bf-notification-actions > .bf-button.is-link) {
|
|
2511
2708
|
flex: 0 0 auto;
|
|
2512
|
-
margin-block-end:
|
|
2709
|
+
margin-block-end: var(--bf-body-margin-bottom);
|
|
2513
2710
|
padding-block: var(--bf-body-nudge-start) 0;
|
|
2514
2711
|
}
|
|
2515
2712
|
|
|
@@ -2529,10 +2726,10 @@ html.u-baseline-grid::after {
|
|
|
2529
2726
|
cursor: inherit;
|
|
2530
2727
|
display: inline-block;
|
|
2531
2728
|
font: inherit;
|
|
2532
|
-
margin: -
|
|
2729
|
+
margin: -0.125rem calc(var(--bf-space-half) * -1);
|
|
2533
2730
|
max-inline-size: 100%;
|
|
2534
2731
|
overflow: hidden;
|
|
2535
|
-
padding:
|
|
2732
|
+
padding: 0.125rem var(--bf-space-half);
|
|
2536
2733
|
text-align: inherit;
|
|
2537
2734
|
text-decoration: inherit;
|
|
2538
2735
|
text-overflow: inherit;
|
|
@@ -2543,7 +2740,7 @@ html.u-baseline-grid::after {
|
|
|
2543
2740
|
:where(.bf-theme) :where(.bf-table.is-sortable th[aria-sort]:hover, .bf-table-sort-button:focus-visible) {
|
|
2544
2741
|
color: var(--bf-color-link-default);
|
|
2545
2742
|
text-decoration: underline;
|
|
2546
|
-
text-decoration-thickness:
|
|
2743
|
+
text-decoration-thickness: 0.0625rem;
|
|
2547
2744
|
text-underline-offset: 0.075em;
|
|
2548
2745
|
}
|
|
2549
2746
|
|
|
@@ -2552,11 +2749,11 @@ html.u-baseline-grid::after {
|
|
|
2552
2749
|
}
|
|
2553
2750
|
|
|
2554
2751
|
:where(.bf-theme) :where(.bf-table-sort-button:focus-visible) {
|
|
2555
|
-
outline:
|
|
2556
|
-
outline-offset: -
|
|
2752
|
+
outline: 0.125rem solid var(--bf-color-focus);
|
|
2753
|
+
outline-offset: -0.125rem;
|
|
2557
2754
|
}
|
|
2558
2755
|
|
|
2559
|
-
:where(.bf-theme) :where(.bf-table.is-sortable th[aria-sort
|
|
2756
|
+
:where(.bf-theme) :where(.bf-table.is-sortable th[aria-sort])::after {
|
|
2560
2757
|
background-image: var(--bf-ui-icon-chevron-down);
|
|
2561
2758
|
background-position: center;
|
|
2562
2759
|
background-repeat: no-repeat;
|
|
@@ -2566,9 +2763,14 @@ html.u-baseline-grid::after {
|
|
|
2566
2763
|
display: inline-block;
|
|
2567
2764
|
inline-size: var(--bf-icon-size-default);
|
|
2568
2765
|
margin-inline-start: var(--bf-space-half);
|
|
2766
|
+
opacity: 0;
|
|
2569
2767
|
vertical-align: calc((1cap - var(--bf-icon-size-default)) / 2);
|
|
2570
2768
|
}
|
|
2571
2769
|
|
|
2770
|
+
:where(.bf-theme) :where(.bf-table.is-sortable th[aria-sort='ascending'], .bf-table.is-sortable th[aria-sort='descending'])::after {
|
|
2771
|
+
opacity: 1;
|
|
2772
|
+
}
|
|
2773
|
+
|
|
2572
2774
|
:where(.bf-theme) :where(.bf-table.is-sortable th[aria-sort='ascending'])::after {
|
|
2573
2775
|
transform: rotate(180deg);
|
|
2574
2776
|
}
|
|
@@ -2605,9 +2807,9 @@ html.u-baseline-grid::after {
|
|
|
2605
2807
|
}
|
|
2606
2808
|
|
|
2607
2809
|
:where(.bf-theme) :where(.bf-table-mobile-card-frame > .bf-table.is-mobile-card > thead) {
|
|
2608
|
-
block-size:
|
|
2810
|
+
block-size: 0.0625rem;
|
|
2609
2811
|
clip-path: inset(50%);
|
|
2610
|
-
inline-size:
|
|
2812
|
+
inline-size: 0.0625rem;
|
|
2611
2813
|
overflow: hidden;
|
|
2612
2814
|
position: absolute;
|
|
2613
2815
|
white-space: nowrap;
|
|
@@ -2678,7 +2880,7 @@ html.u-baseline-grid::after {
|
|
|
2678
2880
|
:where(.bf-theme) :where(.bf-logo-section) {
|
|
2679
2881
|
container-name: bf-logo-section;
|
|
2680
2882
|
container-type: inline-size;
|
|
2681
|
-
margin
|
|
2883
|
+
margin: 0;
|
|
2682
2884
|
min-inline-size: 0;
|
|
2683
2885
|
}
|
|
2684
2886
|
|
|
@@ -2712,8 +2914,8 @@ html.u-baseline-grid::after {
|
|
|
2712
2914
|
}
|
|
2713
2915
|
|
|
2714
2916
|
:where(.bf-theme) :where(.bf-logo-section-link:focus-visible) {
|
|
2715
|
-
outline:
|
|
2716
|
-
outline-offset:
|
|
2917
|
+
outline: 0.125rem solid var(--bf-color-focus);
|
|
2918
|
+
outline-offset: 0.125rem;
|
|
2717
2919
|
}
|
|
2718
2920
|
|
|
2719
2921
|
:where(.bf-theme) :where(.bf-logo-section-logo) {
|
|
@@ -2740,7 +2942,7 @@ html.u-baseline-grid::after {
|
|
|
2740
2942
|
inline-size: 100%;
|
|
2741
2943
|
}
|
|
2742
2944
|
|
|
2743
|
-
/* Vanilla's small breakpoint is
|
|
2945
|
+
/* Vanilla's small breakpoint is 38.75rem. The items descendant, rather than the
|
|
2744
2946
|
query container itself, responds when its allocated space reaches it. */
|
|
2745
2947
|
@container bf-logo-section (width >= 38.75rem) {
|
|
2746
2948
|
:where(.bf-theme) :where(.bf-logo-section-items) {
|
|
@@ -2764,19 +2966,21 @@ html.u-baseline-grid::after {
|
|
|
2764
2966
|
|
|
2765
2967
|
/* ------------------------------------------------------------------ */
|
|
2766
2968
|
/* Media object — semantic media/content slots with a container-owned */
|
|
2767
|
-
/* structural collapse
|
|
2969
|
+
/* structural collapse. Content roles retain their metric boxes. */
|
|
2768
2970
|
/* ------------------------------------------------------------------ */
|
|
2769
2971
|
|
|
2770
2972
|
:where(.bf-theme) :where(.bf-media-object) {
|
|
2771
|
-
|
|
2973
|
+
container-name: bf-media-object;
|
|
2974
|
+
container-type: inline-size;
|
|
2975
|
+
margin: 0;
|
|
2772
2976
|
min-inline-size: 0;
|
|
2773
2977
|
}
|
|
2774
2978
|
|
|
2775
2979
|
:where(.bf-theme) :where(.bf-media-object-layout) {
|
|
2776
|
-
display: grid;
|
|
2777
2980
|
align-items: start;
|
|
2778
|
-
column-gap: var(--bf-
|
|
2779
|
-
|
|
2981
|
+
column-gap: var(--bf-grid-gap-inline);
|
|
2982
|
+
display: grid;
|
|
2983
|
+
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
2780
2984
|
min-inline-size: 0;
|
|
2781
2985
|
}
|
|
2782
2986
|
|
|
@@ -2788,6 +2992,10 @@ html.u-baseline-grid::after {
|
|
|
2788
2992
|
min-inline-size: 0;
|
|
2789
2993
|
}
|
|
2790
2994
|
|
|
2995
|
+
:where(.bf-theme) :where(.bf-media-object-media) {
|
|
2996
|
+
grid-column: 1 / span 2;
|
|
2997
|
+
}
|
|
2998
|
+
|
|
2791
2999
|
:where(.bf-theme) :where(.bf-media-object-media > :where(img, picture, svg, video)) {
|
|
2792
3000
|
block-size: 100%;
|
|
2793
3001
|
display: block;
|
|
@@ -2802,6 +3010,7 @@ html.u-baseline-grid::after {
|
|
|
2802
3010
|
}
|
|
2803
3011
|
|
|
2804
3012
|
:where(.bf-theme) :where(.bf-media-object-content) {
|
|
3013
|
+
grid-column: 3 / -1;
|
|
2805
3014
|
min-inline-size: 0;
|
|
2806
3015
|
overflow-wrap: anywhere;
|
|
2807
3016
|
}
|
|
@@ -2841,8 +3050,12 @@ html.u-baseline-grid::after {
|
|
|
2841
3050
|
}
|
|
2842
3051
|
|
|
2843
3052
|
:where(.bf-theme) :where(.bf-media-object-meta-list) {
|
|
3053
|
+
--bf-stack-space: var(--bf-space-1);
|
|
3054
|
+
align-content: start;
|
|
3055
|
+
display: grid;
|
|
3056
|
+
gap: var(--bf-stack-space);
|
|
2844
3057
|
list-style: none;
|
|
2845
|
-
margin:
|
|
3058
|
+
margin: 0;
|
|
2846
3059
|
padding: 0;
|
|
2847
3060
|
}
|
|
2848
3061
|
|
|
@@ -2855,22 +3068,22 @@ html.u-baseline-grid::after {
|
|
|
2855
3068
|
overflow-wrap: anywhere;
|
|
2856
3069
|
}
|
|
2857
3070
|
|
|
2858
|
-
:where(.bf-theme) :where(.bf-media-object-meta + .bf-media-object-meta) {
|
|
2859
|
-
margin-block-start: var(--bf-space-1);
|
|
2860
|
-
}
|
|
2861
|
-
|
|
2862
3071
|
:where(.bf-theme) :where(.bf-media-object-meta .bf-icon) {
|
|
2863
3072
|
margin-block-start: var(--bf-body-nudge-start);
|
|
2864
3073
|
}
|
|
2865
3074
|
|
|
2866
|
-
|
|
2867
|
-
|
|
2868
|
-
|
|
2869
|
-
}
|
|
3075
|
+
@container bf-media-object (width >= 38.75rem) {
|
|
3076
|
+
:where(.bf-theme) :where(.bf-media-object-layout) {
|
|
3077
|
+
grid-template-columns: repeat(8, minmax(0, 1fr));
|
|
3078
|
+
}
|
|
2870
3079
|
|
|
2871
|
-
:where(.bf-theme) :where(.bf-media-object
|
|
2872
|
-
|
|
2873
|
-
|
|
3080
|
+
:where(.bf-theme) :where(.bf-media-object-media) {
|
|
3081
|
+
grid-column: 1 / span 2;
|
|
3082
|
+
}
|
|
3083
|
+
|
|
3084
|
+
:where(.bf-theme) :where(.bf-media-object-content) {
|
|
3085
|
+
grid-column: 3 / -1;
|
|
3086
|
+
}
|
|
2874
3087
|
}
|
|
2875
3088
|
|
|
2876
3089
|
|
|
@@ -2881,20 +3094,13 @@ html.u-baseline-grid::after {
|
|
|
2881
3094
|
:where(.bf-theme) :where(.bf-linked-logo-section) {
|
|
2882
3095
|
container-name: bf-linked-logo-section;
|
|
2883
3096
|
container-type: inline-size;
|
|
2884
|
-
margin
|
|
3097
|
+
margin: 0;
|
|
2885
3098
|
min-inline-size: 0;
|
|
2886
3099
|
}
|
|
2887
3100
|
|
|
2888
|
-
:where(.bf-theme) :where(.bf-linked-logo-section.is-shallow) {
|
|
2889
|
-
margin-block-end: var(--bf-section-space-shallow);
|
|
2890
|
-
}
|
|
2891
|
-
|
|
2892
|
-
:where(.bf-theme) :where(.bf-linked-logo-section.is-deep) {
|
|
2893
|
-
margin-block-end: var(--bf-section-space-deep);
|
|
2894
|
-
}
|
|
2895
|
-
|
|
2896
3101
|
:where(.bf-theme) :where(.bf-linked-logo-section-layout) {
|
|
2897
3102
|
display: grid;
|
|
3103
|
+
gap: var(--bf-section-space-shallow);
|
|
2898
3104
|
grid-template-columns: minmax(0, 1fr);
|
|
2899
3105
|
min-inline-size: 0;
|
|
2900
3106
|
}
|
|
@@ -2927,7 +3133,7 @@ html.u-baseline-grid::after {
|
|
|
2927
3133
|
max-inline-size: none;
|
|
2928
3134
|
}
|
|
2929
3135
|
|
|
2930
|
-
:where(.bf-theme) :where(.bf-linked-logo-section-card) {
|
|
3136
|
+
:where(.bf-theme) :where(a.bf-linked-logo-section-card) {
|
|
2931
3137
|
align-content: start;
|
|
2932
3138
|
align-items: stretch;
|
|
2933
3139
|
color: inherit;
|
|
@@ -2939,7 +3145,7 @@ html.u-baseline-grid::after {
|
|
|
2939
3145
|
text-decoration: none;
|
|
2940
3146
|
}
|
|
2941
3147
|
|
|
2942
|
-
:where(.bf-theme) :where(.bf-linked-logo-section-card:hover) :where(.bf-linked-logo-section-card-copy) {
|
|
3148
|
+
:where(.bf-theme) :where(a.bf-linked-logo-section-card:hover) :where(.bf-linked-logo-section-card-copy) {
|
|
2943
3149
|
text-decoration: underline;
|
|
2944
3150
|
}
|
|
2945
3151
|
|
|
@@ -2958,7 +3164,7 @@ html.u-baseline-grid::after {
|
|
|
2958
3164
|
of baselines tall. Keep the visual ratio exact and put only the residual
|
|
2959
3165
|
rhythm compensation after the mark; the copy keeps its own semantic
|
|
2960
3166
|
spacing and the occupied card still lands on the tier grid. */
|
|
2961
|
-
@supports (margin-block-end: round(up,
|
|
3167
|
+
@supports (margin-block-end: round(up, 0.0625rem, 0.0625rem)) {
|
|
2962
3168
|
:where(.bf-theme) :where(.bf-linked-logo-section-mark) {
|
|
2963
3169
|
margin-block-end: calc(
|
|
2964
3170
|
round(up, calc(100cqi * 9 / 16), var(--bf-baseline))
|
|
@@ -2990,21 +3196,25 @@ html.u-baseline-grid::after {
|
|
|
2990
3196
|
overflow-wrap: anywhere;
|
|
2991
3197
|
}
|
|
2992
3198
|
|
|
2993
|
-
/*
|
|
2994
|
-
|
|
2995
|
-
|
|
2996
|
-
|
|
3199
|
+
/* The linked-logo block moves from one to two cards per row at the 4-column
|
|
3200
|
+
medium grid. The balanced 50/50 section split uses the shared readable
|
|
3201
|
+
threshold; the 25/75 content rail and four-card density retain their
|
|
3202
|
+
separately measured wide threshold. The root establishes the query context;
|
|
3203
|
+
only descendants change. */
|
|
2997
3204
|
@container bf-linked-logo-section (width >= 38.75rem) {
|
|
2998
3205
|
:where(.bf-theme) :where(.bf-linked-logo-section-logos) :where(.bf-logo-section-items) {
|
|
2999
3206
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
3000
3207
|
}
|
|
3001
3208
|
}
|
|
3002
3209
|
|
|
3003
|
-
@container bf-linked-logo-section (width >=
|
|
3210
|
+
@container bf-linked-logo-section (width >= 45rem) {
|
|
3004
3211
|
:where(.bf-theme) :where(.bf-linked-logo-section.is-50-50) :where(.bf-linked-logo-section-layout) {
|
|
3005
3212
|
column-gap: var(--bf-grid-gap-inline);
|
|
3006
3213
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
3007
3214
|
}
|
|
3215
|
+
}
|
|
3216
|
+
|
|
3217
|
+
@container bf-linked-logo-section (width >= 64.75rem) {
|
|
3008
3218
|
|
|
3009
3219
|
:where(.bf-theme) :where(.bf-linked-logo-section.is-25-75) :where(.bf-linked-logo-section-layout) {
|
|
3010
3220
|
column-gap: var(--bf-grid-gap-inline);
|
|
@@ -3107,35 +3317,27 @@ html.u-baseline-grid::after {
|
|
|
3107
3317
|
}
|
|
3108
3318
|
|
|
3109
3319
|
/* A section title may be the route action without looking like body copy. */
|
|
3110
|
-
:where(.bf-theme) :where(.bf-basic-section-title-link, .bf-basic-section-title-link:visited) {
|
|
3320
|
+
:where(.bf-theme) :where(a.bf-basic-section-title-link, a.bf-basic-section-title-link:visited) {
|
|
3111
3321
|
color: var(--bf-color-link-default);
|
|
3112
3322
|
text-decoration: none;
|
|
3113
3323
|
}
|
|
3114
3324
|
|
|
3115
|
-
:where(.bf-theme) :where(.bf-basic-section-title-link:hover) {
|
|
3325
|
+
:where(.bf-theme) :where(a.bf-basic-section-title-link:hover) {
|
|
3116
3326
|
text-decoration: underline;
|
|
3117
3327
|
text-decoration-thickness: var(--bf-border-width);
|
|
3118
3328
|
text-underline-offset: 0.12em;
|
|
3119
3329
|
}
|
|
3120
3330
|
|
|
3121
|
-
/*
|
|
3122
|
-
|
|
3331
|
+
/* A balanced section switches at the shared readable 50/50 threshold. The
|
|
3332
|
+
layout descendant reacts to the root container; the query never tries to
|
|
3123
3333
|
restyle the container that established it. */
|
|
3124
|
-
@container bf-basic-section (width >=
|
|
3125
|
-
:where(.bf-theme) :where(.bf-basic-section
|
|
3334
|
+
@container bf-basic-section (width >= 45rem) {
|
|
3335
|
+
:where(.bf-theme) :where(.bf-basic-section-layout) {
|
|
3126
3336
|
column-gap: var(--bf-grid-gap-inline);
|
|
3127
3337
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
3128
3338
|
}
|
|
3129
3339
|
}
|
|
3130
3340
|
|
|
3131
|
-
@container bf-basic-section (width >= 64.75rem) {
|
|
3132
|
-
:where(.bf-theme) :where(.bf-basic-section:not(.is-split-medium)) :where(.bf-basic-section-layout) {
|
|
3133
|
-
column-gap: var(--bf-grid-gap-inline);
|
|
3134
|
-
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
3135
|
-
}
|
|
3136
|
-
|
|
3137
|
-
}
|
|
3138
|
-
|
|
3139
3341
|
/* CTA section: Vanilla's 25/75 variant is an offset content rail. The full
|
|
3140
3342
|
variant stays naturally full-width. Typography and action presentation are
|
|
3141
3343
|
supplied by real heading elements and bf-cta-block. */
|
|
@@ -3149,19 +3351,23 @@ html.u-baseline-grid::after {
|
|
|
3149
3351
|
display: grid;
|
|
3150
3352
|
grid-template-columns: minmax(0, 1fr);
|
|
3151
3353
|
min-inline-size: 0;
|
|
3152
|
-
padding-block: calc(var(--bf-section-space-deep) / 2);
|
|
3153
3354
|
}
|
|
3154
3355
|
|
|
3155
3356
|
:where(.bf-theme) :where(.bf-cta-section-content) {
|
|
3357
|
+
--bf-stack-space: var(--bf-section-space-shallow);
|
|
3358
|
+
align-content: start;
|
|
3359
|
+
display: grid;
|
|
3360
|
+
gap: var(--bf-stack-space);
|
|
3156
3361
|
min-inline-size: 0;
|
|
3157
3362
|
overflow-wrap: anywhere;
|
|
3158
3363
|
}
|
|
3159
3364
|
|
|
3160
|
-
|
|
3161
|
-
|
|
3162
|
-
|
|
3163
|
-
|
|
3365
|
+
:where(.bf-theme) :where(.bf-cta-section-copy) {
|
|
3366
|
+
min-inline-size: 0;
|
|
3367
|
+
overflow-wrap: anywhere;
|
|
3368
|
+
}
|
|
3164
3369
|
|
|
3370
|
+
@container bf-cta-section (width >= 64.75rem) {
|
|
3165
3371
|
:where(.bf-theme) :where(.bf-cta-section.is-offset) :where(.bf-cta-section-layout) {
|
|
3166
3372
|
column-gap: var(--bf-grid-gap-inline);
|
|
3167
3373
|
grid-template-columns: minmax(0, 1fr) minmax(0, 3fr);
|
|
@@ -3229,15 +3435,15 @@ html.u-baseline-grid::after {
|
|
|
3229
3435
|
/* semantic gaps and every text child keeps metric compensation. */
|
|
3230
3436
|
/* ------------------------------------------------------------------ */
|
|
3231
3437
|
|
|
3232
|
-
/* Hero:
|
|
3233
|
-
|
|
3234
|
-
|
|
3438
|
+
/* Hero: the compact arrival space belongs inside its entry rule. The outer
|
|
3439
|
+
stack owns the section exit, and the rule replaces one pixel of padding so
|
|
3440
|
+
it never changes the rhythm. */
|
|
3235
3441
|
:where(.bf-theme) :where(.bf-hero) {
|
|
3236
3442
|
border-block-start: var(--bf-border-width) solid var(--bf-color-border-low-contrast);
|
|
3237
3443
|
container-name: bf-hero;
|
|
3238
3444
|
container-type: inline-size;
|
|
3239
3445
|
min-inline-size: 0;
|
|
3240
|
-
padding-block-end:
|
|
3446
|
+
padding-block-end: 0;
|
|
3241
3447
|
padding-block-start: calc(var(--bf-space-2) - var(--bf-border-width));
|
|
3242
3448
|
}
|
|
3243
3449
|
|
|
@@ -3250,6 +3456,7 @@ html.u-baseline-grid::after {
|
|
|
3250
3456
|
|
|
3251
3457
|
:where(.bf-theme) :where(.bf-hero-layout) {
|
|
3252
3458
|
display: grid;
|
|
3459
|
+
gap: var(--bf-section-space-shallow);
|
|
3253
3460
|
grid-template-columns: minmax(0, 1fr);
|
|
3254
3461
|
min-inline-size: 0;
|
|
3255
3462
|
}
|
|
@@ -3259,9 +3466,9 @@ html.u-baseline-grid::after {
|
|
|
3259
3466
|
overflow-wrap: anywhere;
|
|
3260
3467
|
}
|
|
3261
3468
|
|
|
3262
|
-
/*
|
|
3263
|
-
|
|
3264
|
-
|
|
3469
|
+
/* Legacy copy slots remain valid for signpost variants. The default arrival
|
|
3470
|
+
composition separates a title area from its supporting content area, and
|
|
3471
|
+
the demo composes each area with the public stack density modifiers. */
|
|
3265
3472
|
:where(.bf-theme) :where(.bf-hero-copy) {
|
|
3266
3473
|
align-content: start;
|
|
3267
3474
|
display: grid;
|
|
@@ -3288,7 +3495,7 @@ html.u-baseline-grid::after {
|
|
|
3288
3495
|
allocated a fluid grid track. Snap only the media block to the active tier
|
|
3289
3496
|
baseline so the following semantic text remains on-grid; its inline track
|
|
3290
3497
|
and the surrounding Vanilla proportions remain unchanged. */
|
|
3291
|
-
@supports (block-size: calc-size(auto, round(up, size,
|
|
3498
|
+
@supports (block-size: calc-size(auto, round(up, size, 0.0625rem))) {
|
|
3292
3499
|
:where(.bf-theme) :where(.bf-hero-media > .bf-aspect, .bf-hero-signpost > :where(img, picture, video, canvas, svg)) {
|
|
3293
3500
|
block-size: calc-size(auto, round(up, size, var(--bf-baseline)));
|
|
3294
3501
|
}
|
|
@@ -3311,14 +3518,10 @@ html.u-baseline-grid::after {
|
|
|
3311
3518
|
inline-size: 100%;
|
|
3312
3519
|
}
|
|
3313
3520
|
|
|
3314
|
-
/*
|
|
3315
|
-
|
|
3316
|
-
correctly. */
|
|
3317
|
-
/* The section boundary itself follows Vanilla's page-level desktop switch;
|
|
3318
|
-
the composition below continues to react to the allocated container. */
|
|
3521
|
+
/* The section boundary follows the page-level desktop switch, while the
|
|
3522
|
+
two-column composition uses its measured intrinsic allocation below. */
|
|
3319
3523
|
@media (width >= 64.75rem) {
|
|
3320
3524
|
:where(.bf-theme) :where(.bf-hero) {
|
|
3321
|
-
padding-block-end: var(--bf-section-space);
|
|
3322
3525
|
padding-block-start: calc(var(--bf-space-3) - var(--bf-border-width));
|
|
3323
3526
|
}
|
|
3324
3527
|
|
|
@@ -3327,7 +3530,7 @@ html.u-baseline-grid::after {
|
|
|
3327
3530
|
}
|
|
3328
3531
|
}
|
|
3329
3532
|
|
|
3330
|
-
@container bf-hero (width >=
|
|
3533
|
+
@container bf-hero (width >= 45rem) {
|
|
3331
3534
|
:where(.bf-theme) :where(.bf-hero-layout) {
|
|
3332
3535
|
column-gap: var(--bf-grid-gap-inline);
|
|
3333
3536
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
@@ -3347,9 +3550,10 @@ html.u-baseline-grid::after {
|
|
|
3347
3550
|
}
|
|
3348
3551
|
}
|
|
3349
3552
|
|
|
3350
|
-
/*
|
|
3351
|
-
|
|
3352
|
-
|
|
3553
|
+
/* The named variants retain their proportion but share the readable split
|
|
3554
|
+
threshold with the default hero. The modifier changes only structural
|
|
3555
|
+
tracks; it does not introduce an earlier cramped layout. */
|
|
3556
|
+
@container bf-hero (width >= 45rem) {
|
|
3353
3557
|
:where(.bf-theme) :where(.bf-hero.is-split-medium) :where(.bf-hero-layout) {
|
|
3354
3558
|
column-gap: var(--bf-grid-gap-inline);
|
|
3355
3559
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
@@ -3369,14 +3573,10 @@ html.u-baseline-grid::after {
|
|
|
3369
3573
|
:where(.bf-theme) :where(.bf-quote-wrapper) {
|
|
3370
3574
|
container-name: bf-quote-wrapper;
|
|
3371
3575
|
container-type: inline-size;
|
|
3372
|
-
margin
|
|
3576
|
+
margin: 0;
|
|
3373
3577
|
min-inline-size: 0;
|
|
3374
3578
|
}
|
|
3375
3579
|
|
|
3376
|
-
:where(.bf-theme) :where(.bf-quote-wrapper.is-shallow) {
|
|
3377
|
-
margin-block-end: var(--bf-section-space-shallow);
|
|
3378
|
-
}
|
|
3379
|
-
|
|
3380
3580
|
:where(.bf-theme) :where(.bf-quote-wrapper-header, .bf-quote-wrapper-layout, .bf-quote-wrapper-signpost, .bf-quote-wrapper-content, .bf-quote-wrapper-citation, .bf-quote-wrapper-media) {
|
|
3381
3581
|
min-inline-size: 0;
|
|
3382
3582
|
overflow-wrap: anywhere;
|
|
@@ -3423,7 +3623,7 @@ html.u-baseline-grid::after {
|
|
|
3423
3623
|
/* The quote rail can also be a fractional grid track. Keep its media from
|
|
3424
3624
|
introducing a sub-baseline row while leaving quotation and citation rhythm
|
|
3425
3625
|
entirely baseline-compensated while its stack owns semantic gaps. */
|
|
3426
|
-
@supports (block-size: calc-size(auto, round(up, size,
|
|
3626
|
+
@supports (block-size: calc-size(auto, round(up, size, 0.0625rem))) {
|
|
3427
3627
|
:where(.bf-theme) :where(.bf-quote-wrapper-signpost > :where(img, picture, svg), .bf-quote-wrapper-media > .bf-aspect) {
|
|
3428
3628
|
block-size: calc-size(auto, round(up, size, var(--bf-baseline)));
|
|
3429
3629
|
}
|
|
@@ -3462,8 +3662,47 @@ html.u-baseline-grid::after {
|
|
|
3462
3662
|
}
|
|
3463
3663
|
|
|
3464
3664
|
@container bf-quote-wrapper (width >= 64.75rem) {
|
|
3665
|
+
:where(.bf-theme) :where(.bf-quote-wrapper-header) {
|
|
3666
|
+
grid-template-columns: repeat(8, minmax(0, 1fr));
|
|
3667
|
+
}
|
|
3668
|
+
|
|
3669
|
+
:where(.bf-theme) :where(.bf-quote-wrapper-header) > :first-child {
|
|
3670
|
+
grid-column: 1 / span 6;
|
|
3671
|
+
}
|
|
3672
|
+
|
|
3673
|
+
:where(.bf-theme) :where(.bf-quote-wrapper-header-link) {
|
|
3674
|
+
grid-column: 7 / -1;
|
|
3675
|
+
}
|
|
3676
|
+
|
|
3677
|
+
:where(.bf-theme) :where(.bf-quote-wrapper-layout) {
|
|
3678
|
+
grid-template-columns: repeat(8, minmax(0, 1fr));
|
|
3679
|
+
}
|
|
3680
|
+
|
|
3681
|
+
:where(.bf-theme) :where(.bf-quote-wrapper-signpost) {
|
|
3682
|
+
grid-column: 1 / span 2;
|
|
3683
|
+
}
|
|
3684
|
+
|
|
3685
|
+
:where(.bf-theme) :where(.bf-quote-wrapper-content, .bf-quote-wrapper-content:only-child) {
|
|
3686
|
+
display: grid;
|
|
3687
|
+
grid-column: 3 / -1;
|
|
3688
|
+
grid-template-columns: subgrid;
|
|
3689
|
+
}
|
|
3690
|
+
|
|
3465
3691
|
:where(.bf-theme) :where(.bf-quote-wrapper-quote-row) {
|
|
3466
|
-
grid-
|
|
3692
|
+
grid-column: 1 / -1;
|
|
3693
|
+
grid-template-columns: subgrid;
|
|
3694
|
+
}
|
|
3695
|
+
|
|
3696
|
+
:where(.bf-theme) :where(.bf-quote-wrapper-prose) {
|
|
3697
|
+
grid-column: 1 / span 4;
|
|
3698
|
+
}
|
|
3699
|
+
|
|
3700
|
+
:where(.bf-theme) :where(.bf-quote-wrapper-citation) {
|
|
3701
|
+
grid-column: 5 / -1;
|
|
3702
|
+
}
|
|
3703
|
+
|
|
3704
|
+
:where(.bf-theme) :where(.bf-quote-wrapper-content) > :where(.bf-cta-block, .bf-quote-wrapper-media) {
|
|
3705
|
+
grid-column: 1 / -1;
|
|
3467
3706
|
}
|
|
3468
3707
|
}
|
|
3469
3708
|
|
|
@@ -3476,19 +3715,13 @@ html.u-baseline-grid::after {
|
|
|
3476
3715
|
container-name: bf-rich-list;
|
|
3477
3716
|
container-type: inline-size;
|
|
3478
3717
|
min-inline-size: 0;
|
|
3479
|
-
padding-block-end: calc(var(--bf-section-space) / 2);
|
|
3480
|
-
}
|
|
3481
|
-
|
|
3482
|
-
:where(.bf-theme) :where(.bf-rich-list.is-shallow) {
|
|
3483
|
-
padding-block-end: var(--bf-section-space-shallow);
|
|
3484
|
-
}
|
|
3485
|
-
|
|
3486
|
-
:where(.bf-theme) :where(.bf-rich-list.is-deep) {
|
|
3487
|
-
padding-block-end: calc(var(--bf-section-space-deep) / 2);
|
|
3488
3718
|
}
|
|
3489
3719
|
|
|
3490
3720
|
:where(.bf-theme) :where(.bf-rich-list-layout) {
|
|
3721
|
+
--bf-stack-space: var(--bf-space-1);
|
|
3722
|
+
align-content: start;
|
|
3491
3723
|
display: grid;
|
|
3724
|
+
gap: var(--bf-stack-space);
|
|
3492
3725
|
grid-template-columns: minmax(0, 1fr);
|
|
3493
3726
|
min-inline-size: 0;
|
|
3494
3727
|
}
|
|
@@ -3503,14 +3736,11 @@ html.u-baseline-grid::after {
|
|
|
3503
3736
|
overflow-wrap: anywhere;
|
|
3504
3737
|
}
|
|
3505
3738
|
|
|
3506
|
-
|
|
3507
|
-
|
|
3508
|
-
|
|
3509
|
-
|
|
3510
|
-
|
|
3511
|
-
:where(.bf-theme) :where(.bf-rich-list.is-deep) {
|
|
3512
|
-
padding-block-end: var(--bf-section-space-deep);
|
|
3513
|
-
}
|
|
3739
|
+
:where(.bf-theme) :where(.bf-rich-list-support, .bf-rich-list-content) {
|
|
3740
|
+
--bf-stack-space: var(--bf-space-1);
|
|
3741
|
+
align-content: start;
|
|
3742
|
+
display: grid;
|
|
3743
|
+
gap: var(--bf-stack-space);
|
|
3514
3744
|
}
|
|
3515
3745
|
|
|
3516
3746
|
/* ------------------------------------------------------------------ */
|
|
@@ -3537,7 +3767,7 @@ html.u-baseline-grid::after {
|
|
|
3537
3767
|
/* A full-width ratio inside a fluid Sites rail otherwise leaves the next
|
|
3538
3768
|
heading on a fractional pixel. The visual alone absorbs the trailing
|
|
3539
3769
|
compensation; semantic children retain their own margins unchanged. */
|
|
3540
|
-
@supports (block-size: calc-size(auto, round(up, size,
|
|
3770
|
+
@supports (block-size: calc-size(auto, round(up, size, 0.0625rem))) {
|
|
3541
3771
|
:where(.bf-theme) :where(.bf-rich-list-visual > .bf-aspect) {
|
|
3542
3772
|
block-size: calc-size(auto, round(up, size, var(--bf-baseline)));
|
|
3543
3773
|
}
|
|
@@ -3576,8 +3806,12 @@ html.u-baseline-grid::after {
|
|
|
3576
3806
|
|
|
3577
3807
|
/* Prefixes are logical here even though the shared list predates BF's
|
|
3578
3808
|
logical-property rule. This keeps ticks, bullets and numbers RTL-safe. */
|
|
3809
|
+
:where(.bf-theme) :where(.bf-rich-list-list:has(> .bf-list-item:is(.is-ticked, .is-crossed)), .bf-rich-list-list.is-bulleted, ol.bf-rich-list-list) {
|
|
3810
|
+
padding-inline-start: var(--bf-leading-mark-group-inset);
|
|
3811
|
+
}
|
|
3812
|
+
|
|
3579
3813
|
:where(.bf-theme) :where(.bf-rich-list-list) > .bf-list-item:is(.is-ticked, .is-crossed) {
|
|
3580
|
-
padding-inline-start:
|
|
3814
|
+
padding-inline-start: var(--bf-leading-mark-offset);
|
|
3581
3815
|
}
|
|
3582
3816
|
|
|
3583
3817
|
:where(.bf-theme) :where(.bf-rich-list-list) > .bf-list-item:is(.is-ticked, .is-crossed)::before {
|
|
@@ -3587,7 +3821,7 @@ html.u-baseline-grid::after {
|
|
|
3587
3821
|
}
|
|
3588
3822
|
|
|
3589
3823
|
:where(.bf-theme) :where(.bf-rich-list-list.is-bulleted) > :where(.bf-list-item) {
|
|
3590
|
-
padding-inline-start:
|
|
3824
|
+
padding-inline-start: var(--bf-leading-mark-offset);
|
|
3591
3825
|
}
|
|
3592
3826
|
|
|
3593
3827
|
:where(.bf-theme) :where(.bf-rich-list-list.is-bulleted) > :where(.bf-list-item)::before {
|
|
@@ -3606,7 +3840,7 @@ html.u-baseline-grid::after {
|
|
|
3606
3840
|
|
|
3607
3841
|
:where(.bf-theme) :where(ol.bf-rich-list-list) > :where(.bf-list-item) {
|
|
3608
3842
|
counter-increment: bf-rich-horizontal-counter;
|
|
3609
|
-
padding-inline-start:
|
|
3843
|
+
padding-inline-start: var(--bf-leading-mark-offset);
|
|
3610
3844
|
}
|
|
3611
3845
|
|
|
3612
3846
|
:where(.bf-theme) :where(ol.bf-rich-list-list) > :where(.bf-list-item)::before {
|
|
@@ -3653,7 +3887,7 @@ html.u-baseline-grid::after {
|
|
|
3653
3887
|
}
|
|
3654
3888
|
}
|
|
3655
3889
|
|
|
3656
|
-
@container bf-rich-list (width >=
|
|
3890
|
+
@container bf-rich-list (width >= 45rem) {
|
|
3657
3891
|
:where(.bf-theme) :where(.bf-rich-list.is-horizontal.is-50-50) > :where(.bf-rich-list-layout) {
|
|
3658
3892
|
column-gap: var(--bf-grid-gap-inline);
|
|
3659
3893
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
@@ -3667,7 +3901,7 @@ html.u-baseline-grid::after {
|
|
|
3667
3901
|
grid-column: 2;
|
|
3668
3902
|
}
|
|
3669
3903
|
|
|
3670
|
-
:where(.bf-theme) :where(.bf-rich-list.is-horizontal) > :where(.bf-rich-list-layout) > :where(.bf-rich-list-cta) {
|
|
3904
|
+
:where(.bf-theme) :where(.bf-rich-list.is-horizontal.is-50-50) > :where(.bf-rich-list-layout) > :where(.bf-rich-list-cta) {
|
|
3671
3905
|
grid-column: 2;
|
|
3672
3906
|
}
|
|
3673
3907
|
}
|
|
@@ -3682,7 +3916,6 @@ html.u-baseline-grid::after {
|
|
|
3682
3916
|
|
|
3683
3917
|
:where(.bf-theme) :where(.bf-rich-list.is-vertical) :where(.bf-rich-list-media) {
|
|
3684
3918
|
container-type: inline-size;
|
|
3685
|
-
padding-block-end: var(--bf-section-space-shallow);
|
|
3686
3919
|
}
|
|
3687
3920
|
|
|
3688
3921
|
:where(.bf-theme) :where(.bf-rich-list.is-vertical.is-flipped) :where(.bf-rich-list-media) {
|
|
@@ -3701,7 +3934,7 @@ html.u-baseline-grid::after {
|
|
|
3701
3934
|
/* The media object deliberately stretches across fluid 1/2 and 2/3 ratios.
|
|
3702
3935
|
Snap that resulting block, rather than resetting content spacing, so each
|
|
3703
3936
|
tier's baseline survives both portrait and landscape allocations. */
|
|
3704
|
-
@supports (block-size: calc-size(auto, round(up, size,
|
|
3937
|
+
@supports (block-size: calc-size(auto, round(up, size, 0.0625rem))) {
|
|
3705
3938
|
:where(.bf-theme) :where(.bf-rich-list-media-frame) {
|
|
3706
3939
|
block-size: calc-size(auto, round(up, size, var(--bf-baseline)));
|
|
3707
3940
|
}
|
|
@@ -3744,11 +3977,7 @@ html.u-baseline-grid::after {
|
|
|
3744
3977
|
/* Auto height has no shallow media wrapper in Vanilla. At narrow widths it
|
|
3745
3978
|
remains a normal 3:2 frame; at the wide split it stretches with the content
|
|
3746
3979
|
rail, clamped between the equivalent 16:9 and 2:3 heights. */
|
|
3747
|
-
|
|
3748
|
-
padding-block-end: 0;
|
|
3749
|
-
}
|
|
3750
|
-
|
|
3751
|
-
@container bf-rich-list (width >= 64.75rem) {
|
|
3980
|
+
@container bf-rich-list (width >= 45rem) {
|
|
3752
3981
|
:where(.bf-theme) :where(.bf-rich-list.is-vertical) > :where(.bf-rich-list-layout) {
|
|
3753
3982
|
align-items: stretch;
|
|
3754
3983
|
column-gap: var(--bf-grid-gap-inline);
|
|
@@ -3797,7 +4026,7 @@ html.u-baseline-grid::after {
|
|
|
3797
4026
|
min-block-size: 56.25cqi;
|
|
3798
4027
|
}
|
|
3799
4028
|
|
|
3800
|
-
@supports (min-block-size: round(up,
|
|
4029
|
+
@supports (min-block-size: round(up, 0.0625rem, 0.0625rem)) {
|
|
3801
4030
|
:where(.bf-theme) :where(.bf-rich-list-media.is-auto-height) :where(.bf-rich-list-media-frame) {
|
|
3802
4031
|
max-block-size: round(down, 150cqi, var(--bf-baseline));
|
|
3803
4032
|
min-block-size: round(up, 56.25cqi, var(--bf-baseline));
|
|
@@ -3815,6 +4044,7 @@ html.u-baseline-grid::after {
|
|
|
3815
4044
|
|
|
3816
4045
|
|
|
3817
4046
|
:where(.bf-theme) :where(.bf-panel) {
|
|
4047
|
+
--bf-panel-content-padding-inline: var(--bf-component-inline-inset-continuation);
|
|
3818
4048
|
background: var(--bf-color-background-default);
|
|
3819
4049
|
color: var(--bf-color-text-default);
|
|
3820
4050
|
display: flex;
|
|
@@ -3837,6 +4067,9 @@ html.u-baseline-grid::after {
|
|
|
3837
4067
|
overscroll-behavior: contain;
|
|
3838
4068
|
}
|
|
3839
4069
|
|
|
4070
|
+
/* Panel chrome and content consume the live page-grid gutter through a local
|
|
4071
|
+
* derived property, so their internal text rails follow the same
|
|
4072
|
+
* viewport brackets as surrounding page content. */
|
|
3840
4073
|
:where(.bf-theme) :where(.bf-panel-header) {
|
|
3841
4074
|
align-items: start;
|
|
3842
4075
|
display: flex;
|
|
@@ -3845,7 +4078,7 @@ html.u-baseline-grid::after {
|
|
|
3845
4078
|
justify-content: space-between;
|
|
3846
4079
|
padding-block-end: var(--bf-panel-padding-block);
|
|
3847
4080
|
padding-block-start: var(--bf-panel-padding-block);
|
|
3848
|
-
padding-inline: var(--bf-panel-padding-inline);
|
|
4081
|
+
padding-inline: var(--bf-panel-content-padding-inline, var(--bf-panel-padding-inline));
|
|
3849
4082
|
}
|
|
3850
4083
|
|
|
3851
4084
|
/* A navigation brand keeps the Canonical tag attached to the panel's top edge
|
|
@@ -3855,17 +4088,13 @@ html.u-baseline-grid::after {
|
|
|
3855
4088
|
gap: 0;
|
|
3856
4089
|
padding-block: 0;
|
|
3857
4090
|
padding-inline-end: 0;
|
|
3858
|
-
padding-inline-start: var(--bf-panel-padding-inline);
|
|
4091
|
+
padding-inline-start: var(--bf-panel-content-padding-inline, var(--bf-panel-padding-inline));
|
|
3859
4092
|
}
|
|
3860
4093
|
|
|
3861
4094
|
:where(.bf-theme) :where(.bf-panel-header.is-navigation-brand) > :where(.bf-top-navigation-logo.is-canonical-tagged) {
|
|
3862
4095
|
inline-size: 100%;
|
|
3863
4096
|
}
|
|
3864
4097
|
|
|
3865
|
-
:where(.bf-theme) :where(.bf-panel-header.is-navigation-brand) :where(.bf-top-navigation-logo-title) {
|
|
3866
|
-
transform: translateY(var(--bf-navigation-brand-title-optical-offset-block));
|
|
3867
|
-
}
|
|
3868
|
-
|
|
3869
4098
|
:where(.bf-theme) :where(.bf-panel-header) > :where(.bf-panel-title) {
|
|
3870
4099
|
min-inline-size: 0;
|
|
3871
4100
|
}
|
|
@@ -3886,10 +4115,10 @@ html.u-baseline-grid::after {
|
|
|
3886
4115
|
flex-wrap: wrap;
|
|
3887
4116
|
gap: var(--bf-field-gap);
|
|
3888
4117
|
justify-content: space-between;
|
|
3889
|
-
min-block-size: calc(var(--bf-control-box-size-compact) +
|
|
4118
|
+
min-block-size: calc(var(--bf-control-box-size-compact) + var(--bf-panel-padding-block));
|
|
3890
4119
|
padding-block-end: var(--bf-panel-padding-block);
|
|
3891
|
-
padding-block-start:
|
|
3892
|
-
padding-inline: var(--bf-panel-padding-inline);
|
|
4120
|
+
padding-block-start: 0;
|
|
4121
|
+
padding-inline: var(--bf-panel-content-padding-inline, var(--bf-panel-padding-inline));
|
|
3893
4122
|
}
|
|
3894
4123
|
|
|
3895
4124
|
:where(.bf-theme) :where(.bf-panel-footer.is-sticky) {
|
|
@@ -3951,8 +4180,8 @@ html.u-baseline-grid::after {
|
|
|
3951
4180
|
}
|
|
3952
4181
|
|
|
3953
4182
|
:where(.bf-theme) :where(.bf-panel-toggle:focus-visible) {
|
|
3954
|
-
outline:
|
|
3955
|
-
outline-offset:
|
|
4183
|
+
outline: 0.125rem solid var(--bf-color-focus);
|
|
4184
|
+
outline-offset: 0.125rem;
|
|
3956
4185
|
}
|
|
3957
4186
|
|
|
3958
4187
|
:where(.bf-theme) :where(.bf-panel-content) {
|
|
@@ -3960,7 +4189,7 @@ html.u-baseline-grid::after {
|
|
|
3960
4189
|
min-block-size: 0;
|
|
3961
4190
|
padding-block-end: var(--bf-panel-padding-block);
|
|
3962
4191
|
padding-block-start: var(--bf-panel-padding-block);
|
|
3963
|
-
padding-inline: var(--bf-panel-padding-inline);
|
|
4192
|
+
padding-inline: var(--bf-panel-content-padding-inline, var(--bf-panel-padding-inline));
|
|
3964
4193
|
}
|
|
3965
4194
|
|
|
3966
4195
|
:where(.bf-theme) :where(.bf-panel-content.is-flush) {
|
|
@@ -3985,7 +4214,7 @@ html.u-baseline-grid::after {
|
|
|
3985
4214
|
overflow: auto;
|
|
3986
4215
|
padding-block-end: calc(var(--bf-panel-padding-block) - var(--bf-border-width));
|
|
3987
4216
|
padding-block-start: calc(var(--bf-panel-padding-block) - var(--bf-border-width));
|
|
3988
|
-
padding-inline: var(--bf-
|
|
4217
|
+
padding-inline: var(--bf-component-inline-inset-continuation);
|
|
3989
4218
|
}
|
|
3990
4219
|
|
|
3991
4220
|
:where(.bf-theme) :where(.bf-card.is-highlighted) {
|
|
@@ -4010,7 +4239,7 @@ html.u-baseline-grid::after {
|
|
|
4010
4239
|
|
|
4011
4240
|
:where(.bf-theme) :where(a.bf-card:hover, a.bf-card.is-highlighted:hover, a.bf-card.is-overlay:hover, a.bf-card.is-muted:hover) {
|
|
4012
4241
|
border-color: var(--bf-color-focus);
|
|
4013
|
-
transform: translateY(-
|
|
4242
|
+
transform: translateY(-0.0625rem);
|
|
4014
4243
|
}
|
|
4015
4244
|
|
|
4016
4245
|
:where(.bf-theme) :where(a.bf-card:focus:not(:focus-visible), a.bf-card.is-highlighted:focus:not(:focus-visible), a.bf-card.is-overlay:focus:not(:focus-visible), a.bf-card.is-muted:focus:not(:focus-visible)) {
|
|
@@ -4018,8 +4247,8 @@ html.u-baseline-grid::after {
|
|
|
4018
4247
|
}
|
|
4019
4248
|
|
|
4020
4249
|
:where(.bf-theme) :where(a.bf-card:focus-visible, a.bf-card.is-highlighted:focus-visible, a.bf-card.is-overlay:focus-visible, a.bf-card.is-muted:focus-visible) {
|
|
4021
|
-
outline:
|
|
4022
|
-
outline-offset: -
|
|
4250
|
+
outline: 0.125rem solid var(--bf-color-focus);
|
|
4251
|
+
outline-offset: -0.125rem;
|
|
4023
4252
|
}
|
|
4024
4253
|
|
|
4025
4254
|
:where(.bf-theme) :where(.bf-card.is-preview) {
|
|
@@ -4102,7 +4331,7 @@ html.u-baseline-grid::after {
|
|
|
4102
4331
|
min-inline-size: 0;
|
|
4103
4332
|
padding-block-end: calc(var(--bf-panel-padding-block) - var(--bf-border-width));
|
|
4104
4333
|
padding-block-start: calc(var(--bf-panel-padding-block) - var(--bf-border-width));
|
|
4105
|
-
padding-inline: var(--bf-
|
|
4334
|
+
padding-inline: var(--bf-component-inline-inset-continuation);
|
|
4106
4335
|
text-align: left;
|
|
4107
4336
|
}
|
|
4108
4337
|
|
|
@@ -4115,7 +4344,7 @@ html.u-baseline-grid::after {
|
|
|
4115
4344
|
:where(.bf-theme) :where(button.bf-option-card:hover:not(:disabled)) {
|
|
4116
4345
|
background: var(--bf-color-background-hover);
|
|
4117
4346
|
border-color: var(--bf-color-focus);
|
|
4118
|
-
transform: translateY(-
|
|
4347
|
+
transform: translateY(-0.0625rem);
|
|
4119
4348
|
}
|
|
4120
4349
|
|
|
4121
4350
|
:where(.bf-theme) :where(.bf-option-card.is-active),
|
|
@@ -4126,8 +4355,8 @@ html.u-baseline-grid::after {
|
|
|
4126
4355
|
}
|
|
4127
4356
|
|
|
4128
4357
|
:where(.bf-theme) :where(button.bf-option-card:focus-visible) {
|
|
4129
|
-
outline:
|
|
4130
|
-
outline-offset: -
|
|
4358
|
+
outline: 0.125rem solid var(--bf-color-focus);
|
|
4359
|
+
outline-offset: -0.125rem;
|
|
4131
4360
|
}
|
|
4132
4361
|
|
|
4133
4362
|
:where(.bf-theme) :where(.bf-option-card-label) {
|
|
@@ -4175,7 +4404,7 @@ html.u-baseline-grid::after {
|
|
|
4175
4404
|
/* Snap the grid-row wrapper after intrinsic image/copy measurement. Because
|
|
4176
4405
|
the card flexes inside it, peers retain Vanilla's equal-height row while
|
|
4177
4406
|
the card edge and the following row both land on BF baselines. */
|
|
4178
|
-
@supports (block-size: calc-size(auto, round(up, size,
|
|
4407
|
+
@supports (block-size: calc-size(auto, round(up, size, 0.0625rem))) {
|
|
4179
4408
|
:where(.bf-theme) :where(.bf-content-card-wrapper) {
|
|
4180
4409
|
block-size: calc-size(auto, round(up, size, var(--bf-baseline)));
|
|
4181
4410
|
}
|
|
@@ -4352,7 +4581,7 @@ html.u-baseline-grid::after {
|
|
|
4352
4581
|
text-transform: var(--bf-h1-text-transform);
|
|
4353
4582
|
}
|
|
4354
4583
|
|
|
4355
|
-
:where(.bf-theme) :where(.bf-content-card-main-link) {
|
|
4584
|
+
:where(.bf-theme) :where(a.bf-content-card-main-link) {
|
|
4356
4585
|
-webkit-box-orient: vertical;
|
|
4357
4586
|
-webkit-line-clamp: 3;
|
|
4358
4587
|
color: inherit;
|
|
@@ -4372,7 +4601,7 @@ html.u-baseline-grid::after {
|
|
|
4372
4601
|
z-index: 1;
|
|
4373
4602
|
}
|
|
4374
4603
|
|
|
4375
|
-
:where(.bf-theme) :where(.bf-content-card-main-link:is(:hover, :focus, :active, :visited)) {
|
|
4604
|
+
:where(.bf-theme) :where(a.bf-content-card-main-link:is(:hover, :focus, :active, :visited)) {
|
|
4376
4605
|
color: inherit;
|
|
4377
4606
|
text-decoration: none;
|
|
4378
4607
|
}
|
|
@@ -4382,8 +4611,8 @@ html.u-baseline-grid::after {
|
|
|
4382
4611
|
}
|
|
4383
4612
|
|
|
4384
4613
|
:where(.bf-theme) :where(.bf-content-card:has(.bf-content-card-main-link:focus-visible)) {
|
|
4385
|
-
outline:
|
|
4386
|
-
outline-offset:
|
|
4614
|
+
outline: 0.1875rem solid var(--bf-color-focus);
|
|
4615
|
+
outline-offset: 0.125rem;
|
|
4387
4616
|
}
|
|
4388
4617
|
|
|
4389
4618
|
/* All nested actions sit above the expanded main-link hit area. This includes
|
|
@@ -4459,6 +4688,7 @@ html.u-baseline-grid::after {
|
|
|
4459
4688
|
min-inline-size: 0;
|
|
4460
4689
|
overflow-x: auto;
|
|
4461
4690
|
padding-block-end: var(--bf-space-1);
|
|
4691
|
+
padding-block-start: calc(0.5rem - var(--bf-border-width));
|
|
4462
4692
|
padding-inline: var(--bf-space-2);
|
|
4463
4693
|
position: relative;
|
|
4464
4694
|
scrollbar-width: none;
|
|
@@ -4496,11 +4726,11 @@ html.u-baseline-grid::after {
|
|
|
4496
4726
|
|
|
4497
4727
|
/* Internal geometry responds to the card's allocated width. The card root is
|
|
4498
4728
|
only the container; the frame/media/body descendants own queried styles. */
|
|
4499
|
-
/* Vanilla switches the viewport at
|
|
4729
|
+
/* Vanilla switches the viewport at 38.75rem/64.75rem. A four-column card is much
|
|
4500
4730
|
narrower than that viewport after grid margins and gutters, so its internal
|
|
4501
|
-
horizontal layout uses Vanilla's
|
|
4502
|
-
eight-column 50/50 split starts at the roughly
|
|
4503
|
-
|
|
4731
|
+
horizontal layout uses Vanilla's 28.75rem minimum viable allocation. The
|
|
4732
|
+
eight-column 50/50 split starts at the roughly 60rem allocation left by the
|
|
4733
|
+
64.75rem viewport. This preserves the rendered switch in embedded BF grids. */
|
|
4504
4734
|
@container bf-content-card (width < 28.75rem) {
|
|
4505
4735
|
:where(.bf-theme) :where(.bf-content-card-frame:not(:has(.bf-content-card-footer))) {
|
|
4506
4736
|
min-block-size: 0;
|
|
@@ -4652,18 +4882,16 @@ html.u-baseline-grid::after {
|
|
|
4652
4882
|
|
|
4653
4883
|
:where(.bf-theme) :where(.bf-tabs) {
|
|
4654
4884
|
display: grid;
|
|
4885
|
+
gap: var(--bf-space-2);
|
|
4655
4886
|
min-inline-size: 0;
|
|
4656
4887
|
}
|
|
4657
4888
|
|
|
4658
4889
|
:where(.bf-theme) :where(.bf-tabs-list) {
|
|
4659
|
-
|
|
4890
|
+
box-shadow: inset 0 calc(var(--bf-border-width) * -1) 0 var(--bf-color-border-default);
|
|
4660
4891
|
display: flex;
|
|
4661
4892
|
gap: 0;
|
|
4662
4893
|
list-style: none;
|
|
4663
|
-
|
|
4664
|
-
than leaving each link's control compensation between its active rule and
|
|
4665
|
-
the list rule. */
|
|
4666
|
-
margin: 0 0 calc((var(--bf-baseline) * 2) - var(--bf-border-width));
|
|
4894
|
+
margin: 0;
|
|
4667
4895
|
min-inline-size: 0;
|
|
4668
4896
|
overflow-x: auto;
|
|
4669
4897
|
padding: 0;
|
|
@@ -4685,16 +4913,16 @@ html.u-baseline-grid::after {
|
|
|
4685
4913
|
align-items: center;
|
|
4686
4914
|
background: transparent;
|
|
4687
4915
|
border: 0;
|
|
4688
|
-
border-
|
|
4916
|
+
border-block: var(--bf-border-width) solid transparent;
|
|
4689
4917
|
color: var(--bf-color-text-muted);
|
|
4690
4918
|
cursor: pointer;
|
|
4691
|
-
display:
|
|
4919
|
+
display: flex;
|
|
4692
4920
|
gap: calc(var(--bf-baseline) * 0.5);
|
|
4693
4921
|
justify-content: center;
|
|
4694
4922
|
margin-bottom: 0;
|
|
4695
|
-
padding-block-end: calc(var(--bf-
|
|
4696
|
-
padding-block-start: var(--bf-
|
|
4697
|
-
padding-inline: var(--bf-
|
|
4923
|
+
padding-block-end: calc(var(--bf-single-line-row-padding-block) + var(--bf-single-line-row-margin-block-end));
|
|
4924
|
+
padding-block-start: var(--bf-single-line-row-padding-block);
|
|
4925
|
+
padding-inline: var(--bf-component-inline-inset-action);
|
|
4698
4926
|
text-decoration: none;
|
|
4699
4927
|
}
|
|
4700
4928
|
|
|
@@ -4703,18 +4931,22 @@ html.u-baseline-grid::after {
|
|
|
4703
4931
|
color: var(--bf-color-text-default);
|
|
4704
4932
|
}
|
|
4705
4933
|
|
|
4934
|
+
:where(.bf-theme) :where(a.bf-tabs-link:hover) {
|
|
4935
|
+
text-decoration: none;
|
|
4936
|
+
}
|
|
4937
|
+
|
|
4706
4938
|
:where(.bf-theme) :where(.bf-tabs-link:focus:not(:focus-visible)) {
|
|
4707
4939
|
outline: none;
|
|
4708
4940
|
}
|
|
4709
4941
|
|
|
4710
4942
|
:where(.bf-theme) :where(.bf-tabs-link:focus-visible) {
|
|
4711
4943
|
color: var(--bf-color-text-default);
|
|
4712
|
-
outline:
|
|
4713
|
-
outline-offset: -
|
|
4944
|
+
outline: 0.125rem solid var(--bf-color-focus);
|
|
4945
|
+
outline-offset: -0.125rem;
|
|
4714
4946
|
}
|
|
4715
4947
|
|
|
4716
4948
|
:where(.bf-theme) :where(.bf-tabs-link.is-active, .bf-tabs-link[aria-selected='true']) {
|
|
4717
|
-
|
|
4949
|
+
box-shadow: inset 0 calc(var(--bf-bar-thickness) * -1) 0 var(--bf-color-text-default);
|
|
4718
4950
|
color: var(--bf-color-text-default);
|
|
4719
4951
|
}
|
|
4720
4952
|
|
|
@@ -4764,10 +4996,10 @@ html.u-baseline-grid::after {
|
|
|
4764
4996
|
display: grid;
|
|
4765
4997
|
gap: calc(var(--bf-baseline) * 0.75);
|
|
4766
4998
|
grid-template-columns: auto minmax(0, 1fr) auto;
|
|
4767
|
-
margin: 0 0
|
|
4999
|
+
margin: 0 0 var(--bf-single-line-row-margin-block-end);
|
|
4768
5000
|
min-inline-size: 0;
|
|
4769
|
-
padding-block:
|
|
4770
|
-
padding-inline: var(--bf-
|
|
5001
|
+
padding-block: var(--bf-single-line-row-padding-block);
|
|
5002
|
+
padding-inline: var(--bf-component-inline-inset-field);
|
|
4771
5003
|
}
|
|
4772
5004
|
|
|
4773
5005
|
:where(.bf-theme) :where(.bf-choice-row:hover) {
|
|
@@ -4775,8 +5007,8 @@ html.u-baseline-grid::after {
|
|
|
4775
5007
|
}
|
|
4776
5008
|
|
|
4777
5009
|
:where(.bf-theme) :where(.bf-choice-row:has(:focus-visible)) {
|
|
4778
|
-
outline:
|
|
4779
|
-
outline-offset: -
|
|
5010
|
+
outline: 0.125rem solid var(--bf-color-focus);
|
|
5011
|
+
outline-offset: -0.125rem;
|
|
4780
5012
|
}
|
|
4781
5013
|
|
|
4782
5014
|
:where(.bf-theme) :where(.bf-choice-row input[type='radio']) {
|
|
@@ -4823,7 +5055,7 @@ html.u-baseline-grid::after {
|
|
|
4823
5055
|
gap: var(--bf-field-gap);
|
|
4824
5056
|
padding-block-end: calc(var(--bf-panel-padding-block) - var(--bf-border-width));
|
|
4825
5057
|
padding-block-start: var(--bf-panel-padding-block);
|
|
4826
|
-
padding-inline: var(--bf-
|
|
5058
|
+
padding-inline: var(--bf-component-inline-inset-continuation);
|
|
4827
5059
|
}
|
|
4828
5060
|
|
|
4829
5061
|
:where(.bf-theme) :where(.bf-inline-options-heading) {
|
|
@@ -4897,11 +5129,11 @@ html.u-baseline-grid::after {
|
|
|
4897
5129
|
cursor: pointer;
|
|
4898
5130
|
display: inline-flex;
|
|
4899
5131
|
justify-content: center;
|
|
4900
|
-
margin-bottom:
|
|
5132
|
+
margin-bottom: var(--bf-single-line-row-margin-block-end);
|
|
4901
5133
|
max-inline-size: 100%;
|
|
4902
5134
|
overflow: hidden;
|
|
4903
|
-
padding-block:
|
|
4904
|
-
padding-inline: var(--bf-control-inline-padding-action);
|
|
5135
|
+
padding-block: var(--bf-single-line-row-padding-block);
|
|
5136
|
+
padding-inline: var(--bf-control-inline-padding-action-bordered);
|
|
4905
5137
|
text-align: center;
|
|
4906
5138
|
text-decoration: none;
|
|
4907
5139
|
text-overflow: ellipsis;
|
|
@@ -4927,8 +5159,8 @@ html.u-baseline-grid::after {
|
|
|
4927
5159
|
}
|
|
4928
5160
|
|
|
4929
5161
|
:where(.bf-theme) :where(.bf-segmented-control-button:focus-visible, .bf-tab-buttons-button:focus-visible) {
|
|
4930
|
-
outline:
|
|
4931
|
-
outline-offset: -
|
|
5162
|
+
outline: 0.125rem solid var(--bf-color-focus);
|
|
5163
|
+
outline-offset: -0.125rem;
|
|
4932
5164
|
z-index: 2;
|
|
4933
5165
|
}
|
|
4934
5166
|
|
|
@@ -4962,8 +5194,10 @@ html.u-baseline-grid::after {
|
|
|
4962
5194
|
font-weight: var(--bf-body-font-weight, 400);
|
|
4963
5195
|
line-height: var(--bf-body-line-height, 1.5rem);
|
|
4964
5196
|
color: var(--bf-color-text-muted);
|
|
4965
|
-
margin: 0;
|
|
5197
|
+
margin: 0 0 var(--bf-body-margin-bottom);
|
|
4966
5198
|
min-inline-size: 0;
|
|
5199
|
+
padding-block-end: 0;
|
|
5200
|
+
padding-block-start: var(--bf-body-nudge-start);
|
|
4967
5201
|
}
|
|
4968
5202
|
|
|
4969
5203
|
:where(.bf-theme) :where(.bf-breadcrumbs-item) + :where(.bf-breadcrumbs-item)::before {
|
|
@@ -4994,26 +5228,35 @@ html.u-baseline-grid::after {
|
|
|
4994
5228
|
:where(.bf-theme) :where(.bf-tab-section) {
|
|
4995
5229
|
container-name: bf-tab-section;
|
|
4996
5230
|
container-type: inline-size;
|
|
4997
|
-
margin
|
|
5231
|
+
margin: 0;
|
|
4998
5232
|
min-inline-size: 0;
|
|
4999
5233
|
}
|
|
5000
5234
|
|
|
5001
|
-
:where(.bf-theme) :where(.bf-tab-section
|
|
5002
|
-
|
|
5235
|
+
:where(.bf-theme) :where(.bf-tab-section-layout) {
|
|
5236
|
+
display: grid;
|
|
5237
|
+
grid-template-columns: minmax(0, 1fr);
|
|
5238
|
+
min-inline-size: 0;
|
|
5003
5239
|
}
|
|
5004
5240
|
|
|
5005
|
-
:where(.bf-theme) :where(.bf-tab-section
|
|
5006
|
-
|
|
5241
|
+
:where(.bf-theme) :where(.bf-tab-section-rule) {
|
|
5242
|
+
grid-column: 1 / -1;
|
|
5007
5243
|
}
|
|
5008
5244
|
|
|
5009
|
-
:where(.bf-theme) :where(.bf-tab-section-
|
|
5245
|
+
:where(.bf-theme) :where(.bf-tab-section-body) {
|
|
5246
|
+
--bf-stack-space: var(--bf-section-space-shallow);
|
|
5247
|
+
align-content: start;
|
|
5010
5248
|
display: grid;
|
|
5249
|
+
gap: var(--bf-stack-space);
|
|
5011
5250
|
grid-template-columns: minmax(0, 1fr);
|
|
5012
5251
|
min-inline-size: 0;
|
|
5013
5252
|
}
|
|
5014
5253
|
|
|
5015
|
-
:where(.bf-theme) :where(.bf-tab-section-
|
|
5016
|
-
|
|
5254
|
+
:where(.bf-theme) :where(.bf-tab-section-copy) {
|
|
5255
|
+
align-content: start;
|
|
5256
|
+
display: grid;
|
|
5257
|
+
grid-template-columns: minmax(0, 1fr);
|
|
5258
|
+
min-inline-size: 0;
|
|
5259
|
+
row-gap: var(--bf-space-1);
|
|
5017
5260
|
}
|
|
5018
5261
|
|
|
5019
5262
|
:where(.bf-theme) :where(.bf-tab-section-header, .bf-tab-section-intro, .bf-tab-section-tabs) {
|
|
@@ -5021,51 +5264,50 @@ html.u-baseline-grid::after {
|
|
|
5021
5264
|
overflow-wrap: anywhere;
|
|
5022
5265
|
}
|
|
5023
5266
|
|
|
5024
|
-
|
|
5025
|
-
|
|
5026
|
-
child's semantic margins. */
|
|
5027
|
-
:where(.bf-theme) :where(.bf-tab-section:not(.is-50-50)) > :where(.bf-tab-section-layout) > :where(.bf-tab-section-tabs),
|
|
5028
|
-
:where(.bf-theme) :where(.bf-tab-section.is-50-50) > :where(.bf-tab-section-layout:has(> .bf-tab-section-intro)) > :where(.bf-tab-section-tabs) {
|
|
5029
|
-
padding-block-start: var(--bf-section-space-shallow);
|
|
5267
|
+
:where(.bf-theme) :where(.bf-tab-section-tabs) {
|
|
5268
|
+
align-self: start;
|
|
5030
5269
|
}
|
|
5031
5270
|
|
|
5032
|
-
@container bf-tab-section (width >=
|
|
5033
|
-
:where(.bf-theme) :where(.bf-tab-section
|
|
5271
|
+
@container bf-tab-section (width >= 45rem) {
|
|
5272
|
+
:where(.bf-theme) :where(.bf-tab-section-body) {
|
|
5034
5273
|
column-gap: var(--bf-grid-gap-inline);
|
|
5035
5274
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
5036
5275
|
}
|
|
5037
5276
|
|
|
5038
|
-
:where(.bf-theme) :where(.bf-tab-section
|
|
5277
|
+
:where(.bf-theme) :where(.bf-tab-section-copy) {
|
|
5039
5278
|
grid-column: 1 / -1;
|
|
5279
|
+
grid-template-columns: subgrid;
|
|
5040
5280
|
}
|
|
5041
5281
|
|
|
5042
5282
|
/* With supporting copy or actions, Vanilla's heading row is 50/50 for all
|
|
5043
5283
|
three section layouts. The following tab rail retains its own requested
|
|
5044
5284
|
full, half or three-quarter span. */
|
|
5045
|
-
:where(.bf-theme) :where(.bf-tab-section-
|
|
5285
|
+
:where(.bf-theme) :where(.bf-tab-section-copy:has(> .bf-tab-section-intro)) > :where(.bf-tab-section-header) {
|
|
5046
5286
|
grid-column: 1 / 3;
|
|
5047
5287
|
}
|
|
5048
5288
|
|
|
5049
|
-
:where(.bf-theme) :where(.bf-tab-section
|
|
5289
|
+
:where(.bf-theme) :where(.bf-tab-section-copy) > :where(.bf-tab-section-intro) {
|
|
5050
5290
|
grid-column: 3 / -1;
|
|
5051
5291
|
}
|
|
5052
5292
|
|
|
5053
|
-
:where(.bf-theme) :where(.bf-tab-section
|
|
5293
|
+
:where(.bf-theme) :where(.bf-tab-section-body) > :where(.bf-tab-section-tabs) {
|
|
5054
5294
|
grid-column: 1 / -1;
|
|
5055
5295
|
}
|
|
5056
5296
|
|
|
5057
5297
|
/* An unadorned 50/50 section lets auto-placement put the heading and tabs
|
|
5058
5298
|
in the same row. If an intro exists, it occupies that right-hand cell and
|
|
5059
5299
|
the tabs move to the following row, matching the upstream rendering. */
|
|
5060
|
-
:where(.bf-theme) :where(.bf-tab-section.is-50-50)
|
|
5300
|
+
:where(.bf-theme) :where(.bf-tab-section.is-50-50) :where(.bf-tab-section-copy:not(:has(> .bf-tab-section-intro))) {
|
|
5061
5301
|
grid-column: 1 / 3;
|
|
5302
|
+
grid-row: 1;
|
|
5062
5303
|
}
|
|
5063
5304
|
|
|
5064
|
-
:where(.bf-theme) :where(.bf-tab-section.is-50-50)
|
|
5305
|
+
:where(.bf-theme) :where(.bf-tab-section.is-50-50) :where(.bf-tab-section-copy:not(:has(> .bf-tab-section-intro))) + :where(.bf-tab-section-tabs) {
|
|
5065
5306
|
grid-column: 3 / -1;
|
|
5307
|
+
grid-row: 1;
|
|
5066
5308
|
}
|
|
5067
5309
|
|
|
5068
|
-
:where(.bf-theme) :where(.bf-tab-section.is-25-75)
|
|
5310
|
+
:where(.bf-theme) :where(.bf-tab-section.is-25-75) :where(.bf-tab-section-body) > :where(.bf-tab-section-tabs) {
|
|
5069
5311
|
grid-column: 2 / -1;
|
|
5070
5312
|
}
|
|
5071
5313
|
}
|
|
@@ -5076,11 +5318,11 @@ html.u-baseline-grid::after {
|
|
|
5076
5318
|
container-type: inline-size;
|
|
5077
5319
|
display: grid;
|
|
5078
5320
|
grid-template-columns: auto minmax(0, 1fr);
|
|
5079
|
-
margin
|
|
5321
|
+
margin: 0;
|
|
5080
5322
|
min-inline-size: 0;
|
|
5081
5323
|
}
|
|
5082
5324
|
|
|
5083
|
-
:where(.bf-theme) :where(.bf-article-pagination-link) {
|
|
5325
|
+
:where(.bf-theme) :where(a.bf-article-pagination-link) {
|
|
5084
5326
|
background-color: var(--bf-color-background-default);
|
|
5085
5327
|
border: var(--bf-border-width) solid transparent;
|
|
5086
5328
|
box-sizing: border-box;
|
|
@@ -5096,8 +5338,9 @@ html.u-baseline-grid::after {
|
|
|
5096
5338
|
text-decoration: none;
|
|
5097
5339
|
}
|
|
5098
5340
|
|
|
5099
|
-
:where(.bf-theme) :where(.bf-article-pagination-link:hover) {
|
|
5341
|
+
:where(.bf-theme) :where(a.bf-article-pagination-link:hover) {
|
|
5100
5342
|
background-color: var(--bf-color-background-hover);
|
|
5343
|
+
text-decoration: none;
|
|
5101
5344
|
}
|
|
5102
5345
|
|
|
5103
5346
|
:where(.bf-theme) :where(.bf-article-pagination-link:focus:not(:focus-visible)) {
|
|
@@ -5105,8 +5348,8 @@ html.u-baseline-grid::after {
|
|
|
5105
5348
|
}
|
|
5106
5349
|
|
|
5107
5350
|
:where(.bf-theme) :where(.bf-article-pagination-link:focus-visible) {
|
|
5108
|
-
outline:
|
|
5109
|
-
outline-offset:
|
|
5351
|
+
outline: 0.125rem solid var(--bf-color-focus);
|
|
5352
|
+
outline-offset: 0.125rem;
|
|
5110
5353
|
}
|
|
5111
5354
|
|
|
5112
5355
|
:where(.bf-theme) :where(.bf-article-pagination-link.is-previous) {
|
|
@@ -5208,12 +5451,12 @@ html.u-baseline-grid::after {
|
|
|
5208
5451
|
|
|
5209
5452
|
:where(.bf-theme) :where(.bf-article-pagination-link.is-previous:not(:only-child) .bf-article-pagination-label),
|
|
5210
5453
|
:where(.bf-theme) :where(.bf-article-pagination-link.is-previous:not(:only-child) .bf-article-pagination-title) {
|
|
5211
|
-
block-size:
|
|
5454
|
+
block-size: 0.0625rem;
|
|
5212
5455
|
border: 0;
|
|
5213
5456
|
clip: rect(0 0 0 0);
|
|
5214
5457
|
clip-path: inset(50%);
|
|
5215
|
-
inline-size:
|
|
5216
|
-
margin: -
|
|
5458
|
+
inline-size: 0.0625rem;
|
|
5459
|
+
margin: -0.0625rem;
|
|
5217
5460
|
overflow: hidden;
|
|
5218
5461
|
padding: 0;
|
|
5219
5462
|
position: absolute;
|
|
@@ -5231,6 +5474,10 @@ html.u-baseline-grid::after {
|
|
|
5231
5474
|
padding: 0;
|
|
5232
5475
|
}
|
|
5233
5476
|
|
|
5477
|
+
:where(.bf-theme) :where(.bf-list:has(> .bf-list-item:is(.is-ticked, .is-crossed)), ol.bf-list.is-divided) {
|
|
5478
|
+
padding-inline-start: var(--bf-leading-mark-group-inset);
|
|
5479
|
+
}
|
|
5480
|
+
|
|
5234
5481
|
:where(.bf-theme) :where(.bf-list-item) {
|
|
5235
5482
|
font-family: var(--bf-body-font-family, "IBM Plex Sans", "Segoe UI", system-ui, sans-serif);
|
|
5236
5483
|
font-size: var(--bf-body-font-size, 1rem);
|
|
@@ -5246,8 +5493,10 @@ html.u-baseline-grid::after {
|
|
|
5246
5493
|
}
|
|
5247
5494
|
|
|
5248
5495
|
:where(.bf-theme) :where(.bf-list.is-divided) > :where(.bf-list-item) {
|
|
5249
|
-
|
|
5250
|
-
|
|
5496
|
+
border-block: var(--bf-border-width) solid transparent;
|
|
5497
|
+
box-shadow: inset 0 0.0625rem 0 var(--bf-color-border-low-contrast);
|
|
5498
|
+
margin-block-end: var(--bf-single-line-row-margin-block-end);
|
|
5499
|
+
padding-block: var(--bf-single-line-row-padding-block);
|
|
5251
5500
|
}
|
|
5252
5501
|
|
|
5253
5502
|
:where(.bf-theme) :where(.bf-list.is-divided) > :where(.bf-list-item:first-child) {
|
|
@@ -5255,7 +5504,7 @@ html.u-baseline-grid::after {
|
|
|
5255
5504
|
}
|
|
5256
5505
|
|
|
5257
5506
|
:where(.bf-theme) :where(.bf-list-item.is-ticked, .bf-list-item.is-crossed) {
|
|
5258
|
-
padding-inline-start:
|
|
5507
|
+
padding-inline-start: var(--bf-leading-mark-offset);
|
|
5259
5508
|
position: relative;
|
|
5260
5509
|
}
|
|
5261
5510
|
|
|
@@ -5280,10 +5529,6 @@ html.u-baseline-grid::after {
|
|
|
5280
5529
|
background-image: var(--bf-ui-icon-error-grey);
|
|
5281
5530
|
}
|
|
5282
5531
|
|
|
5283
|
-
:where(.bf-theme) :where(.bf-list.is-divided) > :where(.bf-list-item.is-ticked, .bf-list-item.is-crossed)::before {
|
|
5284
|
-
top: calc(var(--bf-leading-icon-offset) + (var(--bf-baseline) * 0.5));
|
|
5285
|
-
}
|
|
5286
|
-
|
|
5287
5532
|
:where(.bf-theme) :where(ol.bf-list.is-divided) {
|
|
5288
5533
|
counter-reset: bf-list-counter;
|
|
5289
5534
|
}
|
|
@@ -5365,11 +5610,11 @@ html.u-baseline-grid::after {
|
|
|
5365
5610
|
background: var(--bf-color-background-alt);
|
|
5366
5611
|
color: var(--bf-color-link-default);
|
|
5367
5612
|
display: block;
|
|
5368
|
-
left: -
|
|
5613
|
+
left: -62.4375rem;
|
|
5369
5614
|
max-inline-size: calc(100vw - var(--bf-baseline));
|
|
5370
5615
|
position: absolute;
|
|
5371
5616
|
text-decoration: none;
|
|
5372
|
-
top: -
|
|
5617
|
+
top: -62.4375rem;
|
|
5373
5618
|
}
|
|
5374
5619
|
|
|
5375
5620
|
:where(.bf-theme) :where(.bf-skip-link:hover) {
|
|
@@ -5378,7 +5623,7 @@ html.u-baseline-grid::after {
|
|
|
5378
5623
|
|
|
5379
5624
|
:where(.bf-theme) :where(.bf-skip-link:focus, .bf-skip-link:focus-visible) {
|
|
5380
5625
|
left: calc(var(--bf-baseline) * 0.5);
|
|
5381
|
-
outline:
|
|
5626
|
+
outline: 0.125rem solid var(--bf-color-focus);
|
|
5382
5627
|
outline-offset: 0;
|
|
5383
5628
|
padding-block: calc(var(--bf-baseline) * 1.5);
|
|
5384
5629
|
padding-inline: calc(var(--bf-baseline) * 1.5);
|
|
@@ -5429,15 +5674,16 @@ html.u-baseline-grid::after {
|
|
|
5429
5674
|
line-height: var(--bf-table-row-line-height);
|
|
5430
5675
|
margin: 0;
|
|
5431
5676
|
overflow: hidden;
|
|
5432
|
-
padding-block: var(--bf-table-row-padding);
|
|
5433
|
-
padding-
|
|
5677
|
+
padding-block-end: var(--bf-table-row-padding-block-end);
|
|
5678
|
+
padding-block-start: var(--bf-table-row-padding-block-start);
|
|
5679
|
+
padding-inline: var(--bf-component-inline-inset-field);
|
|
5434
5680
|
text-align: left;
|
|
5435
5681
|
text-overflow: ellipsis;
|
|
5436
5682
|
vertical-align: top;
|
|
5437
5683
|
}
|
|
5438
5684
|
|
|
5439
5685
|
:where(.bf-theme) :where(th.is-icon-placeholder, td.is-icon-placeholder, .bf-table-cell.is-icon-placeholder) {
|
|
5440
|
-
padding-inline-start: calc(
|
|
5686
|
+
padding-inline-start: calc(var(--bf-component-inline-inset-field) + var(--bf-leading-icon-size) + var(--bf-leading-icon-gap));
|
|
5441
5687
|
}
|
|
5442
5688
|
|
|
5443
5689
|
:where(.bf-theme) :where(th.is-icon-placeholder, td.is-icon-placeholder, .bf-table-cell.is-icon-placeholder) > :where(.bf-icon:first-child) {
|
|
@@ -5465,10 +5711,6 @@ html.u-baseline-grid::after {
|
|
|
5465
5711
|
border-block-end-color: var(--bf-color-border-low-contrast);
|
|
5466
5712
|
}
|
|
5467
5713
|
|
|
5468
|
-
:where(.bf-theme) :where(tbody tr:has(.bf-status-label) > td) {
|
|
5469
|
-
padding-block: calc((var(--bf-baseline) - var(--bf-table-row-border-size)) / 2);
|
|
5470
|
-
}
|
|
5471
|
-
|
|
5472
5714
|
:where(.bf-theme) :where(tbody tr:hover td) {
|
|
5473
5715
|
background: color-mix(in srgb, var(--bf-color-background-hover) 68%, transparent);
|
|
5474
5716
|
}
|
|
@@ -5489,21 +5731,23 @@ html.u-baseline-grid::after {
|
|
|
5489
5731
|
align-items: baseline;
|
|
5490
5732
|
background-color: var(--bf-ui-chip-background);
|
|
5491
5733
|
border: var(--bf-border-width) solid var(--bf-ui-chip-border);
|
|
5492
|
-
border-radius:
|
|
5734
|
+
border-radius: var(--bf-ui-chip-radius);
|
|
5493
5735
|
color: var(--bf-color-text-default);
|
|
5494
5736
|
display: inline-flex;
|
|
5495
5737
|
gap: 0;
|
|
5496
5738
|
inline-size: fit-content;
|
|
5497
5739
|
justify-self: start;
|
|
5498
|
-
margin: 0 var(--bf-ui-chip-padding-inline) var(--bf-
|
|
5740
|
+
margin: 0 var(--bf-ui-chip-padding-inline) var(--bf-single-line-row-margin-block-end) 0;
|
|
5499
5741
|
max-inline-size: 100%;
|
|
5500
|
-
|
|
5501
|
-
padding-
|
|
5502
|
-
padding-inline: var(--bf-ui-chip-padding-inline);
|
|
5742
|
+
padding-block: var(--bf-single-line-row-padding-block);
|
|
5743
|
+
padding-inline: max(0rem, calc(var(--bf-ui-chip-padding-inline) - var(--bf-border-width)));
|
|
5503
5744
|
position: relative;
|
|
5504
5745
|
text-decoration: none;
|
|
5505
5746
|
user-select: none;
|
|
5506
|
-
|
|
5747
|
+
/* Inline-flex exposes the first text child's baseline. The surrounding
|
|
5748
|
+
border-aware row contract now matches buttons instead of inventing a
|
|
5749
|
+
second chip-only occupied height. */
|
|
5750
|
+
vertical-align: baseline;
|
|
5507
5751
|
white-space: nowrap;
|
|
5508
5752
|
}
|
|
5509
5753
|
|
|
@@ -5543,6 +5787,15 @@ html.u-baseline-grid::after {
|
|
|
5543
5787
|
--bf-ui-chip-background-active: var(--bf-color-background-information-active);
|
|
5544
5788
|
}
|
|
5545
5789
|
|
|
5790
|
+
:where(.bf-theme) :where(.bf-chip.is-borderless) {
|
|
5791
|
+
--bf-ui-chip-border: transparent;
|
|
5792
|
+
--bf-ui-chip-border-hover: transparent;
|
|
5793
|
+
--bf-ui-chip-border-active: transparent;
|
|
5794
|
+
--bf-ui-chip-background: transparent;
|
|
5795
|
+
--bf-ui-chip-background-hover: transparent;
|
|
5796
|
+
--bf-ui-chip-background-active: transparent;
|
|
5797
|
+
}
|
|
5798
|
+
|
|
5546
5799
|
:where(.bf-theme) :where(.bf-chip, .bf-chip.is-positive, .bf-chip.is-caution, .bf-chip.is-negative, .bf-chip.is-information):hover {
|
|
5547
5800
|
background-color: var(--bf-ui-chip-background-hover);
|
|
5548
5801
|
border-color: var(--bf-ui-chip-border-hover);
|
|
@@ -5627,16 +5880,20 @@ html.u-baseline-grid::after {
|
|
|
5627
5880
|
--bf-ui-status-background: color-mix(in srgb, var(--bf-color-background-alt) 70%, black);
|
|
5628
5881
|
--bf-ui-status-color: var(--bf-color-button-positive-text);
|
|
5629
5882
|
background-color: var(--bf-ui-status-background);
|
|
5883
|
+
border-block: var(--bf-border-width) solid transparent;
|
|
5630
5884
|
color: var(--bf-ui-status-color);
|
|
5631
5885
|
display: inline-block;
|
|
5886
|
+
inline-size: fit-content;
|
|
5887
|
+
justify-self: start;
|
|
5632
5888
|
font-family: var(--bf-body-font-family, "IBM Plex Sans", "Segoe UI", system-ui, sans-serif);
|
|
5633
5889
|
font-size: var(--bf-body-font-size, 1rem);
|
|
5634
5890
|
font-style: var(--bf-body-font-style, normal);
|
|
5635
5891
|
font-weight: var(--bf-body-font-weight, 400);
|
|
5636
5892
|
line-height: var(--bf-body-line-height, 1.5rem);
|
|
5637
|
-
margin: 0;
|
|
5638
|
-
|
|
5639
|
-
|
|
5893
|
+
margin: 0 0 var(--bf-single-line-row-margin-block-end);
|
|
5894
|
+
/* Status paint is physically symmetric and shares the same occupied block
|
|
5895
|
+
as a button; typography still comes from the body role. */
|
|
5896
|
+
padding-block: var(--bf-single-line-row-padding-block);
|
|
5640
5897
|
padding-inline: var(--bf-ui-chip-padding-inline);
|
|
5641
5898
|
text-align: center;
|
|
5642
5899
|
text-decoration: none;
|
|
@@ -5663,6 +5920,38 @@ html.u-baseline-grid::after {
|
|
|
5663
5920
|
--bf-ui-status-color: var(--bf-color-button-negative-text);
|
|
5664
5921
|
}
|
|
5665
5922
|
|
|
5923
|
+
/* Nested auxiliary surfaces fit a body-sized flex/grid host instead of
|
|
5924
|
+
carrying a second standalone occupied-row contract. This modifier is
|
|
5925
|
+
explicit so component density never changes merely because of ancestry. */
|
|
5926
|
+
:where(.bf-theme) :where(.bf-chip.is-nested, .bf-status-label.is-nested) {
|
|
5927
|
+
line-height: var(--bf-nested-auxiliary-line-height);
|
|
5928
|
+
margin-block: 0;
|
|
5929
|
+
padding-block: var(--bf-nested-auxiliary-padding-block);
|
|
5930
|
+
}
|
|
5931
|
+
|
|
5932
|
+
:where(.bf-theme) :where(.bf-chip.is-nested) {
|
|
5933
|
+
border: 0;
|
|
5934
|
+
box-shadow: inset 0 0 0 var(--bf-border-width) var(--bf-ui-chip-border);
|
|
5935
|
+
}
|
|
5936
|
+
|
|
5937
|
+
:where(.bf-theme) :where(.bf-chip.is-nested:hover) {
|
|
5938
|
+
box-shadow: inset 0 0 0 var(--bf-border-width) var(--bf-ui-chip-border-hover);
|
|
5939
|
+
}
|
|
5940
|
+
|
|
5941
|
+
:where(.bf-theme) :where(.bf-chip.is-nested:is(:active, [aria-pressed='true'], .is-selected)) {
|
|
5942
|
+
box-shadow: inset 0 0 0 var(--bf-border-width) var(--bf-ui-chip-border-active);
|
|
5943
|
+
}
|
|
5944
|
+
|
|
5945
|
+
:where(.bf-theme) :where(.bf-status-label.is-nested) {
|
|
5946
|
+
border-block-width: 0;
|
|
5947
|
+
}
|
|
5948
|
+
|
|
5949
|
+
:where(.bf-theme) :where(.bf-badge.is-nested) {
|
|
5950
|
+
align-self: center;
|
|
5951
|
+
line-height: var(--bf-nested-auxiliary-line-height);
|
|
5952
|
+
vertical-align: middle;
|
|
5953
|
+
}
|
|
5954
|
+
|
|
5666
5955
|
|
|
5667
5956
|
:where(.bf-theme) :where(.bf-chip-dismiss, .bf-search-box-reset, .bf-search-and-filter-clear) {
|
|
5668
5957
|
appearance: none;
|
|
@@ -5674,7 +5963,7 @@ html.u-baseline-grid::after {
|
|
|
5674
5963
|
margin: 0;
|
|
5675
5964
|
padding: 0;
|
|
5676
5965
|
position: relative;
|
|
5677
|
-
text-indent: -
|
|
5966
|
+
text-indent: -624.9375rem;
|
|
5678
5967
|
}
|
|
5679
5968
|
|
|
5680
5969
|
:where(.bf-theme) :where(.bf-chip-dismiss) {
|
|
@@ -5686,7 +5975,7 @@ html.u-baseline-grid::after {
|
|
|
5686
5975
|
:where(.bf-theme) :where(.bf-chip-dismiss, .bf-search-box-reset, .bf-search-and-filter-clear)::before,
|
|
5687
5976
|
:where(.bf-theme) :where(.bf-chip-dismiss, .bf-search-box-reset, .bf-search-and-filter-clear)::after {
|
|
5688
5977
|
background: currentColor;
|
|
5689
|
-
block-size:
|
|
5978
|
+
block-size: 0.125rem;
|
|
5690
5979
|
content: "";
|
|
5691
5980
|
inline-size: 0.75rem;
|
|
5692
5981
|
left: 50%;
|
|
@@ -5704,7 +5993,7 @@ html.u-baseline-grid::after {
|
|
|
5704
5993
|
|
|
5705
5994
|
|
|
5706
5995
|
:where(.bf-theme) :where(.bf-search-box) {
|
|
5707
|
-
--bf-search-box-action-inline-size: calc(1rem + (var(--bf-
|
|
5996
|
+
--bf-search-box-action-inline-size: calc(1rem + (var(--bf-component-inline-inset-field) * 2));
|
|
5708
5997
|
--bf-search-box-trailing-inline-size: calc((var(--bf-search-box-action-inline-size) * 2) + var(--bf-border-width));
|
|
5709
5998
|
display: flex;
|
|
5710
5999
|
inline-size: 100%;
|
|
@@ -5721,12 +6010,12 @@ html.u-baseline-grid::after {
|
|
|
5721
6010
|
|
|
5722
6011
|
:where(.bf-theme) :where(.bf-search-box-reset, .bf-search-box-button) {
|
|
5723
6012
|
align-items: center;
|
|
5724
|
-
block-size:
|
|
6013
|
+
block-size: auto;
|
|
5725
6014
|
display: inline-flex;
|
|
5726
6015
|
inline-size: var(--bf-search-box-action-inline-size);
|
|
6016
|
+
inset-block: 0;
|
|
5727
6017
|
justify-content: center;
|
|
5728
6018
|
position: absolute;
|
|
5729
|
-
top: 0;
|
|
5730
6019
|
}
|
|
5731
6020
|
|
|
5732
6021
|
:where(.bf-theme) :where(.bf-search-box-reset) {
|
|
@@ -5743,7 +6032,7 @@ html.u-baseline-grid::after {
|
|
|
5743
6032
|
inset-inline-end: var(--bf-border-width);
|
|
5744
6033
|
margin: 0;
|
|
5745
6034
|
padding: 0;
|
|
5746
|
-
text-indent: -
|
|
6035
|
+
text-indent: -624.9375rem;
|
|
5747
6036
|
}
|
|
5748
6037
|
|
|
5749
6038
|
:where(.bf-theme) :where(.bf-search-box-button)::before {
|
|
@@ -5770,8 +6059,8 @@ html.u-baseline-grid::after {
|
|
|
5770
6059
|
}
|
|
5771
6060
|
|
|
5772
6061
|
:where(.bf-theme) :where(.bf-search-box-reset:focus-visible, .bf-search-box-button:focus-visible) {
|
|
5773
|
-
outline:
|
|
5774
|
-
outline-offset: -
|
|
6062
|
+
outline: 0.125rem solid var(--bf-color-focus);
|
|
6063
|
+
outline-offset: -0.125rem;
|
|
5775
6064
|
}
|
|
5776
6065
|
|
|
5777
6066
|
:where(.bf-theme) :where(.bf-search-and-filter) {
|
|
@@ -5786,7 +6075,7 @@ html.u-baseline-grid::after {
|
|
|
5786
6075
|
:where(.bf-theme) :where(.bf-search-and-filter-search-container) {
|
|
5787
6076
|
align-items: stretch;
|
|
5788
6077
|
background: transparent;
|
|
5789
|
-
box-shadow: inset 0 -
|
|
6078
|
+
box-shadow: inset 0 -0.0625rem 0 var(--bf-color-border-high-contrast);
|
|
5790
6079
|
display: flex;
|
|
5791
6080
|
flex-wrap: wrap;
|
|
5792
6081
|
gap: var(--bf-field-gap);
|
|
@@ -5802,7 +6091,7 @@ html.u-baseline-grid::after {
|
|
|
5802
6091
|
}
|
|
5803
6092
|
|
|
5804
6093
|
:where(.bf-theme) :where(.bf-search-and-filter-box) {
|
|
5805
|
-
--bf-search-and-filter-action-inline-size: calc(1rem + (var(--bf-
|
|
6094
|
+
--bf-search-and-filter-action-inline-size: calc(1rem + (var(--bf-component-inline-inset-field) * 2));
|
|
5806
6095
|
--bf-search-and-filter-trailing-inline-size: calc(var(--bf-search-and-filter-action-inline-size) * 2);
|
|
5807
6096
|
display: inline-flex;
|
|
5808
6097
|
flex: 1 1 12rem;
|
|
@@ -5819,17 +6108,17 @@ html.u-baseline-grid::after {
|
|
|
5819
6108
|
:where(.bf-theme) :where(.bf-search-and-filter-search-button) {
|
|
5820
6109
|
appearance: none;
|
|
5821
6110
|
background: transparent;
|
|
5822
|
-
block-size:
|
|
6111
|
+
block-size: auto;
|
|
5823
6112
|
border: 0;
|
|
5824
6113
|
color: var(--bf-color-text-default);
|
|
5825
6114
|
cursor: pointer;
|
|
5826
6115
|
inline-size: var(--bf-search-and-filter-action-inline-size);
|
|
6116
|
+
inset-block: 0;
|
|
5827
6117
|
inset-inline-end: 0;
|
|
5828
6118
|
margin: 0;
|
|
5829
6119
|
padding: 0;
|
|
5830
6120
|
position: absolute;
|
|
5831
|
-
text-indent: -
|
|
5832
|
-
top: 0;
|
|
6121
|
+
text-indent: -624.9375rem;
|
|
5833
6122
|
}
|
|
5834
6123
|
|
|
5835
6124
|
:where(.bf-theme) :where(.bf-search-and-filter-search-button)::before {
|
|
@@ -5856,16 +6145,16 @@ html.u-baseline-grid::after {
|
|
|
5856
6145
|
}
|
|
5857
6146
|
|
|
5858
6147
|
:where(.bf-theme) :where(.bf-search-and-filter-search-button:focus-visible, .bf-search-and-filter-selected-count:focus-visible) {
|
|
5859
|
-
outline:
|
|
5860
|
-
outline-offset: -
|
|
6148
|
+
outline: 0.125rem solid var(--bf-color-focus);
|
|
6149
|
+
outline-offset: -0.125rem;
|
|
5861
6150
|
}
|
|
5862
6151
|
|
|
5863
6152
|
:where(.bf-theme) :where(.bf-search-and-filter-clear) {
|
|
5864
|
-
block-size:
|
|
6153
|
+
block-size: auto;
|
|
5865
6154
|
inline-size: var(--bf-search-and-filter-action-inline-size);
|
|
6155
|
+
inset-block: 0;
|
|
5866
6156
|
inset-inline-end: var(--bf-search-and-filter-action-inline-size);
|
|
5867
6157
|
position: absolute;
|
|
5868
|
-
top: 0;
|
|
5869
6158
|
}
|
|
5870
6159
|
|
|
5871
6160
|
:where(.bf-theme) :where(.bf-search-and-filter-selected-count) {
|
|
@@ -5895,12 +6184,12 @@ html.u-baseline-grid::after {
|
|
|
5895
6184
|
background-color: var(--bf-color-background-inputs);
|
|
5896
6185
|
border: var(--bf-border-width) solid var(--bf-color-border-default);
|
|
5897
6186
|
border-top: 0;
|
|
5898
|
-
box-shadow: 0
|
|
6187
|
+
box-shadow: 0 1.5rem 4.5rem rgba(0, 0, 0, 0.38);
|
|
5899
6188
|
display: grid;
|
|
5900
6189
|
gap: var(--bf-field-gap);
|
|
5901
6190
|
opacity: 1;
|
|
5902
6191
|
padding-bottom: calc(var(--bf-panel-padding-block) - var(--bf-border-width));
|
|
5903
|
-
padding-inline: var(--bf-
|
|
6192
|
+
padding-inline: var(--bf-component-inline-inset-continuation);
|
|
5904
6193
|
padding-top: var(--bf-panel-padding-block);
|
|
5905
6194
|
position: absolute;
|
|
5906
6195
|
top: 100%;
|
|
@@ -5945,12 +6234,6 @@ html.u-baseline-grid::after {
|
|
|
5945
6234
|
}
|
|
5946
6235
|
|
|
5947
6236
|
:where(.bf-theme) :where(.bf-filter-panel-section-heading) {
|
|
5948
|
-
font-family: var(--bf-h6-font-family, "IBM Plex Sans", "Segoe UI", system-ui, sans-serif);
|
|
5949
|
-
font-size: var(--bf-h6-font-size, 1rem);
|
|
5950
|
-
font-style: var(--bf-h6-font-style, normal);
|
|
5951
|
-
font-weight: var(--bf-h6-font-weight, 400);
|
|
5952
|
-
line-height: var(--bf-h6-line-height, 1.5rem);
|
|
5953
|
-
color: var(--bf-color-text-muted);
|
|
5954
6237
|
margin: 0;
|
|
5955
6238
|
padding-block: 0;
|
|
5956
6239
|
}
|
|
@@ -5997,7 +6280,7 @@ html.u-baseline-grid::after {
|
|
|
5997
6280
|
:where(.bf-theme) :where(.bf-list-tree) {
|
|
5998
6281
|
list-style: none;
|
|
5999
6282
|
margin: 0;
|
|
6000
|
-
padding-left:
|
|
6283
|
+
padding-left: 0;
|
|
6001
6284
|
}
|
|
6002
6285
|
|
|
6003
6286
|
:where(.bf-theme) :where(.bf-list-tree) :where(.bf-list-tree) {
|
|
@@ -6011,27 +6294,29 @@ html.u-baseline-grid::after {
|
|
|
6011
6294
|
}
|
|
6012
6295
|
|
|
6013
6296
|
:where(.bf-theme) :where(.bf-list-tree-item) {
|
|
6297
|
+
display: grid;
|
|
6014
6298
|
margin: 0;
|
|
6015
|
-
padding-left:
|
|
6299
|
+
padding-left: 0;
|
|
6016
6300
|
position: relative;
|
|
6017
6301
|
}
|
|
6018
6302
|
|
|
6019
|
-
:where(.bf-theme) :where(.bf-list-tree-link) {
|
|
6303
|
+
:where(.bf-theme) :where(a.bf-list-tree-link) {
|
|
6020
6304
|
font-family: var(--bf-body-font-family, "IBM Plex Sans", "Segoe UI", system-ui, sans-serif);
|
|
6021
6305
|
font-size: var(--bf-body-font-size, 1rem);
|
|
6022
6306
|
font-style: var(--bf-body-font-style, normal);
|
|
6023
6307
|
font-weight: var(--bf-body-font-weight, 400);
|
|
6024
6308
|
line-height: var(--bf-body-line-height, 1.5rem);
|
|
6025
6309
|
color: var(--bf-color-text-default);
|
|
6310
|
+
border-block: var(--bf-border-width) solid transparent;
|
|
6026
6311
|
cursor: pointer;
|
|
6027
6312
|
display: block;
|
|
6028
|
-
margin: 0;
|
|
6029
|
-
|
|
6030
|
-
padding-
|
|
6313
|
+
margin: 0 0 var(--bf-single-line-row-margin-block-end);
|
|
6314
|
+
padding-block: var(--bf-single-line-row-padding-block);
|
|
6315
|
+
padding-inline: var(--bf-component-inline-inset-continuation) var(--bf-component-inline-inset-action);
|
|
6031
6316
|
text-decoration: none;
|
|
6032
6317
|
}
|
|
6033
6318
|
|
|
6034
|
-
:where(.bf-theme) :where(.bf-list-tree-link
|
|
6319
|
+
:where(.bf-theme) :where(a.bf-list-tree-link:hover) {
|
|
6035
6320
|
color: var(--bf-color-link-default);
|
|
6036
6321
|
text-decoration: underline;
|
|
6037
6322
|
}
|
|
@@ -6045,8 +6330,8 @@ html.u-baseline-grid::after {
|
|
|
6045
6330
|
}
|
|
6046
6331
|
|
|
6047
6332
|
:where(.bf-theme) :where(.bf-list-tree-link):focus-visible {
|
|
6048
|
-
outline:
|
|
6049
|
-
outline-offset: -
|
|
6333
|
+
outline: 0.125rem solid var(--bf-color-focus);
|
|
6334
|
+
outline-offset: -0.125rem;
|
|
6050
6335
|
}
|
|
6051
6336
|
|
|
6052
6337
|
:where(.bf-theme) :where(.bf-list-tree-toggle) {
|
|
@@ -6058,14 +6343,14 @@ html.u-baseline-grid::after {
|
|
|
6058
6343
|
align-items: center;
|
|
6059
6344
|
background: transparent;
|
|
6060
6345
|
border: 0;
|
|
6346
|
+
border-block: var(--bf-border-width) solid transparent;
|
|
6061
6347
|
color: var(--bf-color-text-default);
|
|
6062
6348
|
cursor: pointer;
|
|
6063
|
-
display:
|
|
6064
|
-
gap:
|
|
6065
|
-
margin: 0 0
|
|
6066
|
-
|
|
6067
|
-
padding-
|
|
6068
|
-
padding-inline: calc(var(--bf-baseline) * 0.25) calc(var(--bf-baseline) * 0.5);
|
|
6349
|
+
display: flex;
|
|
6350
|
+
gap: var(--bf-disclosure-gap);
|
|
6351
|
+
margin: 0 0 var(--bf-single-line-row-margin-block-end);
|
|
6352
|
+
padding-block: var(--bf-single-line-row-padding-block);
|
|
6353
|
+
padding-inline: 0 calc(var(--bf-baseline) * 0.5);
|
|
6069
6354
|
text-align: left;
|
|
6070
6355
|
width: 100%;
|
|
6071
6356
|
}
|
|
@@ -6079,8 +6364,8 @@ html.u-baseline-grid::after {
|
|
|
6079
6364
|
}
|
|
6080
6365
|
|
|
6081
6366
|
:where(.bf-theme) :where(.bf-list-tree-toggle):focus-visible {
|
|
6082
|
-
outline:
|
|
6083
|
-
outline-offset: -
|
|
6367
|
+
outline: 0.125rem solid var(--bf-color-focus);
|
|
6368
|
+
outline-offset: -0.125rem;
|
|
6084
6369
|
}
|
|
6085
6370
|
|
|
6086
6371
|
:where(.bf-theme) :where(.bf-list-tree-toggle)::before {
|
|
@@ -6092,20 +6377,63 @@ html.u-baseline-grid::after {
|
|
|
6092
6377
|
content: "";
|
|
6093
6378
|
flex: 0 0 1rem;
|
|
6094
6379
|
inline-size: 1rem;
|
|
6095
|
-
transform: rotate(-90deg);
|
|
6380
|
+
transform: translateY(var(--bf-disclosure-icon-optical-offset-block)) rotate(-90deg);
|
|
6096
6381
|
}
|
|
6097
6382
|
|
|
6098
6383
|
:where(.bf-theme) :where(.bf-list-tree-toggle[aria-expanded='true'])::before {
|
|
6099
|
-
transform: rotate(0deg);
|
|
6384
|
+
transform: translateY(var(--bf-disclosure-icon-optical-offset-block)) rotate(0deg);
|
|
6100
6385
|
}
|
|
6101
6386
|
|
|
6102
6387
|
|
|
6103
6388
|
:where(.bf-theme) :where(.bf-side-navigation, .bf-side-navigation.is-icons, .bf-side-navigation.is-accordion, .bf-side-navigation.is-raw-html) {
|
|
6389
|
+
/* Plain navigation commands use the action rail. Icon-led rows move only their mark canvas,
|
|
6390
|
+
so their copy reaches the shared continuation rail without a fourth
|
|
6391
|
+
component inset. Navigation depth is added separately below. */
|
|
6392
|
+
/* Navigation copy uses one continuation rail whether a row has a leading
|
|
6393
|
+
disclosure/icon slot or not. The mark canvas is derived backwards from
|
|
6394
|
+
that rail, so iconless rows never introduce a fourth text start. */
|
|
6395
|
+
--bf-side-navigation-content-inset: var(--bf-component-inline-inset-continuation);
|
|
6396
|
+
--bf-side-navigation-disclosure-inset: max(0rem, calc(var(--bf-component-inline-inset-continuation) - var(--bf-disclosure-icon-inline-size) - var(--bf-disclosure-gap)));
|
|
6397
|
+
--bf-side-navigation-depth-step: var(--bf-space-2);
|
|
6398
|
+
--bf-side-navigation-group-gap: 1.5rem;
|
|
6399
|
+
--bf-side-navigation-heading-list-gap: 0.5rem;
|
|
6104
6400
|
color: var(--bf-color-text-inactive);
|
|
6105
6401
|
display: block;
|
|
6106
6402
|
inline-size: 100%;
|
|
6107
6403
|
}
|
|
6108
6404
|
|
|
6405
|
+
:where(.bf-theme) :where(.bf-side-navigation-groups) {
|
|
6406
|
+
align-content: start;
|
|
6407
|
+
display: grid;
|
|
6408
|
+
gap: var(--bf-side-navigation-group-gap);
|
|
6409
|
+
}
|
|
6410
|
+
|
|
6411
|
+
:where(.bf-theme) :where(.bf-side-navigation-group) {
|
|
6412
|
+
display: grid;
|
|
6413
|
+
gap: var(--bf-side-navigation-heading-list-gap);
|
|
6414
|
+
min-inline-size: 0;
|
|
6415
|
+
}
|
|
6416
|
+
|
|
6417
|
+
/* Keep the divider and heading as one tight header. The group owns only the
|
|
6418
|
+
larger transition from that header to its list, so the compensated rule
|
|
6419
|
+
cannot change the heading/list phase. */
|
|
6420
|
+
:where(.bf-theme) :where(.bf-side-navigation-group-header) {
|
|
6421
|
+
display: grid;
|
|
6422
|
+
gap: 0rem;
|
|
6423
|
+
min-inline-size: 0;
|
|
6424
|
+
}
|
|
6425
|
+
|
|
6426
|
+
:where(.bf-theme) :where(.bf-side-navigation-group-header) > hr {
|
|
6427
|
+
inline-size: auto;
|
|
6428
|
+
margin-inline: var(--bf-side-navigation-content-inset) 0;
|
|
6429
|
+
}
|
|
6430
|
+
|
|
6431
|
+
/* A single-line group heading occupies four baselines. min-block-size keeps
|
|
6432
|
+
that phase exact while still allowing a long heading to wrap and grow. */
|
|
6433
|
+
:where(.bf-theme) :where(.bf-side-navigation-group-header) > :where(.bf-side-navigation-heading) {
|
|
6434
|
+
min-block-size: calc((var(--bf-baseline) * 4) - var(--bf-body-margin-bottom));
|
|
6435
|
+
}
|
|
6436
|
+
|
|
6109
6437
|
:where(.bf-theme) :where(.bf-side-navigation-drawer) {
|
|
6110
6438
|
background: var(--bf-color-background-default);
|
|
6111
6439
|
bottom: 0;
|
|
@@ -6122,7 +6450,7 @@ html.u-baseline-grid::after {
|
|
|
6122
6450
|
}
|
|
6123
6451
|
|
|
6124
6452
|
:where(.bf-theme) :where(.bf-side-navigation, .bf-side-navigation.is-icons, .bf-side-navigation.is-accordion, .bf-side-navigation.is-raw-html):where(.is-drawer-expanded) :where(.bf-side-navigation-drawer) {
|
|
6125
|
-
box-shadow: 0
|
|
6453
|
+
box-shadow: 0 1.5rem 4.5rem rgba(0, 0, 0, 0.38);
|
|
6126
6454
|
transform: translateX(0);
|
|
6127
6455
|
}
|
|
6128
6456
|
|
|
@@ -6152,7 +6480,7 @@ html.u-baseline-grid::after {
|
|
|
6152
6480
|
border-bottom: var(--bf-border-width) solid var(--bf-color-border-low-contrast);
|
|
6153
6481
|
margin-bottom: calc(var(--bf-baseline) * 2);
|
|
6154
6482
|
padding-bottom: calc(var(--bf-panel-padding-block) - var(--bf-border-width));
|
|
6155
|
-
padding-inline: var(--bf-
|
|
6483
|
+
padding-inline: var(--bf-component-inline-inset-continuation);
|
|
6156
6484
|
padding-top: var(--bf-panel-padding-block);
|
|
6157
6485
|
position: sticky;
|
|
6158
6486
|
top: 0;
|
|
@@ -6175,9 +6503,9 @@ html.u-baseline-grid::after {
|
|
|
6175
6503
|
display: inline-flex;
|
|
6176
6504
|
gap: calc(var(--bf-baseline) * 0.5);
|
|
6177
6505
|
justify-content: center;
|
|
6178
|
-
margin: 0 0
|
|
6179
|
-
padding-block:
|
|
6180
|
-
padding-inline: var(--bf-control-inline-padding-action);
|
|
6506
|
+
margin: 0 0 var(--bf-single-line-row-margin-block-end);
|
|
6507
|
+
padding-block: var(--bf-single-line-row-padding-block);
|
|
6508
|
+
padding-inline: var(--bf-control-inline-padding-action-bordered);
|
|
6181
6509
|
text-decoration: none;
|
|
6182
6510
|
}
|
|
6183
6511
|
|
|
@@ -6212,8 +6540,8 @@ html.u-baseline-grid::after {
|
|
|
6212
6540
|
}
|
|
6213
6541
|
|
|
6214
6542
|
:where(.bf-theme) :where(.bf-side-navigation-toggle:focus-visible) {
|
|
6215
|
-
outline:
|
|
6216
|
-
outline-offset: -
|
|
6543
|
+
outline: 0.125rem solid var(--bf-color-focus);
|
|
6544
|
+
outline-offset: -0.125rem;
|
|
6217
6545
|
}
|
|
6218
6546
|
|
|
6219
6547
|
:where(.bf-theme) :where(.bf-side-navigation-heading, .bf-side-navigation-heading.is-linked) {
|
|
@@ -6225,22 +6553,23 @@ html.u-baseline-grid::after {
|
|
|
6225
6553
|
display: block;
|
|
6226
6554
|
margin: 0 0 var(--bf-body-margin-bottom);
|
|
6227
6555
|
padding-block: var(--bf-body-nudge-start) 0;
|
|
6556
|
+
padding-inline: var(--bf-side-navigation-content-inset);
|
|
6228
6557
|
}
|
|
6229
6558
|
|
|
6230
|
-
:where(.bf-theme) :where(.bf-side-navigation-
|
|
6231
|
-
|
|
6232
|
-
list-style: none;
|
|
6233
|
-
margin: 0 0 calc(var(--bf-baseline) * 2);
|
|
6234
|
-
padding: 0 0 calc((var(--bf-baseline) * 2) - var(--bf-border-width));
|
|
6559
|
+
:where(.bf-theme) :where(.bf-side-navigation-heading.is-linked) {
|
|
6560
|
+
padding-inline: 0;
|
|
6235
6561
|
}
|
|
6236
6562
|
|
|
6237
|
-
:where(.bf-theme) :where(.bf-side-navigation-list
|
|
6238
|
-
|
|
6239
|
-
|
|
6240
|
-
|
|
6563
|
+
:where(.bf-theme) :where(.bf-side-navigation-list) {
|
|
6564
|
+
display: grid;
|
|
6565
|
+
grid-auto-rows: var(--bf-single-line-row-block-size);
|
|
6566
|
+
list-style: none;
|
|
6567
|
+
margin: 0;
|
|
6568
|
+
padding: 0;
|
|
6241
6569
|
}
|
|
6242
6570
|
|
|
6243
6571
|
:where(.bf-theme) :where(.bf-side-navigation-item, .bf-side-navigation-item.is-title) {
|
|
6572
|
+
display: grid;
|
|
6244
6573
|
margin: 0;
|
|
6245
6574
|
position: relative;
|
|
6246
6575
|
}
|
|
@@ -6252,23 +6581,26 @@ html.u-baseline-grid::after {
|
|
|
6252
6581
|
font-weight: var(--bf-body-font-weight, 400);
|
|
6253
6582
|
line-height: var(--bf-body-line-height, 1.5rem);
|
|
6254
6583
|
align-items: center;
|
|
6584
|
+
align-self: start;
|
|
6255
6585
|
background: transparent;
|
|
6256
6586
|
border: 0;
|
|
6587
|
+
border-block: var(--bf-border-width) solid transparent;
|
|
6257
6588
|
color: var(--bf-color-text-inactive);
|
|
6258
6589
|
display: flex;
|
|
6259
6590
|
gap: calc(var(--bf-baseline) * 0.5);
|
|
6260
6591
|
inline-size: 100%;
|
|
6261
6592
|
justify-content: flex-start;
|
|
6262
|
-
margin: 0;
|
|
6263
|
-
|
|
6264
|
-
padding-
|
|
6265
|
-
|
|
6593
|
+
margin: 0 0 var(--bf-single-line-row-margin-block-end);
|
|
6594
|
+
padding-block: var(--bf-single-line-row-padding-block);
|
|
6595
|
+
padding-inline: var(--bf-side-navigation-content-inset);
|
|
6596
|
+
--bf-side-navigation-row-inset: var(--bf-side-navigation-content-inset);
|
|
6266
6597
|
position: relative;
|
|
6267
6598
|
text-align: left;
|
|
6268
6599
|
text-decoration: none;
|
|
6269
6600
|
}
|
|
6270
6601
|
|
|
6271
6602
|
:where(.bf-theme) :where(.bf-side-navigation-accordion-button) {
|
|
6603
|
+
--bf-side-navigation-row-inset: var(--bf-side-navigation-disclosure-inset);
|
|
6272
6604
|
gap: var(--bf-disclosure-gap);
|
|
6273
6605
|
}
|
|
6274
6606
|
|
|
@@ -6277,22 +6609,21 @@ html.u-baseline-grid::after {
|
|
|
6277
6609
|
font-weight: 600;
|
|
6278
6610
|
}
|
|
6279
6611
|
|
|
6280
|
-
:where(.bf-theme) :where(.bf-side-navigation-heading, .bf-side-navigation-heading.is-linked),
|
|
6281
6612
|
:where(.bf-theme) :where(.bf-side-navigation-list) > :where(.bf-side-navigation-item, .bf-side-navigation-item.is-title) > :where(.bf-side-navigation-link, .bf-side-navigation-text, .bf-side-navigation-accordion-button) {
|
|
6282
|
-
padding-inline-start: var(--bf-
|
|
6613
|
+
padding-inline-start: var(--bf-side-navigation-row-inset, var(--bf-side-navigation-content-inset));
|
|
6283
6614
|
}
|
|
6284
6615
|
|
|
6285
6616
|
:where(.bf-theme) :where(.bf-side-navigation-item, .bf-side-navigation-item.is-title)
|
|
6286
6617
|
:where(.bf-side-navigation-item, .bf-side-navigation-item.is-title)
|
|
6287
6618
|
> :where(.bf-side-navigation-link, .bf-side-navigation-text, .bf-side-navigation-accordion-button) {
|
|
6288
|
-
padding-inline-start: calc(var(--bf-
|
|
6619
|
+
padding-inline-start: calc(var(--bf-side-navigation-row-inset, var(--bf-side-navigation-content-inset)) + var(--bf-side-navigation-depth-step));
|
|
6289
6620
|
}
|
|
6290
6621
|
|
|
6291
6622
|
:where(.bf-theme) :where(.bf-side-navigation-item, .bf-side-navigation-item.is-title)
|
|
6292
6623
|
:where(.bf-side-navigation-item, .bf-side-navigation-item.is-title)
|
|
6293
6624
|
:where(.bf-side-navigation-item, .bf-side-navigation-item.is-title)
|
|
6294
6625
|
> :where(.bf-side-navigation-link, .bf-side-navigation-text, .bf-side-navigation-accordion-button) {
|
|
6295
|
-
padding-inline-start: calc(var(--bf-
|
|
6626
|
+
padding-inline-start: calc(var(--bf-side-navigation-row-inset, var(--bf-side-navigation-content-inset)) + (var(--bf-side-navigation-depth-step) * 2));
|
|
6296
6627
|
}
|
|
6297
6628
|
|
|
6298
6629
|
:where(.bf-theme) :where(.bf-side-navigation-item, .bf-side-navigation-item.is-title)
|
|
@@ -6300,7 +6631,7 @@ html.u-baseline-grid::after {
|
|
|
6300
6631
|
:where(.bf-side-navigation-item, .bf-side-navigation-item.is-title)
|
|
6301
6632
|
:where(.bf-side-navigation-item, .bf-side-navigation-item.is-title)
|
|
6302
6633
|
> :where(.bf-side-navigation-link, .bf-side-navigation-text, .bf-side-navigation-accordion-button) {
|
|
6303
|
-
padding-inline-start: calc(var(--bf-
|
|
6634
|
+
padding-inline-start: calc(var(--bf-side-navigation-row-inset, var(--bf-side-navigation-content-inset)) + (var(--bf-side-navigation-depth-step) * 3));
|
|
6304
6635
|
}
|
|
6305
6636
|
|
|
6306
6637
|
:where(.bf-theme) :where(.bf-side-navigation-link:hover, .bf-side-navigation-accordion-button:hover) {
|
|
@@ -6309,13 +6640,17 @@ html.u-baseline-grid::after {
|
|
|
6309
6640
|
text-decoration: none;
|
|
6310
6641
|
}
|
|
6311
6642
|
|
|
6643
|
+
:where(.bf-theme) :where(a.bf-side-navigation-link:is(:hover, :active)) {
|
|
6644
|
+
text-decoration: none;
|
|
6645
|
+
}
|
|
6646
|
+
|
|
6312
6647
|
:where(.bf-theme) :where(.bf-side-navigation-link:focus:not(:focus-visible), .bf-side-navigation-accordion-button:focus:not(:focus-visible)) {
|
|
6313
6648
|
outline: none;
|
|
6314
6649
|
}
|
|
6315
6650
|
|
|
6316
6651
|
:where(.bf-theme) :where(.bf-side-navigation-link:focus-visible, .bf-side-navigation-accordion-button:focus-visible) {
|
|
6317
|
-
outline:
|
|
6318
|
-
outline-offset: -
|
|
6652
|
+
outline: 0.125rem solid var(--bf-color-focus);
|
|
6653
|
+
outline-offset: -0.125rem;
|
|
6319
6654
|
}
|
|
6320
6655
|
|
|
6321
6656
|
:where(.bf-theme) :where(.bf-side-navigation-link.is-active, .bf-side-navigation-link[aria-current='page'], .bf-side-navigation-link[aria-current='true']) {
|
|
@@ -6486,13 +6821,17 @@ html.u-baseline-grid::after {
|
|
|
6486
6821
|
text-decoration: none;
|
|
6487
6822
|
}
|
|
6488
6823
|
|
|
6824
|
+
:where(.bf-theme) :where(a.bf-top-navigation-link:is(:hover, :active)) {
|
|
6825
|
+
text-decoration: none;
|
|
6826
|
+
}
|
|
6827
|
+
|
|
6489
6828
|
:where(.bf-theme) :where(.bf-top-navigation-link:focus:not(:focus-visible), .bf-top-navigation-menu-toggle:focus:not(:focus-visible), .bf-top-navigation-search-toggle:focus:not(:focus-visible)) {
|
|
6490
6829
|
outline: none;
|
|
6491
6830
|
}
|
|
6492
6831
|
|
|
6493
6832
|
:where(.bf-theme) :where(.bf-top-navigation-link:focus-visible, .bf-top-navigation-menu-toggle:focus-visible, .bf-top-navigation-search-toggle:focus-visible) {
|
|
6494
|
-
outline:
|
|
6495
|
-
outline-offset: -
|
|
6833
|
+
outline: 0.125rem solid var(--bf-color-focus);
|
|
6834
|
+
outline-offset: -0.125rem;
|
|
6496
6835
|
}
|
|
6497
6836
|
|
|
6498
6837
|
:where(.bf-theme) :where(.bf-top-navigation-item.is-selected) > :where(.bf-top-navigation-link),
|
|
@@ -6616,8 +6955,8 @@ html.u-baseline-grid::after {
|
|
|
6616
6955
|
}
|
|
6617
6956
|
|
|
6618
6957
|
:where(.bf-theme) :where(.bf-top-navigation-dropdown-item:focus-visible) {
|
|
6619
|
-
outline:
|
|
6620
|
-
outline-offset: -
|
|
6958
|
+
outline: 0.125rem solid var(--bf-color-focus);
|
|
6959
|
+
outline-offset: -0.125rem;
|
|
6621
6960
|
}
|
|
6622
6961
|
|
|
6623
6962
|
:where(.bf-theme) :where(.bf-top-navigation-search-label) {
|
|
@@ -6788,11 +7127,12 @@ html.u-baseline-grid::after {
|
|
|
6788
7127
|
content: "";
|
|
6789
7128
|
flex: 0 0 var(--bf-disclosure-icon-inline-size);
|
|
6790
7129
|
inline-size: var(--bf-disclosure-icon-inline-size);
|
|
7130
|
+
transform: translateY(var(--bf-disclosure-icon-optical-offset-block));
|
|
6791
7131
|
transition: transform 120ms ease;
|
|
6792
7132
|
}
|
|
6793
7133
|
|
|
6794
7134
|
:where(.bf-theme) :where(.bf-side-navigation-accordion-button[aria-expanded='false'], .bf-side-navigation-expand[aria-expanded='false'])::before {
|
|
6795
|
-
transform: rotate(-90deg);
|
|
7135
|
+
transform: translateY(var(--bf-disclosure-icon-optical-offset-block)) rotate(-90deg);
|
|
6796
7136
|
}
|
|
6797
7137
|
|
|
6798
7138
|
:where(.bf-theme) :where(.bf-side-navigation-expand) {
|
|
@@ -6857,14 +7197,34 @@ html.u-baseline-grid::after {
|
|
|
6857
7197
|
}
|
|
6858
7198
|
|
|
6859
7199
|
:where(.bf-theme) :where(.bf-side-navigation.is-icons) :where(.bf-side-navigation-link, .bf-side-navigation-text, .bf-side-navigation-accordion-button) {
|
|
7200
|
+
--bf-side-navigation-row-inset: max(0rem, calc(var(--bf-component-inline-inset-continuation) - 1rem - var(--bf-side-navigation-icon-gap)));
|
|
6860
7201
|
align-items: baseline;
|
|
6861
7202
|
column-gap: var(--bf-side-navigation-icon-gap);
|
|
6862
7203
|
}
|
|
6863
7204
|
|
|
7205
|
+
/* Icon navigation keeps one stable label edge. Rows may omit a decorative
|
|
7206
|
+
icon without collapsing the shared icon track and pulling their copy left. */
|
|
7207
|
+
:where(.bf-theme) :where(.bf-side-navigation.is-icons) :where(.bf-side-navigation-link, .bf-side-navigation-text):not(:has(> .bf-side-navigation-icon))::before {
|
|
7208
|
+
content: "";
|
|
7209
|
+
flex: 0 0 1rem;
|
|
7210
|
+
inline-size: 1rem;
|
|
7211
|
+
}
|
|
7212
|
+
|
|
7213
|
+
/* A collapsed icon rail cannot communicate an iconless destination. Remove
|
|
7214
|
+
the alignment spacer with the hidden label so it cannot become a blank
|
|
7215
|
+
visual affordance in that state. */
|
|
7216
|
+
:where(.bf-theme) :where(.bf-navigation.is-collapsed) :where(.bf-side-navigation.is-icons) :where(.bf-side-navigation-link, .bf-side-navigation-text):not(:has(> .bf-side-navigation-icon))::before {
|
|
7217
|
+
content: none;
|
|
7218
|
+
}
|
|
7219
|
+
|
|
6864
7220
|
/* Icon-navigation headings share the label edge, not the icon edge. This
|
|
6865
7221
|
keeps section names aligned with both the menu copy and a tagged wordmark. */
|
|
6866
|
-
:where(.bf-theme) :where(.bf-side-navigation.is-icons) :where(.bf-side-navigation-heading
|
|
6867
|
-
padding-inline-start:
|
|
7222
|
+
:where(.bf-theme) :where(.bf-side-navigation.is-icons) :where(.bf-side-navigation-heading:not(.is-linked)) {
|
|
7223
|
+
padding-inline-start: var(--bf-component-inline-inset-continuation);
|
|
7224
|
+
}
|
|
7225
|
+
|
|
7226
|
+
:where(.bf-theme) :where(.bf-side-navigation.is-icons) :where(.bf-side-navigation-heading.is-linked) > :where(.bf-side-navigation-link) {
|
|
7227
|
+
padding-inline-start: var(--bf-component-inline-inset-continuation);
|
|
6868
7228
|
}
|
|
6869
7229
|
|
|
6870
7230
|
:where(.bf-theme) :where(.bf-side-navigation-icon) > svg {
|
|
@@ -6908,7 +7268,7 @@ html.u-baseline-grid::after {
|
|
|
6908
7268
|
:where(.bf-theme) :where(.bf-contextual-menu-dropdown) {
|
|
6909
7269
|
background: var(--bf-color-background-default);
|
|
6910
7270
|
border: var(--bf-border-width) solid var(--bf-color-border-default);
|
|
6911
|
-
box-shadow: 0
|
|
7271
|
+
box-shadow: 0 0.75rem 2rem rgba(0, 0, 0, 0.28);
|
|
6912
7272
|
display: none;
|
|
6913
7273
|
list-style: none;
|
|
6914
7274
|
margin: 0;
|
|
@@ -6942,7 +7302,7 @@ html.u-baseline-grid::after {
|
|
|
6942
7302
|
}
|
|
6943
7303
|
|
|
6944
7304
|
:where(.bf-theme) :where(.bf-contextual-menu-group) + :where(.bf-contextual-menu-group) {
|
|
6945
|
-
box-shadow: inset 0
|
|
7305
|
+
box-shadow: inset 0 0.0625rem 0 var(--bf-color-border-default);
|
|
6946
7306
|
}
|
|
6947
7307
|
|
|
6948
7308
|
:where(.bf-theme) :where(.bf-contextual-menu-link) {
|
|
@@ -6959,8 +7319,9 @@ html.u-baseline-grid::after {
|
|
|
6959
7319
|
display: block;
|
|
6960
7320
|
margin: 0;
|
|
6961
7321
|
overflow: hidden;
|
|
6962
|
-
padding-block: var(--bf-
|
|
6963
|
-
padding-
|
|
7322
|
+
padding-block-end: var(--bf-single-line-row-in-box-padding-block-end);
|
|
7323
|
+
padding-block-start: var(--bf-single-line-row-in-box-padding-block-start);
|
|
7324
|
+
padding-inline: var(--bf-component-inline-inset-action);
|
|
6964
7325
|
text-align: left;
|
|
6965
7326
|
text-decoration: none;
|
|
6966
7327
|
text-overflow: ellipsis;
|
|
@@ -6986,8 +7347,8 @@ html.u-baseline-grid::after {
|
|
|
6986
7347
|
}
|
|
6987
7348
|
|
|
6988
7349
|
:where(.bf-theme) :where(.bf-contextual-menu-link):focus-visible {
|
|
6989
|
-
outline:
|
|
6990
|
-
outline-offset: -
|
|
7350
|
+
outline: 0.125rem solid var(--bf-color-focus);
|
|
7351
|
+
outline-offset: -0.125rem;
|
|
6991
7352
|
}
|
|
6992
7353
|
|
|
6993
7354
|
:where(.bf-theme) :where(.bf-contextual-menu-link.is-disabled, .bf-contextual-menu-link[disabled]) {
|
|
@@ -7015,7 +7376,7 @@ html.u-baseline-grid::after {
|
|
|
7015
7376
|
font-weight: var(--bf-body-font-weight, 400);
|
|
7016
7377
|
line-height: var(--bf-body-line-height, 1.5rem);
|
|
7017
7378
|
background-color: var(--bf-color-background-alt);
|
|
7018
|
-
box-shadow: inset 0 0 0 var(--bf-border-width) var(--bf-color-border-default), 0
|
|
7379
|
+
box-shadow: inset 0 0 0 var(--bf-border-width) var(--bf-color-border-default), 0 0.75rem 2rem rgba(0, 0, 0, 0.24);
|
|
7019
7380
|
color: var(--bf-color-text-default);
|
|
7020
7381
|
inline-size: max-content;
|
|
7021
7382
|
left: 0;
|
|
@@ -7024,7 +7385,7 @@ html.u-baseline-grid::after {
|
|
|
7024
7385
|
opacity: 0;
|
|
7025
7386
|
padding-block-end: var(--bf-body-nudge-end);
|
|
7026
7387
|
padding-block-start: var(--bf-body-nudge-start, 0.375rem);
|
|
7027
|
-
padding-inline: var(--bf-
|
|
7388
|
+
padding-inline: var(--bf-component-inline-inset-continuation);
|
|
7028
7389
|
pointer-events: none;
|
|
7029
7390
|
position: absolute;
|
|
7030
7391
|
top: 100%;
|
|
@@ -7168,10 +7529,10 @@ html.u-baseline-grid::after {
|
|
|
7168
7529
|
display: inline-flex;
|
|
7169
7530
|
gap: calc(var(--bf-baseline) * 0.5);
|
|
7170
7531
|
justify-content: center;
|
|
7171
|
-
margin-bottom:
|
|
7532
|
+
margin-bottom: var(--bf-single-line-row-margin-block-end);
|
|
7172
7533
|
min-inline-size: var(--bf-control-box-size);
|
|
7173
7534
|
padding-block: max(0rem, calc(var(--bf-button-block-padding) - var(--bf-border-width)));
|
|
7174
|
-
padding-inline: var(--bf-control-inline-padding-action);
|
|
7535
|
+
padding-inline: var(--bf-control-inline-padding-action-bordered);
|
|
7175
7536
|
text-align: center;
|
|
7176
7537
|
text-decoration: none;
|
|
7177
7538
|
}
|
|
@@ -7185,8 +7546,8 @@ html.u-baseline-grid::after {
|
|
|
7185
7546
|
}
|
|
7186
7547
|
|
|
7187
7548
|
:where(.bf-theme) :where(.bf-pagination-link:focus-visible, .bf-pagination-link.is-previous:focus-visible, .bf-pagination-link.is-next:focus-visible) {
|
|
7188
|
-
outline:
|
|
7189
|
-
outline-offset:
|
|
7549
|
+
outline: 0.125rem solid var(--bf-color-focus);
|
|
7550
|
+
outline-offset: 0.125rem;
|
|
7190
7551
|
}
|
|
7191
7552
|
|
|
7192
7553
|
:where(.bf-theme) :where(.bf-pagination-link.is-active, .bf-pagination-link[aria-current='page'], .bf-pagination-link[aria-current='true']) {
|
|
@@ -7265,14 +7626,15 @@ html.u-baseline-grid::after {
|
|
|
7265
7626
|
appearance: none;
|
|
7266
7627
|
background: transparent;
|
|
7267
7628
|
border: 0;
|
|
7629
|
+
border-block: var(--bf-border-width) solid transparent;
|
|
7268
7630
|
color: var(--bf-color-text-default);
|
|
7269
7631
|
cursor: pointer;
|
|
7270
7632
|
display: flex;
|
|
7271
7633
|
gap: var(--bf-disclosure-gap);
|
|
7272
7634
|
inline-size: 100%;
|
|
7273
7635
|
justify-content: flex-start;
|
|
7274
|
-
|
|
7275
|
-
padding-block: var(--bf-
|
|
7636
|
+
margin-block-end: var(--bf-single-line-row-margin-block-end);
|
|
7637
|
+
padding-block: var(--bf-single-line-row-padding-block);
|
|
7276
7638
|
padding-inline: 0;
|
|
7277
7639
|
text-align: left;
|
|
7278
7640
|
}
|
|
@@ -7282,8 +7644,8 @@ html.u-baseline-grid::after {
|
|
|
7282
7644
|
}
|
|
7283
7645
|
|
|
7284
7646
|
:where(.bf-theme) :where(.bf-accordion-tab):focus-visible {
|
|
7285
|
-
outline:
|
|
7286
|
-
outline-offset:
|
|
7647
|
+
outline: 0.125rem solid var(--bf-color-focus);
|
|
7648
|
+
outline-offset: 0.125rem;
|
|
7287
7649
|
}
|
|
7288
7650
|
|
|
7289
7651
|
:where(.bf-theme) :where(.bf-accordion-tab)::before {
|
|
@@ -7296,18 +7658,19 @@ html.u-baseline-grid::after {
|
|
|
7296
7658
|
display: inline-block;
|
|
7297
7659
|
flex: none;
|
|
7298
7660
|
inline-size: var(--bf-disclosure-icon-inline-size);
|
|
7661
|
+
transform: translateY(var(--bf-disclosure-icon-optical-offset-block));
|
|
7299
7662
|
transition: transform 120ms ease;
|
|
7300
7663
|
}
|
|
7301
7664
|
|
|
7302
7665
|
:where(.bf-theme) :where(.bf-accordion-tab[aria-expanded='false'])::before {
|
|
7303
|
-
transform: rotate(-90deg);
|
|
7666
|
+
transform: translateY(var(--bf-disclosure-icon-optical-offset-block)) rotate(-90deg);
|
|
7304
7667
|
}
|
|
7305
7668
|
|
|
7306
7669
|
:where(.bf-theme) :where(.bf-accordion-panel) {
|
|
7307
7670
|
margin: 0;
|
|
7308
7671
|
overflow: hidden;
|
|
7309
7672
|
padding-block-start: var(--bf-baseline);
|
|
7310
|
-
padding-inline-start:
|
|
7673
|
+
padding-inline-start: var(--bf-component-inline-inset-continuation);
|
|
7311
7674
|
}
|
|
7312
7675
|
|
|
7313
7676
|
:where(.bf-theme) :where(.bf-accordion-panel[aria-hidden='true']) {
|
|
@@ -7373,7 +7736,7 @@ html.u-baseline-grid::after {
|
|
|
7373
7736
|
:where(.bf-theme) :where(.bf-modal-header, .bf-modal-body, .bf-modal-footer) {
|
|
7374
7737
|
padding-block-end: calc(var(--bf-panel-padding-block) - var(--bf-border-width));
|
|
7375
7738
|
padding-block-start: calc(var(--bf-panel-padding-block) - var(--bf-border-width));
|
|
7376
|
-
padding-inline: var(--bf-
|
|
7739
|
+
padding-inline: var(--bf-component-inline-inset-continuation);
|
|
7377
7740
|
}
|
|
7378
7741
|
|
|
7379
7742
|
:where(.bf-theme) :where(.bf-modal-header) {
|
|
@@ -7447,7 +7810,7 @@ html.u-baseline-grid::after {
|
|
|
7447
7810
|
:where(.bf-theme) :where(.bf-code-snippet-header) {
|
|
7448
7811
|
align-items: start;
|
|
7449
7812
|
background: var(--bf-color-background-active);
|
|
7450
|
-
box-shadow: inset 0 -
|
|
7813
|
+
box-shadow: inset 0 -0.0625rem 0 var(--bf-color-border-default);
|
|
7451
7814
|
display: flex;
|
|
7452
7815
|
flex-wrap: wrap;
|
|
7453
7816
|
justify-content: space-between;
|
|
@@ -7469,7 +7832,7 @@ html.u-baseline-grid::after {
|
|
|
7469
7832
|
margin: 0;
|
|
7470
7833
|
overflow-wrap: anywhere;
|
|
7471
7834
|
padding-block: var(--bf-panel-padding-block);
|
|
7472
|
-
padding-inline: var(--bf-
|
|
7835
|
+
padding-inline: var(--bf-component-inline-inset-continuation);
|
|
7473
7836
|
}
|
|
7474
7837
|
|
|
7475
7838
|
:where(.bf-theme) :where(.bf-code-snippet-dropdowns) {
|
|
@@ -7484,7 +7847,7 @@ html.u-baseline-grid::after {
|
|
|
7484
7847
|
:where(.bf-theme) :where(.bf-code-snippet-header.is-stacked) :where(.bf-code-snippet-dropdowns) {
|
|
7485
7848
|
justify-content: stretch;
|
|
7486
7849
|
margin-inline-start: 0;
|
|
7487
|
-
box-shadow: inset 0
|
|
7850
|
+
box-shadow: inset 0 0.0625rem 0 var(--bf-color-border-default);
|
|
7488
7851
|
width: 100%;
|
|
7489
7852
|
}
|
|
7490
7853
|
|
|
@@ -7503,12 +7866,12 @@ html.u-baseline-grid::after {
|
|
|
7503
7866
|
min-block-size: calc(var(--bf-body-line-height, 1.5rem) + (var(--bf-panel-padding-block) * 2));
|
|
7504
7867
|
min-inline-size: 0;
|
|
7505
7868
|
padding-block: var(--bf-panel-padding-block);
|
|
7506
|
-
padding-inline: var(--bf-
|
|
7869
|
+
padding-inline: var(--bf-component-inline-inset-action);
|
|
7507
7870
|
text-align: start;
|
|
7508
7871
|
}
|
|
7509
7872
|
|
|
7510
7873
|
:where(.bf-theme) :where(.bf-code-snippet-dropdown) + :where(.bf-code-snippet-dropdown) {
|
|
7511
|
-
box-shadow: inset
|
|
7874
|
+
box-shadow: inset 0.0625rem 0 0 var(--bf-color-border-default);
|
|
7512
7875
|
}
|
|
7513
7876
|
|
|
7514
7877
|
:where(.bf-theme) :where(.bf-code-snippet-dropdown):focus:not(:focus-visible) {
|
|
@@ -7516,8 +7879,8 @@ html.u-baseline-grid::after {
|
|
|
7516
7879
|
}
|
|
7517
7880
|
|
|
7518
7881
|
:where(.bf-theme) :where(.bf-code-snippet-dropdown):focus-visible {
|
|
7519
|
-
outline:
|
|
7520
|
-
outline-offset: -
|
|
7882
|
+
outline: 0.125rem solid var(--bf-color-focus);
|
|
7883
|
+
outline-offset: -0.125rem;
|
|
7521
7884
|
}
|
|
7522
7885
|
|
|
7523
7886
|
:where(.bf-theme) :where(.bf-code-snippet-block, .bf-code-snippet-block.is-icon, .bf-code-snippet-block.is-numbered) {
|
|
@@ -7532,7 +7895,7 @@ html.u-baseline-grid::after {
|
|
|
7532
7895
|
min-inline-size: 0;
|
|
7533
7896
|
overflow-x: auto;
|
|
7534
7897
|
padding-block: var(--bf-panel-padding-block);
|
|
7535
|
-
padding-inline: var(--bf-
|
|
7898
|
+
padding-inline: var(--bf-component-inline-inset-continuation);
|
|
7536
7899
|
tab-size: 2;
|
|
7537
7900
|
white-space: pre;
|
|
7538
7901
|
}
|
|
@@ -7548,7 +7911,7 @@ html.u-baseline-grid::after {
|
|
|
7548
7911
|
|
|
7549
7912
|
:where(.bf-theme) :where(.bf-code-snippet-block.is-icon) {
|
|
7550
7913
|
cursor: copy;
|
|
7551
|
-
padding-inline-start: calc(var(--bf-
|
|
7914
|
+
padding-inline-start: calc(var(--bf-component-inline-inset-continuation) + (var(--bf-baseline) * 3));
|
|
7552
7915
|
position: relative;
|
|
7553
7916
|
}
|
|
7554
7917
|
|
|
@@ -7560,7 +7923,7 @@ html.u-baseline-grid::after {
|
|
|
7560
7923
|
line-height: var(--bf-h6-line-height, 1.5rem);
|
|
7561
7924
|
color: var(--bf-color-text-muted);
|
|
7562
7925
|
content: "$";
|
|
7563
|
-
inset-inline-start: var(--bf-
|
|
7926
|
+
inset-inline-start: var(--bf-component-inline-inset-continuation);
|
|
7564
7927
|
inset-block-start: var(--bf-panel-padding-block);
|
|
7565
7928
|
position: absolute;
|
|
7566
7929
|
}
|
|
@@ -7575,7 +7938,7 @@ html.u-baseline-grid::after {
|
|
|
7575
7938
|
|
|
7576
7939
|
:where(.bf-theme) :where(.bf-code-snippet-block.is-icon.is-copied) {
|
|
7577
7940
|
background: color-mix(in srgb, var(--bf-color-background-alt) 78%, var(--bf-color-background-information-default));
|
|
7578
|
-
box-shadow: inset 0 0 0
|
|
7941
|
+
box-shadow: inset 0 0 0 0.0625rem var(--bf-color-border-information);
|
|
7579
7942
|
}
|
|
7580
7943
|
|
|
7581
7944
|
:where(.bf-theme) :where(.bf-code-snippet-block.is-icon):focus:not(:focus-visible) {
|
|
@@ -7583,8 +7946,8 @@ html.u-baseline-grid::after {
|
|
|
7583
7946
|
}
|
|
7584
7947
|
|
|
7585
7948
|
:where(.bf-theme) :where(.bf-code-snippet-block.is-icon):focus-visible {
|
|
7586
|
-
outline:
|
|
7587
|
-
outline-offset: -
|
|
7949
|
+
outline: 0.125rem solid var(--bf-color-focus);
|
|
7950
|
+
outline-offset: -0.125rem;
|
|
7588
7951
|
}
|
|
7589
7952
|
|
|
7590
7953
|
:where(.bf-theme) :where(.bf-code-snippet-block.is-numbered) {
|
|
@@ -7646,6 +8009,32 @@ html.u-baseline-grid::after {
|
|
|
7646
8009
|
z-index: 40;
|
|
7647
8010
|
}
|
|
7648
8011
|
|
|
8012
|
+
/* A responsive application brand occupies the persistent bar only while the
|
|
8013
|
+
* full navigation brand is unavailable. The same public tagged-logo contract
|
|
8014
|
+
* is used in both locations; state CSS guarantees that only one copy is
|
|
8015
|
+
* visible and exposed at a time. */
|
|
8016
|
+
:where(.bf-theme) :where(.bf-navigation-bar.is-responsive) :where(.bf-panel-header.is-navigation-brand) {
|
|
8017
|
+
align-items: start;
|
|
8018
|
+
column-gap: calc(var(--bf-baseline) * 2);
|
|
8019
|
+
padding-inline-end: var(--bf-panel-content-padding-inline, var(--bf-panel-padding-inline));
|
|
8020
|
+
}
|
|
8021
|
+
|
|
8022
|
+
:where(.bf-theme) :where(.bf-navigation-bar.is-responsive) {
|
|
8023
|
+
margin-block-end: calc(var(--bf-border-width) * -1);
|
|
8024
|
+
}
|
|
8025
|
+
|
|
8026
|
+
:where(.bf-theme) :where(.bf-navigation-bar.is-responsive) :where(.bf-panel-header.is-navigation-brand) > :where(.bf-top-navigation-logo.is-canonical-tagged) {
|
|
8027
|
+
flex: 1 1 12rem;
|
|
8028
|
+
inline-size: auto;
|
|
8029
|
+
min-inline-size: 0;
|
|
8030
|
+
}
|
|
8031
|
+
|
|
8032
|
+
:where(.bf-theme) :where(.bf-application:has(> .bf-navigation:not(.is-collapsed)))
|
|
8033
|
+
> :where(.bf-navigation-bar.is-responsive)
|
|
8034
|
+
:where(.bf-top-navigation-logo) {
|
|
8035
|
+
visibility: hidden;
|
|
8036
|
+
}
|
|
8037
|
+
|
|
7649
8038
|
:where(.bf-theme) :where(.bf-navigation) {
|
|
7650
8039
|
grid-column: 1 / -1;
|
|
7651
8040
|
grid-row: 1 / -1;
|
|
@@ -7692,7 +8081,7 @@ html.u-baseline-grid::after {
|
|
|
7692
8081
|
}
|
|
7693
8082
|
|
|
7694
8083
|
:where(.bf-theme) :where(.bf-navigation:not(.is-collapsed)) > :where(.bf-navigation-drawer) {
|
|
7695
|
-
box-shadow: 0
|
|
8084
|
+
box-shadow: 0 1.5rem 4.5rem rgba(0, 0, 0, 0.38);
|
|
7696
8085
|
transform: translateX(0);
|
|
7697
8086
|
visibility: visible;
|
|
7698
8087
|
}
|
|
@@ -7702,10 +8091,10 @@ html.u-baseline-grid::after {
|
|
|
7702
8091
|
}
|
|
7703
8092
|
|
|
7704
8093
|
:where(.bf-theme) :where(.bf-navigation.is-collapsed) :where(.bf-side-navigation-label) {
|
|
7705
|
-
block-size:
|
|
8094
|
+
block-size: 0.0625rem;
|
|
7706
8095
|
clip-path: inset(50%);
|
|
7707
|
-
inline-size:
|
|
7708
|
-
max-inline-size:
|
|
8096
|
+
inline-size: 0.0625rem;
|
|
8097
|
+
max-inline-size: 0.0625rem;
|
|
7709
8098
|
opacity: 0;
|
|
7710
8099
|
overflow: hidden;
|
|
7711
8100
|
pointer-events: none;
|
|
@@ -7723,8 +8112,8 @@ html.u-baseline-grid::after {
|
|
|
7723
8112
|
padding-inline: calc(var(--bf-baseline) * 1.25);
|
|
7724
8113
|
}
|
|
7725
8114
|
|
|
7726
|
-
:where(.bf-theme) :where(.bf-navigation.is-collapsed) :where(.bf-side-navigation-list) {
|
|
7727
|
-
|
|
8115
|
+
:where(.bf-theme) :where(.bf-navigation.is-collapsed) :where(.bf-side-navigation-list)::after {
|
|
8116
|
+
content: none;
|
|
7728
8117
|
}
|
|
7729
8118
|
|
|
7730
8119
|
:where(.bf-theme) :where(.bf-navigation.is-collapsed) :where(.bf-side-navigation-item.is-title > .bf-side-navigation-link, .bf-side-navigation-item.is-title > .bf-side-navigation-text) {
|
|
@@ -7737,6 +8126,14 @@ html.u-baseline-grid::after {
|
|
|
7737
8126
|
grid-template-rows: minmax(0, 1fr);
|
|
7738
8127
|
}
|
|
7739
8128
|
|
|
8129
|
+
:where(.bf-theme) :where(.bf-application:has(> .bf-navigation)):has(> .bf-aside.is-pinned:not(.is-collapsed)) {
|
|
8130
|
+
grid-template-areas:
|
|
8131
|
+
"navigation-bar navigation-bar"
|
|
8132
|
+
"main aside";
|
|
8133
|
+
grid-template-columns: minmax(0, 1fr) minmax(0, var(--bf-application-aside-width));
|
|
8134
|
+
grid-template-rows: min-content minmax(0, 1fr);
|
|
8135
|
+
}
|
|
8136
|
+
|
|
7740
8137
|
:where(.bf-theme) :where(.bf-main) {
|
|
7741
8138
|
grid-area: main;
|
|
7742
8139
|
min-block-size: 0;
|
|
@@ -7775,7 +8172,7 @@ html.u-baseline-grid::after {
|
|
|
7775
8172
|
:where(.bf-theme) :where(.bf-aside.is-overlay, .bf-aside.is-drawer) {
|
|
7776
8173
|
align-self: stretch;
|
|
7777
8174
|
block-size: auto;
|
|
7778
|
-
box-shadow: 0
|
|
8175
|
+
box-shadow: 0 1.5rem 4.5rem rgba(0, 0, 0, 0.38);
|
|
7779
8176
|
bottom: 0;
|
|
7780
8177
|
grid-column: 1 / -1;
|
|
7781
8178
|
grid-row: 1 / -1;
|
|
@@ -7865,14 +8262,14 @@ html.u-baseline-grid::after {
|
|
|
7865
8262
|
|
|
7866
8263
|
:where(.bf-theme) :where(.bf-application-aside-resize-handle)::after {
|
|
7867
8264
|
background: var(--bf-color-border-default);
|
|
7868
|
-
border-radius:
|
|
8265
|
+
border-radius: 62.4375rem;
|
|
7869
8266
|
content: "";
|
|
7870
8267
|
inset-block: var(--bf-panel-padding-block);
|
|
7871
|
-
inset-inline-start: calc(50% -
|
|
8268
|
+
inset-inline-start: calc(50% - 0.0625rem);
|
|
7872
8269
|
opacity: 0.95;
|
|
7873
8270
|
position: absolute;
|
|
7874
8271
|
transition: background-color 120ms ease, opacity 120ms ease;
|
|
7875
|
-
width:
|
|
8272
|
+
width: 0.125rem;
|
|
7876
8273
|
}
|
|
7877
8274
|
|
|
7878
8275
|
:where(.bf-theme) :where(.bf-application-aside-resize-handle):hover::after,
|
|
@@ -7882,8 +8279,8 @@ html.u-baseline-grid::after {
|
|
|
7882
8279
|
}
|
|
7883
8280
|
|
|
7884
8281
|
:where(.bf-theme) :where(.bf-application-aside-resize-handle):focus-visible {
|
|
7885
|
-
outline:
|
|
7886
|
-
outline-offset: -
|
|
8282
|
+
outline: 0.125rem solid var(--bf-application-resize-handle-focus-ring);
|
|
8283
|
+
outline-offset: -0.125rem;
|
|
7887
8284
|
}
|
|
7888
8285
|
|
|
7889
8286
|
@media (min-width: 64.75rem) {
|
|
@@ -7902,6 +8299,16 @@ html.u-baseline-grid::after {
|
|
|
7902
8299
|
grid-template-columns: minmax(0, var(--bf-application-navigation-width)) minmax(0, 1fr) minmax(0, var(--bf-application-aside-width));
|
|
7903
8300
|
}
|
|
7904
8301
|
|
|
8302
|
+
:where(.bf-theme) :where(.bf-application:has(> .bf-navigation:not(.is-collapsed))) > :where(.bf-navigation-bar.is-responsive) {
|
|
8303
|
+
block-size: 0;
|
|
8304
|
+
border: 0;
|
|
8305
|
+
min-block-size: 0;
|
|
8306
|
+
overflow: hidden;
|
|
8307
|
+
pointer-events: none;
|
|
8308
|
+
position: absolute;
|
|
8309
|
+
visibility: hidden;
|
|
8310
|
+
}
|
|
8311
|
+
|
|
7905
8312
|
:where(.bf-theme) :where(.bf-application:has(> .bf-navigation.is-collapsed)) {
|
|
7906
8313
|
--bf-application-navigation-width: var(--bf-application-navigation-width-collapsed);
|
|
7907
8314
|
}
|
|
@@ -7947,8 +8354,8 @@ html.u-baseline-grid::after {
|
|
|
7947
8354
|
}
|
|
7948
8355
|
|
|
7949
8356
|
/* The tagged treatment is opt-in. The Circle of Friends is aligned to the
|
|
7950
|
-
* first title line, then the
|
|
7951
|
-
* Its
|
|
8357
|
+
* first title line, then the 2.375rem tag extends upward to the navigation edge.
|
|
8358
|
+
* Its 1.375rem inline size preserves the established 38:22 (~1.73) tag ratio; the
|
|
7952
8359
|
* tag must not stretch to the full occupied navigation row. */
|
|
7953
8360
|
:where(.bf-theme) :where(.bf-top-navigation-logo.is-canonical-tagged) {
|
|
7954
8361
|
min-inline-size: 0;
|
|
@@ -8002,13 +8409,11 @@ html.u-baseline-grid::after {
|
|
|
8002
8409
|
line-height: var(--bf-top-navigation-logo-title-line-height, var(--bf-body-line-height, 1.5));
|
|
8003
8410
|
overflow: visible;
|
|
8004
8411
|
overflow-wrap: anywhere;
|
|
8005
|
-
/* The first title line and the
|
|
8006
|
-
*
|
|
8007
|
-
*
|
|
8412
|
+
/* The first title line and the 1rem mark share the public brand-line centre.
|
|
8413
|
+
* The derived brand block is twice that fixed centre, so the orange tag can
|
|
8414
|
+
* extend upward without changing the title or adjacent-header baseline. */
|
|
8008
8415
|
padding-block: calc(
|
|
8009
|
-
var(--bf-
|
|
8010
|
-
- var(--bf-top-navigation-logo-icon-bottom-offset)
|
|
8011
|
-
- (var(--bf-top-navigation-logo-icon-size) / 2)
|
|
8416
|
+
var(--bf-navigation-brand-line-center-block)
|
|
8012
8417
|
- (var(--bf-top-navigation-logo-title-line-height, var(--bf-body-line-height, 1.5rem)) / 2)
|
|
8013
8418
|
);
|
|
8014
8419
|
text-overflow: clip;
|
|
@@ -8089,11 +8494,15 @@ html.u-baseline-grid::after {
|
|
|
8089
8494
|
:where(.bf-theme) :where(.bf-in-page-navigation) {
|
|
8090
8495
|
container-name: bf-in-page-navigation;
|
|
8091
8496
|
container-type: inline-size;
|
|
8092
|
-
margin
|
|
8497
|
+
margin: 0;
|
|
8093
8498
|
min-inline-size: 0;
|
|
8094
8499
|
}
|
|
8095
8500
|
|
|
8096
8501
|
:where(.bf-theme) :where(.bf-in-page-navigation-nav) {
|
|
8502
|
+
--bf-stack-space: var(--bf-space-1);
|
|
8503
|
+
align-content: start;
|
|
8504
|
+
display: grid;
|
|
8505
|
+
gap: var(--bf-stack-space);
|
|
8097
8506
|
max-block-size: 100dvb;
|
|
8098
8507
|
min-inline-size: 0;
|
|
8099
8508
|
overflow: auto;
|
|
@@ -8109,12 +8518,17 @@ html.u-baseline-grid::after {
|
|
|
8109
8518
|
line-height: var(--bf-h6-line-height, 1.5rem);
|
|
8110
8519
|
color: var(--bf-color-text-muted);
|
|
8111
8520
|
display: block;
|
|
8112
|
-
margin: 0
|
|
8113
|
-
padding-block:
|
|
8521
|
+
margin-block: 0 var(--bf-h6-margin-bottom);
|
|
8522
|
+
padding-block-end: 0;
|
|
8523
|
+
padding-block-start: var(--bf-h6-nudge-start);
|
|
8114
8524
|
}
|
|
8115
8525
|
|
|
8116
8526
|
:where(.bf-theme) :where(.bf-in-page-navigation-list) {
|
|
8527
|
+
--bf-stack-space: var(--bf-space-1);
|
|
8528
|
+
align-content: start;
|
|
8117
8529
|
border-inline-start: var(--bf-bar-thickness) solid var(--bf-color-border-low-contrast);
|
|
8530
|
+
display: grid;
|
|
8531
|
+
gap: var(--bf-stack-space);
|
|
8118
8532
|
list-style: none;
|
|
8119
8533
|
margin: 0;
|
|
8120
8534
|
min-inline-size: 0;
|
|
@@ -8122,13 +8536,16 @@ html.u-baseline-grid::after {
|
|
|
8122
8536
|
}
|
|
8123
8537
|
|
|
8124
8538
|
:where(.bf-theme) :where(.bf-in-page-navigation-item) {
|
|
8539
|
+
align-content: start;
|
|
8540
|
+
display: grid;
|
|
8541
|
+
gap: var(--bf-stack-space);
|
|
8125
8542
|
margin: 0;
|
|
8126
8543
|
min-inline-size: 0;
|
|
8127
8544
|
padding: 0;
|
|
8128
8545
|
position: relative;
|
|
8129
8546
|
}
|
|
8130
8547
|
|
|
8131
|
-
:where(.bf-theme) :where(.bf-in-page-navigation-link) {
|
|
8548
|
+
:where(.bf-theme) :where(a.bf-in-page-navigation-link) {
|
|
8132
8549
|
font-family: var(--bf-body-font-family, "IBM Plex Sans", "Segoe UI", system-ui, sans-serif);
|
|
8133
8550
|
font-size: var(--bf-body-font-size, 1rem);
|
|
8134
8551
|
font-style: var(--bf-body-font-style, normal);
|
|
@@ -8141,7 +8558,7 @@ html.u-baseline-grid::after {
|
|
|
8141
8558
|
min-inline-size: 0;
|
|
8142
8559
|
overflow: hidden;
|
|
8143
8560
|
overflow-wrap: anywhere;
|
|
8144
|
-
padding-block:
|
|
8561
|
+
padding-block: var(--bf-body-nudge-start) var(--bf-body-nudge-end);
|
|
8145
8562
|
padding-inline: var(--bf-space-2) 0;
|
|
8146
8563
|
position: relative;
|
|
8147
8564
|
text-decoration: none;
|
|
@@ -8149,7 +8566,7 @@ html.u-baseline-grid::after {
|
|
|
8149
8566
|
-webkit-box-orient: vertical;
|
|
8150
8567
|
}
|
|
8151
8568
|
|
|
8152
|
-
:where(.bf-theme) :where(.bf-in-page-navigation-link:hover) {
|
|
8569
|
+
:where(.bf-theme) :where(a.bf-in-page-navigation-link:hover) {
|
|
8153
8570
|
color: var(--bf-color-text-default);
|
|
8154
8571
|
text-decoration: none;
|
|
8155
8572
|
}
|
|
@@ -8159,8 +8576,8 @@ html.u-baseline-grid::after {
|
|
|
8159
8576
|
}
|
|
8160
8577
|
|
|
8161
8578
|
:where(.bf-theme) :where(.bf-in-page-navigation-link:focus-visible) {
|
|
8162
|
-
outline:
|
|
8163
|
-
outline-offset:
|
|
8579
|
+
outline: 0.125rem solid var(--bf-color-focus);
|
|
8580
|
+
outline-offset: 0.125rem;
|
|
8164
8581
|
}
|
|
8165
8582
|
|
|
8166
8583
|
:where(.bf-theme) :where(.bf-in-page-navigation-link.is-active, .bf-in-page-navigation-link[aria-current]) {
|
|
@@ -8216,8 +8633,8 @@ html.u-baseline-grid::after {
|
|
|
8216
8633
|
}
|
|
8217
8634
|
|
|
8218
8635
|
:where(.bf-theme) :where(.bf-in-page-navigation-toggle:focus-visible) {
|
|
8219
|
-
outline:
|
|
8220
|
-
outline-offset: -
|
|
8636
|
+
outline: 0.125rem solid var(--bf-color-focus);
|
|
8637
|
+
outline-offset: -0.125rem;
|
|
8221
8638
|
}
|
|
8222
8639
|
|
|
8223
8640
|
:where(.bf-theme) :where(.bf-in-page-navigation-toggle > .bf-icon) {
|
|
@@ -8231,6 +8648,7 @@ html.u-baseline-grid::after {
|
|
|
8231
8648
|
border-block-end: var(--bf-border-width) solid var(--bf-color-border-low-contrast);
|
|
8232
8649
|
display: grid;
|
|
8233
8650
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
8651
|
+
row-gap: 0;
|
|
8234
8652
|
max-block-size: none;
|
|
8235
8653
|
overflow: visible;
|
|
8236
8654
|
position: static;
|
|
@@ -8243,6 +8661,7 @@ html.u-baseline-grid::after {
|
|
|
8243
8661
|
:where(.bf-theme) :where(.bf-in-page-navigation-list) {
|
|
8244
8662
|
border: 0;
|
|
8245
8663
|
display: flex;
|
|
8664
|
+
gap: 0;
|
|
8246
8665
|
grid-column: 1;
|
|
8247
8666
|
grid-row: 1;
|
|
8248
8667
|
margin: 0;
|
|
@@ -8307,7 +8726,8 @@ html.u-baseline-grid::after {
|
|
|
8307
8726
|
:where(.bf-theme) :where(.bf-in-page-navigation.is-expanded > .bf-in-page-navigation-nav > .bf-in-page-navigation-list, .bf-in-page-navigation:has(.bf-in-page-navigation-toggle[aria-expanded='true']) > .bf-in-page-navigation-nav > .bf-in-page-navigation-list) {
|
|
8308
8727
|
background: var(--bf-color-background-alt);
|
|
8309
8728
|
border-inline-start: var(--bf-bar-thickness) solid var(--bf-color-border-low-contrast);
|
|
8310
|
-
display:
|
|
8729
|
+
display: grid;
|
|
8730
|
+
gap: var(--bf-stack-space);
|
|
8311
8731
|
grid-column: 1 / -1;
|
|
8312
8732
|
grid-row: 2;
|
|
8313
8733
|
/* The mobile nav owns a bottom rule; reserve its thickness within the
|
|
@@ -8318,20 +8738,21 @@ html.u-baseline-grid::after {
|
|
|
8318
8738
|
}
|
|
8319
8739
|
|
|
8320
8740
|
:where(.bf-theme) :where(.bf-in-page-navigation.is-expanded .bf-in-page-navigation-item, .bf-in-page-navigation:has(.bf-in-page-navigation-toggle[aria-expanded='true']) .bf-in-page-navigation-item) {
|
|
8321
|
-
display:
|
|
8741
|
+
display: grid;
|
|
8322
8742
|
max-inline-size: none;
|
|
8323
8743
|
}
|
|
8324
8744
|
|
|
8325
8745
|
:where(.bf-theme) :where(.bf-in-page-navigation.is-expanded .bf-in-page-navigation-link, .bf-in-page-navigation:has(.bf-in-page-navigation-toggle[aria-expanded='true']) .bf-in-page-navigation-link) {
|
|
8326
8746
|
display: -webkit-box;
|
|
8327
8747
|
overflow-wrap: anywhere;
|
|
8328
|
-
padding-block:
|
|
8748
|
+
padding-block: var(--bf-body-nudge-start) var(--bf-body-nudge-end);
|
|
8329
8749
|
padding-inline: var(--bf-space-2) 0;
|
|
8330
8750
|
white-space: normal;
|
|
8331
8751
|
}
|
|
8332
8752
|
|
|
8333
8753
|
:where(.bf-theme) :where(.bf-in-page-navigation.is-expanded .bf-in-page-navigation-list .bf-in-page-navigation-list, .bf-in-page-navigation:has(.bf-in-page-navigation-toggle[aria-expanded='true']) .bf-in-page-navigation-list .bf-in-page-navigation-list) {
|
|
8334
|
-
display:
|
|
8754
|
+
display: grid;
|
|
8755
|
+
gap: var(--bf-stack-space);
|
|
8335
8756
|
}
|
|
8336
8757
|
|
|
8337
8758
|
:where(.bf-theme) :where(.bf-in-page-navigation.is-expanded .bf-in-page-navigation-link.is-active, .bf-in-page-navigation.is-expanded .bf-in-page-navigation-link[aria-current], .bf-in-page-navigation:has(.bf-in-page-navigation-toggle[aria-expanded='true']) .bf-in-page-navigation-link.is-active, .bf-in-page-navigation:has(.bf-in-page-navigation-toggle[aria-expanded='true']) .bf-in-page-navigation-link[aria-current])::before {
|
|
@@ -8414,35 +8835,47 @@ html.u-baseline-grid::after {
|
|
|
8414
8835
|
/* ------------------------------------------------------------------ */
|
|
8415
8836
|
|
|
8416
8837
|
:where(.bf-theme) :where(.bf-table-of-contents) {
|
|
8838
|
+
--bf-table-of-contents-section-gap: var(--bf-section-space-shallow);
|
|
8839
|
+
align-content: start;
|
|
8417
8840
|
container-name: bf-table-of-contents;
|
|
8418
8841
|
container-type: inline-size;
|
|
8419
|
-
|
|
8842
|
+
display: grid;
|
|
8843
|
+
gap: var(--bf-table-of-contents-section-gap);
|
|
8844
|
+
margin: 0;
|
|
8420
8845
|
min-inline-size: 0;
|
|
8421
8846
|
}
|
|
8422
8847
|
|
|
8423
8848
|
:where(.bf-theme) :where(.bf-table-of-contents-section) {
|
|
8849
|
+
--bf-stack-space: 0rem;
|
|
8850
|
+
align-content: start;
|
|
8851
|
+
display: grid;
|
|
8852
|
+
gap: var(--bf-stack-space);
|
|
8424
8853
|
margin: 0;
|
|
8425
8854
|
min-inline-size: 0;
|
|
8426
|
-
padding
|
|
8855
|
+
padding: 0;
|
|
8856
|
+
position: relative;
|
|
8427
8857
|
}
|
|
8428
8858
|
|
|
8429
|
-
:where(.bf-theme) :where(.bf-table-of-contents-section + .bf-table-of-contents-section) {
|
|
8430
|
-
|
|
8431
|
-
|
|
8859
|
+
:where(.bf-theme) :where(.bf-table-of-contents-section + .bf-table-of-contents-section)::before {
|
|
8860
|
+
background: var(--bf-color-border-low-contrast);
|
|
8861
|
+
block-size: var(--bf-border-width);
|
|
8862
|
+
content: "";
|
|
8863
|
+
inset-block-start: 0;
|
|
8864
|
+
inset-inline: 0;
|
|
8865
|
+
position: absolute;
|
|
8432
8866
|
}
|
|
8433
8867
|
|
|
8434
8868
|
:where(.bf-theme) :where(.bf-table-of-contents-heading) {
|
|
8435
|
-
|
|
8436
|
-
|
|
8437
|
-
|
|
8438
|
-
font-weight: var(--bf-h6-font-weight, 400);
|
|
8439
|
-
line-height: var(--bf-h6-line-height, 1.5rem);
|
|
8440
|
-
color: var(--bf-color-text-muted);
|
|
8441
|
-
margin: 0 0 var(--bf-space-1);
|
|
8442
|
-
padding-block: var(--bf-h6-nudge-start) var(--bf-h6-nudge-end);
|
|
8869
|
+
color: var(--bf-color-text-default);
|
|
8870
|
+
margin: 0;
|
|
8871
|
+
padding-block-end: 0;
|
|
8443
8872
|
}
|
|
8444
8873
|
|
|
8445
8874
|
:where(.bf-theme) :where(.bf-table-of-contents-list) {
|
|
8875
|
+
--bf-stack-space: 0rem;
|
|
8876
|
+
align-content: start;
|
|
8877
|
+
display: grid;
|
|
8878
|
+
gap: var(--bf-stack-space);
|
|
8446
8879
|
list-style: none;
|
|
8447
8880
|
margin: 0;
|
|
8448
8881
|
min-inline-size: 0;
|
|
@@ -8450,26 +8883,30 @@ html.u-baseline-grid::after {
|
|
|
8450
8883
|
}
|
|
8451
8884
|
|
|
8452
8885
|
:where(.bf-theme) :where(.bf-table-of-contents-item) {
|
|
8886
|
+
align-content: start;
|
|
8887
|
+
display: grid;
|
|
8888
|
+
gap: var(--bf-stack-space);
|
|
8453
8889
|
margin: 0;
|
|
8454
8890
|
min-inline-size: 0;
|
|
8455
8891
|
padding: 0;
|
|
8456
8892
|
}
|
|
8457
8893
|
|
|
8458
|
-
:where(.bf-theme) :where(.bf-table-of-contents-link) {
|
|
8894
|
+
:where(.bf-theme) :where(a.bf-table-of-contents-link) {
|
|
8459
8895
|
font-family: var(--bf-body-font-family, "IBM Plex Sans", "Segoe UI", system-ui, sans-serif);
|
|
8460
8896
|
font-size: var(--bf-body-font-size, 1rem);
|
|
8461
8897
|
font-style: var(--bf-body-font-style, normal);
|
|
8462
8898
|
font-weight: var(--bf-body-font-weight, 400);
|
|
8463
8899
|
line-height: var(--bf-body-line-height, 1.5rem);
|
|
8900
|
+
border-block: var(--bf-border-width) solid transparent;
|
|
8464
8901
|
color: var(--bf-color-link-default);
|
|
8465
8902
|
display: block;
|
|
8466
|
-
margin: 0;
|
|
8903
|
+
margin: 0 0 var(--bf-single-line-row-margin-block-end);
|
|
8467
8904
|
overflow-wrap: anywhere;
|
|
8468
|
-
padding-block:
|
|
8905
|
+
padding-block: var(--bf-single-line-row-padding-block);
|
|
8469
8906
|
text-decoration: none;
|
|
8470
8907
|
}
|
|
8471
8908
|
|
|
8472
|
-
:where(.bf-theme) :where(.bf-table-of-contents-link:hover) {
|
|
8909
|
+
:where(.bf-theme) :where(a.bf-table-of-contents-link:hover) {
|
|
8473
8910
|
color: var(--bf-color-text-default);
|
|
8474
8911
|
text-decoration: underline;
|
|
8475
8912
|
}
|
|
@@ -8479,8 +8916,8 @@ html.u-baseline-grid::after {
|
|
|
8479
8916
|
}
|
|
8480
8917
|
|
|
8481
8918
|
:where(.bf-theme) :where(.bf-table-of-contents-link:focus-visible) {
|
|
8482
|
-
outline:
|
|
8483
|
-
outline-offset:
|
|
8919
|
+
outline: 0.125rem solid var(--bf-color-focus);
|
|
8920
|
+
outline-offset: 0.125rem;
|
|
8484
8921
|
}
|
|
8485
8922
|
|
|
8486
8923
|
:where(.bf-theme) :where(.bf-table-of-contents-link.is-active, .bf-table-of-contents-link[aria-current]) {
|
|
@@ -8560,9 +8997,9 @@ html.u-baseline-grid::after {
|
|
|
8560
8997
|
padding: 0;
|
|
8561
8998
|
}
|
|
8562
8999
|
|
|
8563
|
-
:where(.bf-theme) :where(.bf-tiered-list-header) >
|
|
8564
|
-
:where(.bf-theme) :where(.bf-tiered-list-item) >
|
|
8565
|
-
:where(.bf-theme) :where(.bf-tiered-list-cta) >
|
|
9000
|
+
:where(.bf-theme) :where(.bf-tiered-list-header) > hr,
|
|
9001
|
+
:where(.bf-theme) :where(.bf-tiered-list-item) > hr,
|
|
9002
|
+
:where(.bf-theme) :where(.bf-tiered-list-cta) > hr {
|
|
8566
9003
|
grid-column: 1 / -1;
|
|
8567
9004
|
}
|
|
8568
9005
|
|
|
@@ -8577,8 +9014,8 @@ html.u-baseline-grid::after {
|
|
|
8577
9014
|
grid-template-columns: repeat(8, minmax(0, 1fr));
|
|
8578
9015
|
}
|
|
8579
9016
|
|
|
8580
|
-
:where(.bf-theme) :where(.bf-tiered-list:not(.is-list-full-width):not(.is-flush):not(.is-triple)) :where(.bf-tiered-list-item) >
|
|
8581
|
-
:where(.bf-theme) :where(.bf-tiered-list:not(.is-list-full-width):not(.is-flush):not(.is-triple)) :where(.bf-tiered-list-cta) >
|
|
9017
|
+
:where(.bf-theme) :where(.bf-tiered-list:not(.is-list-full-width):not(.is-flush):not(.is-triple)) :where(.bf-tiered-list-item) > hr,
|
|
9018
|
+
:where(.bf-theme) :where(.bf-tiered-list:not(.is-list-full-width):not(.is-flush):not(.is-triple)) :where(.bf-tiered-list-cta) > hr {
|
|
8582
9019
|
grid-column: 3 / span 6;
|
|
8583
9020
|
}
|
|
8584
9021
|
|
|
@@ -8593,9 +9030,9 @@ html.u-baseline-grid::after {
|
|
|
8593
9030
|
}
|
|
8594
9031
|
|
|
8595
9032
|
/* ------------------------------------------------------------------ */
|
|
8596
|
-
/* Header split (≥
|
|
9033
|
+
/* Header split (≥ 45rem): the shared readable 50/50 title/content split. */
|
|
8597
9034
|
/* ------------------------------------------------------------------ */
|
|
8598
|
-
@container (width >=
|
|
9035
|
+
@container (width >= 45rem) {
|
|
8599
9036
|
:where(.bf-theme) :where(.bf-tiered-list:not(.is-description-full-width)) :where(.bf-tiered-list-header) {
|
|
8600
9037
|
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
|
|
8601
9038
|
}
|
|
@@ -8619,7 +9056,7 @@ html.u-baseline-grid::after {
|
|
|
8619
9056
|
queries cannot style their own container, so responsive descendants span
|
|
8620
9057
|
these tracks instead of relying on an ineligible self-query. */
|
|
8621
9058
|
grid-template-columns: repeat(8, minmax(0, 1fr));
|
|
8622
|
-
margin
|
|
9059
|
+
margin: 0;
|
|
8623
9060
|
position: relative;
|
|
8624
9061
|
}
|
|
8625
9062
|
|
|
@@ -8636,7 +9073,7 @@ html.u-baseline-grid::after {
|
|
|
8636
9073
|
/* Responsive aspect media can make a shared subgrid track land between
|
|
8637
9074
|
baselines. Snap that media box itself; the surrounding composition still
|
|
8638
9075
|
does not own or erase any child's semantic margins. */
|
|
8639
|
-
@supports (block-size: calc-size(auto, round(up, size,
|
|
9076
|
+
@supports (block-size: calc-size(auto, round(up, size, 0.0625rem))) {
|
|
8640
9077
|
:where(.bf-theme) :where(.bf-equal-height-row-item) > :where(.bf-aspect) {
|
|
8641
9078
|
block-size: calc-size(auto, round(up, size, var(--bf-baseline)));
|
|
8642
9079
|
}
|
|
@@ -8715,7 +9152,7 @@ html.u-baseline-grid::after {
|
|
|
8715
9152
|
:where(.bf-theme) :where(.bf-equal-height-row.is-divider-3:not(.is-divider-1))::before,
|
|
8716
9153
|
:where(.bf-theme) :where(.bf-equal-height-row.is-divider-3:not(.is-divider-2))::after {
|
|
8717
9154
|
background-color: var(--bf-color-border-low-contrast);
|
|
8718
|
-
block-size:
|
|
9155
|
+
block-size: 0.0625rem;
|
|
8719
9156
|
content: "";
|
|
8720
9157
|
display: none;
|
|
8721
9158
|
grid-column: 1 / -1;
|
|
@@ -8788,8 +9225,8 @@ html.u-baseline-grid::after {
|
|
|
8788
9225
|
/* ------------------------------------------------------------------ */
|
|
8789
9226
|
/* Gutter and margin escalation — viewport-based, all tiers */
|
|
8790
9227
|
/* Grid spec v0.3 §2.3: gutters set by global viewport breakpoint. */
|
|
8791
|
-
/* Baseline Foundry models the spec's
|
|
8792
|
-
/* default <
|
|
9228
|
+
/* Baseline Foundry models the spec's 28.75rem x-small row as part of the */
|
|
9229
|
+
/* default <38.75rem bracket because the values do not change at 28.75rem. */
|
|
8793
9230
|
/* ------------------------------------------------------------------ */
|
|
8794
9231
|
|
|
8795
9232
|
:where(.bf-theme) {
|
|
@@ -8860,9 +9297,7 @@ html.u-baseline-grid::after {
|
|
|
8860
9297
|
margin-inline-start: 0;
|
|
8861
9298
|
}
|
|
8862
9299
|
|
|
8863
|
-
|
|
8864
|
-
max-inline-size: none;
|
|
8865
|
-
}
|
|
9300
|
+
|
|
8866
9301
|
|
|
8867
9302
|
:where(.bf-theme) :where(.bf-panel-content, .bf-accordion-panel) :where(.bf-fixed-width) {
|
|
8868
9303
|
padding-inline: 0;
|
|
@@ -8872,6 +9307,13 @@ html.u-baseline-grid::after {
|
|
|
8872
9307
|
padding-inline: 0;
|
|
8873
9308
|
}
|
|
8874
9309
|
|
|
9310
|
+
/* A page is the outer grid row and therefore owns its horizontal gutter.
|
|
9311
|
+
* Fixed-width regions nested anywhere inside it retain their cap and
|
|
9312
|
+
* centering behavior without introducing a second page inset. */
|
|
9313
|
+
:where(.bf-theme) :where(.bf-page) :where(.bf-fixed-width) {
|
|
9314
|
+
padding-inline: 0;
|
|
9315
|
+
}
|
|
9316
|
+
|
|
8875
9317
|
/* ------------------------------------------------------------------ */
|
|
8876
9318
|
/* Grid base — 4 columns, all tiers */
|
|
8877
9319
|
/* ------------------------------------------------------------------ */
|
|
@@ -8893,7 +9335,7 @@ html.u-baseline-grid::after {
|
|
|
8893
9335
|
|
|
8894
9336
|
:where(.bf-theme) :where(.bf-grid.is-guide) > * {
|
|
8895
9337
|
background: color-mix(in srgb, var(--bf-color-accent) 18%, var(--bf-color-background-default));
|
|
8896
|
-
box-shadow: inset 0 0 0
|
|
9338
|
+
box-shadow: inset 0 0 0 0.0625rem color-mix(in srgb, var(--bf-color-accent) 50%, var(--bf-color-rule));
|
|
8897
9339
|
min-block-size: calc(var(--bf-baseline) * 4);
|
|
8898
9340
|
}
|
|
8899
9341
|
|