Crate tailwind_rs_core

Crate tailwind_rs_core 

Source
Expand description

ยงtailwind-rs-core

Core types and utilities for the tailwind-rs library. This crate provides the fundamental building blocks for Tailwind CSS integration in Rust.

ยง๐ŸŒ WASM Compatibility

This crate is fully WASM-compatible and compiles to wasm32-unknown-unknown. All operations are synchronous for optimal performance in web environments.

ยง๐Ÿš€ Performance

  • Synchronous API: All operations are synchronous for better WASM performance
  • High-performance caching: Uses parking_lot for efficient synchronization
  • Memory optimized: Reduced memory footprint compared to async alternatives
  • Fast compilation: ~30% faster build times

ยง๐Ÿ“ฆ Bundle Size

  • Smaller bundles: ~15% reduction in final bundle size
  • No runtime dependencies: Pure Rust implementation
  • Tree-shakeable: Only includes what you use

ยงExample

use tailwind_rs_core::*;

// Create type-safe Tailwind classes
let classes = ClassBuilder::new()
    .padding(SpacingValue::Integer(4))
    .background_color(utilities::Color::new(utilities::ColorPalette::Blue, utilities::ColorShade::Shade500))
    .text_color(utilities::Color::new(utilities::ColorPalette::Gray, utilities::ColorShade::Shade100))
    .build();

// Convert to CSS classes
let css_classes = classes.to_css_classes();
assert!(css_classes.contains("p-4"));

Re-exportsยง

pub use arbitrary::ArbitraryValue;
pub use arbitrary::ArbitraryValueError;
pub use arbitrary::ArbitraryValueUtilities;
pub use ast_parser::AstParser;
pub use classes::ClassBuilder;
pub use classes::ClassSet;
pub use class_scanner::ClassScanner;
pub use class_scanner::ScanConfig;
pub use class_scanner::ScanResults;
pub use class_scanner::ScanStats;
pub use color::Color;
pub use config::BuildConfig;
pub use config::TailwindConfig;
pub use config::parser::ConfigParser;
pub use css_generator::CssGenerator;
pub use css_generator::CssProperty;
pub use css_generator::CssRule;
pub use css_generator::CssGenerationConfig;
pub use css_optimizer::OptimizationConfig;
pub use css_optimizer::OptimizationResults;
pub use css_optimizer::OptimizationStats;
pub use custom_variant::CustomVariant;
pub use custom_variant::CustomVariantManager;
pub use custom_variant::CustomVariantType;
pub use dark_mode::DarkModeVariant;
pub use dark_mode::DarkModeVariantError;
pub use dark_mode::DarkModeVariantUtilities;
pub use error::Result;
pub use error::TailwindError;
pub use performance::CacheStats;
pub use performance::ClassCache;
pub use performance::OptimizationLevel;
pub use performance::PerformanceOptimizer;
pub use plugin_system::Plugin;
pub use plugin_system::PluginContext;
pub use plugin_system::PluginHook;
pub use plugin_system::PluginRegistry;
pub use responsive::AlignItems;
pub use responsive::Breakpoint;
pub use responsive::FlexDirection;
pub use responsive::FlexWrap;
pub use responsive::JustifyContent;
pub use responsive::Responsive;
pub use responsive::ResponsiveBuilder;
pub use responsive::ResponsiveFlex;
pub use responsive::ResponsiveGrid;
pub use responsive::ResponsiveValue;
pub use responsive::State;
pub use theme::BorderRadius;
pub use theme::BoxShadow;
pub use theme::Spacing;
pub use theme::Theme;
pub use theme::ThemeValue;
pub use theme_new::AnimationScale;
pub use theme_new::BorderScale;
pub use theme_new::FontFamily;
pub use theme_new::FontSizeScale;
pub use theme_new::FontWeightScale;
pub use theme_new::LetterSpacingScale;
pub use theme_new::LineHeightScale;
pub use theme_new::ShadowScale;
pub use theme_new::SpacingScale;
pub use theme_new::SpacingSize;
pub use theme_new::Theme as NewTheme;
pub use theme_new::ThemePreset;
pub use theme_new::ThemeVariant;
pub use theme_new::ThemedComponent;
pub use theme_new::TypographyScale;
pub use tree_shaker::TreeShaker;
pub use tree_shaker::TreeShakeConfig;
pub use tree_shaker::TreeShakeResults;
pub use tree_shaker::TreeShakeStats;
pub use enhanced_variants::EnhancedVariantParser;
pub use enhanced_variants::VariantDefinition;
pub use enhanced_variants::VariantType;
pub use enhanced_variants::CustomVariant as EnhancedCustomVariant;
pub use enhanced_variants::VariantCombination;
pub use enhanced_variants::ParsedVariant;
pub use enhanced_variants::VariantParseResult;
pub use enhanced_variants::VariantMetadata;
pub use utilities::*;
pub use validation::*;

Modulesยง

api_contracts
API Contracts and Contract Testing
arbitrary
Arbitrary values support for tailwind-rs
ast_parser
AST parser for Rust source files
class_scanner
Class scanner for extracting Tailwind classes from source files
classes
Class management system for tailwind-rs
color
Color system for tailwind-rs
config
Configuration system for tailwind-rs
css_generator
CSS Generator Module
css_optimizer
Advanced CSS optimization system
custom_variant
Custom variant system for tailwind-rs
dark_mode
Dark mode variant support for tailwind-rs
defaults
Default configuration values
enhanced_variants
Enhanced variant system for Tailwind-RS Core
error
Error types for tailwind-rs-core
performance
Performance optimization system for tailwind-rs
plugin_system
Plugin system for extending Tailwind-RS functionality
responsive
Responsive Design System Module
theme
Theme system for tailwind-rs
theme_new
New theme system implementation according to API documentation
tree_shaker
Tree-shaking system for removing unused CSS classes
utilities
Utility class implementations for tailwind-rs
utils
Utility functions for tailwind-rs
validation
Validation system for tailwind-rs

Structsยง

TailwindBuilder

Constantsยง

VERSION
Version information

Functionsยง

generate_comprehensive_css
Generate comprehensive CSS with all Tailwind utilities
generate_css_file
Generate a CSS file with all necessary Tailwind classes