leptos_daisyui_rs/components/file_input/style.rs
1/// # File Input Style Variants
2///
3/// Style enum for daisyUI file input style classes that control the visual appearance
4/// of file input components.
5#[derive(Clone, Debug, Default)]
6pub enum FileInputStyle {
7 /// Default file input style (no style class applied)
8 #[default]
9 Default,
10
11 /// Ghost style with transparent background
12 Ghost,
13}
14
15impl FileInputStyle {
16 /// CSS class string
17 pub fn as_str(&self) -> &'static str {
18 match self {
19 FileInputStyle::Default => "",
20 FileInputStyle::Ghost => "file-input-ghost",
21 }
22 }
23}
24
25/// # File Input Color Variants
26///
27/// Style enum for daisyUI file input color classes that control the semantic color scheme
28/// of file input components. Colors follow daisyUI's semantic system for context and meaning.
29#[derive(Clone, Debug, Default)]
30pub enum FileInputColor {
31 /// Default file input color (no color class applied)
32 #[default]
33 Default,
34
35 /// Neutral color for subdued file inputs
36 Neutral,
37
38 /// Primary brand color for main action file inputs
39 Primary,
40
41 /// Secondary brand color for secondary file inputs
42 Secondary,
43
44 /// Accent brand color for highlighted file inputs
45 Accent,
46
47 /// Info color for informational file inputs
48 Info,
49
50 /// Success color for positive action file inputs
51 Success,
52
53 /// Warning color for cautionary file inputs
54 Warning,
55
56 /// Error color for error state file inputs
57 Error,
58}
59
60impl FileInputColor {
61 /// CSS class string
62 pub fn as_str(&self) -> &'static str {
63 match self {
64 FileInputColor::Default => "",
65 FileInputColor::Neutral => "file-input-neutral",
66 FileInputColor::Primary => "file-input-primary",
67 FileInputColor::Secondary => "file-input-secondary",
68 FileInputColor::Accent => "file-input-accent",
69 FileInputColor::Info => "file-input-info",
70 FileInputColor::Success => "file-input-success",
71 FileInputColor::Warning => "file-input-warning",
72 FileInputColor::Error => "file-input-error",
73 }
74 }
75}
76
77/// # File Input Size Variants
78///
79/// Style enum for daisyUI file input size classes that control the physical dimensions
80/// of file input components. Sizes scale proportionally for various contexts.
81#[derive(Clone, Debug, Default)]
82pub enum FileInputSize {
83 /// Extra small size for compact layouts
84 Xs,
85
86 /// Small size for minimal space usage
87 Sm,
88
89 /// Medium size for standard usage
90 #[default]
91 Md,
92
93 /// Large size for emphasis and visibility
94 Lg,
95
96 /// Extra large size for prominent display
97 Xl,
98}
99
100impl FileInputSize {
101 /// CSS class string
102 pub fn as_str(&self) -> &'static str {
103 match self {
104 FileInputSize::Xs => "file-input-xs",
105 FileInputSize::Sm => "file-input-sm",
106 FileInputSize::Md => "file-input-md",
107 FileInputSize::Lg => "file-input-lg",
108 FileInputSize::Xl => "file-input-xl",
109 }
110 }
111}