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.8.0
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.8.0.tar.gz | 523.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dj_design_system-0.8.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 671.6 kB
Release files / dj_design_system-0.8.0.tar.gz
| Download URL | dj_design_system-0.8.0.tar.gz |
|---|---|
| Size | 523.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cb15ad3f3b838ab156565b72cf2abc082294127b65c801350550e8addd7655ca
|
|
BLAKE2b-256 checksum How to use checksums |
79ea4aa3cf6b02606527f88c818eb27cc2218786dbc25f7e2dafbf24cc987ab5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","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.8.0-py3-none-any.whl
| Download URL | dj_design_system-0.8.0-py3-none-any.whl |
|---|---|
| Size | 148.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
64b764113559d0c65ba2d35333bd612d8bba1f356f6398f9fb1164b83a6674bf
|
|
BLAKE2b-256 checksum How to use checksums |
96d26899f82663e1f93f4339232d6a22d17e19fe496ec67ea9da712cf4d1ad90
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","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}
|