use iced_wgpu::core::Padding; pub const BASE_FONT: f32 = 13.0; pub const DEFAULT_FONT: f32 = 13.0; #[inline] pub fn u(px_at_base: f32, font_size: f32) -> f32 { px_at_base * font_size / BASE_FONT } pub mod ratio { pub const GAP_XS: f32 = 2.0; pub const GAP_SM: f32 = 4.0; pub const GAP_MD: f32 = 6.0; pub const GAP_LG: f32 = 8.0; pub const GAP_XL: f32 = 12.0; pub const GAP_XXL: f32 = 16.0; pub const LINE: f32 = 16.0; pub const LINE_SM: f32 = 14.0; pub const LINE_XS: f32 = 12.0; pub const ICON_SM: f32 = 14.0; pub const ICON_MD: f32 = 16.0; pub const BTN_H: f32 = 22.0; pub const PREVIEW_W: f32 = 128.0; pub const PREVIEW_H: f32 = 80.0; pub const ROW_PAD_V: f32 = 4.0; pub const ROW_PAD_H: f32 = 4.0; pub const ROW_GAP: f32 = 8.0; pub const TITLE_PAD: f32 = 28.0; pub const DIALOG_W: f32 = 320.0; } #[inline] pub fn font_primary(fs: f32) -> f32 { fs } #[inline] pub fn font_small(fs: f32) -> f32 { u(11.0, fs) } #[inline] pub fn font_tiny(fs: f32) -> f32 { u(10.0, fs) } #[inline] pub fn font_heading(fs: f32) -> f32 { u(14.0, fs) } #[inline] pub fn gap_xs(fs: f32) -> f32 { u(ratio::GAP_XS, fs) } #[inline] pub fn gap_sm(fs: f32) -> f32 { u(ratio::GAP_SM, fs) } #[inline] pub fn gap_md(fs: f32) -> f32 { u(ratio::GAP_MD, fs) } #[inline] pub fn gap_lg(fs: f32) -> f32 { u(ratio::GAP_LG, fs) } #[inline] pub fn gap_xl(fs: f32) -> f32 { u(ratio::GAP_XL, fs) } #[inline] pub fn preview_w(fs: f32) -> f32 { u(ratio::PREVIEW_W, fs) } #[inline] pub fn preview_h(fs: f32) -> f32 { u(ratio::PREVIEW_H, fs) } #[inline] pub fn pad_uniform(v: f32, fs: f32) -> Padding { Padding::new(u(v, fs)) } #[inline] pub fn pad(top: f32, right: f32, bottom: f32, left: f32, fs: f32) -> Padding { Padding { top: u(top, fs), right: u(right, fs), bottom: u(bottom, fs), left: u(left, fs), } }