A fork of the Materia GTK theme.

By using this site, you agree to have cookies stored on your device, strictly for functional purposes, such as storing your session and preferences.

Dismiss

 _budgie.scss

View raw Download
text/plain • 15.49 kiB
ASCII text
        
            
1
// based css:
2
// https://github.com/solus-project/budgie-desktop/tree/master/src/theme
3
4
/**
5
* Budgie Desktop
6
*/
7
8
@use "../../../theme";
9
@use "../../../theme-color";
10
@use "../common";
11
@use "../drawing";
12
13
// Container for both the "panel" area and the shadow. Wise to keep
14
// this transparent..
15
.budgie-container {
16
background-color: transparent;
17
}
18
19
.budgie-settings-window buttonbox.inline-toolbar {
20
border-style: none none solid;
21
22
button {
23
border-radius: theme.$corner-radius;
24
25
@extend %button-flat-basic;
26
}
27
}
28
29
.budgie-popover {
30
border-style: solid;
31
border-width: 1px;
32
border-color: rgba(black, .1) rgba(black, .2) rgba(black, .3);
33
border-radius: theme.$corner-radius + 1px;
34
box-shadow: theme.$shadow-z4;
35
background-clip: padding-box;
36
background-color: theme-color.$surface-z8;
37
38
.container {
39
padding: 2px;
40
}
41
42
border {
43
border: none;
44
background-color: transparent;
45
}
46
47
list {
48
// background-color: transparent;
49
}
50
51
row {
52
padding: 0;
53
54
&:hover {
55
box-shadow: none;
56
}
57
}
58
59
button.flat:not(.image-button) {
60
min-height: theme.$menuitem-size;
61
padding: 0 8px;
62
color: theme-color.$on-surface;
63
font-weight: normal;
64
65
&:disabled {
66
color: theme-color.disabled(theme-color.$on-surface);
67
}
68
}
69
70
&.budgie-menu {
71
.container {
72
padding: 0;
73
}
74
75
// .sidebar,
76
scrollbar,
77
entry.search {
78
background-color: transparent;
79
}
80
81
entry.search {
82
border-bottom: 1px solid theme-color.divider(theme-color.$on-surface);
83
border-image: none;
84
border-radius: 0;
85
box-shadow: none;
86
font-size: 120%;
87
}
88
89
button.flat:not(.image-button) {
90
min-height: 32px;
91
padding: 0 8px;
92
border-radius: 0;
93
94
@include drawing.list-item;
95
96
&:checked {
97
background-color: theme-color.$selected-overlay;
98
}
99
100
// remove pointless indicator
101
&:checked:disabled {
102
background-color: transparent;
103
}
104
}
105
}
106
107
&.user-menu {
108
.container {
109
padding: 8px;
110
}
111
112
separator {
113
margin: 4px 0;
114
}
115
}
116
117
&.sound-popover {
118
separator {
119
margin: 3px 0;
120
}
121
}
122
123
&.night-light-indicator {
124
.container {
125
padding: 8px;
126
}
127
}
128
129
&.places-menu {
130
.container {
131
padding: 8px;
132
}
133
134
// FIXME: untested
135
.message-bar {
136
// margin-bottom: 4px;
137
}
138
139
.name-button {
140
image {
141
&:dir(ltr) {
142
margin-right: 8px - 5px;
143
}
144
145
&:dir(rtl) {
146
margin-left: 8px - 5px;
147
}
148
}
149
}
150
151
.unmount-button {
152
margin: (theme.$menuitem-size - theme.$small-size) / 2;
153
padding: 0;
154
}
155
156
.places-section-header {
157
}
158
159
.places-list:not(.always-expand) {
160
margin-top: 4px;
161
padding-top: 4px;
162
border-top: 1px solid theme-color.divider(theme-color.$on-surface);
163
}
164
165
// FIXME: untested
166
.unlock-area {
167
entry {
168
}
169
170
button {
171
}
172
}
173
174
// use such sizes for consistency with other hard-coded dim-label sizes
175
.alternative-label {
176
padding: 3px;
177
font-size: 15px;
178
}
179
}
180
181
&.workspace-popover {
182
.container {
183
padding: 8px;
184
}
185
186
separator {
187
margin: 4px 0;
188
}
189
190
flowboxchild {
191
padding: 0;
192
}
193
}
194
}
195
196
// FIXME: workspace has unnecessary/unknown margin
197
.workspace-switcher {
198
.workspace-layout {
199
border: 0 solid theme-color.divider(theme-color.$on-panel);
200
201
.top &,
202
.bottom & {
203
&:dir(ltr) {
204
border-left-width: 1px;
205
}
206
207
&:dir(rtl) {
208
border-right-width: 1px;
209
}
210
}
211
212
.left &,
213
.right & {
214
border-top-width: 1px;
215
}
216
}
217
218
.workspace-item,
219
.workspace-add-button {
220
border: 0 solid theme-color.divider(theme-color.$on-panel);
221
222
.top &,
223
.bottom & {
224
&:dir(ltr) {
225
border-right-width: 1px;
226
}
227
228
&:dir(rtl) {
229
border-left-width: 1px;
230
}
231
}
232
233
.left &,
234
.right & {
235
border-bottom-width: 1px;
236
}
237
}
238
239
.workspace-item {
240
transition: theme.$transition;
241
242
&.current-workspace {
243
background-color: theme-color.activated-overlay(theme-color.$on-panel);
244
}
245
}
246
247
.workspace-add-button {
248
&:hover {
249
box-shadow: none;
250
}
251
252
&:active {
253
background-image: none;
254
}
255
256
&:active image {
257
margin: 1px 0 -1px;
258
}
259
}
260
261
.workspace-icon-button {
262
// to overwrite the .budgie-panel button style below
263
.budgie-panel & {
264
min-height: 24px;
265
min-width: 24px;
266
padding: 0;
267
border-radius: theme.$corner-radius;
268
}
269
}
270
}
271
272
// Menu Button
273
button.budgie-menu-launcher {
274
// padding: 0 2px;
275
}
276
277
// Raven Trigger
278
button.raven-trigger {
279
// padding: 0 4px;
280
}
281
282
// Panel
283
.budgie-panel {
284
transition: background-color theme.$duration theme.$ease-out;
285
background-color: theme-color.$panel;
286
color: theme-color.hint(theme-color.$on-panel);
287
font-weight: 500;
288
289
&.transparent {
290
background-color: theme-color.$scrim;
291
color: theme-color.hint(theme-color.$on-scrim);
292
}
293
294
button {
295
min-height: 16px;
296
min-width: 16px;
297
padding: 0;
298
border-radius: 0;
299
color: theme-color.hint(theme-color.$on-panel);
300
@include drawing.ink-color(theme-color.$on-panel, $button-style: "flat");
301
302
&:disabled {
303
background-color: transparent;
304
color: theme-color.disabled-hint(theme-color.$on-panel);
305
}
306
307
&:checked {
308
$background-color: theme-color.activated-overlay(theme-color.$on-panel);
309
color: theme-color.$on-panel;
310
@include drawing.ink-color(theme-color.$on-panel, $button-style: "flat", $on: $background-color);
311
312
&:disabled {
313
background-color: theme-color.activated-overlay(theme-color.$on-panel);
314
color: theme-color.disabled(theme-color.$on-panel);
315
}
316
}
317
}
318
319
&.horizontal button {
320
padding: 0 4px;
321
}
322
323
&.vertical button {
324
padding: 4px 0;
325
}
326
327
separator {
328
background-color: theme-color.stroke(theme-color.$on-panel);
329
}
330
331
// used to indicate unread notifications
332
.alert {
333
color: theme-color.error(theme-color.$on-panel);
334
}
335
336
// End Section needs to be fancy
337
.end-region {
338
// background-color: rgba(0,0,0,0.2);
339
}
340
341
// budgie-pixel-saver-applet
342
.titlebar:not(headerbar) {
343
min-height: 0;
344
padding: 0;
345
box-shadow: none;
346
background-color: transparent;
347
color: theme-color.$on-panel;
348
349
button:not(.suggested-action):not(.destructive-action) {
350
color: theme-color.hint(theme-color.$on-panel);
351
}
352
}
353
354
// Tasklist
355
#tasklist-button {
356
padding: 0 4px;
357
358
@extend %underscores;
359
}
360
361
&.vertical #tasklist-button {
362
min-height: 32px;
363
}
364
365
// Icon Tasklist
366
button.flat.launcher {
367
padding: 0;
368
369
@extend %underscores;
370
371
// for indicator colors
372
&:not(:checked) {
373
color: theme-color.disabled(theme-color.$on-panel);
374
375
&:disabled {
376
color: theme-color.disabled-hint(theme-color.$on-panel);
377
}
378
}
379
}
380
381
.unpinned button.flat.launcher,
382
.pinned button.flat.launcher.running {
383
@extend %underscores-checked;
384
}
385
}
386
387
$underscores-list:
388
(top, center calc(1px), 2 0 0 0 / 2px 0 0 0),
389
(bottom, center calc(100% - 1px), 0 0 2 0 / 0 0 2px 0),
390
(left, calc(1px) center, 0 0 0 2 / 0 0 0 2px),
391
(right, calc(100% - 1px) center, 0 2 0 0 / 0 2px 0 0);
392
393
%underscores {
394
@each $pos, $b_pos, $b_wid in $underscores-list {
395
.#{$pos} & {
396
& {
397
border-image:
398
radial-gradient(
399
circle closest-corner at #{$b_pos},
400
currentcolor 0%,
401
transparent 0%
402
) 0 0 0 0 / 0 0 0 0;
403
}
404
405
@at-root %underscores-checked,
406
&:checked {
407
border-image:
408
radial-gradient(
409
circle closest-corner at #{$b_pos},
410
currentcolor 100%,
411
transparent 0%
412
) #{$b_wid};
413
}
414
}
415
}
416
}
417
418
frame.raven-frame > border {
419
border-style: none;
420
box-shadow: theme.$shadow-z16;
421
}
422
423
$pos_list: (top: bottom, bottom: top, left: right, right: left);
424
425
@each $pos, $b_pos in $pos_list {
426
// Panel borders
427
.#{$pos} .budgie-panel {
428
// border-#{$b_pos}: 1px solid divider($on-surface);
429
}
430
431
// Raven borders
432
.#{$pos} frame.raven-frame > border {
433
margin-#{$b_pos}: 32px;
434
// border-#{$b_pos}: 1px solid divider($on-surface);
435
}
436
437
// Shadows
438
.#{$pos} .shadow-block {
439
// background-image: linear-gradient(to $b_pos, divider($on-surface), transparent);
440
}
441
}
442
443
// Raven
444
.raven {
445
background-color: theme-color.$surface-z8;
446
447
list {
448
// background-color: transparent;
449
}
450
451
// remove extra space between box and .raven-header.bottom
452
> box:not(:only-child) {
453
margin-bottom: -10px;
454
}
455
456
.raven-header {
457
min-height: theme.$medium-size;
458
padding: 3px;
459
460
// Adopt tabs style only for .top
461
&.top {
462
padding: 0;
463
border-bottom: 1px solid theme-color.divider(theme-color.$on-surface);
464
465
stackswitcher.linked > button {
466
@extend %button-flat-activatable;
467
468
margin: -4px 0 -5px; // remove unwanted vertical margins
469
padding: 0 16px;
470
min-height: theme.$large-size;
471
border-image:
472
radial-gradient(
473
circle closest-corner at center calc(100% - 1px),
474
theme-color.$primary 0%,
475
transparent 0%
476
) 0 0 0 / 0 0 0;
477
border-radius: 0;
478
479
&:checked {
480
border-image:
481
radial-gradient(
482
circle closest-corner at center calc(100% - 1px),
483
theme-color.$primary 100%,
484
transparent 0%
485
) 0 0 2 / 0 0 2px;
486
background-color: transparent;
487
}
488
}
489
}
490
491
&.bottom {
492
border-top: 1px solid theme-color.divider(theme-color.$on-surface);
493
}
494
}
495
496
stack {
497
// remove extra space in Notifications stack
498
.raven-header {
499
margin-top: -6px;
500
}
501
502
// remove extra spaces in Applets stack
503
scrolledwindow .raven-header {
504
margin-top: -8px;
505
}
506
}
507
508
.expander-button {
509
border-radius: theme.$circular-radius;
510
}
511
512
.raven-background {
513
// applet background between two headers
514
&.middle {
515
// border-bottom-style: none;
516
}
517
518
// Adopt Choice chips style
519
stackswitcher.linked > button {
520
margin: -2px 8px 9px;
521
padding: 0 12px;
522
min-height: 32px;
523
border-radius: theme.$circular-radius;
524
color: theme-color.hint(theme-color.$on-surface);
525
font-weight: normal;
526
@include drawing.ink-color(theme-color.$on-surface, $button-style: "flat", $on: theme-color.fill(theme-color.$on-surface));
527
528
&:checked {
529
color: theme-color.$primary;
530
@include drawing.ink-color(theme-color.$primary, $button-style: "flat", $on: theme-color.activated-overlay(theme-color.$primary));
531
}
532
533
&:not(:first-child) {
534
margin-left: 0;
535
}
536
}
537
538
// Default music icon
539
> overlay > widget > image {
540
color: theme-color.fill(theme-color.$on-surface);
541
}
542
}
543
544
revealer > .raven-background {
545
border-bottom: 1px solid theme-color.divider(theme-color.$on-surface);
546
}
547
548
.raven-header + .raven-background {
549
border-top: 1px solid theme-color.divider(theme-color.$on-surface);
550
}
551
552
// Application block in Notifications stack
553
viewport.frame > list > row {
554
// Remove all effects. This should be just a container.
555
padding: 0;
556
box-shadow: none;
557
background: none;
558
559
&:not(:first-child) {
560
border-top: 1px solid theme-color.divider(theme-color.$on-surface);
561
}
562
563
> box {
564
// Remove awkward hard-coded margins
565
margin-top: -5px;
566
margin-left: -5px;
567
margin-bottom: -5px;
568
569
// Application header
570
> box {
571
padding: 6px;
572
margin-bottom: -10px; // Remove hard-coded spacing
573
}
574
575
// Notifications
576
> list > row {
577
padding: 8px;
578
579
> box {
580
margin-bottom: -5px; // Remove hard-coded margin-bottom
581
582
> box {
583
// Title
584
> label {
585
font-weight: bold;
586
}
587
588
// Close button
589
> button.image-button {
590
padding: 0;
591
}
592
}
593
594
> label {
595
margin-top: -6px; // For less spacing: 10 -> 4
596
font-size: smaller;
597
}
598
}
599
}
600
}
601
}
602
603
.powerstrip button {
604
margin: 2px 0 1px;
605
padding: (theme.$large-size - 24px) / 2;
606
}
607
608
.option-subtitle {
609
font-size: smaller;
610
}
611
}
612
613
// Calendar
614
calendar.raven-calendar {
615
// padding: 3px;
616
border-style: none;
617
background-color: transparent;
618
619
&:selected {
620
border-radius: theme.$corner-radius;
621
background-color: theme-color.$selected-overlay;
622
}
623
}
624
625
// MPRIS Applet
626
.raven-mpris {
627
background-color: theme-color.$scrim;
628
color: theme-color.$on-scrim;
629
630
label {
631
min-height: 24px;
632
}
633
634
button.image-button {
635
padding: (theme.$large-size - 24px) / 2;
636
color: theme-color.hint(theme-color.$on-scrim);
637
@include drawing.ink-color(theme-color.$on-scrim, $button-style: "flat");
638
}
639
}
640
641
// Notifications
642
.budgie-notification-window {
643
background-color: transparent;
644
}
645
646
.budgie-notification {
647
.notification-title {
648
font-size: 120%;
649
}
650
651
.notification-body {
652
color: theme-color.hint(theme-color.$on-surface);
653
}
654
}
655
656
// On Screen Display in Budgie
657
.budgie-osd-window {
658
@extend .budgie-notification-window;
659
}
660
661
// Internal part of the OSD
662
.budgie-osd {
663
.budgie-osd-text {
664
font-size: 120%;
665
}
666
}
667
668
// Alt+tab switcher in Budgie
669
.budgie-switcher-window {
670
@extend .budgie-notification-window;
671
}
672
673
// Internal part of the Switcher
674
.budgie-switcher {
675
@extend .budgie-notification;
676
}
677
678
.drop-shadow {
679
margin: 5px 9px;
680
padding: 3px;
681
border-radius: theme.$corner-radius;
682
box-shadow: theme.$shadow-z4, inset 0 1px theme-color.highlight(theme-color.$surface-z8);
683
background-color: theme-color.$surface-z8;
684
685
button {
686
@extend %button-flat;
687
688
&.text-button:not(:disabled) {
689
color: theme-color.$primary;
690
@include drawing.ink-color(theme-color.$primary, $button-style: "flat");
691
}
692
}
693
694
.linked > button {
695
margin-right: theme.$container-padding;
696
}
697
}
698
699
%budgie_dialog {
700
border-radius: theme.$corner-radius;
701
box-shadow: inset 0 1px theme-color.highlight(theme-color.$surface-z8);
702
background-color: theme-color.$surface-z8;
703
704
decoration {
705
border-radius: theme.$corner-radius;
706
}
707
}
708
709
// Session Dialog
710
.budgie-session-dialog {
711
@extend %budgie_dialog;
712
713
> box {
714
padding: 8px;
715
}
716
717
// Hide power icon
718
image {
719
margin: -8px;
720
-gtk-icon-transform: scale(0);
721
}
722
723
label:not(:last-child),
724
.dialog-title {
725
margin-bottom: 8px;
726
font-size: 20px;
727
font-weight: 500;
728
}
729
730
.dialog-title + label {
731
color: theme-color.hint(theme-color.$on-surface);
732
}
733
734
.linked.horizontal > button {
735
@extend %button-flat;
736
737
&:not(:last-child) {
738
margin-right: 8px;
739
}
740
741
&:not(:disabled) {
742
color: theme-color.$primary;
743
@include drawing.ink-color(theme-color.$primary, $button-style: "flat");
744
}
745
}
746
}
747
748
// PolKit Dialog
749
.budgie-polkit-dialog {
750
@extend %budgie_dialog;
751
752
.message {
753
color: theme-color.hint(theme-color.$on-surface);
754
}
755
756
.failure {
757
color: theme-color.$error;
758
}
759
}
760
761
// Run Dialog
762
.budgie-run-dialog {
763
@extend %budgie_dialog;
764
765
entry.search {
766
font-size: 120%;
767
padding: theme.$container-padding 8px + theme.$container-padding;
768
border-image: none;
769
box-shadow: none;
770
background-color: transparent;
771
}
772
773
list {
774
padding: 4px 0;
775
// background-color: transparent;
776
777
.dim-label {
778
color: inherit;
779
}
780
}
781
782
scrolledwindow {
783
border-top: 1px solid theme-color.divider(theme-color.$on-surface);
784
}
785
786
scrollbar {
787
&.right,
788
&.bottom {
789
border-bottom-right-radius: theme.$corner-radius;
790
}
791
792
&.left,
793
&.bottom {
794
border-bottom-left-radius: theme.$corner-radius;
795
}
796
}
797
}
798