diff --git a/crates/ui/src/components.rs b/crates/ui/src/components.rs index 4049815f1b..0848ac74df 100644 --- a/crates/ui/src/components.rs +++ b/crates/ui/src/components.rs @@ -16,7 +16,6 @@ mod stack; mod tab; mod tab_bar; mod tooltip; -mod typography; #[cfg(feature = "stories")] mod stories; @@ -39,7 +38,6 @@ pub use stack::*; pub use tab::*; pub use tab_bar::*; pub use tooltip::*; -pub use typography::*; #[cfg(feature = "stories")] pub use stories::*; diff --git a/crates/ui/src/components/typography.rs b/crates/ui/src/components/typography.rs deleted file mode 100644 index c613559faf..0000000000 --- a/crates/ui/src/components/typography.rs +++ /dev/null @@ -1,71 +0,0 @@ -use gpui::{ - div, rems, IntoElement, ParentElement, Rems, RenderOnce, SharedString, Styled, WindowContext, -}; -use settings::Settings; -use theme::{ActiveTheme, ThemeSettings}; - -#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Clone, Copy, Default)] -pub enum HeadlineSize { - XSmall, - Small, - #[default] - Medium, - Large, - XLarge, -} - -impl HeadlineSize { - pub fn size(self) -> Rems { - match self { - // Based on the Major Second scale - Self::XSmall => rems(0.88), - Self::Small => rems(1.0), - Self::Medium => rems(1.125), - Self::Large => rems(1.27), - Self::XLarge => rems(1.43), - } - } - - pub fn line_height(self) -> Rems { - match self { - Self::XSmall => rems(1.6), - Self::Small => rems(1.6), - Self::Medium => rems(1.6), - Self::Large => rems(1.6), - Self::XLarge => rems(1.6), - } - } -} - -#[derive(IntoElement)] -pub struct Headline { - size: HeadlineSize, - text: SharedString, -} - -impl RenderOnce for Headline { - fn render(self, cx: &mut WindowContext) -> impl IntoElement { - let ui_font = ThemeSettings::get_global(cx).ui_font.family.clone(); - - div() - .font(ui_font) - .line_height(self.size.line_height()) - .text_size(self.size.size()) - .text_color(cx.theme().colors().text) - .child(self.text) - } -} - -impl Headline { - pub fn new(text: impl Into) -> Self { - Self { - size: HeadlineSize::default(), - text: text.into(), - } - } - - pub fn size(mut self, size: HeadlineSize) -> Self { - self.size = size; - self - } -} diff --git a/crates/ui/src/styles/typography.rs b/crates/ui/src/styles/typography.rs index 4819791b02..39937ebff1 100644 --- a/crates/ui/src/styles/typography.rs +++ b/crates/ui/src/styles/typography.rs @@ -1,4 +1,8 @@ -use gpui::{rems, Rems}; +use gpui::{ + div, rems, IntoElement, ParentElement, Rems, RenderOnce, SharedString, Styled, WindowContext, +}; +use settings::Settings; +use theme::{ActiveTheme, ThemeSettings}; #[derive(Debug, Default, Clone)] pub enum UiTextSize { @@ -33,3 +37,69 @@ impl UiTextSize { } } } + +#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Clone, Copy, Default)] +pub enum HeadlineSize { + XSmall, + Small, + #[default] + Medium, + Large, + XLarge, +} + +impl HeadlineSize { + pub fn size(self) -> Rems { + match self { + // Based on the Major Second scale + Self::XSmall => rems(0.88), + Self::Small => rems(1.0), + Self::Medium => rems(1.125), + Self::Large => rems(1.27), + Self::XLarge => rems(1.43), + } + } + + pub fn line_height(self) -> Rems { + match self { + Self::XSmall => rems(1.6), + Self::Small => rems(1.6), + Self::Medium => rems(1.6), + Self::Large => rems(1.6), + Self::XLarge => rems(1.6), + } + } +} + +#[derive(IntoElement)] +pub struct Headline { + size: HeadlineSize, + text: SharedString, +} + +impl RenderOnce for Headline { + fn render(self, cx: &mut WindowContext) -> impl IntoElement { + let ui_font = ThemeSettings::get_global(cx).ui_font.family.clone(); + + div() + .font(ui_font) + .line_height(self.size.line_height()) + .text_size(self.size.size()) + .text_color(cx.theme().colors().text) + .child(self.text) + } +} + +impl Headline { + pub fn new(text: impl Into) -> Self { + Self { + size: HeadlineSize::default(), + text: text.into(), + } + } + + pub fn size(mut self, size: HeadlineSize) -> Self { + self.size = size; + self + } +}