@patternfly/patternfly 6.0.0-alpha.83 → 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.
@@ -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
  }