@patternfly/patternfly 6.0.0-alpha.82 → 6.0.0-alpha.84

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 (59) hide show
  1. package/components/Breadcrumb/breadcrumb.css +9 -1
  2. package/components/Breadcrumb/breadcrumb.scss +10 -3
  3. package/components/Button/button.css +1 -1
  4. package/components/Button/button.scss +1 -1
  5. package/components/Menu/menu.css +388 -419
  6. package/components/Menu/menu.scss +369 -529
  7. package/components/MenuToggle/menu-toggle.css +229 -265
  8. package/components/MenuToggle/menu-toggle.scss +330 -370
  9. package/components/TextInputGroup/text-input-group.css +0 -14
  10. package/components/TextInputGroup/text-input-group.scss +3 -16
  11. package/docs/components/Button/examples/Button.md +134 -134
  12. package/docs/components/CalendarMonth/examples/CalendarMonth.md +4 -4
  13. package/docs/components/Card/examples/Card.md +8 -8
  14. package/docs/components/DualListSelector/examples/DualListSelector.md +2 -2
  15. package/docs/components/Form/examples/Form.md +11 -11
  16. package/docs/components/Label/examples/Label.md +157 -157
  17. package/docs/components/LogViewer/examples/LogViewer.md +110 -110
  18. package/docs/components/Menu/examples/Menu.css +7 -11
  19. package/docs/components/Menu/examples/Menu.md +637 -944
  20. package/docs/components/MenuToggle/examples/MenuToggle.md +88 -51
  21. package/docs/components/Nav/examples/Navigation.md +113 -140
  22. package/docs/components/Tabs/examples/Tabs.md +24 -24
  23. package/docs/components/TextInputGroup/examples/TextInputGroup.md +9 -9
  24. package/docs/components/Toolbar/examples/Toolbar.md +28 -28
  25. package/docs/demos/AboutModal/examples/AboutModal.md +2 -2
  26. package/docs/demos/Alert/examples/Alert.md +6 -6
  27. package/docs/demos/BackToTop/examples/BackToTop.md +2 -2
  28. package/docs/demos/Banner/examples/Banner.md +4 -4
  29. package/docs/demos/Button/examples/Button.md +1 -1
  30. package/docs/demos/CardView/examples/CardView.md +3 -3
  31. package/docs/demos/ContextSelector/examples/ContextSelector.md +7 -7
  32. package/docs/demos/Dashboard/examples/Dashboard.md +2 -2
  33. package/docs/demos/DataList/examples/DataList.md +13 -13
  34. package/docs/demos/DescriptionList/examples/DescriptionList.md +6 -6
  35. package/docs/demos/Drawer/examples/Drawer.md +10 -10
  36. package/docs/demos/Form/examples/BasicForms.md +12 -12
  37. package/docs/demos/JumpLinks/examples/JumpLinks.md +12 -12
  38. package/docs/demos/Masthead/examples/Masthead.md +9 -9
  39. package/docs/demos/Modal/examples/Modal.md +15 -15
  40. package/docs/demos/Nav/examples/Nav.md +12 -12
  41. package/docs/demos/NotificationDrawer/examples/NotificationDrawer.md +10 -10
  42. package/docs/demos/Page/examples/Page.md +18 -18
  43. package/docs/demos/Page/examples/Penta.md +4 -4
  44. package/docs/demos/PasswordGenerator/examples/PasswordGenerator.md +11 -11
  45. package/docs/demos/PasswordStrength/examples/PasswordStrength.md +4 -4
  46. package/docs/demos/PrimaryDetail/examples/PrimaryDetail.md +18 -18
  47. package/docs/demos/Skeleton/examples/Skeleton.md +2 -2
  48. package/docs/demos/Table/examples/Table.md +54 -54
  49. package/docs/demos/Tabs/examples/Tabs.md +12 -12
  50. package/docs/demos/Toolbar/examples/Toolbar.md +27 -27
  51. package/docs/demos/Wizard/examples/Wizard.md +18 -18
  52. package/package.json +1 -1
  53. package/patternfly-no-globals.css +746 -711
  54. package/patternfly-theme-dark-unversioned.css +746 -711
  55. package/patternfly.css +746 -711
  56. package/patternfly.min.css +1 -1
  57. package/patternfly.min.css.map +1 -1
  58. package/components/MenuToggle/themes/dark/menu-toggle.scss +0 -27
  59. package/components/TextInputGroup/themes/dark/text-input-group.scss +0 -11
@@ -1,245 +1,222 @@
1
- // @debug $menu; // check your variable names located in src/patternfly/sass-utilities/component-namespaces.scss
2
-
3
- .#{$menu} {
4
- @include pf-v5-t-light;
5
-
6
- // Menu
7
- --#{$menu}--BackgroundColor: var(--#{$pf-global}--BackgroundColor--100);
8
- --#{$menu}--BoxShadow: var(--#{$pf-global}--BoxShadow--md);
9
- --#{$menu}--MinWidth: auto;
1
+ :where(:root),
2
+ :where(.#{$menu}) {
3
+ // * Menu
4
+ --#{$menu}--RowGap: var(--pf-t--global--spacer--sm);
10
5
  --#{$menu}--Width: auto;
11
- --#{$menu}--ZIndex: var(--#{$pf-global}--ZIndex--sm);
12
- --#{$menu}--Top: auto;
6
+ --#{$menu}--MinWidth: auto;
7
+ --#{$menu}--PaddingBlockStart: var(--pf-t--global--spacer--sm);
8
+ --#{$menu}--PaddingBlockEnd: var(--pf-t--global--spacer--sm);
9
+ --#{$menu}--BackgroundColor: var(--pf-t--global--background--color--floating--default);
10
+ --#{$menu}--BoxShadow: var(--pf-t--global--box-shadow--md);
11
+ --#{$menu}--Color: var(--pf-t--global--text--color--regular);
12
+ --#{$menu}--BorderRadius: var(--pf-t--global--border--radius--small);
13
+ --#{$menu}--OutlineOffset: calc(var(--pf-t--global--border--width--control--default) * -3);
14
+ --#{$menu}--ZIndex: var(--pf-t--global--Zindex--sm);
15
+ --#{$menu}--button--disabled--Color: var(--pf-t--global--text--color--disabled);
16
+ --#{$menu}--icon--disabled--Color: var(--pf-t--global--icon--color--disabled);
17
+
18
+ // * Menu plain
19
+ --#{$menu}--m-plain--BoxShadow: none;
13
20
 
14
- // Flyout
15
- --#{$menu}--m-flyout__menu--Top: calc(var(--#{$menu}__list--PaddingTop) * -1 + var(--#{$menu}--m-flyout__menu--top-offset));
16
- --#{$menu}--m-flyout__menu--Right: auto;
17
- --#{$menu}--m-flyout__menu--Bottom: auto;
18
- --#{$menu}--m-flyout__menu--Left: calc(100% + var(--#{$menu}--m-flyout__menu--left-offset));
19
- --#{$menu}--m-flyout__menu--m-top--Bottom: calc(var(--#{$menu}__list--PaddingTop) * -1);
20
- --#{$menu}--m-flyout__menu--m-left--Right: calc(100% + var(--#{$menu}--m-flyout__menu--m-left--right-offset));
21
+ // * Menu content
22
+ --#{$menu}__content--RowGap: var(--#{$menu}--RowGap);
23
+ --#{$menu}__content--Height: auto;
24
+ --#{$menu}__content--MaxHeight: none;
25
+ --#{$menu}--m-scrollable__content--MaxHeight: #{pf-size-prem(300px)};
21
26
 
22
- // Plain
23
- --#{$menu}--m-plain--BoxShadow: none;
27
+ // * Menu search
28
+ --#{$menu}__search--PaddingBlockStart: var(--pf-t--global--spacer--sm);
29
+ --#{$menu}__search--PaddingBlockEnd: var(--pf-t--global--spacer--sm);
30
+ --#{$menu}__search--PaddingInlineStart: var(--pf-t--global--spacer--md);
31
+ --#{$menu}__search--PaddingInlineEnd: var(--pf-t--global--spacer--md);
32
+
33
+ // * Menu footer
34
+ --#{$menu}__footer--BoxShadow: none;
35
+ --#{$menu}--m-scrollable__footer--BoxShadow: var(--pf-t--global--box-shadow--md--top);
36
+
37
+ // * Menu list item
38
+ --#{$menu}__list-item--Color: var(--pf-t--global--text--color--regular);
39
+ --#{$menu}__list-item--BackgroundColor: var(--pf-t--global--background--color--action--plain--default);
40
+ --#{$menu}__list-item--hover--BackgroundColor: var(--pf-t--global--background--color--action--plain--hover);
41
+ --#{$menu}__list-item--MixBlendMode: normal;
42
+ --#{$menu}__list-item--MixBlendMode--hover: var(--pf-t--global--background--color--action--plain--hover--blend);
43
+ --#{$menu}__list-item--m-danger--Color: var(--pf-t--global--text--color--status--danger--default);
44
+ --#{$menu}__list-item--m-load__item--Color: var(--pf-t--global--text--color--link--default);
45
+ --#{$menu}__list-item--has--menu-action--PaddingInlineEnd: var(--pf-t--global--spacer--lg);
46
+
47
+ // * Menu li divider
48
+ --#{$menu}__list--divider--MarginTop: var(--pf-t--global--spacer--sm);
49
+ --#{$menu}__list--divider--MarginBottom: var(--pf-t--global--spacer--sm);
50
+
51
+ // * Menu item
52
+ --#{$menu}__item--PaddingBlockStart: var(--pf-t--global--spacer--sm);
53
+ --#{$menu}__item--PaddingBlockEnd: var(--pf-t--global--spacer--sm);
54
+ --#{$menu}__item--PaddingInlineStart: var(--pf-t--global--spacer--lg);
55
+ --#{$menu}__item--PaddingInlineEnd: var(--pf-t--global--spacer--lg);
56
+ --#{$menu}__item--FontSize: var(--pf-t--global--font--size--body--default);
57
+ --#{$menu}__item--LineHeight: var(--pf-t--global--font--line-height--body);
58
+ --#{$menu}__item--FontWeight: var(--pf-t--global--font--weight--body);
59
+ --#{$menu}__item--Color: var(--pf-t--global--text--color--regular);
60
+ --#{$menu}__item--BackgroundColor: var(--pf-t--global--background--color--action--plain--default);
61
+ --#{$menu}__item--m-disabled--Color: var(--pf-t--global--text--color--disabled);
62
+
63
+ // * Menu header
64
+ --#{$menu}__header--PaddingBlockStart: var(--pf-t--global--spacer--sm);
65
+ --#{$menu}__header--PaddingBlockEnd: var(--pf-t--global--spacer--sm);
66
+ --#{$menu}__header--PaddingInlineStart: var(--pf-t--global--spacer--lg);
67
+ --#{$menu}__header--PaddingInlineEnd: var(--pf-t--global--spacer--lg);
68
+
69
+ // * Menu group title
70
+ --#{$menu}__group-title--PaddingBlockStart: var(--pf-t--global--spacer--sm);
71
+ --#{$menu}__group-title--PaddingBlockEnd: var(--pf-t--global--spacer--sm);
72
+ --#{$menu}__group-title--PaddingInlineStart: var(--pf-t--global--spacer--lg);
73
+ --#{$menu}__group-title--PaddingInlineEnd: var(--pf-t--global--spacer--lg);
74
+
75
+ // * Menu breadcrumb
76
+ --#{$menu}__breadcrumb--PaddingBlockStart: 0;
77
+ --#{$menu}__breadcrumb--PaddingBlockEnd: 0;
78
+ --#{$menu}__breadcrumb--PaddingInlineStart: var(--pf-t--global--spacer--lg);
79
+ --#{$menu}__breadcrumb--PaddingInlineEnd: var(--pf-t--global--spacer--lg);
80
+
81
+ // * Menu footer
82
+ --#{$menu}__footer--PaddingBlockStart: var(--pf-t--global--spacer--sm);
83
+ --#{$menu}__footer--PaddingBlockEnd: var(--pf-t--global--spacer--sm);
84
+ --#{$menu}__footer--PaddingInlineStart: var(--pf-t--global--spacer--lg);
85
+ --#{$menu}__footer--PaddingInlineEnd: var(--pf-t--global--spacer--lg);
86
+
87
+ // * Menu item main
88
+ --#{$menu}__item-main--ColumnGap: var(--pf-t--global--spacer--sm);
89
+
90
+ // * Menu group title
91
+ --#{$menu}__group-title--Color: var(--pf-t--global--text--color--subtle);
92
+
93
+ // * Menu description
94
+ --#{$menu}__item-description--FontSize: var(--pf-t--global--font--size--body--sm);
95
+ --#{$menu}__item-description--Color: var(--pf-t--global--text--color--subtle);
96
+
97
+ // * Menu action
98
+ --#{$menu}__item-action--FontSize: var(--pf-t--global--font--size--body--default);
99
+ --#{$menu}__item-action--icon--size: var(--#{$menu}__item-action--FontSize, var(--pf-t--global--icon--size--md));
100
+ --#{$menu}__item-action--Color: var(--pf-t--global--icon--color--subtle);
101
+ --#{$menu}__item-action--m-favorited--Color: var(--pf-t--global--icon--color--favorite--clicked);
102
+ --#{$menu}__item-action--button--MinWidth: calc(var(--#{$menu}__item-action--icon--size) + var(--pf-t--global--spacer--sm) * 2);
103
+
104
+ // * Menu select icon
105
+ --#{$menu}__item-select-icon--Color: var(--pf-t--global--icon--color--subtle);
106
+ --#{$menu}__item--m-selected__item-select-icon--Color: var(--pf-t--global--icon--color--brand--default);
107
+
108
+ // * Menu link icon
109
+ --#{$menu}__item-external--Color: var(--pf-t--global--icon--color--brand--default);
24
110
 
25
- // stylelint-disable length-zero-no-unit
26
111
  // Needs a unit because of type checking for use in calc()
27
112
  --#{$menu}--m-flyout__menu--top-offset: 0px;
28
113
  --#{$menu}--m-flyout__menu--left-offset: 0px;
29
114
  --#{$menu}--m-flyout__menu--m-left--right-offset: 0px;
30
- // stylelint-enable
31
115
 
32
- // Content
33
- --#{$menu}__content--Height: auto;
34
- --#{$menu}__content--MaxHeight: none;
35
- --#{$menu}--m-scrollable__content--MaxHeight: #{pf-size-prem(300px)};
116
+ // * Menu flyout
117
+ --#{$menu}--m-flyout__Zindex: var(--pf-t--global--Zindex--sm);
118
+ --#{$menu}--m-flyout__menu--Top: calc(var(--#{$menu}__list--PaddingBlockStart) * -1 + var(--#{$menu}--m-flyout__menu--top-offset));
119
+ --#{$menu}--m-flyout__menu--Right: auto;
120
+ --#{$menu}--m-flyout__menu--Bottom: auto;
121
+ --#{$menu}--m-flyout__menu--Left: calc(100% + var(--#{$menu}--m-flyout__menu--left-offset));
122
+ --#{$menu}--m-flyout__menu--m-top--Bottom: calc(var(--#{$menu}__list--PaddingBlockStart) * -1);
123
+ --#{$menu}--m-flyout__menu--m-left--Right: calc(100% + var(--#{$menu}--m-flyout__menu--m-left--right-offset));
36
124
 
37
- // Divider
38
- --#{$menu}--c-divider--MarginTop: 0;
39
- --#{$menu}--c-divider--MarginBottom: 0;
40
- --#{$menu}__list--c-divider--MarginTop: var(--#{$pf-global}--spacer--sm);
41
- --#{$menu}__list--c-divider--MarginBottom: var(--#{$pf-global}--spacer--sm);
42
-
43
- // Header
44
- --#{$menu}__header--PaddingTop: var(--#{$pf-global}--spacer--md);
45
- --#{$menu}__header--PaddingRight: var(--#{$pf-global}--spacer--md);
46
- --#{$menu}__header--PaddingBottom: var(--#{$pf-global}--spacer--md);
47
- --#{$menu}__header--PaddingLeft: var(--#{$pf-global}--spacer--md);
48
-
49
- // Header > item
50
- --#{$menu}__header--c-menu__item--MarginTop: calc(var(--#{$menu}__header--PaddingTop) * -1 / 2);
51
- --#{$menu}__header--c-menu__item--MarginRight: calc(var(--#{$menu}__header--PaddingRight) * -1 / 2);
52
- --#{$menu}__header--c-menu__item--MarginBottom: calc(var(--#{$menu}__header--PaddingBottom) * -1 / 2);
53
- --#{$menu}__header--c-menu__item--MarginLeft: calc(var(--#{$menu}__header--PaddingLeft) * -1 / 2);
54
- --#{$menu}__header--c-menu__item--PaddingTop: var(--#{$pf-global}--spacer--sm);
55
- --#{$menu}__header--c-menu__item--PaddingRight: var(--#{$pf-global}--spacer--md);
56
- --#{$menu}__header--c-menu__item--PaddingBottom: var(--#{$pf-global}--spacer--sm);
57
- --#{$menu}__header--c-menu__item--PaddingLeft: var(--#{$pf-global}--spacer--md);
58
- --#{$menu}__header--c-menu__item--BackgroundColor: transparent;
59
- --#{$menu}__header--c-menu__item--hover--BackgroundColor: var(--#{$pf-global}--BackgroundColor--200);
60
- --#{$menu}__header--c-menu__item--focus--BackgroundColor: var(--#{$pf-global}--BackgroundColor--200);
61
-
62
- // Search
63
- --#{$menu}__search--PaddingTop: var(--#{$pf-global}--spacer--md);
64
- --#{$menu}__search--PaddingRight: var(--#{$pf-global}--spacer--md);
65
- --#{$menu}__search--PaddingBottom: var(--#{$pf-global}--spacer--md);
66
- --#{$menu}__search--PaddingLeft: var(--#{$pf-global}--spacer--md);
67
-
68
- // Header + search
69
- --#{$menu}__header__search--PaddingTop: 0;
70
-
71
- // List
72
- --#{$menu}__list--Display: block;
73
- --#{$menu}__list--PaddingTop: var(--#{$pf-global}--spacer--sm);
74
- --#{$menu}__list--PaddingBottom: var(--#{$pf-global}--spacer--sm);
75
-
76
- // List item
77
- --#{$menu}__list-item--Display: flex;
78
- --#{$menu}__list-item--Color: var(--#{$pf-global}--Color--100);
79
- --#{$menu}__list-item--BackgroundColor: transparent;
80
- --#{$menu}__list-item--hover--BackgroundColor: var(--#{$pf-global}--BackgroundColor--200);
81
- --#{$menu}__list-item--focus-within--BackgroundColor: var(--#{$pf-global}--BackgroundColor--200);
82
- --#{$menu}__list-item--m-loading--PaddingTop: var(--#{$pf-global}--spacer--sm);
83
-
84
- // Menu item
85
- --#{$menu}__item--PaddingTop: var(--#{$pf-global}--spacer--sm);
86
- --#{$menu}__item--PaddingRight: var(--#{$pf-global}--spacer--md);
87
- --#{$menu}__item--PaddingBottom: var(--#{$pf-global}--spacer--sm);
88
- --#{$menu}__item--PaddingLeft: var(--#{$pf-global}--spacer--md);
89
- --#{$menu}__item--OutlineOffset: calc(#{pf-size-prem(2px)} * -1);
90
- --#{$menu}__item--FontSize: var(--#{$pf-global}--FontSize--md);
91
- --#{$menu}__item--FontWeight: var(--#{$pf-global}--FontWeight--normal);
92
- --#{$menu}__item--LineHeight: var(--#{$pf-global}--LineHeight--md);
93
- --#{$menu}__list-item--m-disabled__item--Color: var(--#{$pf-global}--disabled-color--100);
94
- --#{$menu}__list-item--m-danger__item--Color: var(--#{$pf-global}--danger-color--100);
95
- --#{$menu}__list-item--m-load__item--Color: var(--#{$pf-global}--link--Color);
96
-
97
- // Group
98
- --#{$menu}__group--Display: block;
99
-
100
- // Group title
101
- --#{$menu}__group-title--PaddingTop: var(--#{$pf-global}--spacer--md);
102
- --#{$menu}__group-title--PaddingRight: var(--#{$menu}__item--PaddingRight);
103
- --#{$menu}__group-title--PaddingLeft: var(--#{$menu}__item--PaddingLeft);
104
- --#{$menu}__group-title--FontSize: var(--#{$pf-global}--FontSize--xs);
105
- --#{$menu}__group-title--FontWeight: var(--#{$pf-global}--FontWeight--normal);
106
- --#{$menu}__group-title--Color: var(--#{$pf-global}--Color--200);
107
-
108
- // Description
109
- --#{$menu}__item-description--FontSize: var(--#{$pf-global}--FontSize--xs);
110
- --#{$menu}__item-description--Color: var(--#{$pf-global}--Color--200);
111
-
112
- // Icon
113
- --#{$menu}__item-icon--MarginRight: var(--#{$pf-global}--spacer--sm);
114
-
115
- // Check
116
- --#{$menu}__item-check--MarginRight: var(--#{$pf-global}--spacer--sm);
117
-
118
- // Toggle icon
119
- --#{$menu}__item-toggle-icon--PaddingRight: var(--#{$pf-global}--spacer--sm);
120
- --#{$menu}__item-toggle-icon--PaddingLeft: var(--#{$pf-global}--spacer--sm);
121
- --#{$menu}__list-item--m-disabled__item-toggle-icon--Color: var(--#{$pf-global}--disabled-color--200);
122
-
123
- // Text + toggle
124
- --#{$menu}__item-text--item-toggle-icon--MarginLeft: var(--#{$pf-global}--spacer--sm);
125
-
126
- // Toggle + text
127
- --#{$menu}__item-toggle-icon--item-text--MarginLeft: var(--#{$pf-global}--spacer--sm);
128
-
129
- // Select icon
130
- --#{$menu}__item-select-icon--MarginLeft: var(--#{$pf-global}--spacer--sm);
131
- --#{$menu}__item-select-icon--Color: var(--#{$pf-global}--active-color--100);
132
- --#{$menu}__item-select-icon--FontSize: var(--#{$pf-global}--icon--FontSize--sm);
133
-
134
- // External icon
135
- --#{$menu}__item-external-icon--MarginLeft: var(--#{$pf-global}--spacer--sm);
136
- --#{$menu}__item-external-icon--Color: var(--#{$pf-global}--link--Color);
137
- --#{$menu}__item-external-icon--FontSize: var(--#{$pf-global}--icon--FontSize--sm);
138
- --#{$menu}__item-external-icon--Opacity: 0;
139
-
140
- // Action
141
- --#{$menu}__item-action--PaddingTop: var(--#{$pf-global}--spacer--sm);
142
- --#{$menu}__item-action--PaddingRight: var(--#{$pf-global}--spacer--md);
143
- --#{$menu}__item-action--PaddingBottom: var(--#{$pf-global}--spacer--sm);
144
- --#{$menu}__item-action--PaddingLeft: var(--#{$pf-global}--spacer--md);
145
- --#{$menu}__item-action--Color: var(--#{$pf-global}--Color--200);
146
- --#{$menu}__item-action--BackgroundColor: transparent;
147
- --#{$menu}__item-action--hover--Color: var(--#{$pf-global}--Color--100);
148
- --#{$menu}__item-action--disabled--Color: var(--#{$pf-global}--disabled-color--200);
149
- --#{$menu}__item-action--m-favorited--Color: var(--#{$pf-global}--palette--gold-400);
150
- --#{$menu}__item-action--m-favorited--hover--Color: var(--#{$pf-global}--palette--gold-500);
151
-
152
- // Action icon
153
- --#{$menu}__item-action-icon--Height: calc(var(--#{$menu}__item--FontSize) * var(--#{$menu}__item--LineHeight));
154
- --#{$menu}__item-action--m-favorite__icon--FontSize: var(--#{$pf-global}--icon--FontSize--sm);
155
-
156
- // breadcrumb
157
- --#{$menu}__breadcrumb--PaddingTop: var(--#{$pf-global}--spacer--md);
158
- --#{$menu}__breadcrumb--PaddingRight: var(--#{$pf-global}--spacer--md);
159
- --#{$menu}__breadcrumb--PaddingBottom: var(--#{$pf-global}--spacer--md);
160
- --#{$menu}__breadcrumb--PaddingLeft: var(--#{$pf-global}--spacer--md);
161
- --#{$menu}__breadcrumb--c-breadcrumb__item--FontSize: var(--#{$pf-global}--FontSize--md);
162
- --#{$menu}__breadcrumb--c-breadcrumb__heading--FontSize: var(--#{$pf-global}--FontSize--md);
163
-
164
- // Nested menu
165
- --#{$menu}--m-drilldown--c-menu--Top: 0;
166
- --#{$menu}--m-drilldown--c-menu--TransitionDuration--transform: var(--#{$pf-global}--TransitionDuration);
167
- --#{$menu}--m-drilldown--c-menu--Transition: transform var(--#{$menu}--m-drilldown--c-menu--TransitionDuration--transform);
168
-
169
- // Drilldown content
170
- --#{$menu}--m-drilldown__content--TransitionDuration--height: var(--#{$pf-global}--TransitionDuration);
171
- --#{$menu}--m-drilldown__content--TransitionDuration--transform: var(--#{$pf-global}--TransitionDuration);
125
+ // * Menu drilldown content
126
+ --#{$menu}--m-drilldown__content--TransitionDuration--height: var(--#{$pf-global}--TransitionDuration); // TODO: Update transition with token update
127
+ --#{$menu}--m-drilldown__content--TransitionDuration--transform: var(--#{$pf-global}--TransitionDuration); // TODO: Update transition with token update
172
128
  --#{$menu}--m-drilldown__content--Transition: transform var(--#{$menu}--m-drilldown__content--TransitionDuration--transform), height var(--#{$menu}--m-drilldown__content--TransitionDuration--height);
173
129
 
174
- // Drilldown list
175
- --#{$menu}--m-drilldown__list--TransitionDuration--transform: var(--#{$pf-global}--TransitionDuration);
130
+ // * Menu drilldown list
131
+ --#{$menu}--m-drilldown__list--TransitionDuration--transform: var(--#{$pf-global}--TransitionDuration); // TODO: Update transition with token update
176
132
  --#{$menu}--m-drilldown__list--Transition: transform var(--#{$menu}--m-drilldown__list--TransitionDuration--transform);
177
133
 
178
- // Drilled in
179
- --#{$menu}--m-drilled-in--c-menu__list-item--m-current-path--c-menu--ZIndex: var(--#{$pf-global}--ZIndex--xs);
134
+ // * Menu drilled in
135
+ --#{$menu}--m-drilled-in--c-menu__list-item--m-current-path--c-menu--ZIndex: var(--pf-t--global--ZIndex--xs);
136
+ }
180
137
 
181
- // Footer
182
- --#{$menu}__footer--PaddingTop: var(--#{$pf-global}--spacer--md);
183
- --#{$menu}__footer--PaddingRight: var(--#{$pf-global}--spacer--md);
184
- --#{$menu}__footer--PaddingBottom: var(--#{$pf-global}--spacer--md);
185
- --#{$menu}__footer--PaddingLeft: var(--#{$pf-global}--spacer--md);
186
- --#{$menu}__footer--BoxShadow: none;
187
- --#{$menu}__footer--after--BorderTopWidth: var(--#{$pf-global}--BorderWidth--sm);
188
- --#{$menu}__footer--after--BorderTopColor: var(--#{$pf-global}--BorderColor--100);
189
- --#{$menu}--m-scrollable__footer--BoxShadow: var(--#{$pf-global}--BoxShadow--sm-top);
190
- --#{$menu}--m-scrollable__footer--after--BorderTopWidth: 0;
191
- --#{$menu}--m-scrollable__footer--after--BorderBottomWidth: var(--#{$pf-global}--BorderWidth--sm);
192
-
193
- // Nav variant
194
- --#{$menu}--m-nav--BoxShadow: var(--#{$pf-global}--BoxShadow--lg);
195
- --#{$menu}--m-nav--BackgroundColor: var(--#{$pf-global}--BackgroundColor--dark-300);
196
- --#{$menu}--m-nav__list--PaddingTop: 0;
197
- --#{$menu}--m-nav__list--PaddingBottom: 0;
198
- --#{$menu}--m-nav__list-item--hover--BackgroundColor: var(--#{$pf-global}--BackgroundColor--dark-200);
199
- --#{$menu}--m-nav__list-item--focus-within--BackgroundColor: var(--#{$pf-global}--BackgroundColor--dark-200);
200
- --#{$menu}--m-nav__list-item--active--BackgroundColor: var(--#{$pf-global}--BackgroundColor--dark-200);
201
- --#{$menu}--m-nav__item--PaddingRight: var(--#{$pf-global}--spacer--lg);
202
- --#{$menu}--m-nav__item--PaddingLeft: var(--#{$pf-global}--spacer--lg);
203
- --#{$menu}--m-nav__item--Color: var(--#{$pf-global}--Color--light-100);
204
- --#{$menu}--m-nav__item--FontSize: var(--#{$pf-global}--FontSize--sm);
205
- --#{$menu}--m-nav__item--OutlineOffset: calc(var(--#{$pf-global}--spacer--xs) * -1);
206
- --#{$menu}--m-nav__item--before--BorderBottomColor: var(--#{$pf-global}--BackgroundColor--dark-200);
207
- --#{$menu}--m-nav__item--before--BorderBottomWidth: var(--#{$pf-global}--BorderWidth--sm);
208
- --#{$menu}--m-nav__item--hover--after--BorderLeftColor: var(--#{$pf-global}--BorderColor--200);
209
- --#{$menu}--m-nav__item--hover--after--BorderLeftWidth: var(--#{$pf-global}--BorderWidth--sm);
210
- --#{$menu}--m-nav__item--hover--after--Top: calc(var(--#{$menu}--m-nav__item--before--BorderBottomWidth) * -1);
211
- --#{$menu}--m-nav__item__list-item--first-child__item--hover--after--Top: 0;
212
- --#{$menu}--m-nav__item-description--Color: var(--#{$pf-global}--Color--light-200);
213
-
214
- // Nav nested menus
215
- --#{$menu}--m-nav--c-menu--left-offset: #{pf-size-prem(4px)};
216
- --#{$menu}--m-nav--c-menu--m-top--bottom-offset: 0;
217
- --#{$menu}--m-nav--c-menu--m-left--right-offset: #{pf-size-prem(4px)};
218
- --#{$menu}--m-nav--c-menu--Top: calc(var(--#{$menu}--m-nav__item--before--BorderBottomWidth) * -1);
219
- --#{$menu}--m-nav--c-menu--Left: calc(100% - var(--#{$menu}--m-nav--c-menu--left-offset));
220
- --#{$menu}--m-nav--c-menu--m-left--Right: calc(100% - var(--#{$menu}--m-nav--c-menu--m-left--right-offset));
221
- --#{$menu}--m-nav--c-menu--m-top--Bottom: calc(0 + var(--#{$menu}--m-nav--c-menu--m-top--bottom-offset));
222
- --#{$menu}--m-nav__list-item--first-child--c-menu--Top: 0;
223
-
224
- inset-block-start: var(--#{$menu}--Top);
225
- z-index: var(--#{$menu}--ZIndex);
138
+ // - Menu shared display grid
139
+ .#{$menu},
140
+ .#{$menu}__list,
141
+ .#{$menu}__group {
142
+ @include pf-v5-hidden-visible(grid);
143
+ }
144
+
145
+ // - Menu shared display flex
146
+ .#{$menu}__content,
147
+ .#{$menu}__list-item,
148
+ .#{$menu}__item,
149
+ .#{$menu}__item-main,
150
+ .#{$menu}__breadcrumb,
151
+ .#{$menu}__item-check,
152
+ .#{$menu}__item-action,
153
+ .#{$menu}__item-action-icon {
154
+ @include pf-v5-hidden-visible(flex);
155
+ }
156
+
157
+ // - Menu shared position relative
158
+ .#{$menu}__list,
159
+ .#{$menu}__list-item,
160
+ .#{$menu}__breadcrumb,
161
+ .#{$menu}__footer {
162
+ position: relative;
163
+ }
164
+
165
+ // - Menu item disabled - Menu action disabled
166
+ .#{$menu}__list-item,
167
+ .#{$menu}__item-action {
168
+ &:is(.pf-m-disabled, :disabled, .pf-m-aria-disabled, [aria-disabled="true"]) {
169
+ --#{$menu}__item--Color: var(--#{$menu}__item--m-disabled--Color);
170
+ --#{$menu}__item-toggle-icon--Color: var(--#{$menu}--icon--disabled--Color);
171
+ --#{$menu}__item-external-icon--Color: var(--#{$menu}--icon--disabled--Color);
172
+ --#{$menu}__item-description--Color: var(--#{$menu}--icon--disabled--Color);
173
+ --#{$menu}__list-item--BackgroundColor: transparent;
174
+
175
+ pointer-events: none;
176
+ }
177
+ }
178
+
179
+ // - Menu hidden
180
+ [class*="#{$menu}"]:is([hidden]) {
181
+ display: none;
182
+ }
183
+
184
+ // TODO: simplify this code block
185
+ // - Menu
186
+ .#{$menu} {
187
+ // TODO: Explore this fallback method
188
+ // padding-block-start: var(--#{$menu}--PaddingBlockStart, var(--#{$menu}--PaddingBlock));
189
+ // padding-block-end: var(--#{$menu}--PaddingBlockEnd, var(--#{$menu}--PaddingBlock));
190
+ row-gap: var(--#{$menu}--RowGap);
226
191
  width: var(--#{$menu}--Width);
227
192
  min-width: var(--#{$menu}--MinWidth);
193
+ padding-block-start: var(--#{$menu}--PaddingBlockStart);
194
+ padding-block-end: var(--#{$menu}--PaddingBlockEnd);
195
+ overflow: hidden;
196
+ color: var(--#{$menu}--Color);
228
197
  background-color: var(--#{$menu}--BackgroundColor);
198
+ border-radius: var(--#{$menu}--BorderRadius);
229
199
  box-shadow: var(--#{$menu}--BoxShadow);
230
200
 
201
+ .#{$menu} {
202
+ min-width: 100%;
203
+ border-radius: 0;
204
+ }
205
+
231
206
  .#{$menu}__content {
232
207
  & & {
233
208
  overflow: visible;
234
209
  }
235
210
  }
236
211
 
237
- .#{$divider} {
238
- margin-block-start: var(--#{$menu}--c-divider--MarginTop);
239
- margin-block-end: var(--#{$menu}--c-divider--MarginBottom);
212
+ // - Menu nested flyout menu
213
+ &.pf-m-flyout,
214
+ &.pf-m-flyout &,
215
+ & &.pf-m-flyout,
216
+ &.pf-m-flyout .#{$menu}__content {
217
+ overflow: visible;
240
218
  }
241
219
 
242
- // nested flyout menu
243
220
  & &.pf-m-flyout,
244
221
  &.pf-m-flyout & {
245
222
  position: absolute;
@@ -247,6 +224,8 @@
247
224
  inset-block-end: var(--#{$menu}--m-flyout__menu--Bottom);
248
225
  inset-inline-start: var(--#{$menu}--m-flyout__menu--Left);
249
226
  inset-inline-end: var(--#{$menu}--m-flyout__menu--Right);
227
+ z-index: var(--#{$menu}--m-flyout__Zindex);
228
+ border-radius: var(--#{$menu}--BorderRadius);
250
229
 
251
230
  .#{$menu}__content {
252
231
  overflow-y: visible;
@@ -264,19 +243,15 @@
264
243
  }
265
244
 
266
245
  &.pf-m-drilldown {
267
- display: flex;
268
- flex-direction: column;
269
-
270
- &[hidden] {
271
- display: none;
272
- }
273
-
274
246
  > .#{$menu}__content {
275
- flex-grow: 1;
276
247
  overflow: hidden;
277
248
  transition: var(--#{$menu}--m-drilldown__content--Transition);
278
249
  }
279
250
 
251
+ :where(.#{$menu}) {
252
+ padding: 0;
253
+ }
254
+
280
255
  &.pf-m-drilled-in {
281
256
  // stylelint-disable selector-max-class
282
257
  // target first list in menu
@@ -291,14 +266,13 @@
291
266
  // stylelint-enable
292
267
  }
293
268
 
294
- // Nested menu
269
+ // - Menu nested menu
295
270
  > .#{$menu}__content .#{$menu} {
296
- --#{$menu}--BoxShadow: none;
297
-
298
271
  position: absolute;
299
- inset-block-start: var(--#{$menu}--m-drilldown--c-menu--Top);
300
- inset-inline-start: 100%;
272
+ inset-block-start: var(--#{$menu}--m-drilldown--c-menu--Top);
273
+ inset-inline-start: 100%;
301
274
  width: 100%;
275
+ box-shadow: none;
302
276
  transition: var(--#{$menu}--m-drilldown--c-menu--Transition);
303
277
 
304
278
  // stylelint-disable selector-max-class
@@ -312,15 +286,15 @@
312
286
  // stylelint-enable
313
287
  }
314
288
 
289
+ // - Menu list
315
290
  .#{$menu}__list {
316
- position: relative;
317
291
  overflow: hidden;
318
292
  visibility: visible;
319
293
  transition: var(--#{$menu}--m-drilldown__list--Transition);
320
294
 
321
295
  & .#{$menu}__list {
322
- --#{$menu}__list--PaddingTop: 0;
323
- --#{$menu}__list--PaddingBottom: 0;
296
+ --#{$menu}__list--PaddingBlockStart: 0;
297
+ --#{$menu}__list--PaddingBlockEnd: 0;
324
298
  }
325
299
  }
326
300
 
@@ -348,12 +322,12 @@
348
322
  display: none;
349
323
  }
350
324
  }
325
+ // stylelint-enable
351
326
 
352
327
  .#{$menu}__item {
353
- outline-offset: var(--#{$menu}__item--OutlineOffset);
328
+ outline-offset: var(--#{$menu}--OutlineOffset);
354
329
  }
355
330
  }
356
- // stylelint-enable
357
331
 
358
332
  // stylelint-disable selector-max-class
359
333
  &.pf-m-drilled-in > .#{$menu}__content > .#{$menu}__list {
@@ -378,109 +352,66 @@
378
352
  &.pf-m-scrollable {
379
353
  --#{$menu}__content--MaxHeight: var(--#{$menu}--m-scrollable__content--MaxHeight);
380
354
  --#{$menu}__footer--BoxShadow: var(--#{$menu}--m-scrollable__footer--BoxShadow);
381
- --#{$menu}__footer--after--BorderTopWidth: var(--#{$menu}--m-scrollable__footer--after--BorderTopWidth);
382
-
383
- .#{$menu}__content {
384
- overflow-y: auto;
385
- }
386
- }
355
+ --#{$menu}__footer--PaddingBlockStart: calc(var(--#{$menu}__item--PaddingBlockStart) + var(--#{$menu}--RowGap));
356
+ --#{$menu}__footer--PaddingBlockEnd: calc(var(--#{$menu}__item--PaddingBlockStart) + var(--#{$menu}--RowGap));
387
357
 
388
- &.pf-m-nav,
389
- &.pf-m-nav & {
390
- --#{$menu}--BackgroundColor: var(--#{$menu}--m-nav--BackgroundColor);
391
- --#{$menu}__list--PaddingTop: var(--#{$menu}--m-nav__list--PaddingTop);
392
- --#{$menu}__list--PaddingBottom: var(--#{$menu}--m-nav__list--PaddingBottom);
393
- --#{$menu}__list-item--hover--BackgroundColor: var(--#{$menu}--m-nav__list-item--hover--BackgroundColor);
394
- --#{$menu}__list-item--focus-within--BackgroundColor: var(--#{$menu}--m-nav__list-item--focus-within--BackgroundColor);
395
- --#{$menu}__list-item--active--BackgroundColor: var(--#{$menu}--m-nav__list-item--active--BackgroundColor);
396
- --#{$menu}__item--Color: var(--#{$menu}--m-nav__item--Color);
397
- --#{$menu}__item--FontSize: var(--#{$menu}--m-nav__item--FontSize);
398
- --#{$menu}__item--OutlineOffset: var(--#{$menu}--m-nav__item--OutlineOffset);
399
- --#{$menu}__item--PaddingRight: var(--#{$menu}--m-nav__item--PaddingRight);
400
- --#{$menu}__item--PaddingLeft: var(--#{$menu}--m-nav__item--PaddingLeft);
401
- --#{$menu}__item-description--Color: var(--#{$menu}--m-nav__item-description--Color);
402
-
403
- box-shadow: var(--#{$menu}--m-nav--BoxShadow);
404
-
405
- // stylelint-disable max-nesting-depth, selector-max-class
406
- .#{$menu}__item {
407
- position: relative;
408
- outline-offset: var(--#{$nav}__item--m-flyout--c-menu__item--OutlineOffset);
409
-
410
- &::before {
411
- position: absolute;
412
- inset-block-end: 0;
413
- inset-inline-start: 0;
414
- inset-inline-end: 0;
415
- content: "";
416
- border-block-end: var(--#{$menu}--m-nav__item--before--BorderBottomWidth) solid var(--#{$menu}--m-nav__item--before--BorderBottomColor);
417
- }
358
+ overflow: hidden; // hide scrollbars
418
359
 
419
- &:hover {
420
- &::after {
421
- position: absolute;
422
- inset-block-start: var(--#{$menu}--m-nav__item--hover--after--Top);
423
- inset-block-end: 0;
424
- inset-inline-start: 0;
425
- content: "";
426
- border-inline-start: var(--#{$menu}--m-nav__item--hover--after--BorderLeftWidth) solid var(--#{$menu}--m-nav__item--hover--after--BorderLeftColor);
427
- }
428
- }
360
+ &:has(.#{$menu}__footer) {
361
+ --#{$menu}--PaddingBlockEnd: 0;
429
362
  }
430
- // stylelint-enable
431
- }
432
-
433
- &.pf-m-nav & {
434
- width: 100%;
435
- }
436
363
 
437
- &.pf-m-flyout.pf-m-nav,
438
- &.pf-m-flyout.pf-m-nav & {
439
- inset-block-start: var(--#{$menu}--m-nav--c-menu--Top);
440
- inset-inline-start: var(--#{$menu}--m-nav--c-menu--Left);
441
-
442
- // stylelint-disable selector-max-class
443
- &.pf-m-top {
444
- --#{$menu}--m-nav--c-menu--Top: auto;
445
-
446
- inset-block-end: var(--#{$menu}--m-nav--c-menu--m-top--Bottom);
447
- }
448
-
449
- &.pf-m-left {
450
- --#{$menu}--m-nav--c-menu--Left: auto;
451
-
452
- inset-inline-end: var(--#{$menu}--m-nav--c-menu--m-left--Right);
364
+ .#{$menu}__content,
365
+ .#{$menu}__list {
366
+ overflow-y: auto;
453
367
  }
454
368
 
455
- .#{$menu}__list-item:first-child {
456
- --#{$menu}--m-nav__item--hover--after--Top: var(--#{$menu}--m-nav__item__list-item--first-child__item--hover--after--Top);
369
+ // offset row-gap when scrollbar is present
370
+ .#{$menu}__content {
371
+ // TODO: figure out why this fixes the scrollable
372
+ position: relative;
373
+ z-index: var(--#{$menu}--ZIndex);
374
+ margin-block-start: calc(var(--#{$menu}--RowGap) * -1);
375
+ margin-block-end: calc(var(--#{$menu}--RowGap) * -1);
376
+ overflow: hidden; // hide scrollbars
457
377
  }
458
378
 
459
- .#{$menu}__list-item:first-child .#{$menu} {
460
- --#{$menu}--m-nav--c-menu--Top: var(--#{$menu}--m-nav__list-item--first-child--c-menu--Top);
379
+ .#{$menu}__list {
380
+ padding-block-start: var(--#{$menu}--RowGap);
381
+ padding-block-end: var(--#{$menu}--RowGap);
461
382
  }
462
- // stylelint-enable
463
383
  }
464
384
  }
465
385
 
466
- // breadcrumb
467
- .#{$menu}__breadcrumb {
468
- display: flex;
469
- align-items: center;
470
- min-height: var(--#{$menu}__breadcrumb--MinHeight);
471
- padding-block-start: var(--#{$menu}__breadcrumb--PaddingTop);
472
- padding-block-end: var(--#{$menu}__breadcrumb--PaddingBottom);
473
- padding-inline-start: var(--#{$menu}__breadcrumb--PaddingLeft);
474
- padding-inline-end: var(--#{$menu}__breadcrumb--PaddingRight);
475
-
476
- .#{$breadcrumb} {
477
- --#{$breadcrumb}__item--FontSize: var(--#{$menu}__breadcrumb--c-breadcrumb__item--FontSize);
478
- --#{$breadcrumb}__heading--FontSize: var(--#{$menu}__breadcrumb--c-breadcrumb__heading--FontSize);
479
- }
386
+ // - Menu header
387
+ .#{$menu}__header {
388
+ padding-block-start: var(--#{$menu}__header--PaddingBlockStart);
389
+ padding-block-end: var(--#{$menu}__header--PaddingBlockEnd);
390
+ padding-inline-start: var(--#{$menu}__header--PaddingInlineStart);
391
+ padding-inline-end: var(--#{$menu}__header--PaddingInlineEnd);
392
+ }
393
+
394
+ // - Menu search
395
+ .#{$menu}__search {
396
+ padding-block-start: var(--#{$menu}__search--PaddingBlockStart);
397
+ padding-block-end: var(--#{$menu}__search--PaddingBlockEnd);
398
+ padding-inline-start: var(--#{$menu}__search--PaddingInlineStart);
399
+ padding-inline-end: var(--#{$menu}__search--PaddingInlineEnd);
480
400
  }
481
401
 
482
- // content
402
+ // - Menu footer
403
+ .#{$menu}__footer {
404
+ padding-block-start: var(--#{$menu}__footer--PaddingBlockStart);
405
+ padding-block-end: var(--#{$menu}__footer--PaddingBlockEnd);
406
+ padding-inline-start: var(--#{$menu}__footer--PaddingInlineStart);
407
+ padding-inline-end: var(--#{$menu}__footer--PaddingInlineEnd);
408
+ box-shadow: var(--#{$menu}__footer--BoxShadow);
409
+ }
410
+
411
+ // - Menu content
483
412
  .#{$menu}__content {
413
+ flex-direction: column;
414
+ row-gap: var(--#{$menu}__content--RowGap);
484
415
  height: var(--#{$menu}__content--Height);
485
416
  max-height: var(--#{$menu}__content--MaxHeight);
486
417
 
@@ -489,298 +420,207 @@
489
420
  }
490
421
  }
491
422
 
492
- // Header
493
- .#{$menu}__header {
494
- --#{$menu}__item--PaddingTop: var(--#{$menu}__header--c-menu__item--PaddingTop);
495
- --#{$menu}__item--PaddingRight: var(--#{$menu}__header--c-menu__item--PaddingRight);
496
- --#{$menu}__item--PaddingBottom: var(--#{$menu}__header--c-menu__item--PaddingBottom);
497
- --#{$menu}__item--PaddingLeft: var(--#{$menu}__header--c-menu__item--PaddingLeft);
498
-
499
- padding-block-start: var(--#{$menu}__header--PaddingTop);
500
- padding-block-end: var(--#{$menu}__header--PaddingBottom);
501
- padding-inline-start: var(--#{$menu}__header--PaddingLeft);
502
- padding-inline-end: var(--#{$menu}__header--PaddingRight);
503
-
504
- > .#{$menu}__item {
505
- --#{$menu}__item--BackgroundColor: var(--#{$menu}__header--c-menu__item--BackgroundColor);
506
-
507
- margin-block-start: var(--#{$menu}__header--c-menu__item--MarginTop);
508
- margin-block-end: var(--#{$menu}__header--c-menu__item--MarginBottom);
509
- margin-inline-start: var(--#{$menu}__header--c-menu__item--MarginLeft);
510
- margin-inline-end: var(--#{$menu}__header--c-menu__item--MarginRight);
511
-
512
- &:hover {
513
- --#{$menu}__item--BackgroundColor: var(--#{$menu}__header--c-menu__item--hover--BackgroundColor);
514
- }
515
-
516
- &:focus {
517
- --#{$menu}__item--BackgroundColor: var(--#{$menu}__header--c-menu__item--focus--BackgroundColor);
518
- }
519
- }
520
-
521
- + .#{$menu}__search {
522
- --#{$menu}__search--PaddingTop: var(--#{$menu}__header__search--PaddingTop);
523
- }
524
- }
525
-
526
- // Search
527
- .#{$menu}__search {
528
- padding-block-start: var(--#{$menu}__search--PaddingTop);
529
- padding-block-end: var(--#{$menu}__search--PaddingBottom);
530
- padding-inline-start: var(--#{$menu}__search--PaddingLeft);
531
- padding-inline-end: var(--#{$menu}__search--PaddingRight);
532
- }
533
-
534
- // List
535
- .#{$menu}__list {
536
- @include pf-v5-hidden-visible(var(--#{$menu}__list--Display));
537
-
538
- padding-block-start: var(--#{$menu}__list--PaddingTop);
539
- padding-block-end: var(--#{$menu}__list--PaddingBottom);
540
-
541
- > .#{$divider} {
542
- margin-block-start: var(--#{$menu}__list--c-divider--MarginTop);
543
- margin-block-end: var(--#{$menu}__list--c-divider--MarginBottom);
544
- }
423
+ // - Menu list
424
+ .#{$menu}__list :where(.#{$divider}:is(li)) {
425
+ margin-block-start: var(--#{$menu}__list--divider--MarginTop);
426
+ margin-block-end: var(--#{$menu}__list--divider--MarginBottom);
545
427
  }
546
428
 
547
- // List item
429
+ // - Menu list item
548
430
  .#{$menu}__list-item {
549
- @include pf-v5-hidden-visible(var(--#{$menu}__list-item--Display));
550
-
551
- position: relative;
552
- color: var(--#{$menu}__list-item--Color);
553
- background-color: var(--#{$menu}__list-item--BackgroundColor);
554
-
555
- &:hover {
556
- --#{$menu}__list-item--BackgroundColor: var(--#{$menu}__list-item--hover--BackgroundColor);
557
- --#{$menu}__list-item--Color: var(--#{$menu}__list-item--hover--Color, inherit);
558
- }
559
-
560
- &:focus-within,
561
- &.pf-m-focus {
562
- --#{$menu}__list-item--BackgroundColor: var(--#{$menu}__list-item--focus-within--BackgroundColor);
563
- --#{$menu}__list-item--Color: var(--#{$menu}__list-item--focus-within--Color, inherit);
564
- }
565
-
566
- &.pf-m-disabled,
567
- &.pf-m-aria-disabled {
568
- --#{$menu}__list-item--hover--BackgroundColor: transparent;
569
- --#{$menu}__item--Color: var(--#{$menu}__list-item--m-disabled__item--Color);
570
- --#{$menu}__item-toggle-icon: var(--#{$menu}__list-item--m-disabled__item-toggle-icon--Color);
571
- }
431
+ align-items: baseline;
432
+ min-width: 0; // allow list item to shrink for text overflow
572
433
 
573
- &.pf-m-disabled {
574
- --#{$menu}__list-item--focus-within--BackgroundColor: transparent;
575
-
576
- pointer-events: none;
434
+ > * {
435
+ position: relative;
577
436
  }
578
437
 
579
- &.pf-m-aria-disabled .#{$menu}__item {
580
- cursor: default;
438
+ &::before {
439
+ position: absolute;
440
+ inset: 0;
441
+ content: "";
442
+ background-color: var(--#{$menu}__list-item--BackgroundColor);
443
+ mix-blend-mode: var(--#{$menu}__list-item--MixBlendMode);
581
444
  }
582
445
 
446
+ // - Menu item load
583
447
  &.pf-m-load {
584
- --#{$menu}__list-item--hover--BackgroundColor: transparent;
585
- --#{$menu}__list-item--focus-within--BackgroundColor: transparent;
586
448
  --#{$menu}__item--Color: var(--#{$menu}__list-item--m-load__item--Color);
587
449
  }
588
450
 
451
+ // - Menu item loading
589
452
  &.pf-m-loading {
590
- --#{$menu}__list-item--hover--BackgroundColor: transparent;
591
- --#{$menu}__list-item--focus-within--BackgroundColor: transparent;
592
-
593
453
  justify-content: center;
594
- padding-block-start: var(--#{$menu}__list-item--m-loading--PaddingTop);
595
454
  overflow: hidden; // prevents spinner rotation from overflowing
455
+ pointer-events: none;
456
+
457
+ .#{$menu}__item-text {
458
+ text-align: center;
459
+ }
596
460
  }
597
461
 
462
+ // - Menu item danger
598
463
  &.pf-m-danger {
599
- --#{$menu}__item--Color: var(--#{$menu}__list-item--m-danger__item--Color, inherit);
464
+ --#{$menu}__item--Color: var(--#{$menu}__list-item--m-danger--Color);
465
+
466
+ &:is(:hover, :focus) {
467
+ --#{$menu}__item--Color: var(--#{$menu}__list-item--m-danger--hover--Color, var(--#{$menu}__list-item--m-danger--Color));
468
+ }
469
+ }
470
+
471
+ &:has(.#{$menu}__item-action) {
472
+ padding-inline-end: var(--#{$menu}__list-item--has--menu-action--PaddingInlineEnd);
473
+ }
474
+
475
+ &:has(> :hover) {
476
+ --#{$menu}__list-item--BackgroundColor: var(--#{$menu}__list-item--hover--BackgroundColor);
477
+ --#{$menu}__list-item--MixBlendMode: var(--#{$menu}__list-item--MixBlendMode--hover);
478
+
479
+ .#{$menu}__item-select-icon,
480
+ .#{$menu}__item-external-icon {
481
+ opacity: 1;
482
+ }
600
483
  }
601
484
  }
602
485
 
603
- // Item
486
+ // TODO: organize these in order of importance
487
+ // - Menu item
604
488
  .#{$menu}__item {
605
- display: flex;
606
489
  flex-basis: 100%;
607
490
  flex-direction: column;
608
491
  min-width: 0;
609
- padding-block-start: var(--#{$menu}__item--PaddingTop);
610
- padding-block-end: var(--#{$menu}__item--PaddingBottom);
611
- padding-inline-start: var(--#{$menu}__item--PaddingLeft);
612
- padding-inline-end: var(--#{$menu}__item--PaddingRight);
492
+ padding-block-start: var(--#{$menu}__item--PaddingBlockStart);
493
+ padding-block-end: var(--#{$menu}__item--PaddingBlockEnd);
494
+ padding-inline-start: var(--#{$menu}__item--PaddingInlineStart);
495
+ padding-inline-end: var(--#{$menu}__item--PaddingInlineEnd);
613
496
  font-size: var(--#{$menu}__item--FontSize);
614
497
  font-weight: var(--#{$menu}__item--FontWeight);
615
498
  line-height: var(--#{$menu}__item--LineHeight);
616
499
  color: var(--#{$menu}__item--Color);
617
500
  text-align: start;
501
+ text-decoration: none;
618
502
  background-color: var(--#{$menu}__item--BackgroundColor);
619
- border: none;
620
-
621
- &:hover {
622
- text-decoration: none;
623
- }
503
+ border: 0;
504
+ outline-offset: var(--#{$menu}--OutlineOffset);
624
505
 
625
- &:hover,
626
- &:focus {
627
- --#{$menu}__item-external-icon--Opacity: 1;
506
+ &.pf-m-selected {
507
+ --#{$menu}__item-select-icon--Color: var(--#{$menu}__item--m-selected__item-select-icon--Color);
628
508
  }
629
509
 
630
- &.pf-m-selected {
631
- .#{$menu}__item-select-icon {
510
+ &:is(:hover, :focus, :active, .pf-m-selected) {
511
+ .#{$menu}__item-select-icon,
512
+ .#{$menu}__item-external-icon {
632
513
  opacity: 1;
633
514
  }
634
- }
635
515
 
636
- @at-root label#{&}:where(:not([disabled], .pf-m-disabled, .pf-m-aria-disabled)) {
637
- cursor: pointer;
516
+ .#{$menu}__item-external-icon {
517
+ color: var(--#{$menu}__item-external--Color);
518
+ }
638
519
  }
639
520
  }
640
521
 
522
+ // - Menu item select icon
523
+ .#{$menu}__item-select-icon {
524
+ color: var(--#{$menu}__item-select-icon--Color);
525
+ }
526
+
527
+ // - Menu item main
641
528
  .#{$menu}__item-main {
642
- display: flex;
529
+ column-gap: var(--#{$menu}__item-main--ColumnGap);
643
530
  align-items: center;
644
531
  width: 100%;
645
532
  }
646
533
 
647
- .#{$menu}__item-external-icon {
648
- margin-inline-start: var(--#{$menu}__item-external-icon--MarginLeft);
649
- font-size: var(--#{$menu}__item-external-icon--FontSize);
650
- color: var(--#{$menu}__item-external-icon--Color);
651
- opacity: var(--#{$menu}__item-external-icon--Opacity);
652
- }
653
-
654
- // Item text
534
+ // - Menu item text
655
535
  .#{$menu}__item-text {
656
536
  @include pf-v5-text-overflow;
657
537
 
658
538
  flex-grow: 1;
659
539
  }
660
540
 
661
- // Group
662
- .#{$menu}__group {
663
- @include pf-v5-hidden-visible(var(--#{$menu}__group--Display));
664
- }
665
-
666
- // Group title
541
+ // - Menu group title
667
542
  .#{$menu}__group-title {
668
- padding-block-start: var(--#{$menu}__group-title--PaddingTop);
669
- padding-inline-start: var(--#{$menu}__group-title--PaddingLeft);
670
- padding-inline-end: var(--#{$menu}__group-title--PaddingRight);
671
- font-size: var(--#{$menu}__group-title--FontSize);
672
- font-weight: var(--#{$menu}__group-title--FontWeight);
543
+ padding-block-start: var(--#{$menu}__group-title--PaddingBlockStart);
544
+ padding-block-end: var(--#{$menu}__group-title--PaddingBlockEnd);
545
+ padding-inline-start: var(--#{$menu}__group-title--PaddingInlineStart);
546
+ padding-inline-end: var(--#{$menu}__group-title--PaddingInlineEnd);
547
+ font-size: var(--#{$menu}__group-title--FontSize, inherit);
548
+ font-weight: var(--#{$menu}__group-title--FontWeight, inherit);
673
549
  color: var(--#{$menu}__group-title--Color);
674
550
  }
675
551
 
676
- // Description
552
+ // - Menu description
677
553
  .#{$menu}__item-description {
678
554
  font-size: var(--#{$menu}__item-description--FontSize);
679
555
  color: var(--#{$menu}__item-description--Color);
680
556
  word-break: break-word;
681
557
  }
682
558
 
683
- // General icon
684
- .#{$menu}__item-icon {
685
- margin-inline-end: var(--#{$menu}__item-icon--MarginRight);
686
- }
687
-
688
- // Check
689
- .#{$menu}__item-check {
690
- display: flex;
691
- align-items: center;
692
- margin-inline-end: var(--#{$menu}__item-check--MarginRight);
559
+ // - Menu check
560
+ .#{$menu}__item-check .#{$check} {
561
+ --pf-v5-c-check__input--TranslateY: none;
693
562
 
694
- .#{$check} {
695
- --pf-v5-c-check__input--TranslateY: none;
563
+ // expand clickable area to full width/height of list__item
564
+ input::before {
565
+ position: absolute;
566
+ inset: 0;
567
+ content: "";
696
568
  }
697
569
  }
698
570
 
699
- // Toggle icon
571
+ // - Menu toggle icon
700
572
  .#{$menu}__item-toggle-icon {
701
573
  @include pf-v5-mirror-inline-on-rtl;
702
574
 
703
- padding-inline-start: var(--#{$menu}__item-toggle-icon--PaddingLeft);
704
- padding-inline-end: var(--#{$menu}__item-toggle-icon--PaddingRight);
705
- color: var(--#{$menu}__item-toggle-icon, inherit);
575
+ color: var(--#{$menu}__item-toggle-icon--Color, inherit);
706
576
  }
707
577
 
708
- .#{$menu}__item-text + .#{$menu}__item-toggle-icon {
709
- margin-inline-start: var(--#{$menu}__item-text--item-toggle-icon--MarginLeft);
710
- }
711
-
712
- .#{$menu}__item-toggle-icon + .#{$menu}__item-text {
713
- margin-inline-start: var(--#{$menu}__item-toggle-icon--item-text--MarginLeft);
578
+ // - Menu item icon
579
+ .#{$menu}__item-icon {
580
+ color: var(--#{$menu}__item--icon--Color, inherit);
714
581
  }
715
582
 
716
- // Select icon
717
- .#{$menu}__item-select-icon {
718
- margin-inline-start: var(--#{$menu}__item-select-icon--MarginLeft);
719
- font-size: var(--#{$menu}__item-select-icon--FontSize);
720
- color: var(--#{$menu}__item-select-icon--Color);
583
+ // - Menu item select icon - Menu item external icon
584
+ .#{$menu}__item-select-icon,
585
+ .#{$menu}__item-external-icon {
721
586
  opacity: 0;
722
587
  }
723
588
 
724
- // Actions
589
+ // TODO: standardize icon fitting
590
+ // - Menu item action
591
+ .#{$menu}__item-toggle-icon,
725
592
  .#{$menu}__item-action {
726
- display: flex;
727
- padding-block-start: var(--#{$menu}__item-action--PaddingTop);
728
- padding-block-end: var(--#{$menu}__item-action--PaddingBottom);
729
- padding-inline-start: var(--#{$menu}__item-action--PaddingLeft);
730
- padding-inline-end: var(--#{$menu}__item-action--PaddingRight);
731
- color: var(--#{$menu}__item-action--Color);
732
- background-color: var(--#{$menu}__item-action--BackgroundColor);
733
- border: none;
734
-
735
- &.pf-m-favorite {
736
- .#{$menu}__item-action-icon {
737
- font-size: var(--#{$menu}__item-action--m-favorite__icon--FontSize);
738
- }
739
- }
740
-
741
- &.pf-m-favorited {
593
+ &.pf-m-favorited,
594
+ &.pf-m-favorited:hover,
595
+ &.pf-m-favorited .#{$button} {
596
+ --#{$button}--Color: var(--#{$menu}__item-action--m-favorited--Color);
742
597
  --#{$menu}__item-action--Color: var(--#{$menu}__item-action--m-favorited--Color);
743
- --#{$menu}__item-action--hover--Color: var(--#{$menu}__item-action--m-favorited--hover--Color);
744
- }
745
-
746
- &:hover,
747
- &:focus {
748
- --#{$menu}__item-action--Color: var(--#{$menu}__item-action--hover--Color);
749
- }
750
-
751
- &:disabled,
752
- &.pf-m-disabled,
753
- &.pf-m-aria-disabled {
754
- --#{$menu}__item-action--Color: var(--#{$menu}__item-action--disabled--Color);
755
598
  }
756
599
  }
757
600
 
758
- .#{$menu}__item-action-icon {
759
- display: flex;
760
- align-items: center;
761
- height: var(--#{$menu}__item-action-icon--Height);
762
- }
601
+ // - Menu breadcrumb
602
+ .#{$menu}__breadcrumb {
603
+ --#{$breadcrumb}__item--FontSize: var(--#{$menu}__breadcrumb--FontSize);
763
604
 
764
- .#{$menu}__footer {
765
- position: relative;
766
- padding-block-start: var(--#{$menu}__footer--PaddingTop);
767
- padding-block-end: var(--#{$menu}__footer--PaddingBottom);
768
- padding-inline-start: var(--#{$menu}__footer--PaddingLeft);
769
- padding-inline-end: var(--#{$menu}__footer--PaddingRight);
770
- box-shadow: var(--#{$menu}__footer--BoxShadow);
605
+ padding-block-start: var(--#{$menu}__breadcrumb--PaddingBlockStart);
606
+ padding-block-end: var(--#{$menu}__breadcrumb--PaddingBlockEnd);
607
+ padding-inline-start: var(--#{$menu}__breadcrumb--PaddingInlineStart);
608
+ padding-inline-end: var(--#{$menu}__breadcrumb--PaddingInlineEnd);
771
609
 
772
- &::after {
773
- position: absolute;
774
- inset: 0;
775
- pointer-events: none;
776
- content: "";
777
- border-block-start: var(--#{$menu}__footer--after--BorderTopWidth) solid var(--#{$menu}__footer--after--BorderTopColor);
610
+ .#{$menu} {
611
+ min-width: auto;
612
+ padding-block-start: var(--#{$menu}--PaddingBlockStart);
613
+ padding-block-end: var(--#{$menu}--PaddingBlockEnd);
778
614
  }
779
- }
780
615
 
781
- // stylelint-disable no-invalid-position-at-import-rule
782
- @import "themes/dark/menu";
616
+ .#{$menu}__content {
617
+ height: auto;
618
+ }
783
619
 
784
- @include pf-v5-theme-dark {
785
- @include pf-v5-theme-dark-menu;
620
+ .#{$menu-toggle} {
621
+ --#{$menu-toggle}--BorderWidth: 0;
622
+ --#{$menu-toggle}--BorderColor: transparent;
623
+
624
+ outline-offset: var(--#{$menu}--OutlineOffset);
625
+ }
786
626
  }