# dj-angles Integration
If you prefer HTML-like component tags, django-bird works well with [dj-angles](https://dj-angles.adamghill.com/).
## Install
Install django-bird with the optional `angles` extra:
```bash
python -m pip install 'django-bird[angles]'
```
Or install manually:
```bash
python -m pip install django-bird dj-angles
```
## Configure Django template loaders
Add the `dj-angles` template loader before Django's filesystem/app loaders:
```python
# settings.py
TEMPLATES = [
{
"BACKEND": "django.template.backends.django.DjangoTemplates",
"DIRS": [BASE_DIR / "templates"],
"OPTIONS": {
"loaders": [
(
"django.template.loaders.cached.Loader",
[
"dj_angles.template_loader.Loader",
"django.template.loaders.filesystem.Loader",
"django.template.loaders.app_directories.Loader",
],
)
],
"builtins": [
"django_bird.templatetags.django_bird",
],
},
},
]
```
## Common tag styles
A few practical conventions:
- `dj-bird` + explicit template name
- `dj-` prefix for component-like tags when using the default mapper
### Explicit `dj-bird` tag
```html
Click me
```
### Default mapper (`dj-button`, `dj-modal`, etc.)
Configure `dj-angles` to map unknown tags to django-bird components:
```python
# settings.py
ANGLES = {
"default_mapper": "dj_angles.mappers.thirdparty.map_bird",
}
```
Then use:
```html
Click me
```
## References
- dj-angles django-bird integration docs:
- django-bird configuration docs: [configuration](configuration.md)