Skip to content

dotlabshq/lucide-py

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lucide Python

A Python implementation of the lucide icon library that can be used with the tagflow package to easily render icons in your Python web applications.

This project provides a full set of lucide icons as Python context managers, along with a demo application to browse and search all available icons.

Features

  • Complete set of lucide icons: All icons from the lucide library are available.
  • Easy to use: Icons can be rendered as context managers using tagflow.
  • Customizable: Icons can be customized with width, height, and other SVG attributes.
  • Demo application: A web application to browse, search, and filter all icons.

Screenshot

App Screenshot

Setup and Installation

  1. Clone the repository:

    git clone https://github.com/dotlabshq/lucide-py.git
    cd lucide-py
  2. Build the environment: This will create a virtual environment and install all the necessary dependencies.

    make build-env
  3. Download the icons: This will clone the original lucide repository to download the SVG icon assets.

    make setup-resources
  4. Generate the icon library: This will generate the Python modules for each icon from the SVG assets.

    make generate-icons

Running the Demo Application

To browse all the available icons, you can run the demo application.

make run

This will start a web server on http://127.0.0.1:8000. Open this URL in your browser to see the icon library.

The demo application allows you to:

  • View all icons grouped by category.
  • Filter icons by category.
  • Search for icons by name.

Usage in Your Application

You can use the generated icons in any application that uses tagflow.

Here's an example of how to use an icon:

from lucide.icons import Activity
from tagflow import document

with document() as doc:
    with Activity(width="48", height="48", classes="text-blue-500"):
        pass

print(doc.to_html())

This will produce the following HTML:

<svg width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke_width="2" stroke_linecap="round" stroke_linejoin="round" class="text-blue-500">
    <path d="M22 12h-4l-3 9L9 3l-3 9H2"></path>
</svg>

Running Tests

To run the test suite, which verifies that all icons are generated correctly:

make test

License

Lucide is licensed under the MIT license. See LICENSE.

About

A Lucide icon library package for Python applications

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages