dj-design-system
DjDS is a Django-native approach to writing front end components that are exposed as templatetags. It comes with an auto-generated, customisable, live interactive gallery of your UI components that lives alongside your Django project.
Components are recognisably Django elements; they look and work like Models or Forms. The gallery auto-discovers them, renders live previews in sandboxed iframes, generates templatetag usage examples, and builds a searchable navigation tree — all from your existing code and docstrings.
Quick start
pip install dj-design-system
Then follow the quickstart guide to register your first component.
Supported versions
| Python | Django |
|---|---|
| 3.13 | 5.2 (LTS) |
| 3.14 | 6.0 |
| latest |
Documentation
Full documentation is available at fukalite.github.io/dj-design-system/.
To browse locally:
just docs-serve
| Document | Contents |
|---|---|
| Quick start | Installation and first component |
| Components | Defining components and parameters |
| Registry | Auto-discovery and the component registry |
| Gallery | Configuring and customising the gallery |
| Template tags | Using components in templates |
| API reference | Auto-generated class and parameter docs |
A static snapshot of the component gallery is browseable at fukalite.github.io/dj-design-system/demo/ (HTMX interactions disabled; run just demo for the full live experience).
Contributing
See CONTRIBUTING.md for how to set up a dev environment, run tests, and submit a pull request.
Code of conduct
This project follows the Contributor Covenant. Please read CODE_OF_CONDUCT.md before contributing.
Issues and feature requests
Please open an issue on GitHub. Use the bug report template for defects and the feature request template for new ideas.
Security
To report a vulnerability privately, see SECURITY.md.
Licence
With thanks to the UK Department for Business and Trade, where this was originally developed.
Metadata
Release files for dj-design-system 0.6.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| dj_design_system-0.6.3.tar.gz | 456.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dj_design_system-0.6.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 566.9 kB
Release files / dj_design_system-0.6.3.tar.gz
| Download URL | dj_design_system-0.6.3.tar.gz |
|---|---|
| Size | 456.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8a8e4dd44a29cb2ecfcddb836ea2aa06c8546de1ecf4780abb9931622e5850a3
|
|
BLAKE2b-256 checksum How to use checksums |
b937642304ff4ce768611ddd6e0490a48380c02e4479d3cc2040fa11dd5417b7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / dj_design_system-0.6.3-py3-none-any.whl
| Download URL | dj_design_system-0.6.3-py3-none-any.whl |
|---|---|
| Size | 110.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c7595272903c40f08bb916501afdf69fb6ea038a19c176754b4ee1cb0b4aa6a8
|
|
BLAKE2b-256 checksum How to use checksums |
af1aa49d0f8a26a4e92ef76f963d31e4e213e02e7d7188851f810c30a0c2711b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|