USWDS components for Django Cotton
Project description
django-cotton-uswds
USWDS components as Django Cotton templates.
Use the U.S. Web Design System in your Django projects with a clean, declarative component syntax.
Installation
git clone https://github.com/iversondiles/django-cotton-uswds.git
cd django-cotton-uswds
pip install -e .
Then add both django_cotton and django_cotton_uswds to your INSTALLED_APPS:
INSTALLED_APPS = [
# ...
"django_cotton",
"django_cotton_uswds",
]
Usage
Components follow the <c-component> naming convention:
<c-alert type="info" heading="Informative status">
This is an informative alert.
</c-alert>
Attributes pass through to the underlying USWDS markup, so you can use the same options documented on the USWDS component pages.
USWDS Assets
This package provides markup only — no CSS or JavaScript is bundled. You need to add USWDS assets to your project separately.
See the USWDS getting started guide for instructions on compiling and including the USWDS stylesheet and scripts.
Available Components
This project is in early development. Components are being added incrementally. See the USWDS components page for reference on what's planned.
Form Rendering
The package includes a USWDS form renderer that automatically styles Django forms with USWDS markup — labels, hints, error messages, and all standard widget types.
Per-form via mixin
from django import forms
from django_cotton_uswds.mixins import USWDSFormMixin
class ContactForm(USWDSFormMixin, forms.Form):
name = forms.CharField(label="Full name")
email = forms.EmailField()
message = forms.CharField(widget=forms.Textarea)
Globally via settings
# settings.py
FORM_RENDERER = "django_cotton_uswds.renderer.USWDSFormRenderer"
Widget attribute passthrough
USWDS-specific attributes can be passed through widget attrs:
class MyForm(USWDSFormMixin, forms.Form):
name = forms.CharField(
widget=forms.TextInput(attrs={"width": "md"}),
)
resume = forms.FileField(
widget=forms.ClearableFileInput(attrs={"accept": ".pdf,.doc"}),
)
Supported widget mappings
| Django widget | USWDS rendering |
|---|---|
TextInput, EmailInput, NumberInput, etc. |
usa-input text field |
Textarea |
usa-textarea |
Select |
usa-select dropdown |
RadioSelect |
Fieldset with usa-radio buttons |
CheckboxSelectMultiple |
Fieldset with usa-checkbox items |
CheckboxInput (boolean) |
Single usa-checkbox |
ClearableFileInput |
usa-file-input |
Demo
A demo project is included to showcase components. Requires just and uv.
# Install the package with demo dependencies
just install
# Run the development server at http://127.0.0.1:8000/
just demo
# Build a static site into demo_project/dist/
just build
Requirements
- Python 3.10+
- Django 4.2+
- django-cotton 1.2.1+
Domain Language
See UBIQUITOUS_LANGUAGE.md for a glossary of canonical domain terms used in this project.
License
MIT
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file django_cotton_uswds-1.1.1.tar.gz.
File metadata
- Download URL: django_cotton_uswds-1.1.1.tar.gz
- Upload date:
- Size: 144.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aca39c5cc64050cec957a15e14ebf4d2e3de95a807de2a65bba68178dac81ec3
|
|
| MD5 |
60a4c08dc4ebca4e5dfba496e98b71bd
|
|
| BLAKE2b-256 |
9aa612b2d696fd4439b2271b158d5f4318c97ff36abc6cb75e064b36ffbdd0a9
|
Provenance
The following attestation bundles were made for django_cotton_uswds-1.1.1.tar.gz:
Publisher:
publish.yml on focusconsulting/django-cotton-uswds
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
django_cotton_uswds-1.1.1.tar.gz -
Subject digest:
aca39c5cc64050cec957a15e14ebf4d2e3de95a807de2a65bba68178dac81ec3 - Sigstore transparency entry: 1296201009
- Sigstore integration time:
-
Permalink:
focusconsulting/django-cotton-uswds@497386c9e8e05e25c2d0f2a86123829d251a56af -
Branch / Tag:
refs/tags/v1.1.1 - Owner: https://github.com/focusconsulting
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@497386c9e8e05e25c2d0f2a86123829d251a56af -
Trigger Event:
release
-
Statement type:
File details
Details for the file django_cotton_uswds-1.1.1-py3-none-any.whl.
File metadata
- Download URL: django_cotton_uswds-1.1.1-py3-none-any.whl
- Upload date:
- Size: 169.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
80b3b470283b840ab025ab4332a07f0a0f4e6de9bd3f3b6379b677daa4187845
|
|
| MD5 |
42650784099a3fb17678daa7e9c14910
|
|
| BLAKE2b-256 |
a7a4f065d1cc5a2460af8f9535760dce566550932d75c6b84369742021c27ba7
|
Provenance
The following attestation bundles were made for django_cotton_uswds-1.1.1-py3-none-any.whl:
Publisher:
publish.yml on focusconsulting/django-cotton-uswds
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
django_cotton_uswds-1.1.1-py3-none-any.whl -
Subject digest:
80b3b470283b840ab025ab4332a07f0a0f4e6de9bd3f3b6379b677daa4187845 - Sigstore transparency entry: 1296201142
- Sigstore integration time:
-
Permalink:
focusconsulting/django-cotton-uswds@497386c9e8e05e25c2d0f2a86123829d251a56af -
Branch / Tag:
refs/tags/v1.1.1 - Owner: https://github.com/focusconsulting
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@497386c9e8e05e25c2d0f2a86123829d251a56af -
Trigger Event:
release
-
Statement type: