T12a Data Display: badges, tags, avatars, statistics (review pending: codex 401)
This commit is contained in:
24 files changed
+1434
-83
No files matched your search
+3
-1
@@ -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);
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in new issue
Block a user