Skip to main content

Loaders, skeleton screens, overlays et indicateurs HTMX pour Django.

Project description

xeolux-loadingkit

PyPI version Python Django License: MIT

Package Django léger pour ajouter des loaders, skeleton screens, overlays et indicateurs HTMX dans n'importe quel projet.

Fait partie de la suite Xeolux — packages Django minimalistes et réutilisables.


Fonctionnalités

Template tag Description
{% xeolux_loadingkit_css %} Injecte la feuille CSS du package
{% xeolux_loader %} Spinner animé (sm / md / lg) avec texte optionnel
{% xeolux_overlay %} Overlay plein écran avec backdrop blur
{% xeolux_skeleton %} Skeleton shimmer (text / card / avatar / table / form)
{% xeolux_htmx_indicator %} Indicateur compatible HTMX

Installation

pip install xeolux-loadingkit

Ajout dans INSTALLED_APPS

# settings.py
INSTALLED_APPS = [
    ...
    "xeolux_loadingkit",
]

django.contrib.staticfiles doit également être présent (il l'est par défaut).


Utilisation

1. Injecter le CSS

Placez ce tag dans le <head> de votre template de base, après avoir chargé la bibliothèque :

{% load xeolux_loadingkit %}

<head>
  {% xeolux_loadingkit_css %}
</head>

2. Loader (spinner)

{# Taille par défaut (md) #}
{% xeolux_loader %}

{# Avec taille et texte #}
{% xeolux_loader size="sm" %}
{% xeolux_loader size="md" text="Chargement..." %}
{% xeolux_loader size="lg" text="Veuillez patienter" %}

Paramètres :

Paramètre Type Défaut Description
size str "md" "sm", "md" ou "lg"
text str|None None Texte affiché à côté du spinner

3. Overlay

{# Overlay inactif (caché) #}
{% xeolux_overlay %}

{# Overlay actif (visible) #}
{% xeolux_overlay text="Traitement en cours..." active=True %}

Pour l'activer dynamiquement via JavaScript :

document.querySelector('.xlk-overlay').classList.add('xlk-overlay--active');

Paramètres :

Paramètre Type Défaut Description
text str "Chargement en cours..." Texte de l'overlay
active bool False Si True, l'overlay est visible au chargement

4. Skeleton

{# Texte (défaut) #}
{% xeolux_skeleton %}
{% xeolux_skeleton type="text" lines=4 %}

{# Card #}
{% xeolux_skeleton type="card" %}

{# Avatar #}
{% xeolux_skeleton type="avatar" %}

{# Tableau #}
{% xeolux_skeleton type="table" lines=4 rows=5 %}

{# Formulaire #}
{% xeolux_skeleton type="form" lines=3 %}

Paramètres :

Paramètre Type Défaut Description
type str "text" "text", "card", "avatar", "table", "form"
lines int 3 Nombre de lignes (text / form) ou colonnes (table)
rows int 4 Nombre de lignes pour le type "table"

5. Indicateur HTMX

{% xeolux_htmx_indicator text="Chargement..." %}

L'indicateur est masqué par défaut et devient visible pendant une requête HTMX grâce à la classe .htmx-indicator standard.

Exemple complet avec HTMX

<button
    hx-post="/save/"
    hx-target="#result"
    hx-indicator="#xeolux-htmx-loader">
    Enregistrer
</button>

{% xeolux_htmx_indicator text="Enregistrement..." %}

Paramètres :

Paramètre Type Défaut Description
text str "Chargement..." Texte affiché pendant la requête

Personnalisation CSS

Toutes les valeurs visuelles sont contrôlées par des variables CSS. Surchargez-les dans votre propre feuille de style :

:root {
  --xlk-primary:      #3b6cf7;   /* Couleur principale (spinner, accents) */
  --xlk-bg:           #ffffff;   /* Fond de l'overlay intérieur */
  --xlk-muted:        #e2e6f0;   /* Fond des skeletons et du spinner */
  --xlk-text:         #374151;   /* Couleur du texte */
  --xlk-overlay-bg:   rgba(15, 20, 40, 0.55); /* Fond de l'overlay plein écran */
  --xlk-radius:       0.5rem;    /* Border-radius global */
  --xlk-speed:        0.7s;      /* Vitesse des animations */
}

Tester dans un projet Django

  1. Installez le package en mode éditable depuis la racine du repo :
pip install -e /chemin/vers/xeolux-loadingkit
  1. Ajoutez "xeolux_loadingkit" dans INSTALLED_APPS.

  2. Dans n'importe quel template :

{% load xeolux_loadingkit %}
{% xeolux_loadingkit_css %}
{% xeolux_loader size="md" text="Chargement..." %}
  1. Lancez python manage.py collectstatic si vous êtes en production.

Lancer les tests

# Depuis la racine du repo
pip install django pytest pytest-django
python -m pytest tests/ -v

Build & Publication PyPI

Build local

pip install build twine
python -m build

Les fichiers .tar.gz et .whl seront générés dans dist/.

Vérifier le package

twine check dist/*

Publier sur TestPyPI (recommandé avant la vraie publication)

twine upload --repository testpypi dist/*

Tester l'installation depuis TestPyPI :

pip install --index-url https://test.pypi.org/simple/ xeolux-loadingkit

Publier sur PyPI

twine upload dist/*

Vous aurez besoin d'un compte PyPI et d'un token API.
Configurez ~/.pypirc ou utilisez la variable d'environnement TWINE_PASSWORD.


Structure du projet

xeolux-loadingkit/
├── xeolux_loadingkit/
│   ├── __init__.py
│   ├── apps.py
│   ├── templatetags/
│   │   ├── __init__.py
│   │   └── xeolux_loadingkit.py
│   ├── templates/
│   │   └── xeolux_loadingkit/
│   │       ├── loader.html
│   │       ├── overlay.html
│   │       ├── skeleton.html
│   │       └── htmx_indicator.html
│   └── static/
│       └── xeolux_loadingkit/
│           └── css/
│               └── loadingkit.css
├── tests/
│   └── test_template_tags.py
├── README.md
├── pyproject.toml
├── LICENSE
└── MANIFEST.in

Compatibilité

Django Python
4.2 3.10, 3.11, 3.12
5.0 3.10, 3.11, 3.12
5.1 3.10, 3.11, 3.12

Licence

MIT © Xeolux

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xeolux_loadingkit-0.5.0.tar.gz (16.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

xeolux_loadingkit-0.5.0-py3-none-any.whl (14.7 kB view details)

Uploaded Python 3

File details

Details for the file xeolux_loadingkit-0.5.0.tar.gz.

File metadata

  • Download URL: xeolux_loadingkit-0.5.0.tar.gz
  • Upload date:
  • Size: 16.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for xeolux_loadingkit-0.5.0.tar.gz
Algorithm Hash digest
SHA256 3f5f25f7d80d805bfdc7855f3d137c65b41a7c55be519fd27d54e9eb714cad16
MD5 9954b245a1ff6704362bb0573f1ec428
BLAKE2b-256 3d4a089fa4ae62df0347b47ab0b7e75fbc6db372c9e97fb700dab528baea0512

See more details on using hashes here.

File details

Details for the file xeolux_loadingkit-0.5.0-py3-none-any.whl.

File metadata

File hashes

Hashes for xeolux_loadingkit-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 20afdfa71afac4c45c5296cc0306fc4437d36d89b294305f21caf3e8f354b277
MD5 0961647bc01cfb5fb41fba9cf7e5e11d
BLAKE2b-256 0ba0752a6a1b44bb6714c4d7fea039f282b32b1518469d58f548e0ba70efe396

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page