wrapperup/iconify-rs


Proc-macros for generating icons from the Iconify API

License: Apache-2.0

Language: Rust


iconify-rs

This crate provides a macro to embed SVGs from Iconify. For a list of icons, see Iconify Icon Sets.

📝 Usage

let svg = iconify::svg!("mdi:home", color = "red")

iconify::svg! will download and embed an SVG as a string. It will also cache the request, so it won't download the same SVG twice.

let svg = "<svg>...</svg>"

Options

You can pass options to the macro to customize the SVG.

let svg = iconify::svg!("mdi:home",
    width = "24",
    height = "24",
    color = "red",
    // ... and more.
)

All options from the Iconify API are supported. You can find the documentation for the options for the svg! macro here.

Templating

It can also be used directly in rsx, or any compile-time template engine.

Maud:

html! {
    body {
        .card {
            (PreEscaped(iconify::svg!("mdi:home")))
            p { "Hello!" }
        }
    }
}

Askama

<body>
  <div class="card">
    {{ iconify::svg!("mdi:home")|safe }}
    <p>Hello!</p>
</body>

✨ Features

  • Directly embed SVGs from Iconify
  • Caches requests (default feature)
  • Offline mode
  • SVG transforms (through API)
  • (Soon) CSS fetching

🔌 Offline Mode

If you don't want iconify-rs to make requests at compile-time in CI (or other reasons), you can use offline mode with prepared icons.

  1. Enable the offline feature.
  2. Prepare icons by setting ICONIFY_PREPARE=true and running cargo check. This will generate a directory for you in CARGO_MANIFEST_DIR called icons with all the icons you invoked.
  3. Now you're ready to go! Just run cargo build and it will use the icons you prepared.

If you want to set a custom directory, you can also set ICONIFY_OFFLINE_DIR.

⚙️ Configuration

  • ICONIFY_URL - Sets the API url to use. If not set, the default is "https://api.iconify.design"
  • ICONIFY_PREPARE - If set, icons will be written to the offline icons directory (offline mode only)
  • ICONIFY_OFFLINE_DIR - Sets the offline icons directory. If not set, the default is "/icons" in your project directory

Project Statistics

Sourcerank 4
Repository Size 80.1 KB
Stars 8
Forks 2
Watchers 1
Open issues 0
Dependencies 8
Contributors 3
Tags 9
Created
Last updated
Last pushed

Top Contributors See all

Matthew Taylor dependabot[bot] Reilly Wood

Packages Referencing this Repo

iconify
Proc-macros for generating icons from the Iconify API
Latest release 0.3.1 - Updated - 8 stars

Recent Tags See all

0.3.1 April 20, 2024
0.3.0 April 04, 2024
0.2.5 October 04, 2023
0.2.4 September 20, 2023
0.2.4 September 20, 2023
0.2.3 September 12, 2023
0.2.2 July 27, 2023
0.2.1 July 13, 2023
0.2.0 July 12, 2023

Something wrong with this page? Make a suggestion

Last synced: 2024-04-20 07:45:03 UTC

Login to resync this repository