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.4.0.tar.gz (14.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.4.0-py3-none-any.whl (12.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: xeolux_loadingkit-0.4.0.tar.gz
  • Upload date:
  • Size: 14.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.4.0.tar.gz
Algorithm Hash digest
SHA256 36ac552dbe8f304427c93a8a90a5f95902ed929fbcf54e8ad6bed0194a13d935
MD5 8249150e65a9d579c92d01e8a79a99ca
BLAKE2b-256 7a1ee11509f27b8fba8d512248ec30f81ad0074a5880d55075894b7166cc1adc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xeolux_loadingkit-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 615ce1fdf94c76d99ae3522d8dfe9e445e0cfe35b4605bfffc9b71de54295b64
MD5 f3eb852f5171c3d1b14c9e9ed30ec899
BLAKE2b-256 8edfba8520ae07cf69ad8dd5dc00baaa46bf9c1c76d41ca0f0ed2e5b2bd78d50

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