Bibliothèque de composants UI modernes avec support HTMX optionnel
Project description
🚀 NexUI
NexUI est une bibliothèque de composants UI pour Django, optimisée pour HTMX et basée sur Tailwind CSS. Elle permet d'ajouter facilement des éléments interactifs à vos applications Django tout en bénéficiant des avantages d'une intégration fluide avec HTMX pour la gestion des requêtes AJAX.
📌 Installation
Installation de base
pip install nexui
Installation avec support HTMX
Si vous prévoyez d'utiliser HTMX avec vos composants :
pip install nexui[htmx]
Ou installez HTMX séparément plus tard :
pip install django-htmx
Ajoutez nexui à la liste des applications installées dans settings.py :
INSTALLED_APPS = [
...
'nexui',
]
🎨 Fonctionnalités
✅ Composants UI réutilisables pour Django
🔥 Intégration fluide avec HTMX
🎨 Basé sur Tailwind CSS pour un design moderne
📦 Facile à installer et à utiliser
🚀 Utilisation
Charger les tags NexUI dans vos templates Django
{% load nexui_tags %}
📖 Documentation
Consultez la documentation complète ici : Documentation officielle
🔘 Composant Button
Le composant button permet de créer des boutons personnalisables avec des icônes et des interactions HTMX.
Options disponibles :
label: Texte du boutontype: Type du bouton (button,submit,reset)class: Classes CSS personnaliséesicon: Icône (supporteEmojiFont AwesomeetUnicode)icon_type: Type d'icône (emoji,fa,unicode)icon_position: Position de l'icône (left,right)icon_size: Taille de l'icôneicon_color: Couleur de l'icônedisabled: Désactive le bouton (true)url_name: Nom de l'URL Djangourl_params: Paramètres dynamiques pour l'URL Djangoattrs: AttributsHTMLetHTMXsupplémentaires (_hx-_*,id,style,data-*etc.)
Exemples d'utilisation du Button :
1️⃣ Bouton simple
{% button label="Envoyer" %}
2️⃣ Bouton simple personnalisé
{% button label="Envoyer" type="submit" class="bg-yellow-500 text-black" %}
3️⃣ Bouton avec HTMX
{% button label="Envoyer avec HTMX" type="submit" class="bg-green-500" attrs="hx-post='/submit' hx-target='#result' hx-swap='innerHTML'" %}
4️⃣ Bouton avec URL dynamique
{% button label="Dynamique URL Params" type="submit" class="bg-blue-500 text-white" url_name="update-user" url_params="2, tomate" attrs="hx-confirm='Êtes-vous sûr ?' hx-target='#result' hx-swap='innerHTML'" %}
5️⃣ Bouton avec émojis
{% button label="Télécharger" class="bg-green-500" icon="⬇️" icon_position="left" icon_size="lg" %}
📝 Composant Input
Le composant input permet de créer des champs de saisie personnalisables avec labels, icônes et intégration HTMX.
Options disponibles :
type: Type de l'input (text,password,email, etc.)name: Nom du champid: ID du champ (par défaut égal auname)value: Valeur par défautplaceholder: Texte d'aidecontainer_class: Classes CSS pour le conteneur principalwrapper_class: Classes CSS pour le wrapper de l'inputlabel_class: Classes CSS pour le labelinput_class: Classes CSS pour l'inputlabel: Texte du labelrequired: Champ obligatoire (true/false)disabled: Désactive le champ (true/false)readonly: Lecture seule (true/false)icon: Icône (supporteEmoji,Font AwesomeetUnicode)icon_type: Type d'icône (fa,emoji)icon_position: Position de l'icône (left,right)icon_size: Taille de l'icôneicon_color: Couleur de l'icôneurl_name: Nom de l'URL Django pourHTMXmethod: Méthode HTTP pour HTMX (postpar défaut)attrs: AttributsHTMLetHTMXsupplémentaires
Exemples d'utilisation du Input :
1️⃣ Input simple avec label et icône
Input simple
{% input_field %}
Input simple avec label
{% input_field name="email" label="Email" %}
Input simple avec label, icône et personnalisation
{% input_field name="email" label="Email" icon="fas fa-envelope" icon_type="fa" icon_position="left" placeholder="Email" %}
2️⃣ Input password avec emoji
{% input_field type="password" icon="🔒" %}
3️⃣ Input avec HTMX et confirmation
{% input_field name="email" label="Email" icon="fas fa-envelope" icon_type="fa" url_name="submit-form" attrs='hx-confirm="Are you okay?"' %}
4️⃣ Input avec recherche en temps réel
{% input_field name="search" label="Recherche" icon="fas fa-search" icon_type="fa" icon_position="left" url_name="search_suggestions" attrs='hx-trigger="keyup changed delay:500ms" hx-target="#suggestions"' %}
5️⃣ Input personnalisé avec style
{% input_field container_class="py-2 flex items-center" name="email" label="Email" label_class="ml-2 text-gray-700 font-bold" input_class="w-44 pl-10 pr-3 py-2 rounded-md border border-gray-300" icon="fas fa-envelope" icon_type="fa" icon_position="left" %}
💡 Contribuer
Actuellement, le projet est en phase de test initial. Nous encourageons les utilisateurs intéressés à donner leur avis sur la bibliothèque.
Si vous souhaitez participer à l'évolution de NexUI ou si vous avez des suggestions :
Forkezle projet 📌Testezles composants et apportez vos retours 🛠️Créezune issue pour partager vos suggestions ou problèmes ✅
Nous ne pouvons pas accepter de contributions directes pour le moment, mais vos retours sont essentiels pour l'évolution de NexUI.
🔗 Liens utiles
- Dépôt GitHub 🖥️
- Signaler un bug 🐞
- Django-HTMX ⚡
- Django-Tailwind 🎨
- HTMX ⚡
- Tailwind CSS 🎨
⚖️ Licence
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nexui-0.1.8.tar.gz.
File metadata
- Download URL: nexui-0.1.8.tar.gz
- Upload date:
- Size: 18.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
abb82b747f665f9d560f1bf9351b25d83ac1602cf3fcbc09393657bf4af5dff4
|
|
| MD5 |
8b3d3eb6a478113a7c50d36467708b50
|
|
| BLAKE2b-256 |
634dc66861438d8ac8452e43057769fa7f2b4a99c446fd5819100d7fc9fa70c4
|
File details
Details for the file nexui-0.1.8-py3-none-any.whl.
File metadata
- Download URL: nexui-0.1.8-py3-none-any.whl
- Upload date:
- Size: 21.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
727987a2af58725c57a8f1a6ed2d8b1df3c2ecb9239f595c8febe3545fc4cce3
|
|
| MD5 |
83ba57995fa5e4b3652b69bfa50485a2
|
|
| BLAKE2b-256 |
1a82c28ca6c9810cf269aeaf6350cce9f3bdeac76e789845de661bedc881f6fa
|