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