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,39 @@
1
+ @layer components {
2
+ .delete {
3
+ @apply relative inline-flex items-center justify-center w-5 h-5 rounded-full bg-grey-dark text-white cursor-pointer transition-colors;
4
+ }
5
+ .delete::before,
6
+ .delete::after {
7
+ content: '';
8
+ @apply absolute w-3 h-0.5 bg-white rounded-full;
9
+ transform: rotate(45deg);
10
+ }
11
+ .delete::after {
12
+ transform: rotate(-45deg);
13
+ }
14
+ .delete:hover {
15
+ @apply bg-danger;
16
+ }
17
+ /* Tamaños */
18
+ .delete.is-small {
19
+ @apply w-4 h-4;
20
+ }
21
+ .delete.is-medium {
22
+ @apply w-6 h-6;
23
+ }
24
+ .delete.is-large {
25
+ @apply w-8 h-8;
26
+ }
27
+ .delete::before,
28
+ .delete::after {
29
+ @apply w-2 h-0.5;
30
+ }
31
+ .delete.is-medium::before,
32
+ .delete.is-medium::after {
33
+ @apply w-3.5;
34
+ }
35
+ .delete.is-large::before,
36
+ .delete.is-large::after {
37
+ @apply w-5;
38
+ }
39
+ }
@@ -0,0 +1,18 @@
1
+ @layer components {
2
+ .icon {
3
+ @apply inline-flex items-center justify-center w-6 h-6;
4
+ }
5
+ .icon.is-small {
6
+ @apply w-4 h-4;
7
+ }
8
+ .icon.is-medium {
9
+ @apply w-8 h-8;
10
+ }
11
+ .icon.is-large {
12
+ @apply w-12 h-12;
13
+ }
14
+ /* Para usar con texto */
15
+ .icon-text {
16
+ @apply inline-flex items-center gap-2;
17
+ }
18
+ }
@@ -0,0 +1,46 @@
1
+ @layer components {
2
+ .image {
3
+ @apply block relative;
4
+ }
5
+ .image img {
6
+ @apply block w-full h-auto;
7
+ }
8
+ /* Tamaños fijos (cuadrados) */
9
+ .image.is-16x16 { @apply w-4 h-4; }
10
+ .image.is-24x24 { @apply w-6 h-6; }
11
+ .image.is-32x32 { @apply w-8 h-8; }
12
+ .image.is-48x48 { @apply w-12 h-12; }
13
+ .image.is-64x64 { @apply w-16 h-16; }
14
+ .image.is-96x96 { @apply w-24 h-24; }
15
+ .image.is-128x128 { @apply w-32 h-32; }
16
+
17
+ /* Ratios (padding-bottom trick) */
18
+ .image.is-square,
19
+ .image.is-1by1 {
20
+ @apply pt-[100%];
21
+ }
22
+ .image.is-4by3 {
23
+ @apply pt-[75%];
24
+ }
25
+ .image.is-3by2 {
26
+ @apply pt-[66.6667%];
27
+ }
28
+ .image.is-16by9 {
29
+ @apply pt-[56.25%];
30
+ }
31
+ .image.is-2by1 {
32
+ @apply pt-[50%];
33
+ }
34
+ .image.is-3by1 {
35
+ @apply pt-[33.3333%];
36
+ }
37
+ .image.is-square img,
38
+ .image.is-1by1 img,
39
+ .image.is-4by3 img,
40
+ .image.is-3by2 img,
41
+ .image.is-16by9 img,
42
+ .image.is-2by1 img,
43
+ .image.is-3by1 img {
44
+ @apply absolute inset-0 w-full h-full object-cover;
45
+ }
46
+ }
@@ -0,0 +1,98 @@
1
+ @layer components {
2
+ .notification {
3
+ @apply p-4 rounded-lg text-dark w-full;
4
+ background-color: var(--color-grey-light);
5
+ }
6
+ .notification:not(:last-child) {
7
+ @apply mb-4;
8
+ }
9
+
10
+ /* Colores sólidos */
11
+ .notification.is-primary {
12
+ background-color: var(--color-primary);
13
+ color: white;
14
+ }
15
+ .notification.is-link {
16
+ background-color: var(--color-link);
17
+ color: white;
18
+ }
19
+ .notification.is-info {
20
+ background-color: var(--color-info);
21
+ color: white;
22
+ }
23
+ .notification.is-success {
24
+ background-color: var(--color-success);
25
+ color: white;
26
+ }
27
+ .notification.is-warning {
28
+ background-color: var(--color-warning);
29
+ color: var(--color-dark);
30
+ }
31
+ .notification.is-danger {
32
+ background-color: var(--color-danger);
33
+ color: white;
34
+ }
35
+ .notification.is-light {
36
+ background-color: var(--color-light);
37
+ color: var(--color-dark);
38
+ }
39
+ .notification.is-dark {
40
+ background-color: var(--color-dark);
41
+ color: white;
42
+ }
43
+ .notification.is-white {
44
+ background-color: white;
45
+ color: var(--color-dark);
46
+ border: 1px solid var(--color-grey);
47
+ }
48
+ .notification.is-black {
49
+ background-color: var(--color-black);
50
+ color: white;
51
+ }
52
+
53
+ /* Variantes claras (light) */
54
+ .notification.is-primary.is-light {
55
+ background-color: color-mix(in srgb, var(--color-primary) 10%, white);
56
+ color: var(--color-primary);
57
+ }
58
+ .notification.is-link.is-light {
59
+ background-color: color-mix(in srgb, var(--color-link) 10%, white);
60
+ color: var(--color-link);
61
+ }
62
+ .notification.is-info.is-light {
63
+ background-color: color-mix(in srgb, var(--color-info) 10%, white);
64
+ color: var(--color-info);
65
+ }
66
+ .notification.is-success.is-light {
67
+ background-color: color-mix(in srgb, var(--color-success) 10%, white);
68
+ color: var(--color-success);
69
+ }
70
+ .notification.is-warning.is-light {
71
+ background-color: color-mix(in srgb, var(--color-warning) 10%, white);
72
+ color: var(--color-warning);
73
+ }
74
+ .notification.is-danger.is-light {
75
+ background-color: color-mix(in srgb, var(--color-danger) 10%, white);
76
+ color: var(--color-danger);
77
+ }
78
+ .notification.is-dark.is-light {
79
+ background-color: color-mix(in srgb, var(--color-dark) 10%, white);
80
+ color: var(--color-dark);
81
+ }
82
+
83
+ /* Tamaños */
84
+ .notification.is-small {
85
+ @apply text-sm py-2 px-3;
86
+ }
87
+ .notification.is-medium {
88
+ @apply text-base py-5 px-6;
89
+ }
90
+ .notification.is-large {
91
+ @apply text-lg py-6 px-8;
92
+ }
93
+
94
+ /* Botón delete dentro de notificación */
95
+ .notification .delete {
96
+ @apply float-right;
97
+ }
98
+ }
@@ -0,0 +1,59 @@
1
+ @layer components {
2
+ progress {
3
+ @apply appearance-none block w-full h-3 rounded-full overflow-hidden;
4
+ }
5
+ progress::-webkit-progress-bar {
6
+ @apply bg-grey-light rounded-full;
7
+ }
8
+ progress::-webkit-progress-value {
9
+ @apply rounded-full transition-all;
10
+ background-color: currentColor;
11
+ }
12
+ progress::-moz-progress-bar {
13
+ @apply rounded-full transition-all;
14
+ background-color: currentColor;
15
+ }
16
+
17
+ /* Tamaños */
18
+ progress.is-small {
19
+ @apply h-1.5;
20
+ }
21
+ progress.is-medium {
22
+ @apply h-4;
23
+ }
24
+ progress.is-large {
25
+ @apply h-6;
26
+ }
27
+
28
+ /* Colores - asignamos el color al elemento progress, los pseudoelementos usan currentColor */
29
+ progress.is-primary {
30
+ color: var(--color-primary);
31
+ }
32
+ progress.is-link {
33
+ color: var(--color-link);
34
+ }
35
+ progress.is-info {
36
+ color: var(--color-info);
37
+ }
38
+ progress.is-success {
39
+ color: var(--color-success);
40
+ }
41
+ progress.is-warning {
42
+ color: var(--color-warning);
43
+ }
44
+ progress.is-danger {
45
+ color: var(--color-danger);
46
+ }
47
+ progress.is-dark {
48
+ color: var(--color-dark);
49
+ }
50
+ progress.is-light {
51
+ color: var(--color-light);
52
+ }
53
+ progress.is-white {
54
+ color: var(--color-white);
55
+ }
56
+ progress.is-black {
57
+ color: var(--color-black);
58
+ }
59
+ }
@@ -0,0 +1,129 @@
1
+ @layer components {
2
+ /* Contenedor responsivo (scroll horizontal en móviles) */
3
+ .table-container {
4
+ @apply w-full overflow-x-auto;
5
+ }
6
+
7
+ /* Tabla base */
8
+ .table {
9
+ @apply w-full bg-white border-collapse;
10
+ }
11
+ .table td,
12
+ .table th {
13
+ @apply border border-grey px-3 py-2 text-left align-top;
14
+ }
15
+ .table th {
16
+ @apply font-bold;
17
+ }
18
+ .table thead td,
19
+ .table thead th {
20
+ @apply border-b-2 border-grey-dark;
21
+ }
22
+ .table tfoot td,
23
+ .table tfoot th {
24
+ @apply border-t-2 border-grey-dark;
25
+ }
26
+
27
+ /* Modificadores */
28
+ .table.is-striped tbody tr:nth-child(even) {
29
+ @apply bg-grey-light/50;
30
+ }
31
+ .table.is-hoverable tbody tr:hover {
32
+ @apply bg-grey-light;
33
+ }
34
+ .table.is-bordered td,
35
+ .table.is-bordered th {
36
+ @apply border-2 border-grey;
37
+ }
38
+ .table.is-narrow td,
39
+ .table.is-narrow th {
40
+ @apply px-2 py-1;
41
+ }
42
+ .table.is-fullwidth {
43
+ @apply w-full;
44
+ }
45
+
46
+ /* Colores de fondo para filas o celdas (contextuales) */
47
+ .table .is-primary {
48
+ background-color: var(--color-primary);
49
+ color: white;
50
+ }
51
+ .table .is-link {
52
+ background-color: var(--color-link);
53
+ color: white;
54
+ }
55
+ .table .is-info {
56
+ background-color: var(--color-info);
57
+ color: white;
58
+ }
59
+ .table .is-success {
60
+ background-color: var(--color-success);
61
+ color: white;
62
+ }
63
+ .table .is-warning {
64
+ background-color: var(--color-warning);
65
+ color: var(--color-dark);
66
+ }
67
+ .table .is-danger {
68
+ background-color: var(--color-danger);
69
+ color: white;
70
+ }
71
+ .table .is-light {
72
+ background-color: var(--color-light);
73
+ color: var(--color-dark);
74
+ }
75
+ .table .is-dark {
76
+ background-color: var(--color-dark);
77
+ color: white;
78
+ }
79
+
80
+ /* Filas completas con color (aplica a tr.is-primary, etc.) */
81
+ .table tr.is-primary,
82
+ .table tr.is-link,
83
+ .table tr.is-info,
84
+ .table tr.is-success,
85
+ .table tr.is-warning,
86
+ .table tr.is-danger,
87
+ .table tr.is-light,
88
+ .table tr.is-dark {
89
+ color: white;
90
+ }
91
+ .table tr.is-warning {
92
+ color: var(--color-dark);
93
+ }
94
+ .table tr.is-light {
95
+ color: var(--color-dark);
96
+ }
97
+ .table tr.is-primary td,
98
+ .table tr.is-primary th {
99
+ background-color: var(--color-primary);
100
+ }
101
+ .table tr.is-link td,
102
+ .table tr.is-link th {
103
+ background-color: var(--color-link);
104
+ }
105
+ .table tr.is-info td,
106
+ .table tr.is-info th {
107
+ background-color: var(--color-info);
108
+ }
109
+ .table tr.is-success td,
110
+ .table tr.is-success th {
111
+ background-color: var(--color-success);
112
+ }
113
+ .table tr.is-warning td,
114
+ .table tr.is-warning th {
115
+ background-color: var(--color-warning);
116
+ }
117
+ .table tr.is-danger td,
118
+ .table tr.is-danger th {
119
+ background-color: var(--color-danger);
120
+ }
121
+ .table tr.is-light td,
122
+ .table tr.is-light th {
123
+ background-color: var(--color-light);
124
+ }
125
+ .table tr.is-dark td,
126
+ .table tr.is-dark th {
127
+ background-color: var(--color-dark);
128
+ }
129
+ }
@@ -0,0 +1,120 @@
1
+ @layer components {
2
+ .tag {
3
+ @apply inline-flex items-center gap-1 rounded-md px-3 py-1 text-sm font-medium bg-grey-light text-dark;
4
+ }
5
+ .tag:not(:last-child) {
6
+ @apply mr-1;
7
+ }
8
+
9
+ /* Colores sólidos */
10
+ .tag.is-primary {
11
+ background-color: var(--color-primary);
12
+ color: white;
13
+ }
14
+ .tag.is-link {
15
+ background-color: var(--color-link);
16
+ color: white;
17
+ }
18
+ .tag.is-info {
19
+ background-color: var(--color-info);
20
+ color: white;
21
+ }
22
+ .tag.is-success {
23
+ background-color: var(--color-success);
24
+ color: white;
25
+ }
26
+ .tag.is-warning {
27
+ background-color: var(--color-warning);
28
+ color: var(--color-dark);
29
+ }
30
+ .tag.is-danger {
31
+ background-color: var(--color-danger);
32
+ color: white;
33
+ }
34
+ .tag.is-dark {
35
+ background-color: var(--color-dark);
36
+ color: white;
37
+ }
38
+ .tag.is-light {
39
+ background-color: var(--color-light);
40
+ color: var(--color-dark);
41
+ }
42
+ .tag.is-white {
43
+ background-color: white;
44
+ color: var(--color-dark);
45
+ border: 1px solid var(--color-grey);
46
+ }
47
+ .tag.is-black {
48
+ background-color: var(--color-black);
49
+ color: white;
50
+ }
51
+
52
+ /* Variantes claras (light) */
53
+ .tag.is-primary.is-light {
54
+ background-color: color-mix(in srgb, var(--color-primary) 10%, white);
55
+ color: var(--color-primary);
56
+ }
57
+ .tag.is-link.is-light {
58
+ background-color: color-mix(in srgb, var(--color-link) 10%, white);
59
+ color: var(--color-link);
60
+ }
61
+ .tag.is-info.is-light {
62
+ background-color: color-mix(in srgb, var(--color-info) 10%, white);
63
+ color: var(--color-info);
64
+ }
65
+ .tag.is-success.is-light {
66
+ background-color: color-mix(in srgb, var(--color-success) 10%, white);
67
+ color: var(--color-success);
68
+ }
69
+ .tag.is-warning.is-light {
70
+ background-color: color-mix(in srgb, var(--color-warning) 10%, white);
71
+ color: var(--color-warning);
72
+ }
73
+ .tag.is-danger.is-light {
74
+ background-color: color-mix(in srgb, var(--color-danger) 10%, white);
75
+ color: var(--color-danger);
76
+ }
77
+ .tag.is-dark.is-light {
78
+ background-color: color-mix(in srgb, var(--color-dark) 10%, white);
79
+ color: var(--color-dark);
80
+ }
81
+
82
+ /* Tamaños */
83
+ .tag.is-small {
84
+ @apply text-xs px-2 py-0.5 rounded;
85
+ }
86
+ .tag.is-medium {
87
+ @apply text-base px-4 py-1.5 rounded-md;
88
+ }
89
+ .tag.is-large {
90
+ @apply text-lg px-5 py-2 rounded-lg;
91
+ }
92
+
93
+ /* Tag con botón eliminar */
94
+ .tag .delete {
95
+ @apply ml-1 w-3 h-3;
96
+ }
97
+ .tag.is-small .delete {
98
+ @apply w-2 h-2;
99
+ }
100
+ .tag.is-medium .delete {
101
+ @apply w-4 h-4;
102
+ }
103
+ .tag.is-large .delete {
104
+ @apply w-5 h-5;
105
+ }
106
+
107
+ /* Grupo de tags */
108
+ .tags {
109
+ @apply flex flex-wrap gap-2;
110
+ }
111
+ .tags.has-addons {
112
+ @apply gap-0;
113
+ }
114
+ .tags.has-addons .tag:not(:first-child) {
115
+ @apply rounded-l-none;
116
+ }
117
+ .tags.has-addons .tag:not(:last-child) {
118
+ @apply rounded-r-none;
119
+ }
120
+ }
@@ -0,0 +1,21 @@
1
+ @layer components {
2
+ .title {
3
+ @apply font-bold leading-tight text-dark;
4
+ }
5
+ .title.is-1 { @apply text-4xl; }
6
+ .title.is-2 { @apply text-3xl; }
7
+ .title.is-3 { @apply text-2xl; }
8
+ .title.is-4 { @apply text-xl; }
9
+ .title.is-5 { @apply text-lg; }
10
+ .title.is-6 { @apply text-base; }
11
+
12
+ .subtitle {
13
+ @apply text-grey-dark font-normal leading-normal;
14
+ }
15
+ .subtitle.is-1 { @apply text-3xl; }
16
+ .subtitle.is-2 { @apply text-2xl; }
17
+ .subtitle.is-3 { @apply text-xl; }
18
+ .subtitle.is-4 { @apply text-lg; }
19
+ .subtitle.is-5 { @apply text-base; }
20
+ .subtitle.is-6 { @apply text-sm; }
21
+ }