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