@patternfly/patternfly 6.5.0-prerelease.30 → 6.5.0-prerelease.32

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.
Files changed (46) hide show
  1. package/components/Compass/compass.css +14 -4
  2. package/components/Compass/compass.scss +16 -4
  3. package/components/Drawer/drawer.css +30 -26
  4. package/components/Drawer/drawer.scss +7 -3
  5. package/components/Masthead/masthead.css +40 -0
  6. package/components/Masthead/masthead.scss +47 -0
  7. package/components/Nav/nav.css +55 -0
  8. package/components/Nav/nav.scss +70 -3
  9. package/components/Page/page.css +20 -0
  10. package/components/Page/page.scss +27 -0
  11. package/components/Toolbar/toolbar.css +32 -6
  12. package/components/Toolbar/toolbar.scss +28 -4
  13. package/components/_index.css +191 -36
  14. package/docs/components/Compass/examples/Compass.css +8 -2
  15. package/docs/components/Compass/examples/Compass.md +22 -1
  16. package/docs/components/Masthead/examples/masthead.md +67 -0
  17. package/docs/components/Nav/examples/Navigation.md +44 -0
  18. package/docs/components/Page/examples/Page.md +37 -0
  19. package/docs/components/Toolbar/examples/Toolbar.md +28 -0
  20. package/docs/demos/AboutModal/examples/AboutModal.md +5 -5
  21. package/docs/demos/Alert/examples/Alert.md +15 -15
  22. package/docs/demos/BackToTop/examples/BackToTop.md +5 -5
  23. package/docs/demos/Banner/examples/Banner.md +10 -10
  24. package/docs/demos/CardView/examples/CardView.md +5 -5
  25. package/docs/demos/Compass/examples/Compass.md +208 -0
  26. package/docs/demos/Dashboard/examples/Dashboard.md +5 -5
  27. package/docs/demos/DataList/examples/DataList.md +20 -23
  28. package/docs/demos/DescriptionList/examples/DescriptionList.md +15 -15
  29. package/docs/demos/Drawer/examples/Drawer.md +25 -25
  30. package/docs/demos/JumpLinks/examples/JumpLinks.md +30 -30
  31. package/docs/demos/Masthead/examples/Masthead.md +55 -58
  32. package/docs/demos/Modal/examples/Modal.md +30 -33
  33. package/docs/demos/Nav/examples/Nav.md +299 -62
  34. package/docs/demos/NotificationDrawer/examples/NotificationDrawer.md +25 -25
  35. package/docs/demos/Page/examples/Page.md +70 -79
  36. package/docs/demos/PrimaryDetail/examples/PrimaryDetail.md +35 -35
  37. package/docs/demos/Skeleton/examples/Skeleton.md +5 -5
  38. package/docs/demos/Table/examples/Table.md +75 -78
  39. package/docs/demos/Tabs/examples/Tabs.md +30 -30
  40. package/docs/demos/Toolbar/examples/Toolbar.md +10 -10
  41. package/docs/demos/Wizard/examples/Wizard.md +45 -48
  42. package/package.json +2 -2
  43. package/patternfly-no-globals.css +191 -36
  44. package/patternfly.css +191 -36
  45. package/patternfly.min.css +1 -1
  46. package/patternfly.min.css.map +1 -1
@@ -19,16 +19,16 @@
19
19
  --pf-v6-c-compass__main-header-content--RowGap: var(--pf-t--global--spacer--sm);
20
20
  --pf-v6-c-compass__main-header-content--ColumnGap: var(--pf-t--global--spacer--md);
21
21
  --pf-v6-c-compass__main-footer--MarginBlockStart: calc(var(--pf-v6-c-compass__main--RowGap) * -1 + var(--pf-v6-c-compass--Gap));
22
- --pf-v6-c-compass__panel--BackgroundColor: var(--pf-t--global--background--color--glass--default);
23
- --pf-v6-c-compass__panel--BackdropFilter: var(--pf-t--global--background--color--glass--filter);
24
- --pf-v6-c-compass__panel--BorderRadius: var(--pf-t--global--border--radius--large);
25
22
  --pf-v6-c-compass__panel--m-pill--BorderRadius: var(--pf-t--global--border--radius--pill);
26
23
  --pf-v6-c-compass__panel--PaddingBlockStart: var(--pf-t--global--spacer--inset--page-chrome);
27
24
  --pf-v6-c-compass__panel--PaddingBlockEnd: var(--pf-t--global--spacer--inset--page-chrome);
28
25
  --pf-v6-c-compass__panel--PaddingInlineStart: var(--pf-t--global--spacer--inset--page-chrome);
29
26
  --pf-v6-c-compass__panel--PaddingInlineEnd: var(--pf-t--global--spacer--inset--page-chrome);
30
- --pf-v6-c-compass__panel--BorderWidth: var(--pf-t--global--border--width--regular);
27
+ --pf-v6-c-compass__panel--BackgroundColor: var(--pf-t--global--background--color--glass--default);
28
+ --pf-v6-c-compass__panel--BackdropFilter: var(--pf-t--global--background--color--glass--filter);
31
29
  --pf-v6-c-compass__panel--BorderColor: var(--pf-t--global--border--color--alt);
30
+ --pf-v6-c-compass__panel--BorderRadius: var(--pf-t--global--border--radius--large);
31
+ --pf-v6-c-compass__panel--BorderWidth: var(--pf-t--global--border--width--regular);
32
32
  --pf-v6-c-compass__panel--BoxShadow: var(--pf-t--global--box-shadow--md);
33
33
  --pf-v6-c-compass__message-bar--Width: 450px;
34
34
  --pf-v6-c-compass__message-bar--MinWidth: 300px;
@@ -79,6 +79,16 @@
79
79
  background-image: var(--pf-v6-c-compass--BackgroundImage);
80
80
  background-size: cover;
81
81
  }
82
+ .pf-v6-c-compass.pf-m-dock {
83
+ grid-template-areas: "dock main";
84
+ grid-template-rows: auto;
85
+ grid-template-columns: auto 1fr;
86
+ align-items: stretch;
87
+ padding: 0;
88
+ }
89
+ .pf-v6-c-compass.pf-m-dock .pf-v6-c-compass__main {
90
+ padding: var(--pf-v6-c-compass--Padding);
91
+ }
82
92
  :root:where(.pf-v6-theme-dark) .pf-v6-c-compass {
83
93
  --pf-v6-c-compass--BackgroundImage: var(--pf-v6-c-compass--BackgroundImage--dark);
84
94
  }
@@ -21,16 +21,16 @@
21
21
  --#{$compass}__main-header-content--RowGap: var(--pf-t--global--spacer--sm);
22
22
  --#{$compass}__main-header-content--ColumnGap: var(--pf-t--global--spacer--md);
23
23
  --#{$compass}__main-footer--MarginBlockStart: calc(var(--#{$compass}__main--RowGap) * -1 + var(--#{$compass}--Gap)); // Creates same gap as parent compass grid, mimicking the compass footer
24
- --#{$compass}__panel--BackgroundColor: var(--pf-t--global--background--color--glass--default);
25
- --#{$compass}__panel--BackdropFilter: var(--pf-t--global--background--color--glass--filter);
26
- --#{$compass}__panel--BorderRadius: var(--pf-t--global--border--radius--large);
27
24
  --#{$compass}__panel--m-pill--BorderRadius: var(--pf-t--global--border--radius--pill);
28
25
  --#{$compass}__panel--PaddingBlockStart: var(--pf-t--global--spacer--inset--page-chrome);
29
26
  --#{$compass}__panel--PaddingBlockEnd: var(--pf-t--global--spacer--inset--page-chrome);
30
27
  --#{$compass}__panel--PaddingInlineStart: var(--pf-t--global--spacer--inset--page-chrome);
31
28
  --#{$compass}__panel--PaddingInlineEnd: var(--pf-t--global--spacer--inset--page-chrome);
32
- --#{$compass}__panel--BorderWidth: var(--pf-t--global--border--width--regular);
29
+ --#{$compass}__panel--BackgroundColor: var(--pf-t--global--background--color--glass--default);
30
+ --#{$compass}__panel--BackdropFilter: var(--pf-t--global--background--color--glass--filter);
33
31
  --#{$compass}__panel--BorderColor: var(--pf-t--global--border--color--alt);
32
+ --#{$compass}__panel--BorderRadius: var(--pf-t--global--border--radius--large);
33
+ --#{$compass}__panel--BorderWidth: var(--pf-t--global--border--width--regular);
34
34
  --#{$compass}__panel--BoxShadow: var(--pf-t--global--box-shadow--md);
35
35
  --#{$compass}__message-bar--Width: 450px;
36
36
  --#{$compass}__message-bar--MinWidth: 300px;
@@ -86,6 +86,18 @@
86
86
  background-image: var(--#{$compass}--BackgroundImage);
87
87
  background-size: cover;
88
88
 
89
+ &.pf-m-dock {
90
+ grid-template-areas: "dock main";
91
+ grid-template-rows: auto;
92
+ grid-template-columns: auto 1fr;
93
+ align-items: stretch;
94
+ padding: 0;
95
+
96
+ .#{$compass}__main {
97
+ padding: var(--#{$compass}--Padding);
98
+ }
99
+ }
100
+
89
101
  :root:where(.#{$pf-prefix}theme-dark) & {
90
102
  --#{$compass}--BackgroundImage: var(--#{$compass}--BackgroundImage--dark);
91
103
  }
@@ -173,7 +173,7 @@
173
173
  --pf-v6-c-drawer__panel--BackgroundColor: var(--pf-v6-c-drawer__panel--m-inline--BackgroundColor);
174
174
  --pf-v6-c-drawer__panel--BorderInlineStartWidth: var(--pf-v6-c-drawer--m-inline__panel--after--Width);
175
175
  --pf-v6-c-drawer--m-pill__main--Gap: var(--pf-v6-c-drawer--m-pill--m-inline__main--Gap);
176
- --pf-v6-c-drawer--m-pill--m-expanded__panel--inset: 0;
176
+ --pf-v6-c-drawer--m-pill--m-expanded__panel--inset: 0px;
177
177
  }
178
178
  .pf-v6-c-drawer.pf-m-inline > .pf-v6-c-drawer__main > .pf-v6-c-drawer__panel:not(.pf-m-no-border, .pf-m-resizable), .pf-v6-c-drawer.pf-m-static > .pf-v6-c-drawer__main > .pf-v6-c-drawer__panel:not(.pf-m-no-border, .pf-m-resizable) {
179
179
  padding-inline-start: var(--pf-v6-c-drawer--m-inline__panel--PaddingInlineStart);
@@ -202,7 +202,7 @@
202
202
  visibility: visible;
203
203
  }
204
204
  :where(.pf-v6-m-dir-rtl, [dir=rtl]) .pf-v6-c-drawer.pf-m-expanded > .pf-v6-c-drawer__main > .pf-v6-c-drawer__panel {
205
- transform: translateX(calc(-100% * var(--pf-v6-global--inverse--multiplier)));
205
+ transform: translateX(calc(calc(-100% - var(--pf-v6-c-drawer--m-expanded__panel--inset)) * var(--pf-v6-global--inverse--multiplier)));
206
206
  }
207
207
 
208
208
  .pf-v6-c-drawer.pf-m-expanded.pf-m-panel-left > .pf-v6-c-drawer__main > .pf-v6-c-drawer__panel {
@@ -551,82 +551,86 @@
551
551
  }
552
552
  @media (min-width: 48rem) {
553
553
  .pf-v6-c-drawer__panel.pf-m-width-25 {
554
- --pf-v6-c-drawer__panel--md--FlexBasis: 25%;
554
+ --pf-v6-c-drawer__panel--md--FlexBasis: calc(25% - (2 * var(--pf-v6-c-drawer--m-expanded__panel--inset)));
555
555
  }
556
556
  .pf-v6-c-drawer__panel.pf-m-width-33 {
557
- --pf-v6-c-drawer__panel--md--FlexBasis: 33%;
557
+ --pf-v6-c-drawer__panel--md--FlexBasis: calc(33% - (2 * var(--pf-v6-c-drawer--m-expanded__panel--inset)));
558
558
  }
559
559
  .pf-v6-c-drawer__panel.pf-m-width-50 {
560
- --pf-v6-c-drawer__panel--md--FlexBasis: 50%;
560
+ --pf-v6-c-drawer__panel--md--FlexBasis: calc(50% - (2 * var(--pf-v6-c-drawer--m-expanded__panel--inset)));
561
561
  }
562
562
  .pf-v6-c-drawer__panel.pf-m-width-66 {
563
- --pf-v6-c-drawer__panel--md--FlexBasis: 66%;
563
+ --pf-v6-c-drawer__panel--md--FlexBasis: calc(66% - (2 * var(--pf-v6-c-drawer--m-expanded__panel--inset)));
564
564
  }
565
565
  .pf-v6-c-drawer__panel.pf-m-width-75 {
566
- --pf-v6-c-drawer__panel--md--FlexBasis: 75%;
566
+ --pf-v6-c-drawer__panel--md--FlexBasis: calc(75% - (2 * var(--pf-v6-c-drawer--m-expanded__panel--inset)));
567
567
  }
568
568
  .pf-v6-c-drawer__panel.pf-m-width-100 {
569
- --pf-v6-c-drawer__panel--md--FlexBasis: 100%;
569
+ --pf-v6-c-drawer__panel--md--FlexBasis: calc(100% - (2 * var(--pf-v6-c-drawer--m-expanded__panel--inset)));
570
+ --pf-v6-c-drawer__main--Gap: 0;
570
571
  }
571
572
  }
572
573
  @media (min-width: 62rem) {
573
574
  .pf-v6-c-drawer__panel.pf-m-width-25-on-lg {
574
- --pf-v6-c-drawer__panel--md--FlexBasis: 25%;
575
+ --pf-v6-c-drawer__panel--md--FlexBasis: calc(25% - (2 * var(--pf-v6-c-drawer--m-expanded__panel--inset)));
575
576
  }
576
577
  .pf-v6-c-drawer__panel.pf-m-width-33-on-lg {
577
- --pf-v6-c-drawer__panel--md--FlexBasis: 33%;
578
+ --pf-v6-c-drawer__panel--md--FlexBasis: calc(33% - (2 * var(--pf-v6-c-drawer--m-expanded__panel--inset)));
578
579
  }
579
580
  .pf-v6-c-drawer__panel.pf-m-width-50-on-lg {
580
- --pf-v6-c-drawer__panel--md--FlexBasis: 50%;
581
+ --pf-v6-c-drawer__panel--md--FlexBasis: calc(50% - (2 * var(--pf-v6-c-drawer--m-expanded__panel--inset)));
581
582
  }
582
583
  .pf-v6-c-drawer__panel.pf-m-width-66-on-lg {
583
- --pf-v6-c-drawer__panel--md--FlexBasis: 66%;
584
+ --pf-v6-c-drawer__panel--md--FlexBasis: calc(66% - (2 * var(--pf-v6-c-drawer--m-expanded__panel--inset)));
584
585
  }
585
586
  .pf-v6-c-drawer__panel.pf-m-width-75-on-lg {
586
- --pf-v6-c-drawer__panel--md--FlexBasis: 75%;
587
+ --pf-v6-c-drawer__panel--md--FlexBasis: calc(75% - (2 * var(--pf-v6-c-drawer--m-expanded__panel--inset)));
587
588
  }
588
589
  .pf-v6-c-drawer__panel.pf-m-width-100-on-lg {
589
- --pf-v6-c-drawer__panel--md--FlexBasis: 100%;
590
+ --pf-v6-c-drawer__panel--md--FlexBasis: calc(100% - (2 * var(--pf-v6-c-drawer--m-expanded__panel--inset)));
591
+ --pf-v6-c-drawer__main--Gap: 0;
590
592
  }
591
593
  }
592
594
  @media (min-width: 75rem) {
593
595
  .pf-v6-c-drawer__panel.pf-m-width-25-on-xl {
594
- --pf-v6-c-drawer__panel--md--FlexBasis: 25%;
596
+ --pf-v6-c-drawer__panel--md--FlexBasis: calc(25% - (2 * var(--pf-v6-c-drawer--m-expanded__panel--inset)));
595
597
  }
596
598
  .pf-v6-c-drawer__panel.pf-m-width-33-on-xl {
597
- --pf-v6-c-drawer__panel--md--FlexBasis: 33%;
599
+ --pf-v6-c-drawer__panel--md--FlexBasis: calc(33% - (2 * var(--pf-v6-c-drawer--m-expanded__panel--inset)));
598
600
  }
599
601
  .pf-v6-c-drawer__panel.pf-m-width-50-on-xl {
600
- --pf-v6-c-drawer__panel--md--FlexBasis: 50%;
602
+ --pf-v6-c-drawer__panel--md--FlexBasis: calc(50% - (2 * var(--pf-v6-c-drawer--m-expanded__panel--inset)));
601
603
  }
602
604
  .pf-v6-c-drawer__panel.pf-m-width-66-on-xl {
603
- --pf-v6-c-drawer__panel--md--FlexBasis: 66%;
605
+ --pf-v6-c-drawer__panel--md--FlexBasis: calc(66% - (2 * var(--pf-v6-c-drawer--m-expanded__panel--inset)));
604
606
  }
605
607
  .pf-v6-c-drawer__panel.pf-m-width-75-on-xl {
606
- --pf-v6-c-drawer__panel--md--FlexBasis: 75%;
608
+ --pf-v6-c-drawer__panel--md--FlexBasis: calc(75% - (2 * var(--pf-v6-c-drawer--m-expanded__panel--inset)));
607
609
  }
608
610
  .pf-v6-c-drawer__panel.pf-m-width-100-on-xl {
609
- --pf-v6-c-drawer__panel--md--FlexBasis: 100%;
611
+ --pf-v6-c-drawer__panel--md--FlexBasis: calc(100% - (2 * var(--pf-v6-c-drawer--m-expanded__panel--inset)));
612
+ --pf-v6-c-drawer__main--Gap: 0;
610
613
  }
611
614
  }
612
615
  @media (min-width: 90.625rem) {
613
616
  .pf-v6-c-drawer__panel.pf-m-width-25-on-2xl {
614
- --pf-v6-c-drawer__panel--md--FlexBasis: 25%;
617
+ --pf-v6-c-drawer__panel--md--FlexBasis: calc(25% - (2 * var(--pf-v6-c-drawer--m-expanded__panel--inset)));
615
618
  }
616
619
  .pf-v6-c-drawer__panel.pf-m-width-33-on-2xl {
617
- --pf-v6-c-drawer__panel--md--FlexBasis: 33%;
620
+ --pf-v6-c-drawer__panel--md--FlexBasis: calc(33% - (2 * var(--pf-v6-c-drawer--m-expanded__panel--inset)));
618
621
  }
619
622
  .pf-v6-c-drawer__panel.pf-m-width-50-on-2xl {
620
- --pf-v6-c-drawer__panel--md--FlexBasis: 50%;
623
+ --pf-v6-c-drawer__panel--md--FlexBasis: calc(50% - (2 * var(--pf-v6-c-drawer--m-expanded__panel--inset)));
621
624
  }
622
625
  .pf-v6-c-drawer__panel.pf-m-width-66-on-2xl {
623
- --pf-v6-c-drawer__panel--md--FlexBasis: 66%;
626
+ --pf-v6-c-drawer__panel--md--FlexBasis: calc(66% - (2 * var(--pf-v6-c-drawer--m-expanded__panel--inset)));
624
627
  }
625
628
  .pf-v6-c-drawer__panel.pf-m-width-75-on-2xl {
626
- --pf-v6-c-drawer__panel--md--FlexBasis: 75%;
629
+ --pf-v6-c-drawer__panel--md--FlexBasis: calc(75% - (2 * var(--pf-v6-c-drawer--m-expanded__panel--inset)));
627
630
  }
628
631
  .pf-v6-c-drawer__panel.pf-m-width-100-on-2xl {
629
- --pf-v6-c-drawer__panel--md--FlexBasis: 100%;
632
+ --pf-v6-c-drawer__panel--md--FlexBasis: calc(100% - (2 * var(--pf-v6-c-drawer--m-expanded__panel--inset)));
633
+ --pf-v6-c-drawer__main--Gap: 0;
630
634
  }
631
635
  }
632
636
  @media (min-width: 48rem) {
@@ -215,7 +215,7 @@ $pf-v6-c-drawer__panel--list--width: (25, 33, 50, 66, 75, 100);
215
215
  --#{$drawer}__panel--BackgroundColor: var(--#{$drawer}__panel--m-inline--BackgroundColor);
216
216
  --#{$drawer}__panel--BorderInlineStartWidth: var(--#{$drawer}--m-inline__panel--after--Width);
217
217
  --#{$drawer}--m-pill__main--Gap: var(--#{$drawer}--m-pill--m-inline__main--Gap);
218
- --#{$drawer}--m-pill--m-expanded__panel--inset: 0;
218
+ --#{$drawer}--m-pill--m-expanded__panel--inset: 0px;
219
219
 
220
220
  > .#{$drawer}__main > .#{$drawer}__panel:not(.pf-m-no-border, .pf-m-resizable) {
221
221
  padding-inline-start: var(--#{$drawer}--m-inline__panel--PaddingInlineStart);
@@ -252,7 +252,7 @@ $pf-v6-c-drawer__panel--list--width: (25, 33, 50, 66, 75, 100);
252
252
  @include pf-v6-bidirectional-style(
253
253
  $prop: transform,
254
254
  $ltr-val: translateX(calc(-100% - var(--#{$drawer}--m-expanded__panel--inset))),
255
- $rtl-val: translateX(#{pf-v6-calc-inverse(-100%)}),
255
+ $rtl-val: translateX(#{pf-v6-calc-inverse(calc(-100% - var(--#{$drawer}--m-expanded__panel--inset)))}),
256
256
  );
257
257
 
258
258
  --#{$drawer}__panel--Opacity: var(--#{$drawer}--m-expanded__panel--Opacity);
@@ -712,7 +712,11 @@ $pf-v6-c-drawer__panel--list--width: (25, 33, 50, 66, 75, 100);
712
712
  @include pf-v6-apply-breakpoint($breakpoint) {
713
713
  @each $width-value in $pf-v6-c-drawer__panel--list--width {
714
714
  .#{$drawer}__panel.pf-m-width-#{$width-value}#{$breakpoint-name} {
715
- --#{$drawer}__panel--md--FlexBasis: #{percentage(math.div($width-value, 100))};
715
+ --#{$drawer}__panel--md--FlexBasis: calc(#{percentage(math.div($width-value, 100))} - (2 * var(--#{$drawer}--m-expanded__panel--inset)));
716
+
717
+ @if $width-value == 100 {
718
+ --#{$drawer}__main--Gap: 0; // Reset gap for width-100 inline pill drawers to prevent misalignment
719
+ }
716
720
  }
717
721
  }
718
722
  }
@@ -36,6 +36,15 @@
36
36
  --pf-v6-c-masthead--m-display-inline__main--toggle--content--GridColumn: 2;
37
37
  --pf-v6-c-masthead--m-display-inline__main--Display: flex;
38
38
  --pf-v6-c-masthead--m-display-inline__main--ColumnGap: var(--pf-t--global--spacer--md);
39
+ --pf-v6-c-masthead--m-docked--GridTemplateRows: min-content 1fr;
40
+ --pf-v6-c-masthead--m-docked--RowGap: var(--pf-t--global--spacer--gutter--default);
41
+ --pf-v6-c-masthead--m-docked--PaddingBlockStart: var(--pf-t--global--spacer--lg);
42
+ --pf-v6-c-masthead--m-docked--PaddingBlockEnd: var(--pf-t--global--spacer--lg);
43
+ --pf-v6-c-masthead--m-docked--PaddingInlineStart: var(--pf-t--global--spacer--sm);
44
+ --pf-v6-c-masthead--m-docked--PaddingInlineEnd: var(--pf-t--global--spacer--sm);
45
+ --pf-v6-c-masthead--m-docked--BackgroundColor: var(--pf-t--global--background--color--glass--default);
46
+ --pf-v6-c-masthead--m-docked--BackdropFilter: var(--pf-t--global--background--color--glass--filter);
47
+ --pf-v6-c-masthead--m-docked--c-toolbar--Height: 100%;
39
48
  --pf-v6-c-masthead__expandable-content--BoxShadow: var(--pf-t--global--box-shadow--md--bottom);
40
49
  --pf-v6-c-masthead__expandable-content--BorderBlockStart: var(--pf-v6-c-masthead--BorderWidth) solid var(--pf-v6-c-masthead--BorderColor);
41
50
  --pf-v6-c-masthead--c-toolbar--Width: 100%;
@@ -56,6 +65,7 @@
56
65
  --pf-v6-c-masthead__main--Display: var(--pf-v6-c-masthead--m-display-stack__main--Display);
57
66
  --pf-v6-c-masthead__main--ColumnGap: var(--pf-v6-c-masthead--m-display-stack__main--ColumnGap);
58
67
  display: grid;
68
+ grid-template-rows: var(--pf-v6-c-masthead--GridTemplateRows);
59
69
  grid-template-columns: var(--pf-v6-c-masthead--GridTemplateColumns);
60
70
  row-gap: var(--pf-v6-c-masthead--RowGap);
61
71
  column-gap: var(--pf-v6-c-masthead--ColumnGap);
@@ -88,6 +98,36 @@
88
98
  --pf-v6-c-masthead__main--ColumnGap: var(--pf-v6-c-masthead--m-display-inline__main--ColumnGap);
89
99
  }
90
100
  }
101
+ .pf-v6-c-masthead.pf-m-docked {
102
+ --pf-v6-c-masthead--BackgroundColor: var(--pf-v6-c-masthead--m-docked--BackgroundColor);
103
+ --pf-v6-c-masthead--GridTemplateRows: var(--pf-v6-c-masthead--m-docked--GridTemplateRows);
104
+ --pf-v6-c-masthead--PaddingBlockStart: var(--pf-v6-c-masthead--m-docked--PaddingBlockStart);
105
+ --pf-v6-c-masthead--PaddingBlockEnd: var(--pf-v6-c-masthead--m-docked--PaddingBlockEnd);
106
+ --pf-v6-c-masthead--PaddingInlineStart: var(--pf-v6-c-masthead--m-docked--PaddingInlineStart);
107
+ --pf-v6-c-masthead--PaddingInlineEnd: var(--pf-v6-c-masthead--m-docked--PaddingInlineEnd);
108
+ --pf-v6-c-masthead--GridTemplateColumns: auto;
109
+ --pf-v6-c-masthead--RowGap: var(--pf-v6-c-masthead--m-docked--RowGap);
110
+ --pf-v6-c-masthead--m-display-inline--breakpoint--xl--GridTemplateColumns: auto;
111
+ --pf-v6-c-masthead__main--GridColumn: auto;
112
+ --pf-v6-c-masthead__content--GridColumn: auto;
113
+ --pf-v6-c-masthead__logo--Width: auto;
114
+ --pf-v6-c-masthead__main--MarginInlineEnd: 0;
115
+ display: flex;
116
+ flex-direction: column;
117
+ align-items: center;
118
+ width: fit-content;
119
+ height: 100%;
120
+ backdrop-filter: var(--pf-v6-c-masthead--m-docked--BackdropFilter);
121
+ }
122
+ .pf-v6-c-masthead.pf-m-docked .pf-v6-c-masthead__content {
123
+ flex-direction: column;
124
+ flex-grow: 1;
125
+ align-self: revert;
126
+ }
127
+ .pf-v6-c-masthead.pf-m-docked .pf-v6-c-toolbar {
128
+ --pf-v6-c-masthead--c-toolbar--Width: fit-content;
129
+ height: var(--pf-v6-c-masthead--m-docked--c-toolbar--Height);
130
+ }
91
131
  .pf-v6-c-masthead .pf-v6-c-toolbar__content-section {
92
132
  flex-wrap: nowrap;
93
133
  min-width: 0;
@@ -55,6 +55,17 @@ $pf-v6-c-masthead--inset-map: build-spacer-map("none", "sm", "md", "lg", "xl", "
55
55
  --#{$masthead}--m-display-inline__main--Display: flex;
56
56
  --#{$masthead}--m-display-inline__main--ColumnGap: var(--pf-t--global--spacer--md);
57
57
 
58
+ // Masthead docked
59
+ --#{$masthead}--m-docked--GridTemplateRows: min-content 1fr;
60
+ --#{$masthead}--m-docked--RowGap: var(--pf-t--global--spacer--gutter--default);
61
+ --#{$masthead}--m-docked--PaddingBlockStart: var(--pf-t--global--spacer--lg);
62
+ --#{$masthead}--m-docked--PaddingBlockEnd: var(--pf-t--global--spacer--lg);
63
+ --#{$masthead}--m-docked--PaddingInlineStart: var(--pf-t--global--spacer--sm);
64
+ --#{$masthead}--m-docked--PaddingInlineEnd: var(--pf-t--global--spacer--sm);
65
+ --#{$masthead}--m-docked--BackgroundColor: var(--pf-t--global--background--color--glass--default);
66
+ --#{$masthead}--m-docked--BackdropFilter: var(--pf-t--global--background--color--glass--filter);
67
+ --#{$masthead}--m-docked--c-toolbar--Height: 100%;
68
+
58
69
  // * Masthead toolbar
59
70
  --#{$masthead}__expandable-content--BoxShadow: var(--pf-t--global--box-shadow--md--bottom);
60
71
  --#{$masthead}__expandable-content--BorderBlockStart: var(--#{$masthead}--BorderWidth) solid var(--#{$masthead}--BorderColor);
@@ -116,6 +127,7 @@ $pf-v6-c-masthead--inset-map: build-spacer-map("none", "sm", "md", "lg", "xl", "
116
127
 
117
128
  // - Masthead
118
129
  display: grid;
130
+ grid-template-rows: var(--#{$masthead}--GridTemplateRows);
119
131
  grid-template-columns: var(--#{$masthead}--GridTemplateColumns);
120
132
  row-gap: var(--#{$masthead}--RowGap);
121
133
  column-gap: var(--#{$masthead}--ColumnGap);
@@ -129,6 +141,41 @@ $pf-v6-c-masthead--inset-map: build-spacer-map("none", "sm", "md", "lg", "xl", "
129
141
  padding-inline-end: var(--#{$masthead}--PaddingInlineEnd, var(--#{$masthead}--PaddingInline));
130
142
  background-color: var(--#{$masthead}--BackgroundColor);
131
143
 
144
+ &.pf-m-docked {
145
+ --#{$masthead}--BackgroundColor: var(--#{$masthead}--m-docked--BackgroundColor);
146
+ --#{$masthead}--GridTemplateRows: var(--#{$masthead}--m-docked--GridTemplateRows);
147
+ --#{$masthead}--PaddingBlockStart: var(--#{$masthead}--m-docked--PaddingBlockStart);
148
+ --#{$masthead}--PaddingBlockEnd: var(--#{$masthead}--m-docked--PaddingBlockEnd);
149
+ --#{$masthead}--PaddingInlineStart: var(--#{$masthead}--m-docked--PaddingInlineStart);
150
+ --#{$masthead}--PaddingInlineEnd: var(--#{$masthead}--m-docked--PaddingInlineEnd);
151
+ --#{$masthead}--GridTemplateColumns: auto;
152
+ --#{$masthead}--RowGap: var(--#{$masthead}--m-docked--RowGap);
153
+ --#{$masthead}--m-display-inline--breakpoint--xl--GridTemplateColumns: auto;
154
+ --#{$masthead}__main--GridColumn: auto;
155
+ --#{$masthead}__content--GridColumn: auto;
156
+ --#{$masthead}__logo--Width: auto;
157
+ --#{$masthead}__main--MarginInlineEnd: 0;
158
+
159
+ display: flex;
160
+ flex-direction: column;
161
+ align-items: center;
162
+ width: fit-content;
163
+ height: 100%;
164
+ backdrop-filter: var(--#{$masthead}--m-docked--BackdropFilter);
165
+
166
+ .#{$masthead}__content {
167
+ flex-direction: column;
168
+ flex-grow: 1;
169
+ align-self: revert;
170
+ }
171
+
172
+ .#{$toolbar} {
173
+ --#{$masthead}--c-toolbar--Width: fit-content;
174
+
175
+ height: var(--#{$masthead}--m-docked--c-toolbar--Height);
176
+ }
177
+ }
178
+
132
179
  .#{$toolbar}__content-section {
133
180
  flex-wrap: nowrap;
134
181
  min-width: 0;
@@ -28,6 +28,15 @@
28
28
  --pf-v6-c-nav__section-title--PaddingInlineStart: var(--pf-v6-c-nav__link--PaddingInlineStart);
29
29
  --pf-v6-c-nav__section-title--PaddingInlineEnd: var(--pf-v6-c-nav__link--PaddingInlineEnd);
30
30
  --pf-v6-c-nav__item--RowGap: var(--pf-v6-c-nav__list--RowGap);
31
+ --pf-v6-c-nav__item--accent--size: var(--pf-t--global--border--width--extra-strong);
32
+ --pf-v6-c-nav__item--accent--color: var(--pf-t--global--border--color--clicked);
33
+ --pf-v6-c-nav__item--accent--offset: calc(var(--pf-t--global--spacer--sm) * -1);
34
+ --pf-v6-c-nav__item--accent--BorderRadius: var(--pf-t--global--border--radius--small);
35
+ --pf-v6-c-nav__item--accent--ScaleY: 0;
36
+ --pf-v6-c-nav__item--current--accent--ScaleY: 1;
37
+ --pf-v6-c-nav__item--accent--TransitionDuration: 0;
38
+ --pf-v6-c-nav__item--current--accent--TransitionDuration: var(--pf-t--global--motion--duration--fade--default);
39
+ --pf-v6-c-nav__item--accent--TransitionTimingFunction: var(--pf-t--global--motion--timing-function--decelerate);
31
40
  --pf-v6-c-nav__item__toggle-icon--Rotate: 0;
32
41
  --pf-v6-c-nav__item--m-expanded__toggle-icon--Rotate: 90deg;
33
42
  --pf-v6-c-nav__item__toggle-icon--TransitionDuration--transform: var(--pf-t--global--motion--duration--icon--default);
@@ -52,6 +61,7 @@
52
61
  --pf-v6-c-nav__link--m-current--TransitionTimingFunction--color: var(--pf-t--global--motion--timing-function--default);
53
62
  --pf-v6-c-nav__link-icon--Color: var(--pf-t--global--icon--color--subtle);
54
63
  --pf-v6-c-nav__link--m-current__link-icon--Color: var(--pf-t--global--icon--color--regular);
64
+ --pf-v6-c-nav__link-text--FontSize: initial;
55
65
  --pf-v6-c-nav__subnav--RowGap: var(--pf-t--global--border--width--extra-strong);
56
66
  --pf-v6-c-nav__subnav--PaddingBlockStart: var(--pf-v6-c-nav__item--RowGap);
57
67
  --pf-v6-c-nav__subnav--PaddingBlockEnd: var(--pf-v6-c-nav__item--RowGap);
@@ -92,6 +102,11 @@
92
102
  --pf-v6-c-nav--m-horizontal--m-subnav__link--PaddingBlockEnd: var(--pf-t--global--spacer--xs);
93
103
  --pf-v6-c-nav--m-horizontal--m-subnav__link--PaddingInlineStart: var(--pf-t--global--spacer--md);
94
104
  --pf-v6-c-nav--m-horizontal--m-subnav__link--PaddingInlineEnd: var(--pf-t--global--spacer--md);
105
+ --pf-v6-c-nav--m-docked__list--RowGap: var(--pf-t--global--spacer--gap--action-to-action--plain);
106
+ --pf-v6-c-nav--m-docked__link--PaddingInlineStart: var(--pf-t--global--spacer--sm);
107
+ --pf-v6-c-nav--m-docked__link--PaddingInlineEnd: var(--pf-t--global--spacer--sm);
108
+ --pf-v6-c-nav--m-docked__link--hover--BackgroundColor: var(--pf-t--global--background--color--action--plain--hover);
109
+ --pf-v6-c-nav--m-docked__link--m-current--BackgroundColor: var(--pf-t--global--background--color--action--plain--clicked);
95
110
  }
96
111
  @media screen and (prefers-reduced-motion: no-preference) {
97
112
  .pf-v6-c-nav {
@@ -133,6 +148,21 @@
133
148
  .pf-v6-c-nav.pf-m-fill {
134
149
  flex-grow: 1;
135
150
  }
151
+ .pf-v6-c-nav.pf-m-docked {
152
+ --pf-v6-c-nav--PaddingBlockStart: 0;
153
+ --pf-v6-c-nav--PaddingBlockEnd: 0;
154
+ --pf-v6-c-nav__list--RowGap: var(--pf-v6-c-nav--m-docked__list--RowGap);
155
+ --pf-v6-c-nav__link--PaddingInlineStart: var(--pf-v6-c-nav--m-docked__link--PaddingInlineStart);
156
+ --pf-v6-c-nav__link--PaddingInlineEnd: var(--pf-v6-c-nav--m-docked__link--PaddingInlineEnd);
157
+ --pf-v6-c-nav__link--hover--BackgroundColor: var(--pf-v6-c-nav--m-docked__link--hover--BackgroundColor);
158
+ --pf-v6-c-nav__link--m-current--BackgroundColor: var(--pf-v6-c-nav--m-docked__link--m-current--BackgroundColor);
159
+ width: fit-content;
160
+ }
161
+ .pf-v6-c-nav.pf-m-docked .pf-v6-c-nav__link-icon {
162
+ position: relative;
163
+ align-self: center;
164
+ min-width: 1lh;
165
+ }
136
166
  .pf-v6-c-nav .pf-v6-c-menu {
137
167
  --pf-v6-c-menu--MinWidth: 100%;
138
168
  }
@@ -196,14 +226,34 @@
196
226
  }
197
227
 
198
228
  .pf-v6-c-nav__item {
229
+ position: relative;
199
230
  scroll-snap-align: var(--pf-v6-c-nav__item--ScrollSnapAlign);
200
231
  }
232
+ .pf-v6-c-nav__item::before {
233
+ position: absolute;
234
+ inset-block-start: 0;
235
+ inset-block-end: 0;
236
+ inset-inline-start: var(--pf-v6-c-nav__item--accent--offset);
237
+ width: var(--pf-v6-c-nav__item--accent--size);
238
+ pointer-events: none;
239
+ content: var(--pf-v6-c-nav__item--accent--content, "");
240
+ background-color: var(--pf-v6-c-nav__item--accent--color);
241
+ border-radius: var(--pf-v6-c-nav__item--accent--BorderRadius);
242
+ transition-timing-function: var(--pf-v6-c-nav__item--accent--TransitionTimingFunction);
243
+ transition-duration: var(--pf-v6-c-nav__item--accent--TransitionDuration);
244
+ transition-property: scale;
245
+ scale: 1 var(--pf-v6-c-nav__item--accent--ScaleY);
246
+ }
201
247
  .pf-v6-c-nav__item > .pf-v6-c-nav__link[button] {
202
248
  margin-block-end: var(--pf-v6-c-nav__button--RowGap--row-offset);
203
249
  }
204
250
  .pf-v6-c-nav__item.pf-m-expanded:last-child > .pf-v6-c-nav__subnav {
205
251
  margin-block-end: calc(var(--pf-v6-c-nav__subnav--PaddingBlockEnd) * -1);
206
252
  }
253
+ .pf-v6-c-nav__item:has(> .pf-v6-c-nav__link.pf-m-current) {
254
+ --pf-v6-c-nav__item--accent--ScaleY: var(--pf-v6-c-nav__item--current--accent--ScaleY);
255
+ --pf-v6-c-nav__item--accent--TransitionDuration: var(--pf-v6-c-nav__item--current--accent--TransitionDuration);
256
+ }
207
257
 
208
258
  .pf-v6-c-nav__section {
209
259
  row-gap: var(--pf-v6-c-nav__section--RowGap, var(--pf-v6-c-nav__list--RowGap));
@@ -265,6 +315,10 @@
265
315
  color: var(--pf-v6-c-nav__link-icon--Color);
266
316
  }
267
317
 
318
+ .pf-v6-c-nav__link-text {
319
+ font-size: var(--pf-v6-c-nav__link-text--FontSize, inherit);
320
+ }
321
+
268
322
  .pf-v6-c-nav__toggle {
269
323
  flex: none;
270
324
  align-self: start;
@@ -320,6 +374,7 @@
320
374
  }
321
375
 
322
376
  .pf-v6-c-nav:where(.pf-m-horizontal) {
377
+ --pf-v6-c-nav__item--accent--content: none;
323
378
  padding: 0;
324
379
  overflow: hidden;
325
380
  }
@@ -40,6 +40,17 @@
40
40
  // * Nav item
41
41
  --#{$nav}__item--RowGap: var(--#{$nav}__list--RowGap);
42
42
 
43
+ // Nav item accent
44
+ --#{$nav}__item--accent--size: var(--pf-t--global--border--width--extra-strong);
45
+ --#{$nav}__item--accent--color: var(--pf-t--global--border--color--clicked);
46
+ --#{$nav}__item--accent--offset: calc(var(--pf-t--global--spacer--sm) * -1);
47
+ --#{$nav}__item--accent--BorderRadius: var(--pf-t--global--border--radius--small);
48
+ --#{$nav}__item--accent--ScaleY: 0;
49
+ --#{$nav}__item--current--accent--ScaleY: 1;
50
+ --#{$nav}__item--accent--TransitionDuration: 0;
51
+ --#{$nav}__item--current--accent--TransitionDuration: var(--pf-t--global--motion--duration--fade--default);
52
+ --#{$nav}__item--accent--TransitionTimingFunction: var(--pf-t--global--motion--timing-function--decelerate);
53
+
43
54
  // * Nav item toggle icon
44
55
  --#{$nav}__item__toggle-icon--Rotate: 0;
45
56
  --#{$nav}__item--m-expanded__toggle-icon--Rotate: 90deg;
@@ -74,6 +85,9 @@
74
85
  --#{$nav}__link-icon--Color: var(--pf-t--global--icon--color--subtle);
75
86
  --#{$nav}__link--m-current__link-icon--Color: var(--pf-t--global--icon--color--regular);
76
87
 
88
+ // Nav link text
89
+ --#{$nav}__link-text--FontSize: initial;
90
+
77
91
  // * Nav subnav
78
92
  --#{$nav}__subnav--RowGap: var(--pf-t--global--border--width--extra-strong);
79
93
  --#{$nav}__subnav--PaddingBlockStart: var(--#{$nav}__item--RowGap); // needed to keep focus outline on first item from being cut off
@@ -129,6 +143,13 @@
129
143
  --#{$nav}--m-horizontal--m-subnav__link--PaddingBlockEnd: var(--pf-t--global--spacer--xs);
130
144
  --#{$nav}--m-horizontal--m-subnav__link--PaddingInlineStart: var(--pf-t--global--spacer--md);
131
145
  --#{$nav}--m-horizontal--m-subnav__link--PaddingInlineEnd: var(--pf-t--global--spacer--md);
146
+
147
+ // Docked
148
+ --#{$nav}--m-docked__list--RowGap: var(--pf-t--global--spacer--gap--action-to-action--plain);
149
+ --#{$nav}--m-docked__link--PaddingInlineStart: var(--pf-t--global--spacer--sm);
150
+ --#{$nav}--m-docked__link--PaddingInlineEnd: var(--pf-t--global--spacer--sm);
151
+ --#{$nav}--m-docked__link--hover--BackgroundColor: var(--pf-t--global--background--color--action--plain--hover);
152
+ --#{$nav}--m-docked__link--m-current--BackgroundColor: var(--pf-t--global--background--color--action--plain--clicked);
132
153
  }
133
154
 
134
155
  // - Nav display - default to grid
@@ -168,6 +189,24 @@
168
189
  flex-grow: 1;
169
190
  }
170
191
 
192
+ &.pf-m-docked {
193
+ --#{$nav}--PaddingBlockStart: 0;
194
+ --#{$nav}--PaddingBlockEnd: 0;
195
+ --#{$nav}__list--RowGap: var(--#{$nav}--m-docked__list--RowGap);
196
+ --#{$nav}__link--PaddingInlineStart: var(--#{$nav}--m-docked__link--PaddingInlineStart);
197
+ --#{$nav}__link--PaddingInlineEnd: var(--#{$nav}--m-docked__link--PaddingInlineEnd);
198
+ --#{$nav}__link--hover--BackgroundColor: var(--#{$nav}--m-docked__link--hover--BackgroundColor);
199
+ --#{$nav}__link--m-current--BackgroundColor: var(--#{$nav}--m-docked__link--m-current--BackgroundColor);
200
+
201
+ width: fit-content;
202
+
203
+ .#{$nav}__link-icon {
204
+ position: relative;
205
+ align-self: center;
206
+ min-width: 1lh;
207
+ }
208
+ }
209
+
171
210
  .#{$menu} {
172
211
  --#{$menu}--MinWidth: 100%;
173
212
 
@@ -244,8 +283,25 @@
244
283
 
245
284
  // - Nav item
246
285
  .#{$nav}__item {
286
+ position: relative;
247
287
  scroll-snap-align: var(--#{$nav}__item--ScrollSnapAlign);
248
288
 
289
+ &::before {
290
+ position: absolute;
291
+ inset-block-start: 0;
292
+ inset-block-end: 0;
293
+ inset-inline-start: var(--#{$nav}__item--accent--offset);
294
+ width: var(--#{$nav}__item--accent--size);
295
+ pointer-events: none;
296
+ content: var(--#{$nav}__item--accent--content, "");
297
+ background-color: var(--#{$nav}__item--accent--color);
298
+ border-radius: var(--#{$nav}__item--accent--BorderRadius);
299
+ transition-timing-function: var(--#{$nav}__item--accent--TransitionTimingFunction);
300
+ transition-duration: var(--#{$nav}__item--accent--TransitionDuration);
301
+ transition-property: scale;
302
+ scale: 1 var(--#{$nav}__item--accent--ScaleY);
303
+ }
304
+
249
305
  > .#{$nav}__link[button] {
250
306
  margin-block-end: var(--#{$nav}__button--RowGap--row-offset);
251
307
  }
@@ -255,6 +311,11 @@
255
311
  margin-block-end: calc(var(--#{$nav}__subnav--PaddingBlockEnd) * -1); // offset bottom padding
256
312
  }
257
313
  }
314
+
315
+ &:has(> .#{$nav}__link.pf-m-current) {
316
+ --#{$nav}__item--accent--ScaleY: var(--#{$nav}__item--current--accent--ScaleY);
317
+ --#{$nav}__item--accent--TransitionDuration: var(--#{$nav}__item--current--accent--TransitionDuration);
318
+ }
258
319
  }
259
320
 
260
321
  // - Nav section
@@ -305,7 +366,6 @@
305
366
  border-radius: inherit;
306
367
  }
307
368
 
308
-
309
369
  // explicitly set background-color prop to avoid affecting child elements settings
310
370
  &:hover,
311
371
  &.pf-m-hover,
@@ -326,11 +386,16 @@
326
386
  }
327
387
  }
328
388
 
329
- // - Nav toggle caret
389
+ // - Nav link icon
330
390
  .#{$nav}__link-icon {
331
391
  color: var(--#{$nav}__link-icon--Color);
332
392
  }
333
393
 
394
+ // - Nav link text
395
+ .#{$nav}__link-text {
396
+ font-size: var(--#{$nav}__link-text--FontSize, inherit);
397
+ }
398
+
334
399
  // - Nav toggle caret
335
400
  .#{$nav}__toggle {
336
401
  flex: none;
@@ -341,7 +406,7 @@
341
406
  transform: translateY(var(--#{$nav}__toggle--TranslateY));
342
407
  }
343
408
 
344
- // - Nav toggle icon
409
+ // - Nav toggle caret icon
345
410
  .#{$nav}__toggle-icon {
346
411
  display: inline-block;
347
412
  transition-timing-function: var(--#{$nav}__item__toggle-icon--TransitionTimingFunction--transform);
@@ -404,6 +469,8 @@
404
469
 
405
470
  // - Nav horizontal
406
471
  .#{$nav}:where(.pf-m-horizontal) {
472
+ --#{$nav}__item--accent--content: none;
473
+
407
474
  padding: 0;
408
475
  overflow: hidden;
409
476