https://github.com/blajanclaudiu/cool

https://github.com/blajanclaudiu/cool

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.5%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Basic Info
  • Host: GitHub
  • Owner: blajanclaudiu
  • License: mit
  • Language: TypeScript
  • Default Branch: main
  • Size: 44.9 KB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 2
  • Releases: 0
Created about 1 year ago · Last pushed about 1 year ago
Metadata Files
Readme License

README.md

💛 You can help the author become a full-time open-source maintainer by sponsoring him on GitHub.


@egoist/tailwindcss-icons

Use any icon from Iconify

npm version npm downloads

preview

Install

bash npm i @egoist/tailwindcss-icons -D

Usage

With TailwindCSS v4 css config:

```css @plugin '@egoist/tailwindcss-icons';

/* pass options to the plugin */ @plugin '@egoist/tailwindcss-icons' { scale: 1.5; } ```

With js config:

css @config "path/to/your/tailwind.config.ts";

In your tailwind.config.js:

```js const { iconsPlugin, getIconCollections } = require("@egoist/tailwindcss-icons")

module.exports = { plugins: [ iconsPlugin({ // Select the icon collections you want to use // You can also ignore this option to automatically discover all individual icon packages you have installed // If you install @iconify/json, you should explicitly specify the collections you want to use, like this: collections: getIconCollections(["mdi", "lucide"]), // If you want to use all icons from @iconify/json, you can do this: // collections: getIconCollections("all"), // and the more recommended way is to use dynamicIconsPlugin, see below. }), ], } ```

You also need to install @iconify/json (full icon collections, 50MB) or @iconify-json/{collection_name} (individual icon package):

```bash

install every icon:

npm i @iconify/json -D

or install individual packages like this:

npm i @iconify-json/mdi @iconify-json/lucide -D ```

Then you can use the icons in your HTML:

html <!-- pattern: i-{collection_name}-{icon_name} --> <span class="i-mdi-home"></span>

Search the icon you want to use here: https://icones.js.org

[!TIP] To get the full list of icon names as typescript type, you can refer to this issue.

Plugin Options

| Option | Type | Default | Description | | -------------------- | --------------------------------- | ----------- | -------------------------------------------------------- | | prefix | string | i | Class prefix for matching icon rules | | scale | number | 1 | Scale relative to the current font size | | strokeWidth | number | undefined | Stroke width for icons (this may not work for all icons) | | extraProperties | Record | {} | Extra CSS properties applied to the generated CSS. | | collectionNamesAlias | [key in CollectionNames]?: string | {} | Alias to customize collection names. |

Custom Icons

You can also use custom icons with this plugin, for example:

js module.exports = { plugins: [ iconsPlugin({ collections: { foo: { icons: { "arrow-left": { // svg body body: '<path d="M10 19l-7-7m0 0l7-7m-7 7h18"/>', // svg width and height, optional width: 24, height: 24, }, }, }, }, }), ], }

Then you can use this custom icon as class name: i-foo-arrow-left.

[!TIP] To read custom icons from directory, you can refer to Load svgs from filesystem

Generate Icon Dynamically

The idea is from @iconify/tailwind, thanks to the author of Iconify for the great work!

If you want to install @iconify/json and use whatever icon you want, you should add another plugin to your tailwind.config.js.

This is because we can not provide autocomplete for all icons from @iconify/json, it will make your editor slow.

```js const { iconsPlugin, dynamicIconsPlugin } = require("@egoist/tailwindcss-icons")

module.exports = { plugins: [iconsPlugin(), dynamicIconsPlugin()], } ```

Then you can use icons dynamically like <span class="i-[mdi-light--home]"></span>.

Sponsors

sponsors

License

MIT © EGOIST

Owner

  • Login: blajanclaudiu
  • Kind: user

GitHub Events

Total
  • Issues event: 2
  • Create event: 2
Last Year
  • Issues event: 2
  • Create event: 2

Dependencies

.github/workflows/ci.yml actions
  • actions/cache v2 composite
  • actions/checkout v3 composite
  • actions/setup-node v3 composite
package.json npm
  • @ianvs/prettier-plugin-sort-imports ^4.4.1 development
  • @iconify-json/heroicons ^1.2.2 development
  • @iconify/json ^2.2.299 development
  • @iconify/types ^2.0.0 development
  • @types/node ^22.10.10 development
  • @typescript-eslint/eslint-plugin ^8.21.0 development
  • @typescript-eslint/parser ^8.21.0 development
  • eslint ^9.18.0 development
  • postcss ^8.5.1 development
  • prettier ^3.4.2 development
  • prettier-plugin-tailwindcss ^0.6.11 development
  • tailwindcss ^3.4.17 development
  • tsup ^8.3.5 development
  • typescript ^5.7.3 development
  • vitest ^3.0.4 development
  • @iconify/utils ^2.2.1
pnpm-lock.yaml npm
  • 124 dependencies