gnome-shell/data/theme/gnome-shell-sass/widgets/_panel.scss

158 lines
3.8 KiB
SCSS
Raw Normal View History

/* Top Bar */
// a.k.a. the panel
$privacy_indicator_color: $orange_3;
$panel_bg_color: if($variant == 'light', $light_3, $dark_5);
$panel_fg_color: if($variant == 'light', $fg_color, darken($fg_color, 5%));
$panel_border_color: if($variant == 'light', darken($panel_bg_color, 2%), $panel_bg_color);
$panel_system_fg_color: $system_fg_color; // always light for lockscreen, overview and other transparent panels
$panel_height: 2.2em;
$panel_transition_duration: 250ms; // same as the overview transition duration
#panel {
background-color: $panel_bg_color;
font-weight: bold;
height: $panel_height;
@extend %numeric;
transition-duration: $panel_transition_duration;
box-shadow: inset 0 -1px 0 0 $panel_border_color;
// panel menus
.panel-button {
@include panel_button($panel_fg_color);
-natural-hpadding: $base_padding * 2;
-minimum-hpadding: $base_padding;
// status area icons
.system-status-icon {
icon-size: $base_icon_size;
padding: $base_padding - 1px;
margin: 0 $base_margin;
}
.panel-status-indicators-box .system-status-icon,
.panel-status-menu-box .system-status-icon {
margin: 0;
}
// app menu icon
.app-menu-icon {
-st-icon-style: symbolic;
// dimensions of the icon are hardcoded
}
&#panelActivities {
panel: Add workspaces indicators in activities button After removing the app name and icon, the next natural step that was requested from the design team is to add workspaces indicators to the top bar, where currently the Activities button is placed. In addition to that, this is desired because there are known issues with using "Activities" as a label for the overview. A more comprehensive rationale for that can be found at [1]. Add an workspaces indicator replacing the Activities label in the activities button. The WorkspaceIndicators class controls how many workspaces dots exists, their expansion, and the width multiplier. The WorkspaceDot class takes the expansion and the multiplier, and applies it internally so that we can get perfectly rounded dots at all times without using CSS hacks. The width multipliers are hardcoded, and defined by the design team. We can revisit them later if necessary. Special care is taken to not let these width multipliers result in fractional widths. When the number of workspaces changes, WorkspaceIndicators adds new dot to the end, and animate them. When removing, scale the dot out, then destroy it. This does not work with workspace grids, but that's not supported by GNOME Shell anyway, so no effort is made to cover this use case. The button continues to have "Activities" as its accessible name, but the label actor is removed. Also adjust the padding of the activities pill, so it better wraps the new indicators. [1] https://gitlab.gnome.org/Teams/Design/os-mockups/-/issues/227 Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2902>
2023-08-10 13:27:13 +00:00
-natural-hpadding: $base_padding * 2.5;
& StBoxLayout {
spacing: 5px;
}
& .workspace-dot {
border-radius: 999px;
min-width: 8px;
min-height: 8px;
background-color: $panel_fg_color;
}
}
// screen activity indicators
&.screen-recording-indicator,
&.screen-sharing-indicator {
StBoxLayout {
spacing: $base_padding;
}
StIcon {
icon-size: $base_icon_size;
}
}
&.screen-recording-indicator {
@include panel_button($screenshot_ui_button_red, $flat: false);
}
&.screen-sharing-indicator {
@include panel_button($privacy_indicator_color, $flat: false);
}
// clock
&.clock-display {
// The clock display needs to have the background on .clock because
// we want to exclude the do-not-disturb indicator from the background
// see _drawing.scss for override details
@include panel_button($highlighted_child: true, $child_class:".clock");
.clock {
// the highlighted child
}
}
}
// transparent panel on lock & login screens
&.unlock-screen,
&.login-screen,
&:overview {
background-color: transparent;
box-shadow: none;
.panel-button {
@include panel_button($panel_system_fg_color, $fg:$panel_system_fg_color);
panel: Add workspaces indicators in activities button After removing the app name and icon, the next natural step that was requested from the design team is to add workspaces indicators to the top bar, where currently the Activities button is placed. In addition to that, this is desired because there are known issues with using "Activities" as a label for the overview. A more comprehensive rationale for that can be found at [1]. Add an workspaces indicator replacing the Activities label in the activities button. The WorkspaceIndicators class controls how many workspaces dots exists, their expansion, and the width multiplier. The WorkspaceDot class takes the expansion and the multiplier, and applies it internally so that we can get perfectly rounded dots at all times without using CSS hacks. The width multipliers are hardcoded, and defined by the design team. We can revisit them later if necessary. Special care is taken to not let these width multipliers result in fractional widths. When the number of workspaces changes, WorkspaceIndicators adds new dot to the end, and animate them. When removing, scale the dot out, then destroy it. This does not work with workspace grids, but that's not supported by GNOME Shell anyway, so no effort is made to cover this use case. The button continues to have "Activities" as its accessible name, but the label actor is removed. Also adjust the padding of the activities pill, so it better wraps the new indicators. [1] https://gitlab.gnome.org/Teams/Design/os-mockups/-/issues/227 Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2902>
2023-08-10 13:27:13 +00:00
&#panelActivities .workspace-dot {
background-color: $panel_system_fg_color;
}
// clock
&.clock-display {
@include panel_button($panel_system_fg_color, $fg:$panel_system_fg_color, $highlighted_child: true, $child_class:".clock");
}
// unfortunate duplication so these indicators have styles
&.screen-recording-indicator {
@include panel_button($screenshot_ui_button_red, $flat: false);
}
&.screen-sharing-indicator {
@include panel_button($privacy_indicator_color, $flat: false);
}
}
}
.panel-status-indicators-box,
.panel-status-menu-box {
spacing: 2px;
}
// spacing between power icon and (optional) percentage label
.power-status.panel-status-indicators-box {
spacing: 0;
}
// important privacy related indicators
.privacy-indicator { color: $privacy_indicator_color; }
}
// App Menu
#appMenu {
spacing: $base_padding;
.label-shadow { color: transparent; }
}
#appMenu .panel-status-menu-box {
padding: 0 $base_padding;
spacing: $base_padding;
}
// Clock
.clock-display-box {
spacing: 2px;
.clock {
padding-left: $base_padding * 2;
padding-right: $base_padding * 2;
}
}