Skip to main content

django-icons

CI Coverage Status Latest PyPI version

Icons for Django.

Goal

The goal of this project is to provide a single, simple template tag for rendering icons from any icon library in Django templates.

  • Define your icons in your settings, with defaults for name, title and other attributes.
  • Generate icons using template tags.
  • Supports Font Awesome, Material, Bootstrap 3 and images.
  • Add other libraries and custom icon sets by subclassing IconRenderer.

Status

Ready for production. Issues and pull requests welcome, see CONTRIBUTING.md.

Requirements

This package requires a combination of Python and Django that is currently supported.

See "Supported Versions" on https://www.djangoproject.com/download/.

This package uses uv and just for local development.

Documentation

The full documentation is at https://django-icons.readthedocs.io/en/latest/

Installation

  1. Install using pip:

    pip install django-icons
    
  2. Add to INSTALLED_APPS in your settings.py:

    INSTALLED_APPS = (
        # ...
        "django_icons",
        # ...
    )
    
  3. Define an icon:

    DJANGO_ICONS = {
        "ICONS": {
            "edit": {"name": "fa-solid fa-pencil"},
        },
    }
    
  4. In your templates, load the icons library and use the {% icon %} tag. See example below.

Example template

{% load icons %}

<!-- Include your icon library. This example uses Font Awesome 6 through cdnjs. -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">

{% icon 'edit' %}

This will generate the FontAwesome 6 pencil icon in regular style.

<i class="fa-solid fa-pencil"></i>

Add extra classes and attributes to your predefined icon.

{% load icons %}
{% icon 'edit' extra_classes='fa-2xs my-extra-class' title='Update' %}

These will be added to the HTML output.

<i class="fa-solid fa-pencil fa-2xs my-extra-class" title="Update"></i>

Example app

An example app is provided in the folder example. You can run the example app with this command:

just example

Bugs and suggestions

If you have found a bug or if you have a request for additional functionality, please use the issue tracker on GitHub.

https://github.com/zostera/django-icons/issues

License

You can use this under BSD-3-Clause. See LICENSE file for details.

Author

Developed and maintained by Zostera.

Original author: Dylan Verheul.

Thanks to everybody that has contributed pull requests, ideas, issues, comments and kind words.

Please see AUTHORS for a list of contributors.

Origin

Our plans at Zostera for an icon tool originate in https://github.com/dyve/django-bootstrap3. We isolated this into a Font Awesome tool in https://github.com/zostera/django-fa. When using our own product, we felt that the icon tool provided little improvement over plain HTML. Also, Font Awesome's icon names did not match the intended function of the icon.

This is how we came to think of a library that:

  • Took a limited number of arguments
  • Converted those arguments into an icon
  • Was able to support multiple icon libraries
  • Could bind an icon definition to a preset name for easy reuse
  • Could easily be extended by users

This is how we came to write and use django-icons.

Metadata

Release files for django-icons 26.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-icons 26.3
File Size Uploaded
django_icons-26.3.tar.gz 42.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for django-icons 26.3
File Interpreter ABI Platform
django_icons-26.3-py3-none-any.whl Python 3 none any Details

Total release size: 56.4 kB

Release files / django_icons-26.3.tar.gz

Download URL django_icons-26.3.tar.gz
Size 42.7 kB
Tags Source
SHA-256 checksum
How to use checksums
da80ef43db2f1de2a8b6620f949279f595c99916d158eefb685d556c1c3ca8e7
BLAKE2b-256 checksum
How to use checksums
f7767a1521965eb025b35680fde5887c3d6f59c371043a123ab132857f303240
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","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 / django_icons-26.3-py3-none-any.whl

Download URL django_icons-26.3-py3-none-any.whl
Size 13.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bcb4851f08fb337ce145309dea7cb329586e371131de23b6e2a01a74696eef38
BLAKE2b-256 checksum
How to use checksums
1617b594a9a4826f974292a55483a38485c097844cc83a139614366417e5e775
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","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 history Release notifications | RSS feed

This release

26.3 This release

2 release files

26.2

2 release files

26.1

2 release files

25.3

2 release files

25.2

2 release files

25.1

2 release files

24.4

2 release files

24.3

2 release files

24.2

2 release files

24.1

2 release files

23.5

2 release files

23.4

2 release files

23.3

2 release files

23.2

2 release files

23.1

2 release files

22.1

2 release files

21.3

2 release files

21.2

1 release file

21.1

2 release files

4.0.0

2 release files

3.0.0

2 release files

2.2.1

2 release files

2.2.0

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.0

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.2.1

1 release file

0.2.0

1 release file

0.1.0

1 release file

0.0.5

1 release file

0.0.4

1 release file

0.0.3

1 release file

0.0.2

1 release file

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page