_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; 39} 40 41list { 42background-color: transparent; 43} 44 45row { 46padding: 0; 47 48&:hover { 49box-shadow: none; 50} 51} 52 53button.flat:not(.image-button) { 54min-height: $menuitem-size; 55padding: 0 8px; 56color: $on-surface; 57font-weight: normal; 58 59&:disabled { 60color: disabled($on-surface); 61} 62} 63 64&.budgie-menu { 65.container { 66padding: 0; 67} 68 69.sidebar, 70scrollbar, 71entry.search { 72background-color: transparent; 73} 74 75entry.search { 76border-bottom: 1px solid divider($on-surface); 77border-image: none; 78border-radius: 0; 79box-shadow: none; 80font-size: 120%; 81} 82 83button.flat:not(.image-button) { 84min-height: 32px; 85padding: 0 8px; 86border-radius: 0; 87 88@include list-item; 89 90&:checked { 91background-color: $overlay-selected; 92} 93 94// remove pointless indicator 95&:checked:disabled { 96background-color: transparent; 97} 98} 99} 100 101&.user-menu { 102.container { 103padding: 8px; 104} 105 106separator { 107margin: 4px 0; 108} 109} 110 111&.sound-popover { 112separator { 113margin: 3px 0; 114} 115} 116 117&.night-light-indicator { 118.container { 119padding: 8px; 120} 121} 122 123&.places-menu { 124.container { 125padding: 8px; 126} 127 128// FIXME: untested 129.message-bar { 130// margin-bottom: 4px; 131} 132 133.name-button { 134image { 135&:dir(ltr) { 136margin-right: 8px - 5px; 137} 138 139&:dir(rtl) { 140margin-left: 8px - 5px; 141} 142} 143} 144 145.unmount-button { 146margin: ($menuitem-size - $small-size) / 2; 147padding: 0; 148} 149 150.places-section-header { 151} 152 153.places-list:not(.always-expand) { 154margin-top: 4px; 155padding-top: 4px; 156border-top: 1px solid divider($on-surface); 157} 158 159// FIXME: untested 160.unlock-area { 161entry { 162} 163 164button { 165} 166} 167 168// use such sizes for consistency with other hard-coded dim-label sizes 169.alternative-label { 170padding: 3px; 171font-size: 15px; 172} 173} 174 175&.workspace-popover { 176.container { 177padding: 8px; 178} 179 180separator { 181margin: 4px 0; 182} 183 184flowboxchild { 185padding: 0; 186} 187} 188} 189 190// FIXME: workspace has unnecessary/unknown margin 191.workspace-switcher { 192.workspace-layout { 193border: 0 solid divider($on-panel); 194 195.top &, 196.bottom & { 197&:dir(ltr) { 198border-left-width: 1px; 199} 200 201&:dir(rtl) { 202border-right-width: 1px; 203} 204} 205 206.left &, 207.right & { 208border-top-width: 1px; 209} 210} 211 212.workspace-item, 213.workspace-add-button { 214border: 0 solid divider($on-panel); 215 216.top &, 217.bottom & { 218&:dir(ltr) { 219border-right-width: 1px; 220} 221 222&:dir(rtl) { 223border-left-width: 1px; 224} 225} 226 227.left &, 228.right & { 229border-bottom-width: 1px; 230} 231} 232 233.workspace-item { 234transition: $transition; 235 236&.current-workspace { 237background-color: overlay("activated", $on-panel); 238} 239} 240 241.workspace-add-button { 242&:hover { 243box-shadow: none; 244} 245 246&:active { 247background-image: none; 248} 249 250&:active image { 251margin: 1px 0 -1px; 252} 253} 254 255.workspace-icon-button { 256// to overwrite the .budgie-panel button style below 257.budgie-panel & { 258min-height: 24px; 259min-width: 24px; 260padding: 0; 261border-radius: $corner-radius; 262} 263} 264} 265 266// Menu Button 267button.budgie-menu-launcher { 268// padding: 0 2px; 269} 270 271// Raven Trigger 272button.raven-trigger { 273// padding: 0 4px; 274} 275 276// Panel 277.budgie-panel { 278transition: background-color $duration $ease-out; 279background-color: $panel; 280color: hint($on-panel); 281font-weight: 500; 282 283&.transparent { 284background-color: $scrim; 285color: hint($on-scrim); 286} 287 288button { 289min-height: 16px; 290min-width: 16px; 291padding: 0; 292border-radius: 0; 293background-color: transparent; 294color: hint($on-panel); 295@include ink-color($on-panel); 296 297&:disabled { 298color: disabled-hint($on-panel); 299} 300 301&:checked { 302background-color: overlay("activated", $on-panel); 303color: $on-panel; 304@include ink-color($on-panel); 305 306&:disabled { 307color: disabled($on-panel); 308} 309} 310} 311 312&.horizontal button { 313padding: 0 4px; 314} 315 316&.vertical button { 317padding: 4px 0; 318} 319 320separator { 321background-color: stroke($on-panel); 322} 323 324// used to indicate unread notifications 325.alert { 326color: error($on-panel); 327} 328 329// End Section needs to be fancy 330.end-region { 331// background-color: rgba(0,0,0,0.2); 332} 333 334// budgie-pixel-saver-applet 335.titlebar:not(headerbar) { 336min-height: 0; 337padding: 0; 338box-shadow: none; 339background-color: transparent; 340color: $on-panel; 341 342button:not(.suggested-action):not(.destructive-action) { 343color: hint($on-panel); 344} 345} 346 347// Tasklist 348#tasklist-button { 349padding: 0 4px; 350 351@extend %underscores; 352} 353 354&.vertical #tasklist-button { 355min-height: 32px; 356} 357 358// Icon Tasklist 359button.flat.launcher { 360padding: 0; 361 362@extend %underscores; 363 364// for indicator colors 365&:not(:checked) { 366color: disabled($on-panel); 367 368&:disabled { 369color: disabled-hint($on-panel); 370} 371} 372} 373 374.unpinned button.flat.launcher, 375.pinned button.flat.launcher.running { 376@extend %underscores-checked; 377} 378} 379 380$underscores-list: 381(top, center calc(1px), 2 0 0 0 / 2px 0 0 0), 382(bottom, center calc(100% - 1px), 0 0 2 0 / 0 0 2px 0), 383(left, calc(1px) center, 0 0 0 2 / 0 0 0 2px), 384(right, calc(100% - 1px) center, 0 2 0 0 / 0 2px 0 0); 385 386%underscores { 387@each $pos, $b_pos, $b_wid in $underscores-list { 388.#{$pos} & { 389& { 390border-image: 391radial-gradient( 392circle closest-corner at #{$b_pos}, 393currentcolor 0%, 394transparent 0% 395) 0 0 0 0 / 0 0 0 0; 396} 397 398@at-root %underscores-checked, 399&:checked { 400border-image: 401radial-gradient( 402circle closest-corner at #{$b_pos}, 403currentcolor 100%, 404transparent 0% 405) #{$b_wid}; 406} 407} 408} 409} 410 411frame.raven-frame > border { 412border-style: none; 413box-shadow: $shadow-z16; 414} 415 416$pos_list: (top: bottom, bottom: top, left: right, right: left); 417 418@each $pos, $b_pos in $pos_list { 419// Panel borders 420.#{$pos} .budgie-panel { 421// border-#{$b_pos}: 1px solid divider($on-surface); 422} 423 424// Raven borders 425.#{$pos} frame.raven-frame > border { 426margin-#{$b_pos}: 32px; 427// border-#{$b_pos}: 1px solid divider($on-surface); 428} 429 430// Shadows 431.#{$pos} .shadow-block { 432// background-image: linear-gradient(to $b_pos, divider($on-surface), transparent); 433} 434} 435 436// Raven 437.raven { 438background-color: $surface; 439 440list { 441background-color: transparent; 442} 443 444// remove extra space between box and .raven-header.bottom 445> box:not(:only-child) { 446margin-bottom: -10px; 447} 448 449.raven-header { 450min-height: $medium-size; 451padding: 3px; 452 453// Adopt tabs style only for .top 454&.top { 455padding: 0; 456border-bottom: 1px solid divider($on-surface); 457 458stackswitcher.linked > button { 459@extend %button-flat-activatable; 460 461margin: -4px 0 -5px; // remove unwanted vertical margins 462padding: 0 16px; 463min-height: $large-size; 464border-image: 465radial-gradient( 466circle closest-corner at center calc(100% - 1px), 467$primary 0%, 468transparent 0% 469) 0 0 0 / 0 0 0; 470border-radius: 0; 471 472&:checked { 473border-image: 474radial-gradient( 475circle closest-corner at center calc(100% - 1px), 476$primary 100%, 477transparent 0% 478) 0 0 2 / 0 0 2px; 479background-color: transparent; 480} 481} 482} 483 484&.bottom { 485border-top: 1px solid divider($on-surface); 486} 487} 488 489stack { 490// remove extra space in Notifications stack 491.raven-header { 492margin-top: -6px; 493} 494 495// remove extra spaces in Applets stack 496scrolledwindow .raven-header { 497margin-top: -8px; 498} 499} 500 501.expander-button { 502border-radius: $circular-radius; 503} 504 505.raven-background { 506// applet background between two headers 507&.middle { 508// border-bottom-style: none; 509} 510 511// Adopt Choice chips style 512stackswitcher.linked > button { 513@extend %button-flat-activatable; 514 515margin: -2px 8px 9px; 516padding: 0 12px; 517min-height: 32px; 518border-radius: $circular-radius; 519background-color: fill($on-surface); 520font-weight: normal; 521 522&:checked { 523background-color: overlay("activated", $primary); 524color: $primary; 525@include ink-color($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); 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); 678background-color: $surface; 679 680button { 681@extend %button-flat; 682 683&.text-button:not(:disabled) { 684color: $primary; 685@include ink-color($primary); 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); 697background-color: $surface; 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); 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; 770background-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