better_ui 0.5.0 → 0.5.1

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 (81) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +137 -245
  3. data/app/assets/stylesheets/better_ui/_base.scss +9 -0
  4. data/app/assets/stylesheets/better_ui/_components.scss +2 -0
  5. data/app/assets/stylesheets/better_ui/_utilities.scss +14 -0
  6. data/app/assets/stylesheets/better_ui/application.css +3 -1
  7. data/app/assets/stylesheets/better_ui/components/_avatar.scss +200 -0
  8. data/app/assets/stylesheets/better_ui/components/_badge.scss +154 -0
  9. data/app/assets/stylesheets/better_ui/components/_breadcrumb.scss +106 -0
  10. data/app/assets/stylesheets/better_ui/components/_button.scss +105 -0
  11. data/app/assets/stylesheets/better_ui/components/_card.scss +60 -0
  12. data/app/assets/stylesheets/better_ui/components/_heading.scss +81 -0
  13. data/app/assets/stylesheets/better_ui/components/_icon.scss +134 -0
  14. data/app/assets/stylesheets/better_ui/components/_index.scss +17 -0
  15. data/app/assets/stylesheets/better_ui/components/_link.scss +100 -0
  16. data/app/assets/stylesheets/better_ui/components/_panel.scss +104 -0
  17. data/app/assets/stylesheets/better_ui/components/_spinner.scss +129 -0
  18. data/app/assets/stylesheets/better_ui/components/_table.scss +156 -0
  19. data/app/assets/stylesheets/better_ui/components/_variables.scss +1 -0
  20. data/app/assets/stylesheets/better_ui.scss +4 -0
  21. data/app/components/better_ui/general/avatar_component.html.erb +2 -2
  22. data/app/components/better_ui/general/avatar_component.rb +29 -29
  23. data/app/components/better_ui/general/badge_component.html.erb +3 -3
  24. data/app/components/better_ui/general/badge_component.rb +32 -20
  25. data/app/components/better_ui/general/breadcrumb_component.html.erb +2 -2
  26. data/app/components/better_ui/general/breadcrumb_component.rb +23 -23
  27. data/app/components/better_ui/general/button_component.html.erb +6 -6
  28. data/app/components/better_ui/general/button_component.rb +20 -22
  29. data/app/components/better_ui/general/heading_component.html.erb +1 -25
  30. data/app/components/better_ui/general/heading_component.rb +17 -116
  31. data/app/components/better_ui/general/icon_component.html.erb +1 -1
  32. data/app/components/better_ui/general/icon_component.rb +33 -56
  33. data/app/components/better_ui/general/link_component.html.erb +4 -4
  34. data/app/components/better_ui/general/link_component.rb +28 -28
  35. data/app/components/better_ui/general/panel_component.rb +30 -41
  36. data/app/components/better_ui/general/spinner_component.html.erb +3 -3
  37. data/app/components/better_ui/general/spinner_component.rb +13 -13
  38. data/app/components/better_ui/general/table_component.rb +35 -59
  39. data/app/helpers/better_ui/general/components/avatar_helper.rb +17 -0
  40. data/app/helpers/better_ui/general/components/badge_helper.rb +17 -0
  41. data/app/helpers/better_ui/general/components/breadcrumb_helper.rb +17 -0
  42. data/app/helpers/better_ui/general/components/button_helper.rb +17 -0
  43. data/app/helpers/better_ui/general/components/heading_helper.rb +17 -0
  44. data/app/helpers/better_ui/general/components/icon_helper.rb +17 -0
  45. data/app/helpers/better_ui/general/components/link_helper.rb +17 -0
  46. data/app/helpers/better_ui/general/components/panel_helper.rb +16 -0
  47. data/app/helpers/better_ui/general/components/spinner_helper.rb +17 -0
  48. data/app/helpers/better_ui/general/components/table_helper.rb +17 -0
  49. data/app/helpers/better_ui/general_helper.rb +15 -0
  50. data/app/helpers/better_ui_helper.rb +12 -0
  51. data/config/routes.rb +2 -13
  52. data/lib/better_ui/engine.rb +67 -11
  53. data/lib/better_ui/version.rb +1 -1
  54. data/lib/better_ui.rb +10 -2
  55. data/lib/generators/better_ui/install_generator.rb +103 -0
  56. data/lib/generators/better_ui/stylesheet_generator.rb +93 -30
  57. data/lib/generators/better_ui/templates/README +74 -5
  58. data/lib/generators/better_ui/templates/components/_avatar.scss +199 -150
  59. data/lib/generators/better_ui/templates/components/_badge.scss +153 -141
  60. data/lib/generators/better_ui/templates/components/_breadcrumb.scss +105 -106
  61. data/lib/generators/better_ui/templates/components/_button.scss +104 -101
  62. data/lib/generators/better_ui/templates/components/_card.scss +56 -65
  63. data/lib/generators/better_ui/templates/components/_heading.scss +80 -179
  64. data/lib/generators/better_ui/templates/components/_icon.scss +133 -89
  65. data/lib/generators/better_ui/templates/components/_index.scss +17 -0
  66. data/lib/generators/better_ui/templates/components/_link.scss +99 -129
  67. data/lib/generators/better_ui/templates/components/_panel.scss +103 -143
  68. data/lib/generators/better_ui/templates/components/_spinner.scss +127 -130
  69. data/lib/generators/better_ui/templates/components/_table.scss +156 -105
  70. data/lib/generators/better_ui/templates/components/_variables.scss +0 -33
  71. data/lib/generators/better_ui/templates/components_stylesheet.scss +25 -56
  72. data/lib/generators/better_ui/templates/index.scss +18 -0
  73. data/lib/generators/better_ui/templates/initializer.rb +41 -0
  74. metadata +91 -49
  75. data/app/assets/javascripts/better_ui/controllers/navbar_controller.js +0 -138
  76. data/app/assets/javascripts/better_ui/controllers/sidebar_controller.js +0 -211
  77. data/app/assets/javascripts/better_ui/controllers/toast_controller.js +0 -161
  78. data/app/assets/javascripts/better_ui/index.js +0 -159
  79. data/app/assets/javascripts/better_ui/toast_manager.js +0 -77
  80. data/app/components/better_ui/theme_helper.rb +0 -171
  81. data/app/controllers/better_ui/docs_controller.rb +0 -34
@@ -1,90 +1,134 @@
1
- /* ==============================
2
- * Icon Component
3
- * ============================== */
4
-
5
- /* Stili di base e presentazione */
6
- .bui-icon-base {
7
- @apply inline-block;
8
- }
9
-
10
- /* Varianti di stile */
11
- .bui-icon-solid {
12
- @apply fas;
13
- }
14
-
15
- .bui-icon-regular {
16
- @apply far;
17
- }
18
-
19
- .bui-icon-light {
20
- @apply fal;
21
- }
22
-
23
- .bui-icon-brands {
24
- @apply fab;
25
- }
26
-
27
- .bui-icon-duotone {
28
- @apply fad;
29
- }
30
-
31
- /* Dimensioni */
32
- .bui-icon-xsmall {
33
- @apply fa-xs;
34
- }
35
-
36
- .bui-icon-small {
37
- @apply fa-sm;
38
- }
39
-
40
- .bui-icon-medium {
41
- /* Default di Font Awesome, non richiede classi aggiuntive */
42
- }
43
-
44
- .bui-icon-large {
45
- @apply fa-lg;
46
- }
47
-
48
- .bui-icon-xlarge {
49
- @apply fa-xl;
50
- }
51
-
52
- /* Rotazioni */
53
- .bui-icon-rotate-90 {
54
- @apply fa-rotate-90;
55
- }
56
-
57
- .bui-icon-rotate-180 {
58
- @apply fa-rotate-180;
59
- }
60
-
61
- .bui-icon-rotate-270 {
62
- @apply fa-rotate-270;
63
- }
64
-
65
- /* Flip */
66
- .bui-icon-flip-horizontal {
67
- @apply fa-flip-horizontal;
68
- }
69
-
70
- .bui-icon-flip-vertical {
71
- @apply fa-flip-vertical;
72
- }
73
-
74
- /* Animazioni */
75
- .bui-icon-spin {
76
- @apply fa-spin;
77
- }
78
-
79
- .bui-icon-pulse {
80
- @apply fa-pulse;
81
- }
82
-
83
- /* Altre opzioni */
84
- .bui-icon-fw {
85
- @apply fa-fw;
86
- }
87
-
88
- .bui-icon-border {
89
- @apply fa-border;
1
+ @layer components {
2
+ // Classe base per l'icona (Block)
3
+ .bui-icon {
4
+ @apply inline-flex items-center justify-center;
5
+
6
+ // Modifiers (dimensioni)
7
+ &--xs {
8
+ @apply h-3 w-3;
9
+
10
+ svg {
11
+ @apply h-3 w-3;
12
+ }
13
+ }
14
+
15
+ &--sm {
16
+ @apply h-4 w-4;
17
+
18
+ svg {
19
+ @apply h-4 w-4;
20
+ }
21
+ }
22
+
23
+ &--md {
24
+ @apply h-5 w-5;
25
+
26
+ svg {
27
+ @apply h-5 w-5;
28
+ }
29
+ }
30
+
31
+ &--lg {
32
+ @apply h-6 w-6;
33
+
34
+ svg {
35
+ @apply h-6 w-6;
36
+ }
37
+ }
38
+
39
+ &--xl {
40
+ @apply h-8 w-8;
41
+
42
+ svg {
43
+ @apply h-8 w-8;
44
+ }
45
+ }
46
+
47
+ // Modifiers (varianti colore)
48
+ &--default {
49
+ @apply text-gray-500;
50
+ }
51
+
52
+ &--white {
53
+ @apply text-white;
54
+ }
55
+
56
+ &--red {
57
+ @apply text-red-500;
58
+ }
59
+
60
+ &--rose {
61
+ @apply text-rose-500;
62
+ }
63
+
64
+ &--orange {
65
+ @apply text-orange-500;
66
+ }
67
+
68
+ &--green {
69
+ @apply text-green-500;
70
+ }
71
+
72
+ &--blue {
73
+ @apply text-blue-500;
74
+ }
75
+
76
+ &--yellow {
77
+ @apply text-yellow-500;
78
+ }
79
+
80
+ &--violet {
81
+ @apply text-violet-500;
82
+ }
83
+
84
+ // Modifiers (varianti stile)
85
+ &--solid {
86
+ @apply rounded-full p-2 bg-gray-100;
87
+ }
88
+
89
+ &--solid-primary {
90
+ @apply rounded-full p-2 text-white;
91
+
92
+ &.bui-icon--red {
93
+ @apply bg-red-500;
94
+ }
95
+
96
+ &.bui-icon--rose {
97
+ @apply bg-rose-500;
98
+ }
99
+
100
+ &.bui-icon--orange {
101
+ @apply bg-orange-500;
102
+ }
103
+
104
+ &.bui-icon--green {
105
+ @apply bg-green-500;
106
+ }
107
+
108
+ &.bui-icon--blue {
109
+ @apply bg-blue-500;
110
+ }
111
+
112
+ &.bui-icon--yellow {
113
+ @apply bg-yellow-500;
114
+ }
115
+
116
+ &.bui-icon--violet {
117
+ @apply bg-violet-500;
118
+ }
119
+ }
120
+
121
+ // Stati
122
+ &--spin {
123
+ @apply animate-spin;
124
+ }
125
+
126
+ &--pulse {
127
+ @apply animate-pulse;
128
+ }
129
+
130
+ &--fixed-width {
131
+ @apply w-5;
132
+ }
133
+ }
90
134
  }
@@ -0,0 +1,17 @@
1
+ // Index file che raggruppa e riespone tutti i componenti
2
+ // Nota: È possibile utilizzare le variabili con @use "better_ui/components/variables" as vars;
3
+
4
+ // Componenti generali
5
+ @forward "button";
6
+ @forward "panel";
7
+ @forward "table";
8
+ @forward "badge";
9
+ @forward "avatar";
10
+ @forward "icon";
11
+ @forward "link";
12
+ @forward "heading";
13
+ @forward "breadcrumb";
14
+ @forward "spinner";
15
+
16
+ // Componenti applicativi
17
+ @forward "card";
@@ -1,130 +1,100 @@
1
- /* ==============================
2
- * Link Component
3
- * ============================== */
4
-
5
- /* Classe base per i link */
6
- .bui-link-base {
7
- @apply flex items-center;
8
- }
9
-
10
- /* Contenitore icona */
11
- .bui-link-icon-wrapper {
12
- @apply mr-1.5;
13
- }
14
-
15
- /* Temi di colore - Default */
16
- .bui-link-default-link {
17
- @apply text-gray-300 hover:text-white;
18
- }
19
-
20
- .bui-link-default-active {
21
- @apply text-white font-medium;
22
- }
23
-
24
- .bui-link-default-text {
25
- @apply text-white;
26
- }
27
-
28
- /* Temi di colore - White */
29
- .bui-link-white-link {
30
- @apply text-gray-600 hover:text-gray-900;
31
- }
32
-
33
- .bui-link-white-active {
34
- @apply text-black font-medium;
35
- }
36
-
37
- .bui-link-white-text {
38
- @apply text-black;
39
- }
40
-
41
- /* Temi di colore - Red */
42
- .bui-link-red-link {
43
- @apply text-red-200 hover:text-white;
44
- }
45
-
46
- .bui-link-red-active {
47
- @apply text-white font-medium;
48
- }
49
-
50
- .bui-link-red-text {
51
- @apply text-white;
52
- }
53
-
54
- /* Temi di colore - Rose */
55
- .bui-link-rose-link {
56
- @apply text-rose-200 hover:text-white;
57
- }
58
-
59
- .bui-link-rose-active {
60
- @apply text-white font-medium;
61
- }
62
-
63
- .bui-link-rose-text {
64
- @apply text-white;
65
- }
66
-
67
- /* Temi di colore - Orange */
68
- .bui-link-orange-link {
69
- @apply text-orange-200 hover:text-white;
70
- }
71
-
72
- .bui-link-orange-active {
73
- @apply text-white font-medium;
74
- }
75
-
76
- .bui-link-orange-text {
77
- @apply text-white;
78
- }
79
-
80
- /* Temi di colore - Green */
81
- .bui-link-green-link {
82
- @apply text-green-200 hover:text-white;
83
- }
84
-
85
- .bui-link-green-active {
86
- @apply text-white font-medium;
87
- }
88
-
89
- .bui-link-green-text {
90
- @apply text-white;
91
- }
92
-
93
- /* Temi di colore - Blue */
94
- .bui-link-blue-link {
95
- @apply text-blue-200 hover:text-white;
96
- }
97
-
98
- .bui-link-blue-active {
99
- @apply text-white font-medium;
100
- }
101
-
102
- .bui-link-blue-text {
103
- @apply text-white;
104
- }
105
-
106
- /* Temi di colore - Yellow */
107
- .bui-link-yellow-link {
108
- @apply text-yellow-700 hover:text-black;
109
- }
110
-
111
- .bui-link-yellow-active {
112
- @apply text-black font-medium;
113
- }
114
-
115
- .bui-link-yellow-text {
116
- @apply text-black;
117
- }
118
-
119
- /* Temi di colore - Violet */
120
- .bui-link-violet-link {
121
- @apply text-violet-200 hover:text-white;
122
- }
123
-
124
- .bui-link-violet-active {
125
- @apply text-white font-medium;
126
- }
127
-
128
- .bui-link-violet-text {
129
- @apply text-white;
1
+ @layer components {
2
+ // Classe base per il link (Block)
3
+ .bui-link {
4
+ @apply inline-flex items-center transition-colors duration-200;
5
+
6
+ // Elements
7
+ &__icon {
8
+ @apply flex-shrink-0;
9
+
10
+ &--left {
11
+ @apply mr-1.5;
12
+ }
13
+
14
+ &--right {
15
+ @apply ml-1.5;
16
+ }
17
+ }
18
+
19
+ &__text {
20
+ @apply inline;
21
+ }
22
+
23
+ // Modifiers (varianti colore)
24
+ &--default {
25
+ @apply text-gray-700 hover:text-gray-900;
26
+ }
27
+
28
+ &--white {
29
+ @apply text-white hover:text-gray-100;
30
+ }
31
+
32
+ &--red {
33
+ @apply text-red-600 hover:text-red-700;
34
+ }
35
+
36
+ &--rose {
37
+ @apply text-rose-600 hover:text-rose-700;
38
+ }
39
+
40
+ &--orange {
41
+ @apply text-orange-600 hover:text-orange-700;
42
+ }
43
+
44
+ &--green {
45
+ @apply text-green-600 hover:text-green-700;
46
+ }
47
+
48
+ &--blue {
49
+ @apply text-blue-600 hover:text-blue-700;
50
+ }
51
+
52
+ &--yellow {
53
+ @apply text-yellow-600 hover:text-yellow-700;
54
+ }
55
+
56
+ &--violet {
57
+ @apply text-violet-600 hover:text-violet-700;
58
+ }
59
+
60
+ // Modifiers (varianti stile)
61
+ &--underlined {
62
+ @apply underline decoration-1 underline-offset-2;
63
+ }
64
+
65
+ &--hover-underlined {
66
+ @apply no-underline hover:underline decoration-1 underline-offset-2;
67
+ }
68
+
69
+ &--bold {
70
+ @apply font-semibold;
71
+ }
72
+
73
+ // Modifiers (dimensioni)
74
+ &--sm {
75
+ @apply text-sm;
76
+ }
77
+
78
+ &--base {
79
+ @apply text-base;
80
+ }
81
+
82
+ &--lg {
83
+ @apply text-lg;
84
+ }
85
+
86
+ // Stati
87
+ &--active {
88
+ @apply font-medium;
89
+ }
90
+
91
+ &--disabled {
92
+ @apply pointer-events-none opacity-50;
93
+ }
94
+
95
+ // Stili specifici per bottoni che sembrano link
96
+ &--button {
97
+ @apply appearance-none bg-transparent border-none p-0 cursor-pointer;
98
+ }
99
+ }
130
100
  }