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.84 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;
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
background-color: transparent;
295
color: hint($on-panel);
296
@include ink-color($on-panel);
297
298
&:disabled {
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);
306
307
&:disabled {
308
color: disabled($on-panel);
309
}
310
}
311
}
312
313
&.horizontal button {
314
padding: 0 4px;
315
}
316
317
&.vertical button {
318
padding: 4px 0;
319
}
320
321
separator {
322
background-color: stroke($on-panel);
323
}
324
325
// used to indicate unread notifications
326
.alert {
327
color: error($on-panel);
328
}
329
330
// End Section needs to be fancy
331
.end-region {
332
// background-color: rgba(0,0,0,0.2);
333
}
334
335
// budgie-pixel-saver-applet
336
.titlebar:not(headerbar) {
337
min-height: 0;
338
padding: 0;
339
box-shadow: none;
340
background-color: transparent;
341
color: $on-panel;
342
343
button:not(.suggested-action):not(.destructive-action) {
344
color: hint($on-panel);
345
}
346
}
347
348
// Tasklist
349
#tasklist-button {
350
padding: 0 4px;
351
352
@extend %underscores;
353
}
354
355
&.vertical #tasklist-button {
356
min-height: 32px;
357
}
358
359
// Icon Tasklist
360
button.flat.launcher {
361
padding: 0;
362
363
@extend %underscores;
364
365
// for indicator colors
366
&:not(:checked) {
367
color: disabled($on-panel);
368
369
&:disabled {
370
color: disabled-hint($on-panel);
371
}
372
}
373
}
374
375
.unpinned button.flat.launcher,
376
.pinned button.flat.launcher.running {
377
@extend %underscores-checked;
378
}
379
}
380
381
$underscores-list:
382
(top, center calc(1px), 2 0 0 0 / 2px 0 0 0),
383
(bottom, center calc(100% - 1px), 0 0 2 0 / 0 0 2px 0),
384
(left, calc(1px) center, 0 0 0 2 / 0 0 0 2px),
385
(right, calc(100% - 1px) center, 0 2 0 0 / 0 2px 0 0);
386
387
%underscores {
388
@each $pos, $b_pos, $b_wid in $underscores-list {
389
.#{$pos} & {
390
& {
391
border-image:
392
radial-gradient(
393
circle closest-corner at #{$b_pos},
394
currentcolor 0%,
395
transparent 0%
396
) 0 0 0 0 / 0 0 0 0;
397
}
398
399
@at-root %underscores-checked,
400
&:checked {
401
border-image:
402
radial-gradient(
403
circle closest-corner at #{$b_pos},
404
currentcolor 100%,
405
transparent 0%
406
) #{$b_wid};
407
}
408
}
409
}
410
}
411
412
frame.raven-frame > border {
413
border-style: none;
414
box-shadow: $shadow-z16;
415
}
416
417
$pos_list: (top: bottom, bottom: top, left: right, right: left);
418
419
@each $pos, $b_pos in $pos_list {
420
// Panel borders
421
.#{$pos} .budgie-panel {
422
// border-#{$b_pos}: 1px solid divider($on-surface);
423
}
424
425
// Raven borders
426
.#{$pos} frame.raven-frame > border {
427
margin-#{$b_pos}: 32px;
428
// border-#{$b_pos}: 1px solid divider($on-surface);
429
}
430
431
// Shadows
432
.#{$pos} .shadow-block {
433
// background-image: linear-gradient(to $b_pos, divider($on-surface), transparent);
434
}
435
}
436
437
// Raven
438
.raven {
439
background-color: $surface;
440
441
list {
442
// background-color: transparent;
443
}
444
445
// remove extra space between box and .raven-header.bottom
446
> box:not(:only-child) {
447
margin-bottom: -10px;
448
}
449
450
.raven-header {
451
min-height: $medium-size;
452
padding: 3px;
453
454
// Adopt tabs style only for .top
455
&.top {
456
padding: 0;
457
border-bottom: 1px solid divider($on-surface);
458
459
stackswitcher.linked > button {
460
@extend %button-flat-activatable;
461
462
margin: -4px 0 -5px; // remove unwanted vertical margins
463
padding: 0 16px;
464
min-height: $large-size;
465
border-image:
466
radial-gradient(
467
circle closest-corner at center calc(100% - 1px),
468
$primary 0%,
469
transparent 0%
470
) 0 0 0 / 0 0 0;
471
border-radius: 0;
472
473
&:checked {
474
border-image:
475
radial-gradient(
476
circle closest-corner at center calc(100% - 1px),
477
$primary 100%,
478
transparent 0%
479
) 0 0 2 / 0 0 2px;
480
background-color: transparent;
481
}
482
}
483
}
484
485
&.bottom {
486
border-top: 1px solid divider($on-surface);
487
}
488
}
489
490
stack {
491
// remove extra space in Notifications stack
492
.raven-header {
493
margin-top: -6px;
494
}
495
496
// remove extra spaces in Applets stack
497
scrolledwindow .raven-header {
498
margin-top: -8px;
499
}
500
}
501
502
.expander-button {
503
border-radius: $circular-radius;
504
}
505
506
.raven-background {
507
// applet background between two headers
508
&.middle {
509
// border-bottom-style: none;
510
}
511
512
// Adopt Choice chips style
513
stackswitcher.linked > button {
514
@extend %button-flat-activatable;
515
516
margin: -2px 8px 9px;
517
padding: 0 12px;
518
min-height: 32px;
519
border-radius: $circular-radius;
520
background-color: fill($on-surface);
521
font-weight: normal;
522
523
&:checked {
524
background-color: overlay("activated", $primary);
525
color: $primary;
526
@include ink-color($primary);
527
}
528
529
&:not(:first-child) {
530
margin-left: 0;
531
}
532
}
533
534
// Default music icon
535
> overlay > widget > image {
536
color: fill($on-surface);
537
}
538
}
539
540
revealer > .raven-background {
541
border-bottom: 1px solid divider($on-surface);
542
}
543
544
.raven-header + .raven-background {
545
border-top: 1px solid divider($on-surface);
546
}
547
548
// Application block in Notifications stack
549
viewport.frame > list > row {
550
// Remove all effects. This should be just a container.
551
padding: 0;
552
box-shadow: none;
553
background: none;
554
555
&:not(:first-child) {
556
border-top: 1px solid divider($on-surface);
557
}
558
559
> box {
560
// Remove awkward hard-coded margins
561
margin-top: -5px;
562
margin-left: -5px;
563
margin-bottom: -5px;
564
565
// Application header
566
> box {
567
padding: 6px;
568
margin-bottom: -10px; // Remove hard-coded spacing
569
}
570
571
// Notifications
572
> list > row {
573
padding: 8px;
574
575
> box {
576
margin-bottom: -5px; // Remove hard-coded margin-bottom
577
578
> box {
579
// Title
580
> label {
581
font-weight: bold;
582
}
583
584
// Close button
585
> button.image-button {
586
padding: 0;
587
}
588
}
589
590
> label {
591
margin-top: -6px; // For less spacing: 10 -> 4
592
font-size: smaller;
593
}
594
}
595
}
596
}
597
}
598
599
.powerstrip button {
600
margin: 2px 0 1px;
601
padding: ($large-size - 24px) / 2;
602
}
603
604
.option-subtitle {
605
font-size: smaller;
606
}
607
}
608
609
// Calendar
610
calendar.raven-calendar {
611
// padding: 3px;
612
border-style: none;
613
background-color: transparent;
614
615
&:selected {
616
border-radius: $corner-radius;
617
background-color: $overlay-selected;
618
}
619
}
620
621
// MPRIS Applet
622
.raven-mpris {
623
background-color: $scrim;
624
color: $on-scrim;
625
626
label {
627
min-height: 24px;
628
}
629
630
button.image-button {
631
padding: ($large-size - 24px) / 2;
632
color: hint($on-scrim);
633
@include ink-color($on-scrim);
634
}
635
}
636
637
// Notifications
638
.budgie-notification-window {
639
background-color: transparent;
640
}
641
642
.budgie-notification {
643
.notification-title {
644
font-size: 120%;
645
}
646
647
.notification-body {
648
color: hint($on-surface);
649
}
650
}
651
652
// On Screen Display in Budgie
653
.budgie-osd-window {
654
@extend .budgie-notification-window;
655
}
656
657
// Internal part of the OSD
658
.budgie-osd {
659
.budgie-osd-text {
660
font-size: 120%;
661
}
662
}
663
664
// Alt+tab switcher in Budgie
665
.budgie-switcher-window {
666
@extend .budgie-notification-window;
667
}
668
669
// Internal part of the Switcher
670
.budgie-switcher {
671
@extend .budgie-notification;
672
}
673
674
.drop-shadow {
675
margin: 5px 9px;
676
padding: 3px;
677
border-radius: $corner-radius;
678
box-shadow: $shadow-z4, inset 0 1px highlight($surface);
679
background-color: $surface;
680
681
button {
682
@extend %button-flat;
683
684
&.text-button:not(:disabled) {
685
color: $primary;
686
@include ink-color($primary);
687
}
688
}
689
690
.linked > button {
691
margin-right: $container-padding;
692
}
693
}
694
695
%budgie_dialog {
696
border-radius: $corner-radius;
697
box-shadow: inset 0 1px highlight($surface);
698
background-color: $surface;
699
700
decoration {
701
border-radius: $corner-radius;
702
}
703
}
704
705
// Session Dialog
706
.budgie-session-dialog {
707
@extend %budgie_dialog;
708
709
> box {
710
padding: 8px;
711
}
712
713
// Hide power icon
714
image {
715
margin: -8px;
716
-gtk-icon-transform: scale(0);
717
}
718
719
label:not(:last-child),
720
.dialog-title {
721
margin-bottom: 8px;
722
font-size: 20px;
723
font-weight: 500;
724
}
725
726
.dialog-title + label {
727
color: hint($on-surface);
728
}
729
730
.linked.horizontal > button {
731
@extend %button-flat;
732
733
&:not(:last-child) {
734
margin-right: 8px;
735
}
736
737
&:not(:disabled) {
738
color: $primary;
739
@include ink-color($primary);
740
}
741
}
742
}
743
744
// PolKit Dialog
745
.budgie-polkit-dialog {
746
@extend %budgie_dialog;
747
748
.message {
749
color: hint($on-surface);
750
}
751
752
.failure {
753
color: $error;
754
}
755
}
756
757
// Run Dialog
758
.budgie-run-dialog {
759
@extend %budgie_dialog;
760
761
entry.search {
762
font-size: 120%;
763
padding: $container-padding 8px + $container-padding;
764
border-image: none;
765
box-shadow: none;
766
background-color: transparent;
767
}
768
769
list {
770
padding: 4px 0;
771
// background-color: transparent;
772
773
.dim-label {
774
color: inherit;
775
}
776
}
777
778
scrolledwindow {
779
border-top: 1px solid divider($on-surface);
780
}
781
782
scrollbar {
783
&.right,
784
&.bottom {
785
border-bottom-right-radius: $corner-radius;
786
}
787
788
&.left,
789
&.bottom {
790
border-bottom-left-radius: $corner-radius;
791
}
792
}
793
}
794