FloatingLabelsRails
Floating label form fields pour Rails avec Tailwind CSS et Stimulus.
Un gem Rails qui fournit des champs de formulaire avec labels flottants (style Bootstrap) en utilisant Tailwind CSS et Stimulus, sans aucune dépendance à Bootstrap.
Installation
Ajoutez cette ligne au Gemfile de votre application :
gem 'floating_labels_rails'Puis exécutez :
bundle install
rails generate floating_labels_rails:installPrérequis
- Rails >= 6.0
- Tailwind CSS configuré dans votre application
- Stimulus JS
Utilisation
Utilisation basique
<%= form_with model: @user, builder: FloatingLabelsRails::FormBuilder do |f| %>
<%= f.floating_text_field :first_name, label: "Prénom", required: true %>
<%= f.floating_email_field :email, label: "Email", required: true %>
<%= f.floating_password_field :password, label: "Mot de passe" %>
<%= f.submit %>
<% end %>Configuration globale
Pour utiliser le Form Builder par défaut dans toute votre application, ajoutez dans config/application.rb :
config.action_view.default_form_builder = FloatingLabelsRails::FormBuilderAprès cela, tous vos formulaires utiliseront automatiquement le builder :
<%= form_with model: @user do |f| %>
<%= f.floating_text_field :name %>
<% end %>Types de champs disponibles
# Champs texte
<%= f.floating_text_field :name %>
<%= f.floating_email_field :email %>
<%= f.floating_password_field :password %> # Avec toggle show/hide
<%= f.floating_telephone_field :phone %>
<%= f.floating_url_field :website %>
<%= f.floating_number_field :age %>
<%= f.floating_date_field :birth_date %>
# Select
<%= f.floating_select :country, [["France", "FR"], ["Belgique", "BE"]] %>
<%= f.floating_collection_select :category_id, Category.all, :id, :name %>
# Textarea
<%= f.floating_text_area :bio, rows: 5 %>Options
Tous les champs acceptent ces options :
-
label: Texte du label (par défaut : humanize de l'attribut) -
required: Affiche un astérisque rouge (par défaut : false) -
class: Classes CSS additionnelles
<%= f.floating_text_field :name,
label: "Nom complet",
required: true,
class: "my-custom-class" %>Gestion des erreurs
Les erreurs de validation sont automatiquement affichées :
- Bordure rouge sur le champ
- Label en rouge
- Message d'erreur sous le champ
Personnalisation
Vous pouvez personnaliser les couleurs Tailwind en modifiant les classes dans le Form Builder.
Par défaut, le gem utilise :
-
blue-500pour le focus -
red-500pour les erreurs -
gray-300pour les bordures
Développement
Après avoir cloné le repo :
bundle installContribution
Les contributions sont les bienvenues ! N'hésitez pas à ouvrir une issue ou une pull request.
Licence
Le gem est disponible en open source sous les termes de la MIT License.