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