Theme · Platform: one platform for buttons and caps, icon themes, frosted panes

theme::Platform moves out of typography and shell's ControlsStyle folds
into it; the theme's platform starts as the system's. Window buttons Ely
draws, the title bar's layout and every key cap follow it, secondary
included, through typography::keys::keystroke; a title bar whose buttons
the OS draws follows the OS. primitives::IconTheme lays an owner's rules
by file name and extension over Ely's map, for every file icon.
shell::Vibrancy fills a pane with the palette's new glass, translucent
so a window opened Blurred shows its backdrop, solid under high contrast.
gpui 0.2.2 has no Mica; that line stays blocked.
This commit is contained in:
ZacharyZhang-NY committed 2026-09-27 17:41:15 -04:00
1 parent 7f2205c811
commit d3cfc71ead
30 files changed
+593 -162

No files matched your search

+7 -8
View File
@@ -1,11 +1,11 @@
use std::rc::Rc;
use gpui::{
App, ElementId, Entity, FontWeight, InteractiveElement, IntoElement, Keystroke, ParentElement,
RenderOnce, SharedString, StatefulInteractiveElement, Styled, Window, div, prelude::*,
App, ElementId, Entity, FontWeight, InteractiveElement, IntoElement, ParentElement, RenderOnce,
SharedString, StatefulInteractiveElement, Styled, Window, div, prelude::*,
};
use super::button::shortcut_text;
use super::button::{keystroke_of, shortcut_text};
use crate::{
primitives::{FocusRing, Icon, IconName},
theme::{ActiveTheme, ControlSize, IconSize, Radius, TextSize},
@@ -19,7 +19,7 @@ pub struct QuickAction {
icon: IconName,
label: SharedString,
note: Option<SharedString>,
shortcut: Option<Keystroke>,
shortcut: Option<SharedString>,
run: Run,
}
@@ -45,9 +45,8 @@ impl QuickAction {
/// Panics on a bad keystroke.
pub fn shortcut(mut self, keystroke: &str) -> Self {
let parsed = Keystroke::parse(keystroke)
.unwrap_or_else(|error| panic!("quick action shortcut {keystroke:?}: {error}"));
self.shortcut = Some(parsed);
keystroke_of(keystroke);
self.shortcut = Some(SharedString::from(keystroke.to_string()));
self
}
}
@@ -171,7 +170,7 @@ impl RenderOnce for QuickActions {
div()
.text_size(theme.text_size(TextSize::Xs))
.text_color(colors.fg_subtle)
.child(shortcut_text(stroke)),
.child(shortcut_text(stroke, theme.platform)),
)
})
})