Add Shape enum to avatar component, refactor UITextSize to styles/typography.rs
This commit is contained in:
parent
205607a9cd
commit
56d45e72cd
4 changed files with 36 additions and 140 deletions
|
@ -1,6 +1,13 @@
|
||||||
use crate::prelude::*;
|
use crate::prelude::*;
|
||||||
use gpui::{img, Img, RenderOnce};
|
use gpui::{img, Img, RenderOnce};
|
||||||
|
|
||||||
|
#[derive(Debug, Default, PartialEq, Clone)]
|
||||||
|
pub enum Shape {
|
||||||
|
#[default]
|
||||||
|
Circle,
|
||||||
|
RoundedRectangle,
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(RenderOnce)]
|
#[derive(RenderOnce)]
|
||||||
pub struct Avatar {
|
pub struct Avatar {
|
||||||
src: SharedString,
|
src: SharedString,
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
use gpui::rems;
|
|
||||||
use gpui::Rems;
|
|
||||||
pub use gpui::{
|
pub use gpui::{
|
||||||
div, Component, Element, ElementId, InteractiveElement, ParentElement, SharedString, Styled,
|
div, Component, Element, ElementId, InteractiveElement, ParentElement, SharedString, Styled,
|
||||||
ViewContext, WindowContext,
|
ViewContext, WindowContext,
|
||||||
|
@ -9,107 +7,8 @@ pub use crate::StyledExt;
|
||||||
pub use crate::{ButtonVariant, TextColor};
|
pub use crate::{ButtonVariant, TextColor};
|
||||||
pub use theme2::ActiveTheme;
|
pub use theme2::ActiveTheme;
|
||||||
|
|
||||||
use gpui::Hsla;
|
|
||||||
use strum::EnumIter;
|
use strum::EnumIter;
|
||||||
|
|
||||||
#[derive(Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash, Clone, Copy, EnumIter)]
|
|
||||||
pub enum UITextSize {
|
|
||||||
/// The default size for UI text.
|
|
||||||
///
|
|
||||||
/// `0.825rem` or `14px` at the default scale of `1rem` = `16px`.
|
|
||||||
///
|
|
||||||
/// Note: The absolute size of this text will change based on a user's `ui_scale` setting.
|
|
||||||
#[default]
|
|
||||||
Default,
|
|
||||||
/// The small size for UI text.
|
|
||||||
///
|
|
||||||
/// `0.75rem` or `12px` at the default scale of `1rem` = `16px`.
|
|
||||||
///
|
|
||||||
/// Note: The absolute size of this text will change based on a user's `ui_scale` setting.
|
|
||||||
Small,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl UITextSize {
|
|
||||||
pub fn rems(self) -> Rems {
|
|
||||||
match self {
|
|
||||||
Self::Default => rems(0.875),
|
|
||||||
Self::Small => rems(0.75),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash, Clone, Copy, EnumIter)]
|
|
||||||
pub enum FileSystemStatus {
|
|
||||||
#[default]
|
|
||||||
None,
|
|
||||||
Conflict,
|
|
||||||
Deleted,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl std::fmt::Display for FileSystemStatus {
|
|
||||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
|
||||||
write!(
|
|
||||||
f,
|
|
||||||
"{}",
|
|
||||||
match self {
|
|
||||||
Self::None => "None",
|
|
||||||
Self::Conflict => "Conflict",
|
|
||||||
Self::Deleted => "Deleted",
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash, Clone, Copy, EnumIter)]
|
|
||||||
pub enum GitStatus {
|
|
||||||
#[default]
|
|
||||||
None,
|
|
||||||
Created,
|
|
||||||
Modified,
|
|
||||||
Deleted,
|
|
||||||
Conflict,
|
|
||||||
Renamed,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl GitStatus {
|
|
||||||
pub fn hsla(&self, cx: &WindowContext) -> Hsla {
|
|
||||||
match self {
|
|
||||||
Self::None => cx.theme().system().transparent,
|
|
||||||
Self::Created => cx.theme().status().created,
|
|
||||||
Self::Modified => cx.theme().status().modified,
|
|
||||||
Self::Deleted => cx.theme().status().deleted,
|
|
||||||
Self::Conflict => cx.theme().status().conflict,
|
|
||||||
Self::Renamed => cx.theme().status().renamed,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl std::fmt::Display for GitStatus {
|
|
||||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
|
||||||
write!(
|
|
||||||
f,
|
|
||||||
"{}",
|
|
||||||
match self {
|
|
||||||
Self::None => "None",
|
|
||||||
Self::Created => "Created",
|
|
||||||
Self::Modified => "Modified",
|
|
||||||
Self::Deleted => "Deleted",
|
|
||||||
Self::Conflict => "Conflict",
|
|
||||||
Self::Renamed => "Renamed",
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash, Clone, Copy, EnumIter)]
|
|
||||||
pub enum DiagnosticStatus {
|
|
||||||
#[default]
|
|
||||||
None,
|
|
||||||
Error,
|
|
||||||
Warning,
|
|
||||||
Info,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash, Clone, Copy, EnumIter)]
|
#[derive(Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash, Clone, Copy, EnumIter)]
|
||||||
pub enum IconSide {
|
pub enum IconSide {
|
||||||
#[default]
|
#[default]
|
||||||
|
@ -117,45 +16,6 @@ pub enum IconSide {
|
||||||
Right,
|
Right,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash, Clone, Copy, EnumIter)]
|
|
||||||
pub enum OrderMethod {
|
|
||||||
#[default]
|
|
||||||
Ascending,
|
|
||||||
Descending,
|
|
||||||
MostRecent,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash, Clone, Copy, EnumIter)]
|
|
||||||
pub enum Shape {
|
|
||||||
#[default]
|
|
||||||
Circle,
|
|
||||||
RoundedRectangle,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash, Clone, Copy, EnumIter)]
|
|
||||||
pub enum DisclosureControlVisibility {
|
|
||||||
#[default]
|
|
||||||
OnHover,
|
|
||||||
Always,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Clone, Copy, EnumIter)]
|
|
||||||
pub enum DisclosureControlStyle {
|
|
||||||
/// Shows the disclosure control only when hovered where possible.
|
|
||||||
///
|
|
||||||
/// More compact, but not available everywhere.
|
|
||||||
ChevronOnHover,
|
|
||||||
/// Shows an icon where possible, otherwise shows a chevron.
|
|
||||||
///
|
|
||||||
/// For example, in a file tree a folder or file icon is shown
|
|
||||||
/// instead of a chevron
|
|
||||||
Icon,
|
|
||||||
/// Always shows a chevron.
|
|
||||||
Chevron,
|
|
||||||
/// Completely hides the disclosure control where possible.
|
|
||||||
None,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, PartialEq, Eq, Clone, Copy, EnumIter)]
|
#[derive(Debug, PartialEq, Eq, Clone, Copy, EnumIter)]
|
||||||
pub enum OverflowStyle {
|
pub enum OverflowStyle {
|
||||||
Hidden,
|
Hidden,
|
||||||
|
|
|
@ -1,2 +1,4 @@
|
||||||
mod elevation;
|
mod elevation;
|
||||||
|
mod typography;
|
||||||
pub use elevation::*;
|
pub use elevation::*;
|
||||||
|
pub use typography::*;
|
||||||
|
|
27
crates/ui2/src/styles/typography.rs
Normal file
27
crates/ui2/src/styles/typography.rs
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
use gpui::{rems, Rems};
|
||||||
|
|
||||||
|
#[derive(Debug, Default, Clone)]
|
||||||
|
pub enum UITextSize {
|
||||||
|
/// The default size for UI text.
|
||||||
|
///
|
||||||
|
/// `0.825rem` or `14px` at the default scale of `1rem` = `16px`.
|
||||||
|
///
|
||||||
|
/// Note: The absolute size of this text will change based on a user's `ui_scale` setting.
|
||||||
|
#[default]
|
||||||
|
Default,
|
||||||
|
/// The small size for UI text.
|
||||||
|
///
|
||||||
|
/// `0.75rem` or `12px` at the default scale of `1rem` = `16px`.
|
||||||
|
///
|
||||||
|
/// Note: The absolute size of this text will change based on a user's `ui_scale` setting.
|
||||||
|
Small,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl UITextSize {
|
||||||
|
pub fn rems(self) -> Rems {
|
||||||
|
match self {
|
||||||
|
Self::Default => rems(0.875),
|
||||||
|
Self::Small => rems(0.75),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue