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