bulma-tailwind 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +67 -0
  3. package/dist/bulma-tailwind.css +3352 -0
  4. package/package.json +32 -0
  5. package/src/bulma-tailwind.css +45 -0
  6. package/src/components/breadcrumb.css +48 -0
  7. package/src/components/card.css +17 -0
  8. package/src/components/dropdown.css +31 -0
  9. package/src/components/menu.css +20 -0
  10. package/src/components/message.css +76 -0
  11. package/src/components/modal.css +26 -0
  12. package/src/components/navbar.css +20 -0
  13. package/src/components/pagination.css +40 -0
  14. package/src/components/panel.css +31 -0
  15. package/src/components/tabs.css +38 -0
  16. package/src/elements/box.css +6 -0
  17. package/src/elements/button.css +169 -0
  18. package/src/elements/content.css +61 -0
  19. package/src/elements/delete.css +39 -0
  20. package/src/elements/icon.css +18 -0
  21. package/src/elements/image.css +46 -0
  22. package/src/elements/notification.css +98 -0
  23. package/src/elements/progress.css +59 -0
  24. package/src/elements/table.css +129 -0
  25. package/src/elements/tag.css +120 -0
  26. package/src/elements/title.css +21 -0
  27. package/src/example/components.html +341 -0
  28. package/src/example/dist/bulma-tailwind.css +3352 -0
  29. package/src/example/elements.html +605 -0
  30. package/src/example/form.html +262 -0
  31. package/src/example/index.html +146 -0
  32. package/src/example/layout.html +193 -0
  33. package/src/example/misc.html +164 -0
  34. package/src/footer.css +5 -0
  35. package/src/form/checkbox-radio.css +8 -0
  36. package/src/form/file.css +44 -0
  37. package/src/form/general.css +129 -0
  38. package/src/form/input.css +9 -0
  39. package/src/form/select.css +39 -0
  40. package/src/form/textarea.css +315 -0
  41. package/src/layout/columns.css +25 -0
  42. package/src/layout/container.css +12 -0
  43. package/src/layout/hero.css +8 -0
  44. package/src/layout/level.css +31 -0
  45. package/src/layout/section.css +11 -0
  46. package/src/media-object.css +8 -0
  47. package/src/theme.css +39 -0
@@ -0,0 +1,315 @@
1
+ @layer components {
2
+ /* Botón base - estilo normal de Bulma */
3
+ .button {
4
+ @apply inline-flex items-center justify-center gap-2 px-4 py-2 rounded font-medium transition-all duration-200 cursor-pointer;
5
+ background-color: var(--color-light);
6
+ border: 1px solid var(--color-grey);
7
+ color: var(--color-dark);
8
+ font-size: var(--text-size-normal);
9
+ }
10
+ .button:hover {
11
+ @apply brightness-95;
12
+ }
13
+
14
+ /* Tamaños */
15
+ .button.is-small {
16
+ @apply px-2 py-1 text-sm rounded-sm;
17
+ }
18
+ .button.is-medium {
19
+ @apply px-5 py-2.5 text-base;
20
+ }
21
+ .button.is-large {
22
+ @apply px-6 py-3 text-lg;
23
+ }
24
+
25
+ /* Colores sólidos */
26
+ .button.is-primary {
27
+ background-color: var(--color-primary);
28
+ border-color: var(--color-primary);
29
+ color: white;
30
+ }
31
+ .button.is-primary:hover {
32
+ background-color: color-mix(in srgb, var(--color-primary) 90%, black);
33
+ }
34
+
35
+ .button.is-link {
36
+ background-color: var(--color-link);
37
+ border-color: var(--color-link);
38
+ color: white;
39
+ }
40
+ .button.is-link:hover {
41
+ background-color: color-mix(in srgb, var(--color-link) 90%, black);
42
+ }
43
+
44
+ .button.is-info {
45
+ background-color: var(--color-info);
46
+ border-color: var(--color-info);
47
+ color: white;
48
+ }
49
+ .button.is-info:hover {
50
+ background-color: color-mix(in srgb, var(--color-info) 90%, black);
51
+ }
52
+
53
+ .button.is-success {
54
+ background-color: var(--color-success);
55
+ border-color: var(--color-success);
56
+ color: white;
57
+ }
58
+ .button.is-success:hover {
59
+ background-color: color-mix(in srgb, var(--color-success) 90%, black);
60
+ }
61
+
62
+ .button.is-warning {
63
+ background-color: var(--color-warning);
64
+ border-color: var(--color-warning);
65
+ color: var(--color-dark);
66
+ }
67
+ .button.is-warning:hover {
68
+ background-color: color-mix(in srgb, var(--color-warning) 90%, black);
69
+ }
70
+
71
+ .button.is-danger {
72
+ background-color: var(--color-danger);
73
+ border-color: var(--color-danger);
74
+ color: white;
75
+ }
76
+ .button.is-danger:hover {
77
+ background-color: color-mix(in srgb, var(--color-danger) 90%, black);
78
+ }
79
+
80
+ .button.is-light {
81
+ background-color: var(--color-light);
82
+ border-color: var(--color-grey);
83
+ color: var(--color-dark);
84
+ }
85
+ .button.is-light:hover {
86
+ background-color: color-mix(in srgb, var(--color-light) 90%, black);
87
+ }
88
+
89
+ .button.is-dark {
90
+ background-color: var(--color-dark);
91
+ border-color: var(--color-dark);
92
+ color: white;
93
+ }
94
+ .button.is-dark:hover {
95
+ background-color: color-mix(in srgb, var(--color-dark) 90%, black);
96
+ }
97
+
98
+ .button.is-white {
99
+ background-color: white;
100
+ border-color: var(--color-grey);
101
+ color: var(--color-dark);
102
+ }
103
+ .button.is-white:hover {
104
+ background-color: color-mix(in srgb, white 90%, black);
105
+ }
106
+
107
+ .button.is-black {
108
+ background-color: var(--color-black);
109
+ border-color: var(--color-black);
110
+ color: white;
111
+ }
112
+ .button.is-black:hover {
113
+ background-color: color-mix(in srgb, var(--color-black) 90%, black);
114
+ }
115
+
116
+ /* Outlined */
117
+ .button.is-outlined {
118
+ background-color: transparent;
119
+ border: 1px solid currentColor;
120
+ }
121
+ .button.is-outlined.is-primary {
122
+ color: var(--color-primary);
123
+ }
124
+ .button.is-outlined.is-link {
125
+ color: var(--color-link);
126
+ }
127
+ .button.is-outlined.is-info {
128
+ color: var(--color-info);
129
+ }
130
+ .button.is-outlined.is-success {
131
+ color: var(--color-success);
132
+ }
133
+ .button.is-outlined.is-warning {
134
+ color: var(--color-warning);
135
+ }
136
+ .button.is-outlined.is-danger {
137
+ color: var(--color-danger);
138
+ }
139
+ .button.is-outlined.is-light {
140
+ color: var(--color-light);
141
+ }
142
+ .button.is-outlined.is-dark {
143
+ color: var(--color-dark);
144
+ }
145
+ .button.is-outlined.is-white {
146
+ color: white;
147
+ }
148
+ .button.is-outlined.is-black {
149
+ color: var(--color-black);
150
+ }
151
+ .button.is-outlined:hover {
152
+ background-color: color-mix(in srgb, currentColor 10%, transparent);
153
+ }
154
+
155
+ /* Inverted */
156
+ .button.is-inverted {
157
+ background-color: transparent;
158
+ border-color: transparent;
159
+ }
160
+ .button.is-inverted.is-primary {
161
+ color: var(--color-primary);
162
+ }
163
+ .button.is-inverted.is-primary:hover {
164
+ background-color: var(--color-primary);
165
+ color: white;
166
+ }
167
+ .button.is-inverted.is-link {
168
+ color: var(--color-link);
169
+ }
170
+ .button.is-inverted.is-link:hover {
171
+ background-color: var(--color-link);
172
+ color: white;
173
+ }
174
+ .button.is-inverted.is-info {
175
+ color: var(--color-info);
176
+ }
177
+ .button.is-inverted.is-info:hover {
178
+ background-color: var(--color-info);
179
+ color: white;
180
+ }
181
+ .button.is-inverted.is-success {
182
+ color: var(--color-success);
183
+ }
184
+ .button.is-inverted.is-success:hover {
185
+ background-color: var(--color-success);
186
+ color: white;
187
+ }
188
+ .button.is-inverted.is-warning {
189
+ color: var(--color-warning);
190
+ }
191
+ .button.is-inverted.is-warning:hover {
192
+ background-color: var(--color-warning);
193
+ color: var(--color-dark);
194
+ }
195
+ .button.is-inverted.is-danger {
196
+ color: var(--color-danger);
197
+ }
198
+ .button.is-inverted.is-danger:hover {
199
+ background-color: var(--color-danger);
200
+ color: white;
201
+ }
202
+ .button.is-inverted.is-light {
203
+ color: var(--color-light);
204
+ }
205
+ .button.is-inverted.is-light:hover {
206
+ background-color: var(--color-light);
207
+ color: var(--color-dark);
208
+ }
209
+ .button.is-inverted.is-dark {
210
+ color: var(--color-dark);
211
+ }
212
+ .button.is-inverted.is-dark:hover {
213
+ background-color: var(--color-dark);
214
+ color: white;
215
+ }
216
+
217
+ /* Rounded */
218
+ .button.is-rounded {
219
+ @apply rounded-full;
220
+ }
221
+
222
+ /* Fullwidth */
223
+ .button.is-fullwidth {
224
+ @apply w-full;
225
+ }
226
+
227
+ /* Loading */
228
+ .button.is-loading {
229
+ @apply relative text-transparent pointer-events-none;
230
+ }
231
+ .button.is-loading::after {
232
+ content: "";
233
+ position: absolute;
234
+ width: 1rem;
235
+ height: 1rem;
236
+ top: 50%;
237
+ left: 50%;
238
+ transform: translate(-50%, -50%);
239
+ border: 2px solid transparent;
240
+ border-top-color: currentColor;
241
+ border-radius: 50%;
242
+ animation: button-spin 0.6s linear infinite;
243
+ }
244
+
245
+ @keyframes button-spin {
246
+ 0% { transform: translate(-50%, -50%) rotate(0deg); }
247
+ 100% { transform: translate(-50%, -50%) rotate(360deg); }
248
+ }
249
+
250
+ /* Asegura que el color del spinner sea el mismo que el texto del botón */
251
+ .button.is-loading.is-primary::after {
252
+ border-top-color: white;
253
+ }
254
+ .button.is-loading.is-link::after {
255
+ border-top-color: white;
256
+ }
257
+ .button.is-loading.is-info::after {
258
+ border-top-color: white;
259
+ }
260
+ .button.is-loading.is-success::after {
261
+ border-top-color: white;
262
+ }
263
+ .button.is-loading.is-warning::after {
264
+ border-top-color: var(--color-dark);
265
+ }
266
+ .button.is-loading.is-danger::after {
267
+ border-top-color: white;
268
+ }
269
+ .button.is-loading.is-dark::after {
270
+ border-top-color: white;
271
+ }
272
+ .button.is-loading.is-light::after {
273
+ border-top-color: var(--color-dark);
274
+ }
275
+ .button.is-loading.is-white::after {
276
+ border-top-color: var(--color-dark);
277
+ }
278
+ .button.is-loading.is-black::after {
279
+ border-top-color: white;
280
+ }
281
+
282
+ /* Disabled */
283
+ .button:disabled,
284
+ .button.is-disabled {
285
+ @apply opacity-50 cursor-not-allowed pointer-events-none;
286
+ }
287
+
288
+ /* Text button */
289
+ .button.is-text {
290
+ background-color: transparent;
291
+ border-color: transparent;
292
+ color: var(--color-dark);
293
+ }
294
+ .button.is-text:hover {
295
+ background-color: var(--color-grey-light);
296
+ }
297
+ .button.is-text.is-primary {
298
+ color: var(--color-primary);
299
+ }
300
+ .button.is-text.is-link {
301
+ color: var(--color-link);
302
+ }
303
+ .button.is-text.is-info {
304
+ color: var(--color-info);
305
+ }
306
+ .button.is-text.is-success {
307
+ color: var(--color-success);
308
+ }
309
+ .button.is-text.is-warning {
310
+ color: var(--color-warning);
311
+ }
312
+ .button.is-text.is-danger {
313
+ color: var(--color-danger);
314
+ }
315
+ }
@@ -0,0 +1,25 @@
1
+ @layer components {
2
+ .columns {
3
+ @apply flex flex-wrap -mx-2;
4
+ }
5
+ .column {
6
+ @apply px-2 flex-1;
7
+ }
8
+ .column.is-1 { @apply w-1/12; }
9
+ .column.is-2 { @apply w-2/12; }
10
+ .column.is-3 { @apply w-3/12; }
11
+ .column.is-4 { @apply w-4/12; }
12
+ .column.is-5 { @apply w-5/12; }
13
+ .column.is-6 { @apply w-6/12; }
14
+ .column.is-7 { @apply w-7/12; }
15
+ .column.is-8 { @apply w-8/12; }
16
+ .column.is-9 { @apply w-9/12; }
17
+ .column.is-10 { @apply w-10/12; }
18
+ .column.is-11 { @apply w-11/12; }
19
+ .column.is-12 { @apply w-full; }
20
+
21
+ @media (min-width: 769px) {
22
+ .column.is-offset-1 { margin-left: 8.333%; }
23
+ /* ... resto de offsets ... */
24
+ }
25
+ }
@@ -0,0 +1,12 @@
1
+ @layer components {
2
+ .container {
3
+ @apply mx-auto px-4;
4
+ max-width: 100%;
5
+ }
6
+ @media (min-width: 1024px) {
7
+ .container { max-width: 960px; }
8
+ }
9
+ @media (min-width: 1216px) {
10
+ .container { max-width: 1152px; }
11
+ }
12
+ }
@@ -0,0 +1,8 @@
1
+ @layer components {
2
+ .hero {
3
+ @apply bg-primary text-white py-12;
4
+ }
5
+ .hero.is-medium { @apply py-24; }
6
+ .hero.is-large { @apply py-48; }
7
+ .hero-body { @apply container mx-auto px-4; }
8
+ }
@@ -0,0 +1,31 @@
1
+ @layer components {
2
+ .level {
3
+ @apply flex items-center justify-between flex-wrap gap-4;
4
+ }
5
+ .level-item {
6
+ @apply flex items-center flex-1 justify-center;
7
+ }
8
+ .level-left,
9
+ .level-right {
10
+ @apply flex items-center gap-4;
11
+ }
12
+ .level-left {
13
+ @apply justify-start;
14
+ }
15
+ .level-right {
16
+ @apply justify-end;
17
+ }
18
+ /* Modo vertical en móvil */
19
+ @media (max-width: 768px) {
20
+ .level:not(.is-mobile) {
21
+ @apply flex-col items-stretch;
22
+ }
23
+ .level:not(.is-mobile) .level-left,
24
+ .level:not(.is-mobile) .level-right {
25
+ @apply justify-center;
26
+ }
27
+ }
28
+ .level.is-mobile {
29
+ @apply flex-row;
30
+ }
31
+ }
@@ -0,0 +1,11 @@
1
+ @layer components {
2
+ .section {
3
+ @apply py-12 px-4;
4
+ }
5
+ .section.is-medium {
6
+ @apply py-24;
7
+ }
8
+ .section.is-large {
9
+ @apply py-48;
10
+ }
11
+ }
@@ -0,0 +1,8 @@
1
+ @layer components {
2
+ .media {
3
+ @apply flex gap-4;
4
+ }
5
+ .media-left { @apply flex-shrink-0; }
6
+ .media-content { @apply flex-1; }
7
+ .media-right { @apply flex-shrink-0; }
8
+ }
package/src/theme.css ADDED
@@ -0,0 +1,39 @@
1
+ @import "tailwindcss";
2
+
3
+ @theme {
4
+ /* Main Colors from Bulma */
5
+ --color-primary: #00d1b2;
6
+ --color-link: #485fc7;
7
+ --color-info: #3e8ed0;
8
+ --color-success: #48c78e;
9
+ --color-warning: #ffe08c;
10
+ --color-danger: #f14668;
11
+ --color-light: #f5f5f5;
12
+ --color-dark: #363636;
13
+ --color-white: #fff;
14
+ --color-black: #0a0a0a;
15
+
16
+ /* Grey Scale */
17
+ --color-grey-light: #fafafa;
18
+ --color-grey: #dbdbdb;
19
+ --color-grey-dark: #7a7a7a;
20
+
21
+ /* Fonts and Sizes (like Bulma) */
22
+ --font-family-sans: 'BlinkMacSystemFont', -apple-system, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif;
23
+ --font-family-monospace: monospace;
24
+
25
+ --text-size-small: 0.75rem;
26
+ --text-size-normal: 1rem;
27
+ --text-size-medium: 1.25rem;
28
+ --text-size-large: 1.5rem;
29
+
30
+ --radius-normal: 0.375rem;
31
+ --radius-small: 0.25rem;
32
+ --radius-large: 0.5rem;
33
+
34
+ /* Breakpoints Bulma */
35
+ --breakpoint-mobile: 768px;
36
+ --breakpoint-tablet: 769px;
37
+ --breakpoint-desktop: 1024px;
38
+ --breakpoint-widescreen: 1216px;
39
+ }