Home

Awesome

django-icons

Tests Coverage Status Latest PyPI version

Icons for Django

More information

Installation

Install using pip.

pip install django-icons

In your settings.py, add django_icons to INSTALLED_APPS and define an icon.


INSTALLED_APPS = (
    # ...
    "django_icons",
    # ...
)

DJANGO_ICONS = {
    "ICONS": {
        "edit": {"name": "fa-solid fa-pencil"},
    },
}

Render an icon in a Django 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>

Requirements

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

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

Local installation

Local installation

This package uses uv and just.

To clone the repository and install the requirements for local development:

git clone git://github.com/zostera/django-icons.git
cd django-icons
just bootstrap

Running the demo

You can run the example app:

just example

Running the tests

The test suite requires tox to be installed. Run the complete test suite like this:

tox

Test for the current environment can be run with the Django manage.py command.

just test

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:

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