File: sidebar.scss

package info (click to toggle)
cockpit 354-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 308,956 kB
  • sloc: javascript: 775,606; python: 40,351; ansic: 35,655; cpp: 11,117; sh: 3,511; makefile: 580; xml: 261
file content (269 lines) | stat: -rw-r--r-- 12,033 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
@use 'sass:math';
@use '../../sass-utilities' as *;

$pf-v6-c-sidebar--breakpoint-map--width: build-breakpoint-map("base", "sm", "md", "lg", "xl", "2xl");
$pf-v6-c-sidebar__panel--list--width: ("default", 25, 33, 50, 66, 75, 100);

@include pf-root($sidebar) {
  --#{$sidebar}--inset: var(--pf-t--global--spacer--md);
  --#{$sidebar}--xl--inset: var(--pf-t--global--spacer--lg);
  --#{$sidebar}--BorderWidth--base: var(--pf-t--global--border--width--regular);
  --#{$sidebar}--BorderColor--base: var(--pf-t--global--border--color--default);

  // Panel
  --#{$sidebar}__panel--PaddingBlockStart: 0;
  --#{$sidebar}__panel--PaddingInlineEnd: 0;
  --#{$sidebar}__panel--PaddingBlockEnd: 0;
  --#{$sidebar}__panel--PaddingInlineStart: 0;
  --#{$sidebar}__panel--Order: -1;

  // Panel padding
  --#{$sidebar}__panel--m-padding--PaddingBlockStart: var(--#{$sidebar}--inset);
  --#{$sidebar}__panel--m-padding--PaddingInlineEnd: var(--#{$sidebar}--inset);
  --#{$sidebar}__panel--m-padding--PaddingBlockEnd: var(--#{$sidebar}--inset);
  --#{$sidebar}__panel--m-padding--PaddingInlineStart: var(--#{$sidebar}--inset);

  // Content
  --#{$sidebar}__content--PaddingBlockStart: 0;
  --#{$sidebar}__content--PaddingInlineEnd: 0;
  --#{$sidebar}__content--PaddingBlockEnd: 0;
  --#{$sidebar}__content--PaddingInlineStart: 0;
  --#{$sidebar}__content--Order: 1;

  // Content padding
  --#{$sidebar}__content--m-padding--PaddingBlockStart: var(--#{$sidebar}--inset);
  --#{$sidebar}__content--m-padding--PaddingInlineEnd: var(--#{$sidebar}--inset);
  --#{$sidebar}__content--m-padding--PaddingBlockEnd: var(--#{$sidebar}--inset);
  --#{$sidebar}__content--m-padding--PaddingInlineStart: var(--#{$sidebar}--inset);

  // Main
  --#{$sidebar}__main--FlexDirection: column;
  --#{$sidebar}__main--md--FlexDirection: row;
  --#{$sidebar}__main--AlignItems: stretch;
  --#{$sidebar}__main--md--AlignItems: flex-start;
  --#{$sidebar}__main--child--MarginBlockStart: 0;

  // Gutter
  --#{$sidebar}--m-gutter__main--Gap: var(--#{$sidebar}--inset);

  // Border
  --#{$sidebar}__main--m-border--before--Display: none;
  --#{$sidebar}__main--m-border--before--md--Display: block;
  --#{$sidebar}__main--m-border--before--BorderWidth: var(--#{$sidebar}--BorderWidth--base);
  --#{$sidebar}__main--m-border--before--BorderColor: var(--#{$sidebar}--BorderColor--base);

  // Panel right
  --#{$sidebar}--m-panel-right__panel--Order: -1;
  --#{$sidebar}--m-panel-right__panel--md--Order: 1;
  --#{$sidebar}--m-panel-right__content--md--Order: -1;

  // Stack
  --#{$sidebar}--m-stack__main--FlexDirection: column;
  --#{$sidebar}--m-stack__main--AlignItems: stretch;
  --#{$sidebar}--m-stack__panel--Position: sticky;
  --#{$sidebar}--m-stack__panel--InsetBlockStart: 0;
  --#{$sidebar}--m-stack__panel--BoxShadow: var(--#{$sidebar}__panel--BoxShadow--base);
  --#{$sidebar}--m-stack__panel--BorderBlockEndWidth: var(--pf-t--global--border--width--high-contrast--regular);
  --#{$sidebar}--m-stack--m-panel-right__panel--Order: -1;

  // Split
  --#{$sidebar}--m-split__main--AlignItems: flex-start;
  --#{$sidebar}--m-split__main--FlexDirection: row;
  --#{$sidebar}--m-split__panel--Position: static;
  --#{$sidebar}--m-split__panel--InsetBlockStart: auto;
  --#{$sidebar}--m-split--m-panel-right__panel--Order: 1;
  --#{$sidebar}--m-split__main--m-border--before--Display: block;

  // Panel
  --#{$sidebar}__panel--FlexBasis--base: auto;
  --#{$sidebar}__panel--BorderBlockEndColor: var(--pf-t--global--border--color--high-contrast);
  --#{$sidebar}__panel--BorderBlockEndWidth: var(--pf-t--global--border--width--high-contrast--regular);
  --#{$sidebar}__panel--BoxShadow--base: var(--pf-t--global--box-shadow--md--bottom);
  --#{$sidebar}__panel--BoxShadow: var(--#{$sidebar}__panel--BoxShadow--base);
  --#{$sidebar}__panel--InsetBlockStart: 0;
  --#{$sidebar}__panel--md--InsetBlockStart: auto;
  --#{$sidebar}__panel--Position: sticky;
  --#{$sidebar}__panel--md--Position: static;
  --#{$sidebar}__panel--FlexBasis-base: auto;
  --#{$sidebar}__panel--FlexBasis: var(--#{$sidebar}__panel--FlexBasis-base);
  --#{$sidebar}__panel--md--FlexBasis: #{pf-size-prem(250px)};
  --#{$sidebar}__panel--m-split--FlexBasis: #{pf-size-prem(250px)};
  --#{$sidebar}__panel--m-stack--FlexBasis: auto;
  --#{$sidebar}__panel--ZIndex: var(--pf-t--global--z-index--xs);
  --#{$sidebar}__panel--BackgroundColor: var(--pf-t--global--background--color--primary--default);
  --#{$sidebar}__panel--m-secondary--BackgroundColor: var(--pf-t--global--background--color--secondary--default);

  // Content
  --#{$sidebar}__content--BackgroundColor: var(--pf-t--global--background--color--primary--default);
  --#{$sidebar}__content--m-secondary--BackgroundColor: var(--pf-t--global--background--color--secondary--default);

  // Sticky
  --#{$sidebar}__panel--m-sticky--InsetBlockStart: 0;
  --#{$sidebar}__panel--m-sticky--Position: sticky;
}

.#{$sidebar} {
  height: 100%;

  @media (min-width: $pf-v6-global--breakpoint--md) {
    --#{$sidebar}__main--FlexDirection: var(--#{$sidebar}__main--md--FlexDirection);
    --#{$sidebar}__main--AlignItems: var(--#{$sidebar}__main--md--AlignItems);
    --#{$sidebar}__main--m-border--before--Display: var(--#{$sidebar}__main--m-border--before--md--Display); // show border starting at md breakpoint
    --#{$sidebar}__panel--BorderBlockEndWidth: 0;
    --#{$sidebar}__panel--BoxShadow: none;
    --#{$sidebar}__panel--FlexBasis: var(--#{$sidebar}__panel--md--FlexBasis);
    --#{$sidebar}__panel--InsetBlockStart: var(--#{$sidebar}__panel--md--InsetBlockStart);
    --#{$sidebar}__panel--Position: var(--#{$sidebar}__panel--md--Position);
  }

  @media (min-width: $pf-v6-global--breakpoint--xl) {
    --#{$sidebar}--inset: var(--#{$sidebar}--xl--inset);
  }

  &.pf-m-gutter > .#{$sidebar}__main {
    gap: var(--#{$sidebar}--m-gutter__main--Gap);
  }

  &.pf-m-panel-right {
    --#{$sidebar}__panel--Order: var(--#{$sidebar}--m-panel-right__panel--Order);
    --#{$sidebar}__content--Order: var(--#{$sidebar}--m-panel-right__content--Order);

    @media (min-width: $pf-v6-global--breakpoint--md) {
      --#{$sidebar}--m-panel-right__panel--Order: var(--#{$sidebar}--m-panel-right__panel--md--Order);
      --#{$sidebar}--m-panel-right__content--Order: var(--#{$sidebar}--m-panel-right__content--md--Order);
    }
  }

  &.pf-m-stack {
    --#{$sidebar}__main--FlexDirection: var(--#{$sidebar}--m-stack__main--FlexDirection);
    --#{$sidebar}__main--AlignItems: var(--#{$sidebar}--m-stack__main--AlignItems);
    --#{$sidebar}__panel--Position: var(--#{$sidebar}--m-stack__panel--Position);
    --#{$sidebar}__panel--InsetBlockStart: var(--#{$sidebar}--m-stack__panel--InsetBlockStart);
    --#{$sidebar}__panel--BorderBlockEndWidth: var(--#{$sidebar}--m-stack__panel--BorderBlockEndWidth);
    --#{$sidebar}__panel--BoxShadow: var(--#{$sidebar}--m-stack__panel--BoxShadow);
    --#{$sidebar}__panel--FlexBasis: var(--#{$sidebar}__panel--m-stack--FlexBasis);
    --#{$sidebar}__main--m-border--before--Display: none;
    --#{$sidebar}--m-panel-right__panel--Order: var(--#{$sidebar}--m-stack--m-panel-right__panel--Order);
  }

  &.pf-m-split {
    --#{$sidebar}__main--FlexDirection: var(--#{$sidebar}--m-split__main--FlexDirection);
    --#{$sidebar}__main--AlignItems: var(--#{$sidebar}--m-split__main--AlignItems);
    --#{$sidebar}__panel--Position: var(--#{$sidebar}--m-split__panel--Position);
    --#{$sidebar}__panel--InsetBlockStart: var(--#{$sidebar}--m-split__panel--InsetBlockStart);
    --#{$sidebar}__panel--BorderBlockEndWidth: 0;
    --#{$sidebar}__panel--BoxShadow: none;
    --#{$sidebar}__panel--FlexBasis: var(--#{$sidebar}__panel--m-split--FlexBasis);
    --#{$sidebar}__main--m-border--before--Display: var(--#{$sidebar}--m-split__main--m-border--before--Display);
    --#{$sidebar}--m-panel-right__panel--Order: var(--#{$sidebar}--m-split--m-panel-right__panel--Order);
  }
}

.#{$sidebar}__main {
  display: flex;
  flex-direction: var(--#{$sidebar}__main--FlexDirection);
  align-items: var(--#{$sidebar}__main--AlignItems);

  &.pf-m-border::before {
    display: var(--#{$sidebar}__main--m-border--before--Display);
    flex: 0 0 var(--#{$sidebar}__main--m-border--before--BorderWidth);
    align-self: stretch;
    content: "";
    background-color: var(--#{$sidebar}__main--m-border--before--BorderColor);
  }
}

.#{$sidebar}__panel {
  position: var(--#{$sidebar}__panel--Position);
  inset-block-start: var(--#{$sidebar}__panel--InsetBlockStart);
  z-index: var(--#{$sidebar}__panel--ZIndex);
  flex-basis: var(--#{$sidebar}__panel--FlexBasis);
  flex-shrink: 0;
  order: var(--#{$sidebar}__panel--Order);
  padding-block-start: var(--#{$sidebar}__panel--PaddingBlockStart);
  padding-block-end: var(--#{$sidebar}__panel--PaddingBlockEnd);
  padding-inline-start: var(--#{$sidebar}__panel--PaddingInlineStart);
  padding-inline-end: var(--#{$sidebar}__panel--PaddingInlineEnd);
  background-color: var(--#{$sidebar}__panel--BackgroundColor);
  border-block-end: var(--#{$sidebar}__panel--BorderBlockEndWidth) solid var(--#{$sidebar}__panel--BorderBlockEndColor);
  box-shadow: var(--#{$sidebar}__panel--BoxShadow);

  &.pf-m-padding {
    --#{$sidebar}__panel--PaddingBlockStart: var(--#{$sidebar}__panel--m-padding--PaddingBlockStart);
    --#{$sidebar}__panel--PaddingInlineEnd: var(--#{$sidebar}__panel--m-padding--PaddingInlineEnd);
    --#{$sidebar}__panel--PaddingBlockEnd: var(--#{$sidebar}__panel--m-padding--PaddingBlockEnd);
    --#{$sidebar}__panel--PaddingInlineStart: var(--#{$sidebar}__panel--m-padding--PaddingInlineStart);
  }

  &.pf-m-sticky {
    --#{$sidebar}__panel--Position: var(--#{$sidebar}__panel--m-sticky--Position);
    --#{$sidebar}__panel--InsetBlockStart: var(--#{$sidebar}__panel--m-sticky--InsetBlockStart);
  }

  &.pf-m-static {
    --#{$sidebar}__panel--Position: static;
    --#{$sidebar}__panel--InsetBlockStart: auto;
  }

  &.pf-m-secondary {
    --#{$sidebar}__panel--BackgroundColor: var(--#{$sidebar}__panel--m-secondary--BackgroundColor);
  }
}

.#{$sidebar}__content {
  flex-grow: 1;
  order: var(--#{$sidebar}__content--Order);
  padding-block-start: var(--#{$sidebar}__content--PaddingBlockStart);
  padding-block-end: var(--#{$sidebar}__content--PaddingBlockEnd);
  padding-inline-start: var(--#{$sidebar}__content--PaddingInlineStart);
  padding-inline-end: var(--#{$sidebar}__content--PaddingInlineEnd);
  background-color: var(--#{$sidebar}__content--BackgroundColor);

  &.pf-m-padding {
    --#{$sidebar}__content--PaddingBlockStart: var(--#{$sidebar}__content--m-padding--PaddingBlockStart);
    --#{$sidebar}__content--PaddingInlineEnd: var(--#{$sidebar}__content--m-padding--PaddingInlineEnd);
    --#{$sidebar}__content--PaddingBlockEnd: var(--#{$sidebar}__content--m-padding--PaddingBlockEnd);
    --#{$sidebar}__content--PaddingInlineStart: var(--#{$sidebar}__content--m-padding--PaddingBlockStart);
  }

  &.pf-m-no-background {
    --#{$sidebar}__content--BackgroundColor: transparent;
  }

  &.pf-m-secondary {
    --#{$sidebar}__content--BackgroundColor: var(--#{$sidebar}__content--m-secondary--BackgroundColor);
  }

  & + .#{$sidebar}__panel {
    --#{$sidebar}__panel--Order: 1;
  }

  :where(&:first-child) {
    --#{$sidebar}__content--Order: -1;
  }
}

.#{$sidebar},
.#{$sidebar}__panel,
.#{$sidebar}__content {
  &.pf-m-no-background {
    background-color: transparent;
  }
}

// Responsive width modifiers
@each $breakpoint, $breakpoint-value in $pf-v6-c-sidebar--breakpoint-map--width {
  $breakpoint-name: if($breakpoint != "base", -on-#{$breakpoint}, "");

  @include pf-v6-apply-breakpoint($breakpoint) {
    @each $width-value in $pf-v6-c-sidebar__panel--list--width {
      .pf-v6-c-sidebar__panel.pf-m-width-#{$width-value}#{$breakpoint-name} {
        @if $width-value == "default" {
          --#{$sidebar}__panel--FlexBasis: var(--#{$sidebar}__panel--FlexBasis--base);
        } @else {
          --#{$sidebar}__panel--FlexBasis: #{percentage(math.div($width-value, 100))};
        }
      }
    }
  }
}