Struct ThemeType
pub struct ThemeType {
pub face: String,
pub reading: String,
pub base_size: f32,
pub distinct_letters: Option<bool>,
pub contrast: f32,
pub weights: ThemeWeights,
}Expand description
The UI face, the reading face and the body size every text role derives from.
Fields§
§face: String§reading: StringThe Reading role’s face (crate::tokens::ReadingFace), by name.
base_size: f32§distinct_letters: Option<bool>“Always distinguish similar letters”: set I, l, 1 and 0, O apart in
all text, not only in identifiers, codes and links. None follows
the face: on with Hyperlegible, off otherwise
(Self::distinguishes_letters).
contrast: f32How far the role sizes stand apart: each role’s size is the body
size times its stock ratio to the body raised to this power. 1 is
the design language’s scale, below it titles come closer to body
text, above it they stand further off.
weights: ThemeWeightsThe weight of each weight tier.
Implementations§
§impl ThemeType
impl ThemeType
pub const STOCK_CONTRAST: f32 = 1.0
pub const STOCK_CONTRAST: f32 = 1.0
The stock spread of role sizes.
pub const CONTRAST_ADMITTED: RangeInclusive<f32>
pub const CONTRAST_ADMITTED: RangeInclusive<f32>
Band of role-size contrast a document may state: below it a title no longer reads larger than body text.
pub const ADMITTED: RangeInclusive<f32>
pub const ADMITTED: RangeInclusive<f32>
Band a document may state.
pub const USABLE: RangeInclusive<f32>
pub const USABLE: RangeInclusive<f32>
Band a theme is built at; a value outside it is clamped.
pub fn default_reading() -> String
pub fn default_reading() -> String
The stock reading face.
pub fn distinguishes_letters(&self) -> bool
pub fn distinguishes_letters(&self) -> bool
Whether this type sets every look-alike letter apart: the document’s own choice, else on exactly when the face is Hyperlegible — the face people choose to tell letters apart.
Trait Implementations§
§impl<'de> Deserialize<'de> for ThemeType
impl<'de> Deserialize<'de> for ThemeType
§fn deserialize<__D>(
__deserializer: __D,
) -> Result<ThemeType, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<ThemeType, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
§impl Serialize for ThemeType
impl Serialize for ThemeType
§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl StructuralPartialEq for ThemeType
Auto Trait Implementations§
impl Freeze for ThemeType
impl RefUnwindSafe for ThemeType
impl Send for ThemeType
impl Sync for ThemeType
impl Unpin for ThemeType
impl UnsafeUnpin for ThemeType
impl UnwindSafe for ThemeType
Blanket Implementations§
§impl<T> AnyEq for T
impl<T> AnyEq for T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSend for T
impl<T> DowncastSend for T
§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more