chore(cosmic-theme): move Roundness to libcosmic
This commit is contained in:
parent
564ef834ce
commit
34326b3925
4 changed files with 104 additions and 71 deletions
|
|
@ -29,3 +29,51 @@ impl Default for CornerRadii {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Roundness options for the Cosmic theme
|
||||||
|
#[derive(Copy, Clone, Debug, Default, Eq, PartialEq, Serialize, Deserialize)]
|
||||||
|
pub enum Roundness {
|
||||||
|
/// Round style
|
||||||
|
#[default]
|
||||||
|
Round,
|
||||||
|
/// Slightly round style
|
||||||
|
SlightlyRound,
|
||||||
|
/// Square style
|
||||||
|
Square,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl From<Roundness> for CornerRadii {
|
||||||
|
fn from(value: Roundness) -> Self {
|
||||||
|
match value {
|
||||||
|
Roundness::Round => CornerRadii::default(),
|
||||||
|
Roundness::SlightlyRound => CornerRadii {
|
||||||
|
radius_0: [0.0; 4],
|
||||||
|
radius_xs: [2.0; 4],
|
||||||
|
radius_s: [8.0; 4],
|
||||||
|
radius_m: [8.0; 4],
|
||||||
|
radius_l: [8.0; 4],
|
||||||
|
radius_xl: [8.0; 4],
|
||||||
|
},
|
||||||
|
Roundness::Square => CornerRadii {
|
||||||
|
radius_0: [0.0; 4],
|
||||||
|
radius_xs: [2.0; 4],
|
||||||
|
radius_s: [2.0; 4],
|
||||||
|
radius_m: [2.0; 4],
|
||||||
|
radius_l: [2.0; 4],
|
||||||
|
radius_xl: [2.0; 4],
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl From<CornerRadii> for Roundness {
|
||||||
|
fn from(value: CornerRadii) -> Self {
|
||||||
|
if (value.radius_m[0] - 16.0).abs() < 0.01 {
|
||||||
|
Self::Round
|
||||||
|
} else if (value.radius_m[0] - 8.0).abs() < 0.01 {
|
||||||
|
Self::SlightlyRound
|
||||||
|
} else {
|
||||||
|
Self::Square
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,69 +0,0 @@
|
||||||
use crate::Spacing;
|
|
||||||
use serde::{Deserialize, Serialize};
|
|
||||||
|
|
||||||
/// Density options for the Cosmic theme
|
|
||||||
#[derive(Copy, Clone, Debug, Default, Eq, PartialEq, Serialize, Deserialize)]
|
|
||||||
pub enum Density {
|
|
||||||
/// Lower padding/spacing of elements
|
|
||||||
Compact,
|
|
||||||
/// Higher padding/spacing of elements
|
|
||||||
Spacious,
|
|
||||||
/// Standard padding/spacing of elements
|
|
||||||
#[default]
|
|
||||||
Standard,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl From<Density> for Spacing {
|
|
||||||
fn from(value: Density) -> Self {
|
|
||||||
match value {
|
|
||||||
Density::Compact => Spacing {
|
|
||||||
space_none: 0,
|
|
||||||
space_xxxs: 4,
|
|
||||||
space_xxs: 4,
|
|
||||||
space_xs: 8,
|
|
||||||
space_s: 8,
|
|
||||||
space_m: 16,
|
|
||||||
space_l: 24,
|
|
||||||
space_xl: 32,
|
|
||||||
space_xxl: 48,
|
|
||||||
space_xxxl: 64,
|
|
||||||
},
|
|
||||||
Density::Spacious => Spacing {
|
|
||||||
space_none: 4,
|
|
||||||
space_xxxs: 8,
|
|
||||||
space_xxs: 12,
|
|
||||||
space_xs: 16,
|
|
||||||
space_s: 24,
|
|
||||||
space_m: 32,
|
|
||||||
space_l: 48,
|
|
||||||
space_xl: 64,
|
|
||||||
space_xxl: 128,
|
|
||||||
space_xxxl: 160,
|
|
||||||
},
|
|
||||||
Density::Standard => Spacing {
|
|
||||||
space_none: 0,
|
|
||||||
space_xxxs: 4,
|
|
||||||
space_xxs: 8,
|
|
||||||
space_xs: 12,
|
|
||||||
space_s: 16,
|
|
||||||
space_m: 24,
|
|
||||||
space_l: 32,
|
|
||||||
space_xl: 48,
|
|
||||||
space_xxl: 64,
|
|
||||||
space_xxxl: 128,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl From<Spacing> for Density {
|
|
||||||
fn from(value: Spacing) -> Self {
|
|
||||||
if value.space_m.saturating_sub(16) == 0 {
|
|
||||||
Self::Compact
|
|
||||||
} else if value.space_m.saturating_sub(24) == 0 {
|
|
||||||
Self::Standard
|
|
||||||
} else {
|
|
||||||
Self::Spacious
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
pub use corner::*;
|
pub use corner::*;
|
||||||
pub use cosmic_palette::*;
|
pub use cosmic_palette::*;
|
||||||
pub use density::*;
|
|
||||||
pub use derivation::*;
|
pub use derivation::*;
|
||||||
pub use mode::*;
|
pub use mode::*;
|
||||||
pub use spacing::*;
|
pub use spacing::*;
|
||||||
|
|
@ -8,7 +7,6 @@ pub use theme::*;
|
||||||
|
|
||||||
mod corner;
|
mod corner;
|
||||||
mod cosmic_palette;
|
mod cosmic_palette;
|
||||||
mod density;
|
|
||||||
mod derivation;
|
mod derivation;
|
||||||
mod mode;
|
mod mode;
|
||||||
mod spacing;
|
mod spacing;
|
||||||
|
|
|
||||||
|
|
@ -41,3 +41,59 @@ impl Default for Spacing {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Density options for the Cosmic theme
|
||||||
|
#[derive(Copy, Clone, Debug, Default, Eq, PartialEq, Serialize, Deserialize)]
|
||||||
|
pub enum Density {
|
||||||
|
/// Lower padding/spacing of elements
|
||||||
|
Compact,
|
||||||
|
/// Standard padding/spacing of elements
|
||||||
|
#[default]
|
||||||
|
Standard,
|
||||||
|
/// Higher padding/spacing of elements
|
||||||
|
Spacious,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl From<Density> for Spacing {
|
||||||
|
fn from(value: Density) -> Self {
|
||||||
|
match value {
|
||||||
|
Density::Compact => Spacing {
|
||||||
|
space_none: 0,
|
||||||
|
space_xxxs: 4,
|
||||||
|
space_xxs: 4,
|
||||||
|
space_xs: 8,
|
||||||
|
space_s: 8,
|
||||||
|
space_m: 16,
|
||||||
|
space_l: 24,
|
||||||
|
space_xl: 32,
|
||||||
|
space_xxl: 48,
|
||||||
|
space_xxxl: 64,
|
||||||
|
},
|
||||||
|
Density::Standard => Spacing::default(),
|
||||||
|
Density::Spacious => Spacing {
|
||||||
|
space_none: 4,
|
||||||
|
space_xxxs: 8,
|
||||||
|
space_xxs: 12,
|
||||||
|
space_xs: 16,
|
||||||
|
space_s: 24,
|
||||||
|
space_m: 32,
|
||||||
|
space_l: 48,
|
||||||
|
space_xl: 64,
|
||||||
|
space_xxl: 128,
|
||||||
|
space_xxxl: 160,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl From<Spacing> for Density {
|
||||||
|
fn from(value: Spacing) -> Self {
|
||||||
|
if value.space_m.saturating_sub(16) == 0 {
|
||||||
|
Self::Compact
|
||||||
|
} else if value.space_m.saturating_sub(24) == 0 {
|
||||||
|
Self::Standard
|
||||||
|
} else {
|
||||||
|
Self::Spacious
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue