Layers/src/ui/layout.rs

77 lines
1.9 KiB
Rust

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),
}
}