better_ui 0.1.0 → 0.1.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 (118) hide show
  1. checksums.yaml +4 -4
  2. data/MIT-LICENSE +1 -1
  3. data/README.md +225 -119
  4. data/app/assets/stylesheets/better_ui/application.css +0 -356
  5. data/app/components/better_ui/application/card/component.html.erb +20 -0
  6. data/app/components/better_ui/application/card/component.rb +214 -0
  7. data/app/components/better_ui/application/main/component.html.erb +9 -0
  8. data/app/components/better_ui/application/main/component.rb +123 -0
  9. data/app/components/better_ui/application/navbar/component.html.erb +92 -0
  10. data/app/components/better_ui/application/navbar/component.rb +136 -0
  11. data/app/components/better_ui/application/sidebar/component.html.erb +190 -0
  12. data/app/components/better_ui/application/sidebar/component.rb +129 -0
  13. data/app/components/better_ui/general/alert/component.html.erb +32 -0
  14. data/app/components/better_ui/general/alert/component.rb +242 -0
  15. data/app/components/better_ui/general/avatar/component.html.erb +20 -0
  16. data/app/components/better_ui/general/avatar/component.rb +301 -0
  17. data/app/components/better_ui/general/badge/component.html.erb +23 -0
  18. data/app/components/better_ui/general/badge/component.rb +248 -0
  19. data/app/components/better_ui/general/breadcrumb/component.html.erb +15 -0
  20. data/app/components/better_ui/general/breadcrumb/component.rb +187 -0
  21. data/app/components/better_ui/general/button/component.html.erb +34 -0
  22. data/app/components/better_ui/general/button/component.rb +214 -0
  23. data/app/components/better_ui/general/divider/component.html.erb +10 -0
  24. data/app/components/better_ui/general/divider/component.rb +226 -0
  25. data/app/components/better_ui/general/field/component.html.erb +27 -0
  26. data/app/components/better_ui/general/field/component.rb +37 -0
  27. data/app/components/better_ui/general/heading/component.html.erb +22 -0
  28. data/app/components/better_ui/general/heading/component.rb +257 -0
  29. data/app/components/better_ui/general/icon/component.html.erb +7 -0
  30. data/app/components/better_ui/general/icon/component.rb +239 -0
  31. data/app/components/better_ui/general/input/checkbox/component.html.erb +5 -0
  32. data/app/components/better_ui/general/input/checkbox/component.rb +238 -0
  33. data/app/components/better_ui/general/input/datetime/component.html.erb +5 -0
  34. data/app/components/better_ui/general/input/datetime/component.rb +223 -0
  35. data/app/components/better_ui/general/input/radio/component.html.erb +5 -0
  36. data/app/components/better_ui/general/input/radio/component.rb +230 -0
  37. data/app/components/better_ui/general/input/select/component.html.erb +16 -0
  38. data/app/components/better_ui/general/input/select/component.rb +184 -0
  39. data/app/components/better_ui/general/input/select/select_component.html.erb +5 -0
  40. data/app/components/better_ui/general/input/select/select_component.rb +37 -0
  41. data/app/components/better_ui/general/input/text/component.html.erb +5 -0
  42. data/app/components/better_ui/general/input/text/component.rb +171 -0
  43. data/app/components/better_ui/general/input/textarea/component.html.erb +5 -0
  44. data/app/components/better_ui/general/input/textarea/component.rb +166 -0
  45. data/app/components/better_ui/general/link/component.html.erb +18 -0
  46. data/app/components/better_ui/general/link/component.rb +258 -0
  47. data/app/components/better_ui/general/panel/component.html.erb +28 -0
  48. data/app/components/better_ui/general/panel/component.rb +249 -0
  49. data/app/components/better_ui/general/progress/component.html.erb +11 -0
  50. data/app/components/better_ui/general/progress/component.rb +160 -0
  51. data/app/components/better_ui/general/spinner/component.html.erb +35 -0
  52. data/app/components/better_ui/general/spinner/component.rb +93 -0
  53. data/app/components/better_ui/general/table/component.html.erb +5 -0
  54. data/app/components/better_ui/general/table/component.rb +217 -0
  55. data/app/components/better_ui/general/table/tbody_component.html.erb +3 -0
  56. data/app/components/better_ui/general/table/tbody_component.rb +30 -0
  57. data/app/components/better_ui/general/table/td_component.html.erb +3 -0
  58. data/app/components/better_ui/general/table/td_component.rb +44 -0
  59. data/app/components/better_ui/general/table/tfoot_component.html.erb +3 -0
  60. data/app/components/better_ui/general/table/tfoot_component.rb +28 -0
  61. data/app/components/better_ui/general/table/th_component.html.erb +6 -0
  62. data/app/components/better_ui/general/table/th_component.rb +51 -0
  63. data/app/components/better_ui/general/table/thead_component.html.erb +3 -0
  64. data/app/components/better_ui/general/table/thead_component.rb +28 -0
  65. data/app/components/better_ui/general/table/tr_component.html.erb +3 -0
  66. data/app/components/better_ui/general/table/tr_component.rb +30 -0
  67. data/app/components/better_ui/general/tag/component.html.erb +3 -0
  68. data/app/components/better_ui/general/tag/component.rb +104 -0
  69. data/app/components/better_ui/general/tooltip/component.html.erb +7 -0
  70. data/app/components/better_ui/general/tooltip/component.rb +239 -0
  71. data/app/helpers/better_ui/application/components/card/card_helper.rb +96 -0
  72. data/app/helpers/better_ui/application/components/card.rb +11 -0
  73. data/app/helpers/better_ui/application/components/main/main_helper.rb +64 -0
  74. data/app/helpers/better_ui/application/components/navbar/navbar_helper.rb +77 -0
  75. data/app/helpers/better_ui/application/components/sidebar/sidebar_helper.rb +51 -0
  76. data/app/helpers/better_ui/application_helper.rb +42 -179
  77. data/app/helpers/better_ui/general/components/alert/alert_helper.rb +57 -0
  78. data/app/helpers/better_ui/general/components/avatar/avatar_helper.rb +29 -0
  79. data/app/helpers/better_ui/general/components/badge/badge_helper.rb +53 -0
  80. data/app/helpers/better_ui/general/components/breadcrumb/breadcrumb_helper.rb +37 -0
  81. data/app/helpers/better_ui/general/components/button/button_helper.rb +65 -0
  82. data/app/helpers/better_ui/general/components/container/container_helper.rb +60 -0
  83. data/app/helpers/better_ui/general/components/divider/divider_helper.rb +63 -0
  84. data/app/helpers/better_ui/general/components/field/field_helper.rb +26 -0
  85. data/app/helpers/better_ui/general/components/heading/heading_helper.rb +72 -0
  86. data/app/helpers/better_ui/general/components/icon/icon_helper.rb +16 -0
  87. data/app/helpers/better_ui/general/components/input/checkbox/checkbox_helper.rb +81 -0
  88. data/app/helpers/better_ui/general/components/input/datetime/datetime_helper.rb +91 -0
  89. data/app/helpers/better_ui/general/components/input/radio/radio_helper.rb +79 -0
  90. data/app/helpers/better_ui/general/components/input/radio_group/radio_group_helper.rb +124 -0
  91. data/app/helpers/better_ui/general/components/input/select/select_helper.rb +70 -0
  92. data/app/helpers/better_ui/general/components/input/text/text_helper.rb +138 -0
  93. data/app/helpers/better_ui/general/components/input/textarea/textarea_helper.rb +73 -0
  94. data/app/helpers/better_ui/general/components/link/link_helper.rb +89 -0
  95. data/app/helpers/better_ui/general/components/panel/panel_helper.rb +83 -0
  96. data/app/helpers/better_ui/general/components/progress/progress_helper.rb +53 -0
  97. data/app/helpers/better_ui/general/components/spinner/spinner_helper.rb +19 -0
  98. data/app/helpers/better_ui/general/components/table/table_helper.rb +53 -0
  99. data/app/helpers/better_ui/general/components/table/tbody_helper.rb +13 -0
  100. data/app/helpers/better_ui/general/components/table/td_helper.rb +19 -0
  101. data/app/helpers/better_ui/general/components/table/tfoot_helper.rb +13 -0
  102. data/app/helpers/better_ui/general/components/table/th_helper.rb +19 -0
  103. data/app/helpers/better_ui/general/components/table/thead_helper.rb +13 -0
  104. data/app/helpers/better_ui/general/components/table/tr_helper.rb +13 -0
  105. data/app/helpers/better_ui/general/components/tag/tag_helper.rb +26 -0
  106. data/app/helpers/better_ui/general/components/tooltip/tooltip_helper.rb +60 -0
  107. data/app/views/layouts/better_ui/application.html.erb +6 -124
  108. data/config/initializers/lookbook.rb +23 -0
  109. data/config/routes.rb +0 -8
  110. data/lib/better_ui/engine.rb +5 -19
  111. data/lib/better_ui/railtie.rb +20 -0
  112. data/lib/better_ui/version.rb +1 -1
  113. data/lib/better_ui.rb +4 -20
  114. metadata +131 -28
  115. data/app/controllers/better_ui/docs_controller.rb +0 -41
  116. data/app/views/better_ui/docs/component.html.erb +0 -365
  117. data/app/views/better_ui/docs/index.html.erb +0 -100
  118. data/app/views/better_ui/docs/show.html.erb +0 -60
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8c59e86ef83ec560909908edbbbecd0c33a3663df87de94e99fff0475be5b23d
4
- data.tar.gz: dc7a3b578f0b2cc70f3e25c843dbc918723bf4d0b7d9bdb4b511e2ad073cc5fd
3
+ metadata.gz: c6522f1369534716a8fe823429de29dad169ad4218482f5b3862b55f4f540831
4
+ data.tar.gz: 58ffe37cb7d9f769727b46430684b50d0ddbd1254e6b67838a3e5ba52d3a387a
5
5
  SHA512:
6
- metadata.gz: 66fdc7a9f14ff11b0d79caaff30d1b35ba4878dbbfcbddca7571684eb3628c62288a4fff4a33416b285c479ab96ca22ed271949184c472cb36f4131270a15552
7
- data.tar.gz: abaf0df7af66450518ab1620ca0fe165e411c2b96a6accfc3a49acb91a93b82c64c7093bacbb7e5e272040275b96063dee0253608a08f406d2e1122ff78cb8c3
6
+ metadata.gz: 9c3190b2940333413e85612676ab048b9c06a24a8138f99b202704cfc9799985386c03a37cb9485a7d57e2ca679ac1bd52535292d5ecaa36930667e5427404af
7
+ data.tar.gz: f11573aa7341a77d293c2af1f1ff602cb9a7eaf494767175b93459b25cbdb4a0008eacff85f2d25d8c3bacedbb99800c6fb5ef74e28ec412ac8576c8b1ac184d
data/MIT-LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright alessiobussolari
1
+ Copyright Umberto Peserico
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -1,195 +1,301 @@
1
- # BetterUI 🎨
1
+ # BetterUI
2
2
 
3
- [![Gem Version](https://badge.fury.io/rb/better_ui.svg)](https://badge.fury.io/rb/better_ui)
4
- [![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
3
+ Una libreria completa di componenti UI per applicazioni Rails costruita con ViewComponent e Tailwind CSS. Include 26 componenti con un sistema di design unificato e documentazione interattiva.
5
4
 
6
- > Componenti UI eleganti, coerenti e facilmente integrabili per le tue applicazioni Rails
5
+ - 🎨 **Componenti Eleganti**: Componenti UI pre-costruiti con styling Tailwind CSS
6
+ - 📖 **Documentazione Interattiva**: Preview Lookbook integrate per tutti i componenti
7
+ - 🔧 **Altamente Personalizzabile**: Opzioni di configurazione flessibili per ogni componente
8
+ - 🚀 **Production Ready**: Componenti testati che seguono le best practices
9
+ - 📱 **Responsive**: Tutti i componenti sono mobile-first e responsive
10
+ - ♿ **Accessibile**: Costruiti pensando all'accessibilità
7
11
 
8
- BetterUI è una gemma Rails che fornisce componenti UI riutilizzabili con documentazione integrata. Progettata per essere leggera, personalizzabile e facile da usare, ti aiuta a costruire interfacce belle e consistenti senza JavaScript.
12
+ ## Panoramica
9
13
 
10
- ## Caratteristiche principali
14
+ Better UI è una gem Rails che fornisce una collezione di componenti UI riutilizzabili costruiti con ViewComponent e Tailwind CSS. Include un sistema di design unificato con tematizzazione consistente e gestione completa dei form.
11
15
 
12
- - **Design puro** - Componenti UI eleganti e completamente CSS, senza JavaScript
13
- - **Facile integrazione** - Engine Rails montabile che si integra perfettamente con la tua app
14
- - **Documentazione integrata** - Visualizza esempi e documentazione direttamente nel browser
15
- - **Altamente personalizzabile** - Adatta facilmente lo stile al tuo brand
16
- - **Componenti modulari** - Usa solo ciò di cui hai bisogno
16
+ ### Caratteristiche Principali
17
17
 
18
- ## 📦 Componenti disponibili
18
+ - **Solo TailwindCSS**: Approccio puro Tailwind senza file CSS/SCSS personalizzati
19
+ - **26 Componenti**: Libreria completa organizzata per scopo
20
+ - **Sistema Input Unificato**: Componenti input supportano 14+ tipi (text, email, password, number, date, time, etc.)
21
+ - **Documentazione Interattiva**: Integrazione Lookbook con preview live
22
+ - **Sistema Helper**: Helper Rails-friendly con integrazione form builder
23
+ - **Tematizzazione Consistente**: 9 temi standard (default, white, red, rose, orange, green, blue, yellow, violet)
24
+ - **Dimensionamento Flessibile**: 3 dimensioni standard (small, medium, large) con 5 opzioni border radius
25
+ - **Accessibilità**: Componenti progettati seguendo le best practices di accessibilità
19
26
 
20
- | Componente | Descrizione |
21
- |------------|-------------|
22
- | **Button** | Pulsanti stilizzati con varianti primary, secondary, success, danger |
23
- | **Alert** | Messaggi informativi, successi, avvisi ed errori |
24
- | **Card** | Contenitori flessibili con header, body e footer |
25
- | **Modal** | Finestre di dialogo modali |
26
- | **Tabs** | Navigazione a schede |
27
- | **Form Elements** | Campi di input stilizzati (in arrivo) |
28
-
29
- ## 🚀 Installazione
27
+ ## Installazione
30
28
 
31
29
  Aggiungi questa riga al Gemfile della tua applicazione:
32
30
 
33
31
  ```ruby
34
- gem 'better_ui', '~> 0.1.0'
32
+ gem "better_ui"
33
+ ```
34
+
35
+ Per lo sviluppo con documentazione Lookbook:
36
+
37
+ ```ruby
38
+ gem "better_ui"
39
+ gem "lookbook", group: :development
35
40
  ```
36
41
 
37
- E poi esegui:
42
+ Quindi esegui:
38
43
 
39
44
  ```bash
40
45
  $ bundle install
41
46
  ```
42
47
 
43
- ## ⚙️ Configurazione
48
+ ## Setup
44
49
 
45
- ### Monta l'engine
50
+ ### 1. Mount Engine (Opzionale)
46
51
 
47
- Aggiungi questo al tuo file `config/routes.rb`:
52
+ Se vuoi accedere alle route interne di BetterUI, monta l'engine in `config/routes.rb`:
48
53
 
49
54
  ```ruby
50
55
  Rails.application.routes.draw do
51
- mount BetterUi::Engine => '/better_ui'
52
-
53
- # ... altre tue route
56
+ mount BetterUi::Engine => "/better_ui"
57
+ # le tue altre route...
54
58
  end
55
59
  ```
56
60
 
57
- ### Includi gli assets
61
+ ### 2. Setup Lookbook (Raccomandato per Development)
62
+
63
+ Per accedere alla documentazione interattiva dei componenti durante lo sviluppo, monta Lookbook in `config/routes.rb`:
58
64
 
59
- In `app/assets/stylesheets/application.css`:
65
+ ```ruby
66
+ Rails.application.routes.draw do
67
+ # Monta Lookbook solo in development
68
+ mount Lookbook::Engine => "/lookbook" if Rails.env.development?
60
69
 
61
- ```css
62
- /*
63
- *= require better_ui/application
64
- */
70
+ # le tue altre route...
71
+ end
65
72
  ```
66
73
 
67
- ## 🎮 Utilizzo
74
+ **Fatto!** I componenti BetterUI e le loro preview sono automaticamente disponibili in Lookbook.
75
+
76
+ ### 3. Includi Tailwind CSS
77
+
78
+ Assicurati che la tua applicazione includa Tailwind CSS, dato che i componenti BetterUI si basano sulle classi Tailwind. Se non hai Tailwind CSS installato, segui la [guida ufficiale di installazione Tailwind CSS](https://tailwindcss.com/docs/guides/ruby-on-rails).
79
+
80
+ ## Utilizzo
68
81
 
69
- Una volta installato, puoi iniziare ad usare i componenti:
82
+ I componenti Better UI possono essere utilizzati in due modi: istanziazione diretta o metodi helper.
83
+
84
+ ### Metodi Helper (Raccomandato)
70
85
 
71
86
  ```erb
72
- <%# Button %>
73
- <%= better_ui_button("Salva", type: "primary") %>
74
-
75
- <%# Alert %>
76
- <%= better_ui_alert("Operazione completata", type: "success") %>
77
-
78
- <%# Card %>
79
- <%= better_ui_card do %>
80
- <%= better_ui_card_header("Titolo Card") %>
81
- <%= better_ui_card_body do %>
82
- <p>Contenuto della card...</p>
83
- <% end %>
87
+ <%# Input di testo con validazione %>
88
+ <%= bui_input_text(
89
+ name: 'email',
90
+ value: @user.email,
91
+ type: :email,
92
+ theme: :blue,
93
+ size: :large,
94
+ required: true
95
+ ) %>
96
+
97
+ <%# Button con theme e size %>
98
+ <%= bui_button(
99
+ 'Invia Form',
100
+ theme: :green,
101
+ size: :large,
102
+ type: :submit
103
+ ) %>
104
+
105
+ <%# Card con blocco di contenuto %>
106
+ <%= bui_card(title: 'Profilo Utente', theme: :white) do %>
107
+ <p>Contenuto informazioni utente qui</p>
108
+ <% end %>
109
+
110
+ <%# Integrazione con form %>
111
+ <%= form_with model: @user do |form| %>
112
+ <%= bui_input_text(name: 'name', form: form, required: true) %>
113
+ <%= bui_input_text(name: 'email', type: :email, form: form) %>
114
+ <%= bui_button('Salva', type: :submit, theme: :blue) %>
84
115
  <% end %>
85
116
  ```
86
117
 
87
- Visita `/better_ui` nella tua applicazione per vedere la documentazione completa e gli esempi.
118
+ ### Istanziazione Diretta
119
+
120
+ ```erb
121
+ <%# Rendering diretto del componente %>
122
+ <%= render BetterUi::General::Input::Text::Component.new(
123
+ name: 'username',
124
+ type: :text,
125
+ theme: :default,
126
+ size: :medium
127
+ ) %>
128
+
129
+ <%# Componente button %>
130
+ <%= render BetterUi::General::Button::Component.new(
131
+ 'Cliccami',
132
+ theme: :blue,
133
+ size: :large
134
+ ) %>
135
+ ```
88
136
 
89
- ## 🎨 Personalizzazione
137
+ ### Sistema di Tematizzazione
90
138
 
91
- ### Usa l'inizializzatore
139
+ Tutti i componenti supportano tematizzazione consistente:
92
140
 
93
- Crea un file `config/initializers/better_ui.rb`:
141
+ - **9 Temi Standard**: default, white, red, rose, orange, green, blue, yellow, violet
142
+ - **3 Dimensioni Standard**: small, medium, large
143
+ - **5 Opzioni Border Radius**: none, small, medium, large, full
144
+
145
+ ### Approccio Styling
146
+
147
+ Better UI usa un approccio TailwindCSS puro con costanti per styling manutenibile:
94
148
 
95
149
  ```ruby
96
- BetterUi.configure do |config|
97
- config.button_defaults = {
98
- class: 'rounded-lg text-sm'
99
- }
100
-
101
- config.alert_defaults = {
102
- dismissible: true
103
- }
104
- end
150
+ # Le costanti del componente definiscono le opzioni di styling
151
+ BUTTON_THEME_CLASSES = {
152
+ default: 'bg-gray-100 text-gray-900 hover:bg-gray-200',
153
+ blue: 'bg-blue-600 text-white hover:bg-blue-700',
154
+ green: 'bg-green-600 text-white hover:bg-green-700'
155
+ }.freeze
156
+
157
+ BUTTON_SIZE_CLASSES = {
158
+ small: 'px-3 py-1.5 text-sm',
159
+ medium: 'px-4 py-2 text-base',
160
+ large: 'px-6 py-3 text-lg'
161
+ }.freeze
105
162
  ```
106
163
 
107
- ### Personalizza gli stili
164
+ ## Componenti Disponibili
108
165
 
109
- Sovrascrivi gli stili CSS nel tuo foglio di stile:
166
+ Better UI include 26 componenti organizzati in tre categorie:
110
167
 
111
- ```css
112
- .better-ui-button-primary {
113
- background-color: #8b5cf6; /* Viola personalizzato */
114
- border-color: #8b5cf6;
115
- }
116
- ```
168
+ ### Componenti Application (4)
117
169
 
118
- ## 🛠 Sviluppo
170
+ Componenti di layout e navigazione per interfacce applicative:
119
171
 
120
- BetterUI utilizza una app dummy integrata per lo sviluppo e i test. Ecco come iniziare:
172
+ - **Card**: Container di contenuto con supporto header e azioni
173
+ - **Main**: Area contenuto principale dell'applicazione con layout responsive
174
+ - **Navbar**: Barra di navigazione superiore con supporto contenuto flessibile
175
+ - **Sidebar**: Navigazione laterale collassabile
121
176
 
122
- ### Setup iniziale
177
+ ### Componenti General (22)
123
178
 
124
- ```bash
125
- # Clona il repository
126
- git clone https://github.com/alessiobussolari/better_ui.git
127
- cd better_ui
179
+ Elementi UI core per costruire interfacce:
128
180
 
129
- # Installa le dipendenze
130
- bin/setup
131
- ```
181
+ **Display & Feedback**
132
182
 
133
- ### Avvia l'applicazione di test
183
+ - **Alert**: Messaggi di notifica con temi multipli e opzioni dismissible
184
+ - **Avatar**: Immagini profilo utente con supporto fallback
185
+ - **Badge**: Indicatori di stato e etichette
186
+ - **Progress**: Barre di progresso e indicatori di caricamento
187
+ - **Spinner**: Animazioni di caricamento
188
+ - **Tooltip**: Overlay di aiuto contestuale e informazioni
134
189
 
135
- Per vedere i componenti in azione e lavorare sulla documentazione:
190
+ **Navigazione & Struttura**
136
191
 
137
- ```bash
138
- # Avvia il server di test
139
- cd test/dummy
140
- bin/rails server
192
+ - **Breadcrumb**: Indicatori di percorso di navigazione
193
+ - **Divider**: Separatori di contenuto visivi
194
+ - **Heading**: Intestazioni con tipografia consistente
195
+ - **Icon**: Sistema icone SVG con libreria estesa
196
+ - **Link**: Elementi anchor potenziati con supporto theme
197
+ - **Panel**: Sezioni di contenuto organizzate
198
+ - **Table**: Tabelle dati con sorting e funzionalità responsive
199
+ - **Tag**: Elementi di categorizzazione ed etichettatura
141
200
 
142
- # Oppure dalla directory principale
143
- bin/rails server -b 0.0.0.0
144
- ```
201
+ **Form & Input**
202
+
203
+ - **Button**: Button azione con varianti multiple e stati
204
+ - **Field**: Wrapper campo form con supporto label e validazione
205
+ - **Input**: Sistema input unificato che supporta 14+ tipi:
206
+ - **Text**: text, email, password, search, url, tel
207
+ - **Number**: number, range
208
+ - **Date/Time**: date, datetime-local, time, month, week
209
+ - **File**: upload file
210
+ - **Color**: color picker
211
+ - **Checkbox**: Opzioni multi-selezione
212
+ - **Radio**: Opzioni selezione singola
213
+ - **Select**: Selezioni dropdown
214
+ - **Textarea**: Input testo multi-riga
215
+
216
+ ### Componenti Form (0)
217
+
218
+ Riservati per futuri componenti form specializzati e widget form complessi.
219
+
220
+ ## Personalizzazione e Styling
221
+
222
+ I componenti BetterUI usano classi Tailwind CSS. Puoi:
145
223
 
146
- Visita `http://localhost:3000/better_ui` nel tuo browser per vedere la documentazione e testare i componenti.
224
+ 1. **Sovrascrivere classi**: Passa classi personalizzate tramite il parametro `classes`
225
+ 2. **Estendere componenti**: Crea i tuoi componenti che ereditano da BetterUI
226
+ 3. **Personalizzazione theme**: Modifica la configurazione Tailwind per tematizzazione consistente
147
227
 
148
- ### Flusso di sviluppo
228
+ ```erb
229
+ <!-- Aggiungi classi personalizzate -->
230
+ <%= render BetterUi::General::Button::Component.new(
231
+ label: "Button Personalizzato",
232
+ classes: "my-custom-class hover:scale-105"
233
+ ) %>
234
+ ```
235
+
236
+ Better UI è progettato per essere altamente personalizzabile mantenendo consistenza:
149
237
 
150
- 1. **Crea un branch**: `git checkout -b feature/nuovo-componente`
151
- 2. **Implementa il componente**: Aggiungi helper in `app/helpers/better_ui/application_helper.rb`
152
- 3. **Aggiungi CSS**: Inserisci gli stili in `app/assets/stylesheets/better_ui/application.css`
153
- 4. **Documenta**: Crea file Markdown in `docs/components/`
154
- 5. **Testa**: Verifica nell'app dummy che tutto funzioni correttamente
155
- 6. **Esegui i test**: `rake test`
238
+ 1. **Personalizzazione Theme**: Modifica le costanti dei componenti per cambiare lo styling di default
239
+ 2. **Configurazione Componenti**: Configura opzioni di default in `config/initializers/better_ui.rb`
240
+ 3. **Integrazione TailwindCSS**: Tutto lo styling usa classi TailwindCSS per massima flessibilità
241
+ 4. **Estensioni Componenti**: Estendi componenti esistenti o crea i tuoi seguendo i pattern stabiliti
156
242
 
157
- ### Build e rilascio
243
+ ## Testing
158
244
 
159
- Per buildare la gemma localmente:
245
+ I componenti Better UI sono testati completamente. Puoi eseguire la test suite con:
160
246
 
161
247
  ```bash
162
- bundle exec rake build
248
+ bin/rails test
163
249
  ```
164
250
 
165
- Per installare la versione in sviluppo:
251
+ ## Supporto Browser
252
+
253
+ I componenti BetterUI supportano tutti i browser moderni che supportano:
254
+
255
+ - CSS Grid e Flexbox
256
+ - Funzionalità JavaScript ES6+
257
+ - Tailwind CSS
258
+
259
+ ## Contributing
260
+
261
+ 1. Forka il repository
262
+ 2. Crea il tuo branch feature (`git checkout -b feature/componente-fantastico`)
263
+ 3. Aggiungi il tuo componente con test e preview Lookbook
264
+ 4. Committa le tue modifiche (`git commit -am 'Aggiungi componente fantastico'`)
265
+ 5. Pusha al branch (`git push origin feature/componente-fantastico`)
266
+ 6. Crea una Pull Request
267
+
268
+ ### Setup Development
166
269
 
167
270
  ```bash
168
- bundle exec rake install
271
+ git clone https://github.com/alessiobussolari/better_ui.git
272
+ cd better_ui
273
+ bundle install
274
+ cd test/dummy
275
+ bundle exec rails server
169
276
  ```
170
277
 
171
- ## 🤝 Contribuire
278
+ Visita `http://localhost:3000/lookbook` per vedere la documentazione dei componenti.
172
279
 
173
- I contributi sono benvenuti e apprezzati! Ecco come puoi aiutare:
280
+ ## Roadmap
174
281
 
175
- 1. **Fork** il repository su GitHub
176
- 2. **Clona** il tuo fork: `git clone https://github.com/TUO-USERNAME/better_ui.git`
177
- 3. **Crea** un branch per la tua feature: `git checkout -b feature/incredibile-miglioramento`
178
- 4. **Committa** i tuoi cambiamenti: `git commit -am 'Aggiunge una funzionalità incredibile'`
179
- 5. **Pusha** al branch: `git push origin feature/incredibile-miglioramento`
180
- 6. Invia una **Pull Request**
282
+ - 🎯 Componenti form avanzati (input complessi, validazioni)
283
+ - 📊 Componenti chart e visualizzazione dati
284
+ - 🎭 Componenti animazione e transizione
285
+ - 🌙 Supporto dark mode
286
+ - 📱 Componenti specifici mobile
287
+ - 🔧 Tool di configurazione e generatori
181
288
 
182
- ### Linee guida
289
+ ## License
183
290
 
184
- - Segui lo stile di codice esistente
185
- - Scrivi test per le nuove funzionalità
186
- - Aggiorna la documentazione
187
- - Crea componenti che funzionano senza JavaScript
291
+ La gem è disponibile come open source sotto i termini della [MIT License](https://opensource.org/licenses/MIT).
188
292
 
189
- ## 📄 Licenza
293
+ ## Support
190
294
 
191
- BetterUI è disponibile come open source sotto i termini della [Licenza MIT](https://opensource.org/licenses/MIT).
295
+ - 📖 [Documentazione](https://github.com/alessiobussolari/better_ui)
296
+ - 🐛 [Issue Tracker](https://github.com/alessiobussolari/better_ui/issues)
297
+ - 💬 [Discussioni](https://github.com/alessiobussolari/better_ui/discussions)
192
298
 
193
299
  ---
194
300
 
195
- Realizzato con ❤️ da [Alessio Bussolari](https://github.com/alessiobussolari)
301
+ Costruito con ❤️ da [PanDev](https://github.com/alessiobussolari)