wilday_ui 0.5.6 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ce15430e03ae29b5258790b0da153e819af5896b26e3f2756a89f15d91f859ef
4
- data.tar.gz: c5cc9e4f85f4ec22e71b8ee2c7f1b7126a8bc851b1ca2890e89a11d4e46559cf
3
+ metadata.gz: '0928d2614b52a959cfdf1a406c10f1de6f291788965ddaba3f48a08fb22283e2'
4
+ data.tar.gz: 977b7bf2c02855534294786824da27fdcd9fa1779f50eff26a8418af2998d938
5
5
  SHA512:
6
- metadata.gz: 00fb564bc214d114fd2024f5ebc3f4f7ddac21c469092f54293d16a73223c03744a4661f2aef1dac181d5fdaadbc255ae26922865c39d576d7da6935aa774c69
7
- data.tar.gz: 83746b5ac6ce439edd11bc724740561ee706d09c184af6f86fac633cc0439b8036a36688f7889636741ebe9f024b2547b5cd8a540bf5ca00d589012902731e3d
6
+ metadata.gz: 295649d8662a2057527c9a89e140a0a219f329d8133c8c25a843deb337a48b857c21a569ff0afca74ec2604e75f9c0ebbd7f4ba73cfc52700b64f4b4ee436b44
7
+ data.tar.gz: d4b5d7f4194d2f925c2ea5fa5f48368d4049e5b45c2b88ea59d468d5a93a10c0ce1ea4df426b07765af3c78a842cd62b43d49ded19b18a6581ce7735efb29b27
data/README.md CHANGED
@@ -4,6 +4,13 @@ WildayUI is a simple, minimalist, and customizable library of pre-built componen
4
4
  WildayUI's main goal is to provide **static components** (such as buttons, badges, etc.) and **dynamic components** (such as dropdowns, modals, etc.) that are easily customizable and extendable. Each page in the component documentation is divided into sections for static and dynamic components.
5
5
 
6
6
  ---
7
+
8
+ ## Demo
9
+
10
+ You can see a demo of WildayUI [here](https://wildayuidemo.onrender.com/).
11
+
12
+ ---
13
+
7
14
  ## Installation
8
15
  To start using Wilday UI, add it to your Gemfile:
9
16
  ```ruby
@@ -0,0 +1,109 @@
1
+ /* Predefined gradient variations */
2
+ .w-button-gradient-blue {
3
+ background: linear-gradient(135deg, #60a5fa, #3b82f6);
4
+ color: white;
5
+ }
6
+
7
+ .w-button-gradient-blue:hover {
8
+ background: linear-gradient(135deg, #3b82f6, #2563eb);
9
+ }
10
+
11
+ .w-button-gradient-purple {
12
+ background: linear-gradient(135deg, #c084fc, #a855f7);
13
+ color: white;
14
+ }
15
+
16
+ .w-button-gradient-purple:hover {
17
+ background: linear-gradient(135deg, #a855f7, #9333ea);
18
+ }
19
+
20
+ .w-button-gradient-green {
21
+ background: linear-gradient(135deg, #4ade80, #22c55e);
22
+ color: white;
23
+ }
24
+
25
+ .w-button-gradient-green:hover {
26
+ background: linear-gradient(135deg, #22c55e, #16a34a);
27
+ }
28
+
29
+ .w-button-gradient-sunset {
30
+ background: linear-gradient(135deg, #f97316, #ef4444);
31
+ color: white;
32
+ }
33
+
34
+ .w-button-gradient-sunset:hover {
35
+ background: linear-gradient(135deg, #ef4444, #dc2626);
36
+ }
37
+
38
+ /* New gradients */
39
+ .w-button-gradient-ocean {
40
+ background: linear-gradient(135deg, #0ea5e9, #2563eb);
41
+ color: white;
42
+ }
43
+
44
+ .w-button-gradient-ocean:hover {
45
+ background: linear-gradient(135deg, #0284c7, #1d4ed8);
46
+ }
47
+
48
+ .w-button-gradient-rose {
49
+ background: linear-gradient(135deg, #fb7185, #e11d48);
50
+ color: white;
51
+ }
52
+
53
+ .w-button-gradient-rose:hover {
54
+ background: linear-gradient(135deg, #f43f5e, #be123c);
55
+ }
56
+
57
+ .w-button-gradient-amber {
58
+ background: linear-gradient(135deg, #fbbf24, #d97706);
59
+ color: white;
60
+ }
61
+
62
+ .w-button-gradient-amber:hover {
63
+ background: linear-gradient(135deg, #f59e0b, #b45309);
64
+ }
65
+
66
+ .w-button-gradient-emerald {
67
+ background: linear-gradient(135deg, #34d399, #059669);
68
+ color: white;
69
+ }
70
+
71
+ .w-button-gradient-emerald:hover {
72
+ background: linear-gradient(135deg, #10b981, #047857);
73
+ }
74
+
75
+ .w-button-gradient-indigo {
76
+ background: linear-gradient(135deg, #818cf8, #4f46e5);
77
+ color: white;
78
+ }
79
+
80
+ .w-button-gradient-indigo:hover {
81
+ background: linear-gradient(135deg, #6366f1, #4338ca);
82
+ }
83
+
84
+ .w-button-gradient-slate {
85
+ background: linear-gradient(135deg, #64748b, #334155);
86
+ color: white;
87
+ }
88
+
89
+ .w-button-gradient-slate:hover {
90
+ background: linear-gradient(135deg, #475569, #1e293b);
91
+ }
92
+
93
+ /* Custom gradient support */
94
+ .w-button-gradient-custom {
95
+ transition: all 0.3s ease;
96
+ color: white;
97
+ }
98
+
99
+ .w-button-gradient-custom:hover {
100
+ filter: brightness(0.9);
101
+ transform: translateY(-1px);
102
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
103
+ }
104
+
105
+ .w-button-gradient-custom:active {
106
+ filter: brightness(0.85);
107
+ transform: translateY(0);
108
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
109
+ }
@@ -7,6 +7,7 @@
7
7
  *= require ./features/icons
8
8
  *= require ./features/loading
9
9
  *= require ./features/dropdown
10
+ *= require ./features/gradients
10
11
  */
11
12
 
12
13
  /* Your direct CSS code can go here */
@@ -25,6 +25,7 @@ module WildayUi
25
25
  variant: :solid,
26
26
  size: :medium,
27
27
  radius: :rounded,
28
+ gradient: nil,
28
29
  icon: nil,
29
30
  icon_position: :left,
30
31
  icon_only: false,
@@ -49,6 +50,12 @@ module WildayUi
49
50
  wrapper_data = {}
50
51
  wrapper_options = nil
51
52
 
53
+ # Process gradient styles if present
54
+ if gradient.present?
55
+ gradient_styles = process_gradient(gradient)
56
+ options[:style] = [ options[:style], gradient_styles ].compact.join(";") if gradient_styles.present?
57
+ end
58
+
52
59
  # Process theme styles
53
60
  if theme.present?
54
61
  theme_styles = process_theme(variant, theme)
@@ -58,17 +65,13 @@ module WildayUi
58
65
  variant_class = get_variant_class(variant)
59
66
  size_class = get_size_class(size)
60
67
  radius_class = get_radius_class(radius)
68
+ gradient_class = get_gradient_class(gradient)
61
69
 
62
70
  # Setup features that require Stimulus controllers
63
71
  active_features = determine_active_features(loading, dropdown, loading_text, use_default_controller)
64
72
 
65
- Rails.logger.debug "Active Features: #{active_features.inspect}"
66
- Rails.logger.debug "Options before setup: #{options.inspect}"
67
-
68
73
  setup_features(active_features, options, use_default_controller, loading_text)
69
74
 
70
- Rails.logger.debug "Options after setup: #{options.inspect}"
71
-
72
75
  setup_link_options(options, href, target, method)
73
76
 
74
77
  if dropdown
@@ -93,6 +96,7 @@ module WildayUi
93
96
  variant_class,
94
97
  size_class,
95
98
  radius_class,
99
+ gradient_class,
96
100
  icon,
97
101
  icon_position,
98
102
  icon_only,
@@ -147,6 +151,26 @@ module WildayUi
147
151
  }[radius] || "w-button-rounded"
148
152
  end
149
153
 
154
+ def get_gradient_class(gradient)
155
+ return nil unless gradient
156
+
157
+ if gradient.is_a?(Hash) && gradient[:from] && gradient[:to]
158
+ "w-button-gradient-custom"
159
+ else
160
+ "w-button-gradient-#{gradient}"
161
+ end
162
+ end
163
+
164
+ def process_gradient(gradient)
165
+ return nil unless gradient.is_a?(Hash) && gradient[:from] && gradient[:to]
166
+
167
+ if gradient[:via]
168
+ "background: linear-gradient(135deg, #{gradient[:from]}, #{gradient[:via]}, #{gradient[:to]})"
169
+ else
170
+ "background: linear-gradient(135deg, #{gradient[:from]}, #{gradient[:to]})"
171
+ end
172
+ end
173
+
150
174
  def process_theme(variant, theme)
151
175
  return nil unless theme[:name] || theme[:custom]
152
176
 
@@ -180,36 +204,43 @@ module WildayUi
180
204
  {
181
205
  "--w-button-color": "#FFFFFF",
182
206
  "--w-button-bg": colors["500"],
183
- "--w-button-hover-bg": colors["600"]
207
+ "--w-button-hover-bg": colors["600"],
208
+ "--w-button-active-bg": colors["700"]
184
209
  }
185
210
  when :subtle
186
211
  {
187
- "--w-button-color": colors["500"],
212
+ "--w-button-color": colors["700"],
188
213
  "--w-button-bg": colors["50"],
189
- "--w-button-hover-bg": colors["100"]
214
+ "--w-button-hover-bg": colors["100"],
215
+ "--w-button-hover-color": colors["800"]
190
216
  }
191
217
  when :surface
192
218
  {
193
- "--w-button-color": colors["500"],
219
+ "--w-button-color": colors["700"],
194
220
  "--w-button-bg": colors["50"],
195
221
  "--w-button-hover-bg": colors["100"],
196
- "--w-button-border": colors["100"]
222
+ "--w-button-border": colors["200"],
223
+ "--w-button-hover-border": colors["300"]
197
224
  }
198
225
  when :outline
199
226
  {
200
- "--w-button-color": colors["500"],
201
- "--w-button-border": colors["200"],
202
- "--w-button-hover-bg": colors["50"]
227
+ "--w-button-color": colors["600"],
228
+ "--w-button-border": colors["300"],
229
+ "--w-button-hover-bg": colors["50"],
230
+ "--w-button-hover-border": colors["400"],
231
+ "--w-button-hover-color": colors["700"]
203
232
  }
204
233
  when :ghost
205
234
  {
206
- "--w-button-color": colors["500"],
207
- "--w-button-hover-bg": colors["50"]
235
+ "--w-button-color": colors["600"],
236
+ "--w-button-hover-bg": colors["50"],
237
+ "--w-button-hover-color": colors["700"]
208
238
  }
209
239
  when :plain
210
240
  {
211
- "--w-button-color": colors["500"],
212
- "--w-button-hover-color": colors["600"]
241
+ "--w-button-color": colors["600"],
242
+ "--w-button-hover-color": colors["700"],
243
+ "--w-button-active-color": colors["800"]
213
244
  }
214
245
  else
215
246
  {}
@@ -358,7 +389,7 @@ module WildayUi
358
389
  "#{base}#{index}"
359
390
  end
360
391
 
361
- def render_button(content, variant_class, size_class, radius_class, icon, icon_position, icon_only,
392
+ def render_button(content, variant_class, size_class, radius_class, gradient_class, icon, icon_position, icon_only,
362
393
  loading, loading_text, additional_classes, disabled, options, href, underline,
363
394
  dropdown, dropdown_items, dropdown_icon, wrapper_options)
364
395
 
@@ -368,6 +399,7 @@ module WildayUi
368
399
  variant_class: variant_class,
369
400
  size_class: size_class,
370
401
  radius_class: radius_class,
402
+ gradient_class: gradient_class,
371
403
  icon: icon,
372
404
  icon_position: icon_position,
373
405
  icon_only: icon_only,
@@ -6,6 +6,7 @@ html_options = {
6
6
  variant_class,
7
7
  size_class,
8
8
  radius_class,
9
+ gradient_class,
9
10
  additional_classes,
10
11
  ("w-button-loading" if loading),
11
12
  ("w-button-icon-only" if icon_only),
@@ -111,12 +111,12 @@ module WildayUi
111
111
  "100" => "#F3F4F6",
112
112
  "200" => "#E5E7EB",
113
113
  "300" => "#D1D5DB",
114
- "400" => "#9CA3AF",
115
- "500" => "#1F2937",
116
- "600" => "#111827",
117
- "700" => "#374151",
118
- "800" => "#1F2937",
119
- "900" => "#111827"
114
+ "400" => "#1F2937",
115
+ "500" => "#111827",
116
+ "600" => "#0F172A",
117
+ "700" => "#0A0F1A",
118
+ "800" => "#060912",
119
+ "900" => "#030509"
120
120
  },
121
121
  "link" => {
122
122
  "50" => "#EFF6FF",
@@ -1,3 +1,3 @@
1
1
  module WildayUi
2
- VERSION = "0.5.6"
2
+ VERSION = "0.6.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wilday_ui
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.6
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - davidwinalda
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-12-17 00:00:00.000000000 Z
11
+ date: 2024-12-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -46,6 +46,7 @@ files:
46
46
  - app/assets/stylesheets/wilday_ui/button.css
47
47
  - app/assets/stylesheets/wilday_ui/components/button/base.css
48
48
  - app/assets/stylesheets/wilday_ui/components/button/features/dropdown.css
49
+ - app/assets/stylesheets/wilday_ui/components/button/features/gradients.css
49
50
  - app/assets/stylesheets/wilday_ui/components/button/features/icons.css
50
51
  - app/assets/stylesheets/wilday_ui/components/button/features/loading.css
51
52
  - app/assets/stylesheets/wilday_ui/components/button/features/old_variants.css