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