The Modern Django Component Framework with built-in Accessibility
65+ UI components designed with WCAG 2.2 AA as an accessibility target
HTMX-powered · Tailwind-based · RTL & i18n ready
Live Demo · Get Started · Components
Insight UI is a reusable Django component library that provides production-ready UI building blocks. Components are implemented as Django template tags with typed configuration dataclasses, styled with Tailwind CSS, and enhanced with HTMX for interactivity — no JavaScript framework required.
Features
- Accessibility-focused — Keyboard, focus and ARIA behavior in navigation, forms, tables and modals
- HTMX integration — Partial updates without full page reloads
- Tailwind design system — Customizable semantic tokens for fast brand alignment
- RTL & i18n ready — Right-to-left layouts and localization included
- Light & dark themes — Automatic theme switching with CSS custom properties
WCAG 2.2 AA is a design target, not a verified package-wide conformance claim. Conformance must be assessed for complete pages and processes in the consuming application. See Accessibility for scope and limitations.
Quick Start
Install the package:
uv add insight-ui
Add to your Django settings:
INSTALLED_APPS = [
# Your apps...
"django.contrib.staticfiles",
"insight_ui",
]
TEMPLATES = [
{
# ...
"OPTIONS": {
"context_processors": [
# ...
"insight_ui.context_processors.insight_ui_context",
],
},
},
]
Use components in your templates:
{% extends "insight_ui/base.html" %}
{% load insight_tags %}
{% block title %}My application{% endblock %}
{% block content %}
{% button label="Get started" type="primary" %}
{% card title="Welcome" subtitle="Your first card" content="Card content goes here." %}
{% alert type="success" message="Component rendered successfully." %}
{% endblock %}
See Getting Started for complete setup including static assets.
Documentation
The following guides describe the public package and contributor workflow on GitHub.
| Guide | Description |
|---|---|
| Getting Started | Installation and configuration |
| Components | Template tag API and patterns |
| Design System | Tokens, theming, and customization |
| Static Assets | Staticfiles and CDN configuration |
| Accessibility | WCAG scope, testing, and limitations |
| Internationalization | i18n and RTL support |
Full component reference and live examples at django-insight-ui.com.
Contributing
git clone https://github.com/alpininsight/insight-ui.git
cd insight-ui
uv sync --all-groups
npm ci
npm run build:static-all
uv run pytest
The devtools app provides a local playground for component development:
uv run python manage.py runserver 127.0.0.1:8000
Edit devtools/views.py for Configs and devtools/templates/devtools/playground.html
for their template tags, then open http://127.0.0.1:8000/.
To scaffold a new component:
uv run python manage.py create_component --name "My Widget" --category input --no-js --dry-run
See CONTRIBUTING.md for the full workflow.
Package Scope
This repository contains the insight_ui Python package. The documentation website,
component catalog, and examples are maintained in a separate repository.
The local devtools playground and contributor guides stay in the Git checkout,
not the wheel or sdist. Contributors need no private repository or credentials.
License
GNU Affero General Public License v3.0. For commercial licensing see COMMERCIAL_LICENSE.md.
Licensing metadata follows REUSE. Third-party notices are in NOTICE and insight_ui/THIRD_PARTY_NOTICES.md.
Metadata
Release files for insight-ui 1.15.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| insight_ui-1.15.1.tar.gz | 695.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| insight_ui-1.15.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.3 MB
Release files / insight_ui-1.15.1.tar.gz
| Download URL | insight_ui-1.15.1.tar.gz |
|---|---|
| Size | 695.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2ee57c86fae2534ed1bce0f762d4fe21f9619ded1d72d0118cc353b3cd1361d4
|
|
BLAKE2b-256 checksum How to use checksums |
d741a61210532673c1163560951c8da7e22f1a79a8596ae0c5756568d5ea0132
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.
Transparency logRelease files / insight_ui-1.15.1-py3-none-any.whl
| Download URL | insight_ui-1.15.1-py3-none-any.whl |
|---|---|
| Size | 610.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6fb2f691d557b1618d98dea634f18dbb4ae390a9d238bb44e67f063bc1d72f29
|
|
BLAKE2b-256 checksum How to use checksums |
149f4d6b475c78f4343e2a58639ce942b5d5ed7f884a09a41902805091b1577f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.
Transparency log