1#![doc(html_root_url = "https://docs.rs/rustyle-css/0.3.0")]
30
31#[cfg(feature = "csr")]
32#[cfg(feature = "csr")]
33pub mod csr;
34pub mod css;
35pub mod parser;
36pub mod reactive;
37pub mod responsive;
38pub mod scope;
39pub mod ssr;
40pub mod style;
41pub mod theme;
42pub mod tokens;
43pub use tokens::validation::{TokenInheritance, TokenRuntime, TokenValidator, ValidationResult};
44pub mod a11y;
45pub mod animation;
46pub mod components;
47pub mod composition;
48#[cfg(feature = "dev")]
49pub mod dev;
50pub mod dynamic;
51pub mod errors;
52pub mod lint;
53pub mod modules;
54pub mod optimization;
55pub mod testing;
56pub mod utils;
57pub mod view_transitions;
58
59pub use theme::{
61 apply_theme, apply_theme_with_transition, register_system_theme, system_theme_detection, Theme,
62 ThemeManager,
63};
64
65pub use rustyle_macros::{
67 container_style, global_style, keyframes, layer_style, media_style, style, style_signal,
68 style_with_vars,
69};
70pub use style::{register_global_style, register_style, Style};
75
76pub use css::at_rules::{CustomMediaRule, FontFaceRule, LayerRule, SupportsRule};
78pub use css::StyleBuilder;
79pub use css::{Color, FontSize, FontWeight, Length, Radius, Spacing};
80
81pub use tokens::DesignTokens;
83pub use tokens::{
84 AnimationTokens, BorderTokens, ColorTokens, ShadowTokens, SpacingTokens, TypographyTokens,
85};
86
87pub use view_transitions::{register_view_transition, ViewTransition, ViewTransitionName};
89
90pub use components::{
92 AlertStyle, BadgeStyle, ButtonStyle, CardStyle, ComponentStyle, DropdownStyle, InputStyle,
93 ModalStyle, PaginationStyle, ProgressStyle, SelectStyle, Size, SpinnerStyle, State, TableStyle,
94 TabsStyle, TextareaStyle, TooltipPosition, TooltipStyle, Variant,
95};
96
97pub use optimization::{extract_critical_css, minify_css, remove_unused_css};
99
100pub use a11y::contrast::{contrast_ratio, meets_wcag_aa, meets_wcag_aaa};
102pub use a11y::{reduced_motion_css, register_focus_styles, register_reduced_motion, FocusStyle};
103
104pub use animation::{AnimationState, AnimationStateMachine};
106#[cfg(feature = "csr")]
107pub use reactive::{create_reactive_style, ReactiveStyleBuilder};
108
109pub use composition::{MixinRegistry, StyleComposition, StyleMixin};
111
112pub use dynamic::DynamicStyleBuilder;
114
115pub use errors::{create_error_message, suggest_property, RustyleError};
117
118#[cfg(feature = "dev")]
120pub use dev::{hot_reload, DebugInfo, StyleInspector};
121
122pub use testing::{CssAssertions, StyleValidator};
124
125pub use lint::{ContrastLinter, CssLinter, LintResult, LintSeverity};
127
128pub use modules::{CssModule, CssModuleClasses, CssModuleLoader};
130
131pub fn init() {
133 let _ = style::StyleRegistry::get();
135}
136
137#[cfg(test)]
138mod tests {
139 use super::*;
140
141 #[test]
142 fn test_init() {
143 init();
144 }
145}