tailwind_css_fixes/modules/typography/font/
mod.rs1use super::*;
2
3pub(crate) mod font_family;
4pub(crate) mod font_size;
5pub(crate) mod font_smoothing;
6pub(crate) mod font_style;
7pub(crate) mod font_variant_numeric;
8pub(crate) mod font_weight;
9
10pub fn font_adaptor(pattern: &[&str], arbitrary: &TailwindArbitrary) -> Result<Box<dyn TailwindInstance>> {
11 let out = match pattern {
12 ["thin"] => TailwindFontWeight::THIN.boxed(),
14 ["extralight"] => TailwindFontWeight::EXTRA_LIGHT.boxed(),
15 ["light"] => TailwindFontWeight::LIGHT.boxed(),
16 ["normal"] => TailwindFontWeight::NORMAL.boxed(),
17 ["medium"] => TailwindFontWeight::MEDIUM.boxed(),
18 ["semibold"] => TailwindFontWeight::SEMI_BOLD.boxed(),
19 ["bold"] => TailwindFontWeight::BOLD.boxed(),
20 ["extrabold"] => TailwindFontWeight::EXTRA_BOLD.boxed(),
21 ["black"] => TailwindFontWeight::BLACK.boxed(),
22 ["size"] => maybe_size(arbitrary)?,
23 ["size", n] => {
24 let a = TailwindArbitrary::from(*n);
25 maybe_size(&a)?
26 },
27 [n] => {
28 let a = TailwindArbitrary::from(*n);
29 maybe_weight(&a).or_else(|_| maybe_size(&a))?
30 },
31 _ => TailwindFontFamily::from(pattern.join("-")).boxed(),
32 };
33 Ok(out)
34}
35
36fn maybe_weight(arbitrary: &TailwindArbitrary) -> Result<Box<dyn TailwindInstance>> {
37 let w = arbitrary.as_integer()?;
38 Ok(TailwindFontWeight::new(w).boxed())
39}
40
41fn maybe_size(arbitrary: &TailwindArbitrary) -> Result<Box<dyn TailwindInstance>> {
42 let w = arbitrary.as_integer()?;
43 Ok(TailwindFontWeight::new(w).boxed())
44}