use crate::{colors, tokens};

pub struct Root {
	pub shadow_small: tokens::Shadow,
	pub shadow_medium: tokens::Shadow,
	pub font_family_display: tokens::FontFamily,
	pub font_family_serif: tokens::FontFamily,
	pub font_family_sans: tokens::FontFamily,
	pub font_family_mono: tokens::FontFamily,
	pub font_feature_settings_display: tokens::FontFeatureSettings,
	pub font_feature_settings_serif: tokens::FontFeatureSettings,
	pub font_feature_settings_sans: tokens::FontFeatureSettings,
	pub font_feature_settings_mono: tokens::FontFeatureSettings,
	pub font_weight_display: tokens::FontWeight,
	pub font_weight_serif: tokens::FontWeight,
	pub font_weight_sans: tokens::FontWeight,
	pub font_weight_mono: tokens::FontWeight,
	pub font_variation_settings_display: tokens::FontVariationSettings,
	pub font_variation_settings_serif: tokens::FontVariationSettings,
	pub font_variation_settings_sans: tokens::FontVariationSettings,
	pub font_variation_settings_mono: tokens::FontVariationSettings,
}

pub fn get_theme() -> tokens::Tokens {
	let root: Root = Root {
		shadow_small: tokens::Shadow::from(
			tokens::Dimension::from(tokens::Number::from(0_u8), tokens::DimensionalUnit::Px),
			tokens::Dimension::from(tokens::Number::from(2_u8), tokens::DimensionalUnit::Px),
			tokens::Dimension::from(tokens::Number::from(10_u8), tokens::DimensionalUnit::Px),
			tokens::Dimension::from(tokens::Number::from(-8_i8), tokens::DimensionalUnit::Px),
			colors::Color::from(
				colors::ColorSpace::Srgb,
				[
					0.047058823529411764_f32,
					0.050980392156862744_f32,
					0.06274509803921569_f32,
				],
				Some(1_f32),
				Some("#0c0d10"),
			),
			None,
		),
		shadow_medium: tokens::Shadow::from(
			tokens::Dimension::from(tokens::Number::from(0_u8), tokens::DimensionalUnit::Px),
			tokens::Dimension::from(tokens::Number::from(4_u8), tokens::DimensionalUnit::Px),
			tokens::Dimension::from(tokens::Number::from(10_u8), tokens::DimensionalUnit::Px),
			tokens::Dimension::from(tokens::Number::from(-6_i8), tokens::DimensionalUnit::Px),
			colors::Color::from(
				colors::ColorSpace::Srgb,
				[
					0.047058823529411764_f32,
					0.050980392156862744_f32,
					0.06274509803921569_f32,
				],
				Some(1_f32),
				Some("#0c0d10"),
			),
			None,
		),
		font_family_display: tokens::FontFamily::from(&[
			"Source Serif 4 Display",
			"Abril Fatface",
			"Playfair Display",
			"Times New Roman",
			"ui-serif",
			"serif",
		]),
		font_family_serif: tokens::FontFamily::from(&[
			"Source Serif Variable",
			"Source Serif 4",
			"IBM Plex Serif",
			"Charis SIL",
			"Georgia",
			"Times New Roman",
			"ui-serif",
			"serif",
		]),
		font_family_sans: tokens::FontFamily::from(&[
			"Source Sans Variable",
			"Source Sans 3",
			"IBM Plex Sans",
			"Fira Sans",
			"Rambla",
			"PT Sans",
			"ui-sans-serif",
			"sans-serif",
		]),
		font_family_mono: tokens::FontFamily::from(&[
			"Source Code VF",
			"Source Code Pro",
			"Fira Code",
			"Red Hat Mono",
			"ui-monospace",
			"monospace",
		]),
		font_feature_settings_display: tokens::FontFeatureSettings::from(
			None,
			Some(vec![tokens::StylisticSet::from(tokens::StylisticSetId::Ss02, true)]),
			None,
		),
		font_feature_settings_serif: tokens::FontFeatureSettings::from(
			None,
			Some(vec![tokens::StylisticSet::from(tokens::StylisticSetId::Ss02, true)]),
			None,
		),
		font_feature_settings_sans: tokens::FontFeatureSettings::from(
			None,
			Some(vec![tokens::StylisticSet::from(tokens::StylisticSetId::Ss10, true)]),
			None,
		),
		font_feature_settings_mono: tokens::FontFeatureSettings::from(
			None,
			Some(vec![tokens::StylisticSet::from(tokens::StylisticSetId::Ss06, true)]),
			None,
		),
		font_weight_display: tokens::FontWeight::W600,
		font_weight_serif: tokens::FontWeight::W600,
		font_weight_sans: tokens::FontWeight::W400,
		font_weight_mono: tokens::FontWeight::W400,
		font_variation_settings_display: tokens::FontVariationSettings::from(None, None, None, None, None),
		font_variation_settings_serif: tokens::FontVariationSettings::from(None, None, None, None, Some(45_f32)),
		font_variation_settings_sans: tokens::FontVariationSettings::from(None, None, None, None, None),
		font_variation_settings_mono: tokens::FontVariationSettings::from(None, None, None, None, None),
	};

	let theme: tokens::Tokens = tokens::Tokens {
		color: Some(tokens::TokenColor {
			background: Some(tokens::ElementContainer {
				header: Some(tokens::StateContainer {
					highlight: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Color(colors::ORANGE_MEDIUM),
						..Default::default()
					}),
					..Default::default()
				}),
				paragraph: Some(tokens::StateContainer {
					highlight: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Color(colors::ORANGE_MEDIUM),
						..Default::default()
					}),
					..Default::default()
				}),
				code: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Color(colors::DARK_3),
						..Default::default()
					}),
					..Default::default()
				}),
				side: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Color(colors::DARK_5),
						..Default::default()
					}),
					..Default::default()
				}),
				panel: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Color(colors::DARK_6),
						..Default::default()
					}),
					..Default::default()
				}),
				button: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Color(colors::PURPLE_MEDIUM),
						v1: Some(tokens::ValueContainer::Color(colors::PURPLE_MEDIUM)),
						v2: Some(tokens::ValueContainer::Color(colors::PURPLE_MEDIUM)),
						..Default::default()
					}),
					hover: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Color(colors::PURPLE_LIGHT),
						v1: Some(tokens::ValueContainer::Color(colors::PURPLE_LIGHT)),
						v2: Some(tokens::ValueContainer::Color(colors::PURPLE_LIGHT)),
						..Default::default()
					}),
					..Default::default()
				}),
				tab: Some(tokens::StateContainer {
					active: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Color(colors::DARK_2),
						..Default::default()
					}),
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Color(colors::DARK_4),
						..Default::default()
					}),
					hover: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Color(colors::DARK_5),
						..Default::default()
					}),
					..Default::default()
				}),
				link: Some(tokens::StateContainer {
					highlight: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Color(colors::PURPLE_MEDIUM),
						..Default::default()
					}),
					..Default::default()
				}),
				..Default::default()
			}),
			border: Some(tokens::ElementContainer {
				tab: Some(tokens::StateContainer {
					active: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Color(colors::ORANGE_MEDIUM),
						..Default::default()
					}),
					inactive: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Color(colors::DARK_4),
						..Default::default()
					}),
					..Default::default()
				}),
				window: Some(tokens::StateContainer {
					active: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Color(colors::ORANGE_MEDIUM),
						..Default::default()
					}),
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Color(colors::DARK_4),
						..Default::default()
					}),
					..Default::default()
				}),
				button: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Color(colors::PURPLE_MEDIUM),
						v1: Some(tokens::ValueContainer::Color(colors::PURPLE_MEDIUM)),
						v2: Some(tokens::ValueContainer::Color(colors::PURPLE_MEDIUM)),
						..Default::default()
					}),
					..Default::default()
				}),
				..Default::default()
			}),
			text: Some(tokens::TextElementContainer {
				caption: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Color(colors::LIGHT_6),
						..Default::default()
					}),
					..Default::default()
				}),
				paragraph: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Color(colors::LIGHT_4),
						..Default::default()
					}),
					highlight: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Color(colors::LIGHT_1),
						..Default::default()
					}),
					..Default::default()
				}),
				link: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Color(colors::PURPLE_MEDIUM),
						..Default::default()
					}),
					hover: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Color(colors::PURPLE_LIGHT),
						..Default::default()
					}),
					active: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Color(colors::PURPLE_EXTRA_LIGHT),
						..Default::default()
					}),
					visit: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Color(colors::PURPLE_DARK),
						..Default::default()
					}),
					highlight: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Color(colors::LIGHT_2),
						..Default::default()
					}),
					..Default::default()
				}),
				button: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Color(colors::LIGHT_1),
						v1: Some(tokens::ValueContainer::Color(colors::LIGHT_1)),
						v2: Some(tokens::ValueContainer::Color(colors::LIGHT_1)),
						..Default::default()
					}),
					hover: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Color(colors::LIGHT_1),
						v1: Some(tokens::ValueContainer::Color(colors::LIGHT_1)),
						v2: Some(tokens::ValueContainer::Color(colors::LIGHT_1)),
						..Default::default()
					}),
					..Default::default()
				}),
				tab: Some(tokens::StateContainer {
					hover: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Color(colors::ORANGE_MEDIUM),
						..Default::default()
					}),
					active: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Color(colors::ORANGE_MEDIUM),
						..Default::default()
					}),
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Color(colors::LIGHT_4),
						..Default::default()
					}),
					..Default::default()
				}),
				header: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Color(colors::LIGHT_4),
						..Default::default()
					}),
					highlight: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Color(colors::LIGHT_1),
						..Default::default()
					}),
					..Default::default()
				}),
				label: Some(tokens::StateContainer {
					success: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Color(colors::GREEN_MEDIUM),
						..Default::default()
					}),
					error: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Color(colors::RED_MEDIUM),
						..Default::default()
					}),
					..Default::default()
				}),
				..Default::default()
			}),
			text_decoration_color: Some(tokens::TextElementContainer {
				link: Some(tokens::StateContainer {
					highlight: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Color(colors::LIGHT_1),
						..Default::default()
					}),
					visit: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Color(colors::PURPLE_EXTRA_DARK),
						..Default::default()
					}),
					..Default::default()
				}),
				..Default::default()
			}),
			..Default::default()
		}),
		space: Some(tokens::TokenSpace {
			border_width: Some(tokens::ElementContainer {
				button: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Dimension(tokens::Dimension::from(
							tokens::Number::from(2_u8),
							tokens::DimensionalUnit::Px,
						)),
						..Default::default()
					}),
					..Default::default()
				}),
				..Default::default()
			}),
			max_width: Some(tokens::ElementContainer {
				paragraph: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Dimension(tokens::Dimension::from(
							tokens::Number::from(760_u16),
							tokens::DimensionalUnit::Px,
						)),
						..Default::default()
					}),
					..Default::default()
				}),
				list: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Dimension(tokens::Dimension::from(
							tokens::Number::from(760_u16),
							tokens::DimensionalUnit::Px,
						)),
						..Default::default()
					}),
					..Default::default()
				}),
				..Default::default()
			}),
			border_radius: Some(tokens::ElementContainer {
				code: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Dimension(tokens::Dimension::from(
							tokens::Number::from(4_u8),
							tokens::DimensionalUnit::Px,
						)),
						..Default::default()
					}),
					..Default::default()
				}),
				panel: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Dimension(tokens::Dimension::from(
							tokens::Number::from(1_u8),
							tokens::DimensionalUnit::Rem,
						)),
						..Default::default()
					}),
					..Default::default()
				}),
				..Default::default()
			}),
			padding: Some(tokens::ElementContainer {
				code: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Dimension(tokens::Dimension::from(
							tokens::Number::from(3_u8),
							tokens::DimensionalUnit::Px,
						)),
						..Default::default()
					}),
					..Default::default()
				}),
				panel: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Dimension(tokens::Dimension::from(
							tokens::Number::from(1_u8),
							tokens::DimensionalUnit::Rem,
						)),
						..Default::default()
					}),
					..Default::default()
				}),
				header: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Dimension(tokens::Dimension::from(
							tokens::Number::from(0_u8),
							tokens::DimensionalUnit::Px,
						)),
						..Default::default()
					}),
					..Default::default()
				}),
				..Default::default()
			}),
			margin_left: Some(tokens::ElementContainer {
				entry: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Dimension(tokens::Dimension::from(
							tokens::Number::from(0.5_f32),
							tokens::DimensionalUnit::Rem,
						)),
						..Default::default()
					}),
					..Default::default()
				}),
				..Default::default()
			}),
			margin_block: Some(tokens::ElementContainer {
				paragraph: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Dimension(tokens::Dimension::from(
							tokens::Number::from(0.6_f32),
							tokens::DimensionalUnit::Rem,
						)),
						..Default::default()
					}),
					..Default::default()
				}),
				entry: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Dimension(tokens::Dimension::from(
							tokens::Number::from(0.6_f32),
							tokens::DimensionalUnit::Rem,
						)),
						..Default::default()
					}),
					..Default::default()
				}),
				..Default::default()
			}),
			..Default::default()
		}),
		typo: Some(tokens::TokenTypo {
			font_family: Some(tokens::TextElementContainer {
				paragraph: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::FontFamily(root.font_family_sans.clone()),
						..Default::default()
					}),
					..Default::default()
				}),
				link: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::FontFamily(root.font_family_sans.clone()),
						..Default::default()
					}),
					..Default::default()
				}),
				badge: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::FontFamily(root.font_family_sans.clone()),
						..Default::default()
					}),
					..Default::default()
				}),
				button: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::FontFamily(root.font_family_sans.clone()),
						..Default::default()
					}),
					..Default::default()
				}),
				caption: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::FontFamily(root.font_family_sans.clone()),
						..Default::default()
					}),
					..Default::default()
				}),
				entry: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::FontFamily(root.font_family_sans.clone()),
						..Default::default()
					}),
					..Default::default()
				}),
				header: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::FontFamily(root.font_family_serif.clone()),
						v1: Some(tokens::ValueContainer::FontFamily(root.font_family_serif.clone())),
						v2: Some(tokens::ValueContainer::FontFamily(root.font_family_serif.clone())),
						v3: Some(tokens::ValueContainer::FontFamily(root.font_family_serif.clone())),
						v4: Some(tokens::ValueContainer::FontFamily(root.font_family_serif.clone())),
						v5: Some(tokens::ValueContainer::FontFamily(root.font_family_serif.clone())),
						v6: Some(tokens::ValueContainer::FontFamily(root.font_family_serif.clone())),
						..Default::default()
					}),
					..Default::default()
				}),
				code: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::FontFamily(root.font_family_mono.clone()),
						..Default::default()
					}),
					..Default::default()
				}),
				..Default::default()
			}),
			font_weight: Some(tokens::TextElementContainer {
				header: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::FontWeight(root.font_weight_display.clone()),
						v1: Some(tokens::ValueContainer::FontWeight(root.font_weight_display.clone())),
						v2: Some(tokens::ValueContainer::FontWeight(root.font_weight_display.clone())),
						v3: Some(tokens::ValueContainer::FontWeight(root.font_weight_display.clone())),
						v4: Some(tokens::ValueContainer::FontWeight(root.font_weight_display.clone())),
						v5: Some(tokens::ValueContainer::FontWeight(root.font_weight_display.clone())),
						v6: Some(tokens::ValueContainer::FontWeight(root.font_weight_display.clone())),
						..Default::default()
					}),
					..Default::default()
				}),
				paragraph: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::FontWeight(root.font_weight_sans.clone()),
						..Default::default()
					}),
					..Default::default()
				}),
				code: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::FontWeight(root.font_weight_sans.clone()),
						..Default::default()
					}),
					..Default::default()
				}),
				..Default::default()
			}),
			font_size: Some(tokens::TextElementContainer {
				small: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Dimension(tokens::Dimension::from(
							tokens::Number::from(15.11_f32),
							tokens::DimensionalUnit::Px,
						)),
						v1: Some(tokens::ValueContainer::Dimension(tokens::Dimension::from(
							tokens::Number::from(15.11_f32),
							tokens::DimensionalUnit::Px,
						))),
						..Default::default()
					}),
					..Default::default()
				}),
				paragraph: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Dimension(tokens::Dimension::from(
							tokens::Number::from(17_u8),
							tokens::DimensionalUnit::Px,
						)),
						v1: Some(tokens::ValueContainer::Dimension(tokens::Dimension::from(
							tokens::Number::from(17_u8),
							tokens::DimensionalUnit::Px,
						))),
						..Default::default()
					}),
					..Default::default()
				}),
				header: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Dimension(tokens::Dimension::from(
							tokens::Number::from(34.46_f32),
							tokens::DimensionalUnit::Px,
						)),
						v1: Some(tokens::ValueContainer::Dimension(tokens::Dimension::from(
							tokens::Number::from(34.46_f32),
							tokens::DimensionalUnit::Px,
						))),
						v2: Some(tokens::ValueContainer::Dimension(tokens::Dimension::from(
							tokens::Number::from(34.46_f32),
							tokens::DimensionalUnit::Px,
						))),
						v3: Some(tokens::ValueContainer::Dimension(tokens::Dimension::from(
							tokens::Number::from(34.46_f32),
							tokens::DimensionalUnit::Px,
						))),
						v4: Some(tokens::ValueContainer::Dimension(tokens::Dimension::from(
							tokens::Number::from(34.46_f32),
							tokens::DimensionalUnit::Px,
						))),
						v5: Some(tokens::ValueContainer::Dimension(tokens::Dimension::from(
							tokens::Number::from(34.46_f32),
							tokens::DimensionalUnit::Px,
						))),
						v6: Some(tokens::ValueContainer::Dimension(tokens::Dimension::from(
							tokens::Number::from(34.46_f32),
							tokens::DimensionalUnit::Px,
						))),
						..Default::default()
					}),
					..Default::default()
				}),
				..Default::default()
			}),
			font_variation_settings: Some(tokens::TextElementContainer {
				header: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::FontVariationSettings(root.font_variation_settings_serif.clone()),
						v2: Some(tokens::ValueContainer::FontVariationSettings(
							root.font_variation_settings_serif.clone(),
						)),
						v3: Some(tokens::ValueContainer::FontVariationSettings(
							root.font_variation_settings_serif.clone(),
						)),
						v4: Some(tokens::ValueContainer::FontVariationSettings(
							root.font_variation_settings_serif.clone(),
						)),
						v5: Some(tokens::ValueContainer::FontVariationSettings(
							root.font_variation_settings_serif.clone(),
						)),
						v6: Some(tokens::ValueContainer::FontVariationSettings(
							root.font_variation_settings_serif.clone(),
						)),
						..Default::default()
					}),
					..Default::default()
				}),
				..Default::default()
			}),
			font_feature_settings: Some(tokens::TextElementContainer {
				paragraph: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::FontFeatureSettings(root.font_feature_settings_sans.clone()),
						..Default::default()
					}),
					..Default::default()
				}),
				link: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::FontFeatureSettings(root.font_feature_settings_sans.clone()),
						..Default::default()
					}),
					..Default::default()
				}),
				badge: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::FontFeatureSettings(root.font_feature_settings_sans.clone()),
						..Default::default()
					}),
					..Default::default()
				}),
				button: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::FontFeatureSettings(root.font_feature_settings_sans.clone()),
						..Default::default()
					}),
					..Default::default()
				}),
				caption: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::FontFeatureSettings(root.font_feature_settings_sans.clone()),
						..Default::default()
					}),
					..Default::default()
				}),
				entry: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::FontFeatureSettings(root.font_feature_settings_sans.clone()),
						..Default::default()
					}),
					..Default::default()
				}),
				header: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::FontFeatureSettings(root.font_feature_settings_display.clone()),
						..Default::default()
					}),
					..Default::default()
				}),
				code: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::FontFeatureSettings(root.font_feature_settings_mono.clone()),
						..Default::default()
					}),
					..Default::default()
				}),
				..Default::default()
			}),
			word_spacing: Some(tokens::TextElementContainer {
				paragraph: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Dimension(tokens::Dimension::from(
							tokens::Number::from(0.08_f32),
							tokens::DimensionalUnit::Rem,
						)),
						..Default::default()
					}),
					..Default::default()
				}),
				..Default::default()
			}),
			letter_spacing: Some(tokens::TextElementContainer {
				paragraph: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Dimension(tokens::Dimension::from(
							tokens::Number::from(0.02_f32),
							tokens::DimensionalUnit::Rem,
						)),
						..Default::default()
					}),
					..Default::default()
				}),
				..Default::default()
			}),
			font_variant_ligatures: Some(tokens::TextElementContainer {
				paragraph: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::FontVariantLigatures(
							tokens::FontVariantLigatures::NoCommonLigatures,
						),
						..Default::default()
					}),
					..Default::default()
				}),
				..Default::default()
			}),
			text_decoration_line: Some(tokens::TextElementContainer {
				header: Some(tokens::StateContainer {
					hover: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::TextDecorationLine(tokens::TextDecorationLine::None),
						..Default::default()
					}),
					..Default::default()
				}),
				link: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::TextDecorationLine(tokens::TextDecorationLine::None),
						..Default::default()
					}),
					hover: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::TextDecorationLine(tokens::TextDecorationLine::Underline),
						..Default::default()
					}),
					..Default::default()
				}),
				..Default::default()
			}),
			..Default::default()
		}),
		fx: Some(tokens::TokenFx {
			animation_timing_function: Some(tokens::ElementContainer {
				icon: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::CubicBezier(tokens::CubicBezier::from(
							0.252835273752_f32,
							0.89385320758_f32,
							0.252835273752_f32,
							0.89385320758_f32,
						)),
						..Default::default()
					}),
					..Default::default()
				}),
				..Default::default()
			}),
			box_shadow: Some(tokens::ElementContainer {
				panel: Some(tokens::StateContainer {
					normal: Some(tokens::VariantContainer {
						default: tokens::ValueContainer::Shadow(tokens::Shadow::from(
							tokens::Dimension::from(tokens::Number::from(0_u8), tokens::DimensionalUnit::Px),
							tokens::Dimension::from(tokens::Number::from(2_u8), tokens::DimensionalUnit::Px),
							tokens::Dimension::from(tokens::Number::from(10_u8), tokens::DimensionalUnit::Px),
							tokens::Dimension::from(tokens::Number::from(-8_i8), tokens::DimensionalUnit::Px),
							colors::DARK_1,
							None,
						)),
						..Default::default()
					}),
					..Default::default()
				}),
				..Default::default()
			}),
			..Default::default()
		}),
		..Default::default()
	};
	return theme;
}
