T12a Data Display: badges, tags, avatars, statistics (review pending: codex 401)

This commit is contained in:
ZacharyZhang-NY committed 2026-09-25 18:41:58 -04:00
1 parent 76da4bd39e
commit dc1d282fca
24 files changed
+1434 -83

No files matched your search

+3 -1
View File
@@ -7,7 +7,9 @@ use gpui::{App, Global, SharedString, WindowAppearance};
use crate::motion;
pub use palette::{Mix, Palette, Syntax};
pub use tokens::{ContainerSize, ControlSize, Density, Elevation, IconSize, Radius, TextSize};
pub use tokens::{
AvatarSize, ContainerSize, ControlSize, Density, Elevation, IconSize, Radius, TextSize,
};
const FRAME: Duration = Duration::from_millis(8);
+21
View File
@@ -18,6 +18,17 @@ pub enum ControlSize {
Lg,
}
/// How large an avatar is.
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)]
pub enum AvatarSize {
Xs,
Sm,
#[default]
Md,
Lg,
Xl,
}
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)]
pub enum IconSize {
Xs,
@@ -97,6 +108,16 @@ impl Theme {
px_to_rems(base + delta)
}
pub fn avatar_size(&self, size: AvatarSize) -> Rems {
px_to_rems(match size {
AvatarSize::Xs => 20.0,
AvatarSize::Sm => 24.0,
AvatarSize::Md => 32.0,
AvatarSize::Lg => 40.0,
AvatarSize::Xl => 56.0,
})
}
pub fn icon_size(&self, size: IconSize) -> Rems {
let base = match size {
IconSize::Xs => 12.0,