Compare commits
70 Commits
0.460.1
...
fix/fixed-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a8f578fa8b | ||
|
|
97f214934d | ||
|
|
34dfc63ce2 | ||
|
|
b46927e510 | ||
|
|
1828a392c8 | ||
|
|
3ab6c373a0 | ||
|
|
ba2c4b526f | ||
|
|
bde3f01e0b | ||
|
|
50630b3aaf | ||
|
|
e28426a871 | ||
|
|
eb158561d3 | ||
|
|
410ae434fa | ||
|
|
0801b89e4d | ||
|
|
a1d17eedc9 | ||
|
|
7481dd0a3f | ||
|
|
f9e93824f1 | ||
|
|
4ba4cf2f35 | ||
|
|
6b29716aa9 | ||
|
|
97bbe1d6b2 | ||
|
|
608da04bdf | ||
|
|
961404d5cc | ||
|
|
f3100b8af1 | ||
|
|
0df4e2991c | ||
|
|
2b8242fa14 | ||
|
|
27c667556b | ||
|
|
31c3fefc17 | ||
|
|
389fed8770 | ||
|
|
58c2e108c3 | ||
|
|
d5fe5a0ef4 | ||
|
|
db30ab89f4 | ||
|
|
fa7120cbe0 | ||
|
|
419d47019c | ||
|
|
655111e4aa | ||
|
|
ea0ac2f92b | ||
|
|
1a5ee439ef | ||
|
|
5947ca82d5 | ||
|
|
edf46adc9e | ||
|
|
94782f53c1 | ||
|
|
79bbfa958e | ||
|
|
970fc3d4be | ||
|
|
f12b0de177 | ||
|
|
67cbce66e9 | ||
|
|
b927275150 | ||
|
|
ea89735f67 | ||
|
|
53c61c0f48 | ||
|
|
4213367a37 | ||
|
|
bc22d17fa9 | ||
|
|
7773135308 | ||
|
|
4f740348cd | ||
|
|
ca50dd8bc8 | ||
|
|
6b19d52ab0 | ||
|
|
7fc3467761 | ||
|
|
ee575f6ae9 | ||
|
|
212b488dae | ||
|
|
4f038d5fe8 | ||
|
|
5ca6bc3385 | ||
|
|
15e4b6b69d | ||
|
|
407b55f57c | ||
|
|
6fc7297199 | ||
|
|
c21df35283 | ||
|
|
775359260c | ||
|
|
eaeef9ae37 | ||
|
|
636f966a98 | ||
|
|
1d5c725b58 | ||
|
|
d9a011994a | ||
|
|
c6c645ca7f | ||
|
|
91391eea7b | ||
|
|
49070b4d1f | ||
|
|
ae43473aa6 | ||
|
|
392bc961aa |
@@ -16,7 +16,7 @@ jobs:
|
||||
- name: Check for blocked phrases in issue title
|
||||
run: |
|
||||
ISSUE_TITLE=$(jq -r '.issue.title' "$GITHUB_EVENT_PATH")
|
||||
BLOCKED_PHRASES=("twitter" "whatsapp" "logo" "google" "tiktok" "facebook" "slack" "discord")
|
||||
BLOCKED_PHRASES=("twitter" "whatsapp" "logo" "google" "tiktok" "facebook" "slack" "discord" "bluesky")
|
||||
|
||||
# Check title and body for blocked phrases
|
||||
for PHRASE in "${BLOCKED_PHRASES[@]}"
|
||||
|
||||
6
.gitignore
vendored
@@ -20,9 +20,13 @@ packages/**/src/aliases/*.ts
|
||||
packages/**/src/aliases.ts
|
||||
!packages/**/src/aliases/index.ts
|
||||
packages/**/src/dynamicIconImports.ts
|
||||
packages/**/DynamicIcon.d.ts
|
||||
packages/**/dynamicIconImports.js
|
||||
packages/**/dynamicIconImports.d.ts
|
||||
packages/**/dynamicIconImports.js.map
|
||||
packages/**/dynamic.d.ts
|
||||
packages/**/dynamic.mjs.map
|
||||
packages/**/dynamic.mjs
|
||||
packages/**/LICENSE
|
||||
categories.json
|
||||
tags.json
|
||||
@@ -41,3 +45,5 @@ docs/.vitepress/data/iconDetails
|
||||
docs/.vitepress/data/relatedIcons.json
|
||||
docs/.vercel
|
||||
docs/.nitro
|
||||
.gitignore
|
||||
|
||||
|
||||
@@ -127,7 +127,7 @@ When adding new features to for example the icon component for a framework. It i
|
||||
|
||||
### Local Testing
|
||||
|
||||
To test changes in a local project, you can use `yarn link`, `npm link` or `pnpm link` to link the package. Before you do this make sure you builded the package first.
|
||||
To test changes in a local project, you can use `yarn link`, `npm link`, `bun link` or `pnpm link` to link the package. Before you do this make sure you builded the package first.
|
||||
|
||||
```sh
|
||||
# in packages/lucide-react
|
||||
|
||||
263
README.md
@@ -8,185 +8,39 @@
|
||||
</p>
|
||||
<p align="center">
|
||||
<a href="https://github.com/lucide-icons/lucide/blob/main/LICENSE"><img src="https://img.shields.io/npm/l/lucide" alt="license"></a>
|
||||
<a href="https://www.npmjs.com/package/lucide"><img src="https://img.shields.io/npm/v/lucide" alt="npm package"></a>
|
||||
<a href="https://www.figma.com/community/plugin/939567362549682242/Lucide-Icons"><img src="https://img.shields.io/endpoint?logo=figma&label=installs&url=https://yuanqing.github.io/figma-plugins-stats/plugin/939567362549682242/installs.json" alt="figma installs"></a>
|
||||
<a href="https://www.figma.com/community/plugin/939567362549682242/Lucide-Icons"><img src="https://img.shields.io/badge/Figma-F24E1E?logo=figma&logoColor=white" alt="figma installs"></a>
|
||||
<a href="https://github.com/lucide-icons/lucide/actions/workflows/release.yml"><img src="https://github.com/lucide-icons/lucide/actions/workflows/release.yml/badge.svg" alt="build status"></a>
|
||||
<a href="https://discord.gg/EH6nSts"><img src="https://img.shields.io/discord/723074157486800936?label=chat&logo=discord&logoColor=%23ffffff&colorB=%237289DA" alt="discord chat"></a>
|
||||
</p>
|
||||
<p align="center">
|
||||
<a href="https://lucide.dev/icons/">Icons</a>
|
||||
·
|
||||
<a href="https://lucide.dev/guide/">Guide</a>
|
||||
·
|
||||
<a href="https://lucide.dev/packages">Packages</a>
|
||||
·
|
||||
<a href="https://lucide.dev/license">License</a>
|
||||
·
|
||||
<a href="https://lucide.dev/showcase">Showcase</a>
|
||||
</p>
|
||||
|
||||
# Lucide
|
||||
|
||||
Community-run fork of [Feather Icons](https://github.com/feathericons/feather), open for anyone to contribute icons.
|
||||
Lucide is an open-source icon library that provides 1000+ vector (svg) files for displaying icons and symbols in digital and non-digital projects. The library aims to make it easier for designers and developers to incorporate icons into their projects by providing several official [packages](https://lucide.dev/packages) to make it easier to use these icons in your project.
|
||||
|
||||
It began after growing dissatisfaction with the [Feather Icons](https://github.com/feathericons/feather) project moderation. With over 300+ open issues and over 100+ open PRs, the Feather Icons project has been abandoned. This unfortunately means that hundreds of developers and designers wasted their time contributing to Feather Icons with no chance of PRs being accepted.
|
||||
## Packages
|
||||
|
||||
Lucide is trying to expand the icon set as much as possible while staying faithful to the original simplistic design language. We do this as a community of devs and designers and hope that you'll join us!
|
||||
|
||||
### Why choose Lucide over Feather Icons
|
||||
|
||||
- More icons to work with: Lucide already has hundreds of icons more than Feather does.
|
||||
- Official libraries and integrations with popular frameworks and design tools.
|
||||
- Well maintained code base.
|
||||
- Active community, regularly growing and improving the set.
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [Usage](#usage)
|
||||
- [Web](#web)
|
||||
- [React](#react)
|
||||
- [React Native](#react-native)
|
||||
- [Vue 2](#vue-2)
|
||||
- [Vue 3](#vue-3)
|
||||
- [Angular](#angular)
|
||||
- [Preact](#preact)
|
||||
- [Static (svg sprite, font, icons ..)](#static-svg-sprite-font-icons-)
|
||||
- [Figma](#figma)
|
||||
- [Laravel](#laravel)
|
||||
- [Svelte](#svelte)
|
||||
- [Solid](#solid)
|
||||
- [Hyva](#hyva)
|
||||
- [Eleventy](#eleventy)
|
||||
- [Contributing](#contributing)
|
||||
- [Community](#community)
|
||||
- [License](#license)
|
||||
- [Credits](#credits)
|
||||
- [Sponsors](#sponsors)
|
||||
|
||||
## Usage
|
||||
|
||||
At its core, Lucide is a collection of [SVG](https://svgontheweb.com/#svg) files. This means that you can use Lucide icons in all the same ways you can use SVGs (e.g. `img`, `background-image`, `inline`, `object`, `embed`, `iframe`). Here's a helpful article detailing the many ways SVGs can be used on the web: [SVG on the Web – Implementation Options](https://svgontheweb.com/#implementation)
|
||||
|
||||
The following are additional ways you can use Lucide.
|
||||
With the Javascript library you can easily incorporate the icon you want in your webpage.
|
||||
|
||||
### Web
|
||||
|
||||
Implementation of the lucide icon library for web applications.
|
||||
|
||||
```sh
|
||||
npm install lucide
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```sh
|
||||
yarn add lucide
|
||||
```
|
||||
|
||||
For more details, see the [documentation](https://github.com/lucide-icons/lucide/tree/main/packages/lucide#lucide).
|
||||
|
||||
### React
|
||||
|
||||
Implementation of the lucide icon library for react applications.
|
||||
|
||||
```sh
|
||||
yarn add lucide-react
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```sh
|
||||
npm install lucide-react
|
||||
```
|
||||
|
||||
For more details, see the [documentation](https://github.com/lucide-icons/lucide/tree/main/packages/lucide-react#lucide-react).
|
||||
|
||||
### React Native
|
||||
|
||||
Implementation of the lucide icon library for React Native applications.
|
||||
|
||||
```sh
|
||||
yarn add lucide-react-native
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```sh
|
||||
npm install lucide-react-native
|
||||
```
|
||||
|
||||
For more details, see the [documentation](https://github.com/lucide-icons/lucide/tree/main/packages/lucide-react-native#lucide-react-native).
|
||||
|
||||
### Vue 2
|
||||
|
||||
Implementation of the lucide icon library for vue applications.
|
||||
|
||||
```sh
|
||||
yarn add lucide-vue
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```sh
|
||||
npm install lucide-vue
|
||||
```
|
||||
|
||||
For more details, see the [documentation](https://github.com/lucide-icons/lucide/tree/main/packages/lucide-vue#lucide-vue).
|
||||
|
||||
### Vue 3
|
||||
|
||||
Implementation of the lucide icon library for vue applications.
|
||||
|
||||
```sh
|
||||
yarn add lucide-vue-next
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```sh
|
||||
npm install lucide-vue-next
|
||||
```
|
||||
|
||||
For more details, see the [documentation](https://github.com/lucide-icons/lucide/tree/main/packages/lucide-vue-next#lucide-vue-next).
|
||||
|
||||
### Angular
|
||||
|
||||
```sh
|
||||
yarn add lucide-angular
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```sh
|
||||
npm install lucide-angular
|
||||
```
|
||||
|
||||
For more details, see the [documentation](https://github.com/lucide-icons/lucide/tree/main/packages/lucide-angular#lucide-angular).
|
||||
|
||||
### Preact
|
||||
|
||||
Implementation of the lucide icon library for preact applications.
|
||||
|
||||
```sh
|
||||
yarn add lucide-preact
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```sh
|
||||
npm install lucide-preact
|
||||
```
|
||||
|
||||
For more details, see the [documentation](https://github.com/lucide-icons/lucide/tree/main/packages/lucide-preact#lucide-preact).
|
||||
|
||||
### Static (svg sprite, font, icons ..)
|
||||
|
||||
Assets:
|
||||
[Font Files](https://github.com/lucide-icons/lucide/releases/latest)
|
||||
[SVG Files](https://github.com/lucide-icons/lucide/releases/latest)
|
||||
[SVG Sprite](https://cdn.jsdelivr.net/npm/lucide-static@latest/sprite.svg)
|
||||
|
||||
NPM package
|
||||
|
||||
```sh
|
||||
yarn add lucide-static
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```sh
|
||||
npm install lucide-static
|
||||
```
|
||||
| Logo | Package | Version | Downloads | Links |
|
||||
| ---- | ------- | ------- | --------- | ----- |
|
||||
| <img src="https://lucide.dev/framework-logos/js.svg" alt="JS logo" width="48"> | **`lucide`** | [](https://www.npmjs.com/package/lucide) |  | [Docs](https://lucide.dev/guide/packages/lucide) · [Source](./packages/lucide) |
|
||||
| <img src="https://lucide.dev/framework-logos/react.svg" alt="React logo" width="48"> | **`lucide-react`** | [](https://www.npmjs.com/package/lucide-react) |  | [Docs](https://lucide.dev/guide/packages/lucide-react) · [Source](./packages/lucide-react) |
|
||||
| <img src="https://lucide.dev/framework-logos/vue.svg" alt="Vue logo" width="48"> | **`lucide-vue-next`** | [](https://www.npmjs.com/package/lucide-vue-next) |  | [Docs](https://lucide.dev/guide/packages/lucide-vue-next) · [Source](./packages/lucide-vue-next) |
|
||||
| <img src="https://lucide.dev/framework-logos/svelte.svg" alt="Svelte logo" width="48"> | **`lucide-svelte`** | [](https://www.npmjs.com/package/lucide-svelte) |  | [Docs](https://lucide.dev/guide/packages/lucide-svelte) · [Source](./packages/lucide-svelte) |
|
||||
| <img src="https://lucide.dev/framework-logos/solid.svg" alt="Solid logo" width="48"> | **`lucide-solid`** | [](https://www.npmjs.com/package/lucide-solid) |  | [Docs](https://lucide.dev/guide/packages/lucide-solid) · [Source](./packages/lucide-solid) |
|
||||
| <img src="https://lucide.dev/framework-logos/preact.svg" alt="Preact logo" width="48"> | **`lucide-preact`** | [](https://www.npmjs.com/package/lucide-preact) |  | [Docs](https://lucide.dev/guide/packages/lucide-preact) · [Source](./packages/lucide-preact) |
|
||||
| <img src="https://lucide.dev/framework-logos/react-native.svg" alt="React Native logo" width="48"> | **`lucide-react-native`** | [](https://www.npmjs.com/package/lucide-react-native) |  | [Docs](https://lucide.dev/guide/packages/lucide-react-native) · [Source](./packages/lucide-react-native) |
|
||||
| <img src="https://lucide.dev/framework-logos/angular.svg" alt="Angular logo" width="48"> | **`lucide-angular`** | [](https://www.npmjs.com/package/lucide-angular) |  | [Docs](https://lucide.dev/guide/packages/lucide-angular) · [Source](./packages/lucide-angular) |
|
||||
| <img src="https://lucide.dev/framework-logos/svg.svg" alt="SVG logo" width="48"> | **`lucide-static`** | [](https://www.npmjs.com/package/lucide-static) |  | [Docs](https://lucide.dev/guide/packages/lucide-static) · [Source](./packages/lucide-static) |
|
||||
|
||||
### Figma
|
||||
|
||||
@@ -196,68 +50,6 @@ Visit [Figma community page](https://www.figma.com/community/plugin/939567362549
|
||||
|
||||
<img width="420" src="https://www.figma.com/community/plugin/939567362549682242/thumbnail" alt="Figma Lucide Cover">
|
||||
|
||||
### Laravel
|
||||
|
||||
Implementation of Lucide icon's using `blade-icons` for Laravel based projects.
|
||||
|
||||
```sh
|
||||
composer require mallardduck/blade-lucide-icons
|
||||
```
|
||||
|
||||
For more details, see the [documentation](https://github.com/mallardduck/blade-lucide-icons/blob/main/README.md).
|
||||
|
||||
### Svelte
|
||||
|
||||
Implementation of the lucide icon library for Svelte applications.
|
||||
|
||||
```sh
|
||||
yarn add lucide-svelte
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```sh
|
||||
npm install lucide-svelte
|
||||
```
|
||||
|
||||
For more details, see the [documentation](https://github.com/lucide-icons/lucide/tree/main/packages/lucide-svelte#lucide-svelte).
|
||||
|
||||
### Solid
|
||||
|
||||
Implementation of the lucide icon library for solid applications.
|
||||
|
||||
```sh
|
||||
yarn add lucide-solid
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```sh
|
||||
npm install lucide-solid
|
||||
```
|
||||
|
||||
For more details, see the [documentation](https://github.com/lucide-icons/lucide/tree/main/packages/lucide-solid#lucide-solid).
|
||||
|
||||
### Hyva
|
||||
|
||||
Implementation of Lucide icon's using Hyvä's svg php viewmodal to render icons for Magento 2 Hyva theme based projects.
|
||||
|
||||
```sh
|
||||
composer require siteation/magento2-hyva-icons-lucide
|
||||
```
|
||||
|
||||
For more details, see the [documentation](https://github.com/Siteation/magento2-hyva-icons-lucide/blob/main/README.md).
|
||||
|
||||
### Eleventy
|
||||
|
||||
Using this plugin, Eleventy projects can incorporate Lucide icons. it makes it simple to use Lucide icons into your themes via shortcodes, improving your website's overall usability and visual appeal.
|
||||
|
||||
```sh
|
||||
npm install @grimlink/eleventy-plugin-lucide-icons
|
||||
```
|
||||
|
||||
For more details, see the [documentation](https://github.com/GrimLink/eleventy-plugin-lucide-icons/blob/main/README.md).
|
||||
|
||||
## Contributing
|
||||
|
||||
For more info on how to contribute please see the [contribution guidelines](https://github.com/lucide-icons/lucide/blob/main/CONTRIBUTING.md).
|
||||
@@ -270,7 +62,7 @@ Join the community on our [Discord](https://discord.gg/EH6nSts) server!
|
||||
|
||||
## License
|
||||
|
||||
Lucide is totally free for commercial use and personally use, this software is licensed under the [ISC License](https://github.com/lucide-icons/lucide/blob/main/LICENSE).
|
||||
Lucide is totally free for commercial use and personal use, this software is licensed under the [ISC License](https://github.com/lucide-icons/lucide/blob/main/LICENSE).
|
||||
|
||||
## Credits
|
||||
|
||||
@@ -287,6 +79,7 @@ Thank you to all the people who contributed to Lucide!
|
||||
|
||||
<a href="https://www.digitalocean.com/?refcode=b0877a2caebd&utm_campaign=Referral_Invite&utm_medium=Referral_Program&utm_source=badge"><img src="docs/public/digitalocean.svg" width="200" alt="DigitalOcean Referral Badge" /></a>
|
||||
|
||||
### Awesome backer 🍺
|
||||
### Awesome backers 🍺
|
||||
|
||||
<a href="https://www.scipress.io?utm_source=lucide"><img src="docs/public/sponsors/scipress.svg" width="180" alt="Scipress sponsor badge" /></a>
|
||||
<a href="https://github.com/pdfme/pdfme"><img src="docs/public/sponsors/pdfme.svg" width="180" alt="pdfme sponsor badge" /></a>
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"$schema": "../category.schema.json",
|
||||
"title": "Currency",
|
||||
"icon": "dollar-sign"
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"$schema": "../category.schema.json",
|
||||
"title": "Money",
|
||||
"title": "Finance",
|
||||
"icon": "piggy-bank"
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"$schema": "../category.schema.json",
|
||||
"title": "Furniture",
|
||||
"icon": "rocking-chair"
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"$schema": "../category.schema.json",
|
||||
"title": "Maps",
|
||||
"icon": "map"
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"$schema": "../category.schema.json",
|
||||
"title": "Maths",
|
||||
"title": "Mathematics",
|
||||
"icon": "divide"
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"$schema": "../category.schema.json",
|
||||
"title": "Notifications",
|
||||
"title": "Notification",
|
||||
"icon": "triangle-alert"
|
||||
}
|
||||
|
||||
@@ -35,10 +35,6 @@
|
||||
"name": "connectivity",
|
||||
"title": "Connectivity"
|
||||
},
|
||||
{
|
||||
"name": "currency",
|
||||
"title": "Currency"
|
||||
},
|
||||
{
|
||||
"name": "cursors",
|
||||
"title": "Cursors"
|
||||
@@ -64,12 +60,12 @@
|
||||
"title": "File icons"
|
||||
},
|
||||
{
|
||||
"name": "food-beverage",
|
||||
"title": "Food & beverage"
|
||||
"name": "finance",
|
||||
"title": "Finance"
|
||||
},
|
||||
{
|
||||
"name": "furniture",
|
||||
"title": "Furniture"
|
||||
"name": "food-beverage",
|
||||
"title": "Food & beverage"
|
||||
},
|
||||
{
|
||||
"name": "gaming",
|
||||
@@ -88,21 +84,13 @@
|
||||
"title": "Mail"
|
||||
},
|
||||
{
|
||||
"name": "maps",
|
||||
"title": "Maps"
|
||||
},
|
||||
{
|
||||
"name": "maths",
|
||||
"title": "Maths"
|
||||
"name": "math",
|
||||
"title": "Mathematics"
|
||||
},
|
||||
{
|
||||
"name": "medical",
|
||||
"title": "Medical"
|
||||
},
|
||||
{
|
||||
"name": "money",
|
||||
"title": "Money"
|
||||
},
|
||||
{
|
||||
"name": "multimedia",
|
||||
"title": "Multimedia"
|
||||
@@ -117,7 +105,7 @@
|
||||
},
|
||||
{
|
||||
"name": "notifications",
|
||||
"title": "Notifications"
|
||||
"title": "Notification"
|
||||
},
|
||||
{
|
||||
"name": "people",
|
||||
|
||||
@@ -14,5 +14,13 @@
|
||||
"light": "/library-logos/tamagui.svg",
|
||||
"dark": "/library-logos/tamagui.svg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Reflex",
|
||||
"url": "https://reflex.dev",
|
||||
"image": {
|
||||
"light": "/library-logos/reflex-light.svg",
|
||||
"dark": "/library-logos/reflex-dark.svg"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@@ -31,24 +31,8 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"lucide-vue": {
|
||||
"order": 2,
|
||||
"icon": "vue",
|
||||
"shields": [
|
||||
{
|
||||
"alt": "npm",
|
||||
"src": "https://img.shields.io/npm/v/lucide-vue",
|
||||
"href": "https://www.npmjs.com/package/lucide-vue"
|
||||
},
|
||||
{
|
||||
"alt": "npm",
|
||||
"src": "https://img.shields.io/npm/dw/lucide-vue",
|
||||
"href": "https://www.npmjs.com/package/lucide-vue"
|
||||
}
|
||||
]
|
||||
},
|
||||
"lucide-vue-next": {
|
||||
"order": 3,
|
||||
"order": 2,
|
||||
"icon": "vue-next",
|
||||
"shields": [
|
||||
{
|
||||
@@ -64,7 +48,7 @@
|
||||
]
|
||||
},
|
||||
"lucide-svelte": {
|
||||
"order": 4,
|
||||
"order": 3,
|
||||
"icon": "svelte",
|
||||
"shields": [
|
||||
{
|
||||
@@ -95,24 +79,8 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"lucide-preact": {
|
||||
"order": 5,
|
||||
"icon": "preact",
|
||||
"shields": [
|
||||
{
|
||||
"alt": "npm",
|
||||
"src": "https://img.shields.io/npm/v/lucide-preact",
|
||||
"href": "https://www.npmjs.com/package/lucide-preact"
|
||||
},
|
||||
{
|
||||
"alt": "npm",
|
||||
"src": "https://img.shields.io/npm/dw/lucide-preact",
|
||||
"href": "https://www.npmjs.com/package/lucide-preact"
|
||||
}
|
||||
]
|
||||
},
|
||||
"lucide-react-native": {
|
||||
"order": 6,
|
||||
"order": 5,
|
||||
"icon": "react-native",
|
||||
"shields": [
|
||||
{
|
||||
@@ -128,7 +96,7 @@
|
||||
]
|
||||
},
|
||||
"lucide-angular": {
|
||||
"order": 7,
|
||||
"order": 6,
|
||||
"icon": "angular",
|
||||
"shields": [
|
||||
{
|
||||
@@ -143,6 +111,22 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"lucide-preact": {
|
||||
"order": 7,
|
||||
"icon": "preact",
|
||||
"shields": [
|
||||
{
|
||||
"alt": "npm",
|
||||
"src": "https://img.shields.io/npm/v/lucide-preact",
|
||||
"href": "https://www.npmjs.com/package/lucide-preact"
|
||||
},
|
||||
{
|
||||
"alt": "npm",
|
||||
"src": "https://img.shields.io/npm/dw/lucide-preact",
|
||||
"href": "https://www.npmjs.com/package/lucide-preact"
|
||||
}
|
||||
]
|
||||
},
|
||||
"lucide-static": {
|
||||
"order": 8,
|
||||
"icon": "svg",
|
||||
|
||||
@@ -49,7 +49,7 @@ import { $CamelCase } from '@lucide/lab';
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<Icon :iconNode="burger" />
|
||||
<Icon :iconNode="$CamelCase" />
|
||||
</template>
|
||||
`,
|
||||
},
|
||||
@@ -61,7 +61,7 @@ import { Icon } from 'lucide-svelte';
|
||||
import { $CamelCase } from '@lucide/lab';
|
||||
</script>
|
||||
|
||||
<Icon iconNode={burger} />
|
||||
<Icon iconNode={$CamelCase} />
|
||||
`,
|
||||
},
|
||||
{
|
||||
|
||||
@@ -72,10 +72,6 @@ const sidebar: UserConfig<DefaultTheme.Config>['themeConfig']['sidebar'] = {
|
||||
text: 'Lucide React',
|
||||
link: '/guide/packages/lucide-react',
|
||||
},
|
||||
{
|
||||
text: 'Lucide React Native',
|
||||
link: '/guide/packages/lucide-react-native',
|
||||
},
|
||||
{
|
||||
text: 'Lucide Vue',
|
||||
link: '/guide/packages/lucide-vue-next',
|
||||
@@ -89,13 +85,17 @@ const sidebar: UserConfig<DefaultTheme.Config>['themeConfig']['sidebar'] = {
|
||||
link: '/guide/packages/lucide-solid',
|
||||
},
|
||||
{
|
||||
text: 'Lucide Preact',
|
||||
link: '/guide/packages/lucide-preact',
|
||||
text: 'Lucide React Native',
|
||||
link: '/guide/packages/lucide-react-native',
|
||||
},
|
||||
{
|
||||
text: 'Lucide Angular',
|
||||
link: '/guide/packages/lucide-angular',
|
||||
},
|
||||
{
|
||||
text: 'Lucide Preact',
|
||||
link: '/guide/packages/lucide-preact',
|
||||
},
|
||||
{
|
||||
text: 'Lucide Static',
|
||||
link: '/guide/packages/lucide-static',
|
||||
|
||||
@@ -9,7 +9,7 @@ export default {
|
||||
}
|
||||
return null;
|
||||
})
|
||||
.then((res) => res.tag_name);
|
||||
.then((res) => res?.tag_name);
|
||||
|
||||
return {
|
||||
version,
|
||||
|
||||
@@ -5,22 +5,32 @@ import IconButton from '../base/IconButton.vue';
|
||||
import VPDocAsideCarbonAds from 'vitepress/dist/client/theme-default/components/VPDocAsideCarbonAds.vue'
|
||||
import { x } from '../../../data/iconNodes'
|
||||
import createLucideIcon from 'lucide-vue-next/src/createLucideIcon';
|
||||
import { onMounted, ref } from 'vue';
|
||||
|
||||
const { theme } = useData()
|
||||
const showAd = useSessionStorage('show-carbon-ads', true)
|
||||
const carbonLoaded = ref(true)
|
||||
|
||||
defineProps<{
|
||||
drawerOpen: boolean
|
||||
}>()
|
||||
|
||||
const CloseIcon = createLucideIcon('Close', x)
|
||||
|
||||
onMounted(() => {
|
||||
setTimeout(() => {
|
||||
if (window?._carbonads == null) {
|
||||
carbonLoaded.value = false
|
||||
}
|
||||
}, 5000)
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div
|
||||
:class="{
|
||||
'drawer-open': drawerOpen,
|
||||
'hide-ad': !showAd
|
||||
'hide-ad': !(showAd && carbonLoaded)
|
||||
}"
|
||||
class="floating-ad"
|
||||
v-if="theme.carbonAds"
|
||||
|
||||
438
docs/.vitepress/theme/components/icons/IconShowcase.vue
Normal file
@@ -0,0 +1,438 @@
|
||||
<script setup lang="ts">
|
||||
import type { IconEntity } from '../../types';
|
||||
import { computed } from 'vue';
|
||||
import createLucideIcon from 'lucide-vue-next/src/createLucideIcon.ts';
|
||||
import Calendar from '../../../data/iconDetails/calendar.ts';
|
||||
import Clock from '../../../data/iconDetails/clock.ts';
|
||||
import Bug from '../../../data/iconDetails/bug.ts';
|
||||
import Rocket from '../../../data/iconDetails/rocket.ts';
|
||||
import TriangleAlert from '../../../data/iconDetails/triangle-alert.ts';
|
||||
import PartyPopper from '../../../data/iconDetails/party-popper.ts';
|
||||
import Scissors from '../../../data/iconDetails/scissors.ts';
|
||||
import Copy from '../../../data/iconDetails/copy.ts';
|
||||
import Save from '../../../data/iconDetails/save.ts';
|
||||
import Clipboard from '../../../data/iconDetails/clipboard.ts';
|
||||
import MessageCircle from '../../../data/iconDetails/message-circle.ts';
|
||||
import ThumbsDown from '../../../data/iconDetails/thumbs-down.ts';
|
||||
import ThumbsUp from '../../../data/iconDetails/thumbs-up.ts';
|
||||
import Heart from '../../../data/iconDetails/heart.ts';
|
||||
import Folder from '../../../data/iconDetails/folder.ts';
|
||||
import Files from '../../../data/iconDetails/files.ts';
|
||||
import Plus from '../../../data/iconDetails/plus.ts';
|
||||
import File from '../../../data/iconDetails/file.ts';
|
||||
import FileText from '../../../data/iconDetails/file-text.ts';
|
||||
|
||||
const props = defineProps<{
|
||||
name: IconEntity['name'];
|
||||
iconNode: IconEntity['iconNode'];
|
||||
}>();
|
||||
|
||||
const iconComponent = computed(() => {
|
||||
if (!props.name || !props.iconNode) return null;
|
||||
return createLucideIcon(props.name, props.iconNode);
|
||||
});
|
||||
|
||||
const CalendarIcon = createLucideIcon('calendar', Calendar.iconNode);
|
||||
const ClockIcon = createLucideIcon('clock', Clock.iconNode);
|
||||
const BugIcon = createLucideIcon('bug', Bug.iconNode);
|
||||
const RocketIcon = createLucideIcon('rocket', Rocket.iconNode);
|
||||
const AlertTriangleIcon = createLucideIcon('alert-triangle', TriangleAlert.iconNode);
|
||||
const ScissorsIcon = createLucideIcon('scissors', Scissors.iconNode);
|
||||
const CopyIcon = createLucideIcon('copy', Copy.iconNode);
|
||||
const SaveIcon = createLucideIcon('save', Save.iconNode);
|
||||
const ClipboardIcon = createLucideIcon('clipboard', Clipboard.iconNode);
|
||||
const PartyPopperIcon = createLucideIcon('party-popper', PartyPopper.iconNode);
|
||||
const HeartIcon = createLucideIcon('heart', Heart.iconNode);
|
||||
const ThumbsUpIcon = createLucideIcon('thumbs-up', ThumbsUp.iconNode);
|
||||
const ThumbsDownIcon = createLucideIcon('thumbs-down', ThumbsDown.iconNode);
|
||||
const MessageCircleIcon = createLucideIcon('message-circle', MessageCircle.iconNode);
|
||||
const FolderIcon = createLucideIcon('folder.ts', Folder.iconNode);
|
||||
const FilesIcon = createLucideIcon('files.ts', Files.iconNode);
|
||||
const PlusIcon = createLucideIcon('plus.ts', Plus.iconNode);
|
||||
const FileIcon = createLucideIcon('file.ts', File.iconNode);
|
||||
const FileTextIcon = createLucideIcon('file-text.ts', FileText.iconNode);
|
||||
|
||||
const prettyName = props.name
|
||||
.split('-')
|
||||
.at(0)
|
||||
.split('')
|
||||
.map((character, index) => (index === 0 ? character.toUpperCase() : character))
|
||||
.join('');
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<section class="showcase">
|
||||
<h2 class="title">See this icon in action</h2>
|
||||
<div class="showcase-grid">
|
||||
<div class="showcase-item column">
|
||||
<div class="placeholder"></div>
|
||||
<div class="placeholder"></div>
|
||||
<div class="placeholder"></div>
|
||||
<div class="placeholder narrow"></div>
|
||||
<div class="spacer"></div>
|
||||
<div class="actions">
|
||||
<button class="button button-brand">
|
||||
<iconComponent />
|
||||
{{ prettyName }}
|
||||
</button>
|
||||
<button class="button button-alt">Cancel</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="showcase-item column">
|
||||
<div class="placeholder narrow"></div>
|
||||
<div class="input-wrapper">
|
||||
<CalendarIcon v-if="name !== 'calendar'" />
|
||||
<ClockIcon v-if="name == 'calendar'" />
|
||||
<input
|
||||
type="text"
|
||||
v-if="name !== 'calendar'"
|
||||
placeholder="Enter a date..."
|
||||
/>
|
||||
<input
|
||||
type="text"
|
||||
v-if="name == 'calendar'"
|
||||
placeholder="Enter a time..."
|
||||
/>
|
||||
</div>
|
||||
<div class="spacer"></div>
|
||||
<div class="placeholder narrow"></div>
|
||||
<div class="input-wrapper">
|
||||
<iconComponent />
|
||||
<input
|
||||
type="text"
|
||||
placeholder="Enter a value..."
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="showcase-item column">
|
||||
<div
|
||||
class="row"
|
||||
v-if="name !== 'bug'"
|
||||
>
|
||||
<div class="placeholder"></div>
|
||||
<div class="badge badge-red">
|
||||
<BugIcon :size="20" />
|
||||
Bug
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="row"
|
||||
v-else
|
||||
>
|
||||
<div class="placeholder"></div>
|
||||
<div class="badge badge-red">
|
||||
<AlertTriangleIcon :size="20" />
|
||||
Alert
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="placeholder"></div>
|
||||
<div class="badge badge-indigo">
|
||||
<RocketIcon
|
||||
:size="20"
|
||||
v-if="name !== 'rocket'"
|
||||
/>
|
||||
<PartyPopperIcon
|
||||
:size="20"
|
||||
v-else
|
||||
/>
|
||||
Feature
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="placeholder"></div>
|
||||
<div class="badge badge-green">
|
||||
<iconComponent :size="20" />
|
||||
{{ prettyName }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="showcase-item column">
|
||||
<button class="button button-alt button-square">
|
||||
<FolderIcon v-if="name !== 'folder'" />
|
||||
<FilesIcon v-else />
|
||||
Documents
|
||||
<PlusIcon class="ms-auto" />
|
||||
</button>
|
||||
<button class="button button-alt button-square">
|
||||
<FileIcon v-if="name !== 'file'" />
|
||||
<FileTextIcon v-else />
|
||||
Readme
|
||||
</button>
|
||||
<button class="button button-alt button-square">
|
||||
<iconComponent />
|
||||
{{ prettyName }}
|
||||
<span class="badge-notification ms-auto">12</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="showcase-item column">
|
||||
<div class="placeholder"></div>
|
||||
<div class="placeholder"></div>
|
||||
<div class="placeholder"></div>
|
||||
<div class="placeholder narrow"></div>
|
||||
<div class="spacer"></div>
|
||||
<div class="actions">
|
||||
<div class="icon-counter">
|
||||
<HeartIcon v-if="name !== 'heart'" />
|
||||
<ThumbsUpIcon v-else />
|
||||
112
|
||||
</div>
|
||||
<div class="spacer"></div>
|
||||
<div class="icon-counter">
|
||||
<MessageCircleIcon v-if="name !== 'message-circle'" />
|
||||
<ThumbsDownIcon v-else />
|
||||
8
|
||||
</div>
|
||||
<div class="spacer"></div>
|
||||
<div class="icon-counter">
|
||||
<iconComponent />
|
||||
11
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="showcase-item">
|
||||
<div class="column align-items-center">
|
||||
<div class="actions justify-content-center">
|
||||
<button class="button button-icon">
|
||||
<CopyIcon v-if="name !== 'copy'" />
|
||||
<SaveIcon v-else />
|
||||
</button>
|
||||
<button class="button button-icon">
|
||||
<ScissorsIcon v-if="name !== 'scissors'" />
|
||||
<SaveIcon v-else />
|
||||
</button>
|
||||
<button class="button button-icon">
|
||||
<ClipboardIcon v-if="name !== 'clipboard'" />
|
||||
<SaveIcon v-else />
|
||||
</button>
|
||||
<button class="button button-icon">
|
||||
<iconComponent></iconComponent>
|
||||
<span class="badge-notification">2</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="spacer"></div>
|
||||
<div class="placeholder"></div>
|
||||
<div class="placeholder"></div>
|
||||
<div class="placeholder"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
.showcase {
|
||||
margin-bottom: 32px;
|
||||
}
|
||||
|
||||
.showcase-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
|
||||
gap: 48px;
|
||||
margin-inline-start: 24px;
|
||||
margin-block-start: 48px;
|
||||
}
|
||||
|
||||
.showcase-item {
|
||||
padding: 24px;
|
||||
border-radius: 8px;
|
||||
background-color: var(--vp-c-bg);
|
||||
box-shadow:
|
||||
var(--vp-shadow-4),
|
||||
-24px -24px 0 var(--vp-c-bg-soft);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
min-height: 240px;
|
||||
}
|
||||
|
||||
.spacer {
|
||||
flex-basis: 0;
|
||||
}
|
||||
|
||||
.button {
|
||||
position: relative;
|
||||
border-radius: 32px;
|
||||
padding: 8px 16px;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
gap: 12px;
|
||||
font-weight: 500;
|
||||
transition:
|
||||
color 0.25s,
|
||||
border-color 0.25s,
|
||||
background-color 0.25s;
|
||||
|
||||
border-color: var(--vp-button-alt-border);
|
||||
color: var(--vp-button-alt-text);
|
||||
background-color: var(--vp-button-alt-bg);
|
||||
&:hover {
|
||||
border-color: var(--vp-button-alt-hover-border);
|
||||
color: var(--vp-button-alt-hover-text);
|
||||
background-color: var(--vp-button-alt-hover-bg);
|
||||
}
|
||||
&.button-brand {
|
||||
border-color: var(--vp-button-brand-border);
|
||||
color: var(--vp-button-brand-text);
|
||||
background-color: var(--vp-button-brand-bg);
|
||||
&:hover {
|
||||
border-color: var(--vp-button-brand-hover-border);
|
||||
color: var(--vp-button-brand-hover-text);
|
||||
background-color: var(--vp-button-brand-hover-bg);
|
||||
}
|
||||
}
|
||||
&.button-icon {
|
||||
padding: 12px;
|
||||
}
|
||||
&.button-square {
|
||||
border-radius: 8px;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.actions {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
.lucide {
|
||||
flex-shrink: 0;
|
||||
flex-grow: 0;
|
||||
}
|
||||
|
||||
.placeholder {
|
||||
display: block;
|
||||
background-color: var(--vp-c-bg-soft);
|
||||
border-radius: 32px;
|
||||
height: 16px;
|
||||
width: 100%;
|
||||
|
||||
&.narrow {
|
||||
width: 33%;
|
||||
}
|
||||
}
|
||||
|
||||
.input-wrapper {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
.lucide {
|
||||
position: absolute;
|
||||
inset-inline-start: 12px;
|
||||
inset-block: 50%;
|
||||
translate: 0 -50%;
|
||||
color: var(--vp-c-text-1);
|
||||
opacity: 0.7;
|
||||
}
|
||||
input {
|
||||
padding: 12px 20px;
|
||||
padding-inline-start: 48px;
|
||||
border-radius: 8px;
|
||||
background-color: var(--vp-c-bg-soft);
|
||||
color: var(--vp-c-text-1);
|
||||
display: block;
|
||||
width: 100%;
|
||||
border: 2px solid transparent;
|
||||
transition:
|
||||
color 0.25s,
|
||||
border-color 0.25s,
|
||||
background-color 0.25s;
|
||||
&:hover {
|
||||
border-color: var(--vp-c-border);
|
||||
}
|
||||
&:focus {
|
||||
border-color: var(--vp-c-brand);
|
||||
}
|
||||
}
|
||||
&:focus-within {
|
||||
.lucide {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.badge {
|
||||
flex-shrink: 0;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
padding: 4px 8px;
|
||||
border-radius: 8px;
|
||||
background-color: transparent;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
color: var(--badge-color);
|
||||
&:before {
|
||||
content: ' ';
|
||||
inset: 0;
|
||||
position: absolute;
|
||||
background-color: var(--badge-color);
|
||||
opacity: 0.1;
|
||||
}
|
||||
&.badge-indigo {
|
||||
--badge-color: var(--vp-c-indigo-2);
|
||||
}
|
||||
&.badge-green {
|
||||
--badge-color: var(--vp-c-green-2);
|
||||
}
|
||||
&.badge-red {
|
||||
--badge-color: var(--vp-c-brand);
|
||||
}
|
||||
}
|
||||
|
||||
.badge-notification {
|
||||
background-color: var(--vp-c-brand);
|
||||
color: var(--vp-button-brand-text);
|
||||
border-radius: 32px;
|
||||
padding: 0 8px;
|
||||
min-width: 24px;
|
||||
min-height: 24px;
|
||||
}
|
||||
|
||||
.button-icon {
|
||||
.badge-notification {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
translate: 33% -33%;
|
||||
}
|
||||
}
|
||||
|
||||
.row {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
gap: 12px;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.icon-counter {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
gap: 6px;
|
||||
color: var(--vp-c-text-2);
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.column {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 12px;
|
||||
align-items: start;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.align-items-center {
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.justify-content-center {
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.ms-auto {
|
||||
margin-inline-start: auto;
|
||||
}
|
||||
</style>
|
||||
@@ -14,6 +14,7 @@ import CarbonAdOverlay from './CarbonAdOverlay.vue';
|
||||
|
||||
const ICON_SIZE = 56;
|
||||
const ICON_GRID_GAP = 8;
|
||||
const DEFAULT_GRID_ITEMS = 10 * 160;
|
||||
|
||||
const props = defineProps<{
|
||||
icons: IconEntity[];
|
||||
@@ -114,11 +115,23 @@ function handleCloseDrawer() {
|
||||
/>
|
||||
</StickyBar>
|
||||
<NoResults
|
||||
v-if="list.length === 0"
|
||||
v-if="list.length === 0 && searchQuery !== ''"
|
||||
:searchQuery="searchQuery"
|
||||
@clear="searchQuery = ''"
|
||||
/>
|
||||
<div v-bind="wrapperProps" class="icon">
|
||||
<IconGrid
|
||||
v-else-if="list.length === 0"
|
||||
:key="index"
|
||||
overlayMode
|
||||
:icons="[...searchResults].splice(0, DEFAULT_GRID_ITEMS)"
|
||||
:activeIcon="activeIconName"
|
||||
@setActiveIcon="setActiveIconName"
|
||||
/>
|
||||
<div
|
||||
v-bind="wrapperProps"
|
||||
class="icon"
|
||||
v-else
|
||||
>
|
||||
<IconGrid
|
||||
v-for="{ index, data: icons } in list"
|
||||
:key="index"
|
||||
|
||||
@@ -1,29 +1,20 @@
|
||||
<script setup lang="ts">
|
||||
import type { IconEntity } from '../../types'
|
||||
import IconGrid from './IconGrid.vue'
|
||||
import type { IconEntity } from '../../types';
|
||||
import IconGrid from './IconGrid.vue';
|
||||
|
||||
defineProps<{
|
||||
icons: IconEntity[]
|
||||
}>()
|
||||
icons: IconEntity[];
|
||||
}>();
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<section class="related-icons">
|
||||
<h2 class="title">
|
||||
Related Icons
|
||||
</h2>
|
||||
<IconGrid
|
||||
:icons="icons"
|
||||
/>
|
||||
<h2 class="title">More icons like this</h2>
|
||||
<IconGrid :icons="icons" />
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
.title {
|
||||
margin-bottom: 24px;
|
||||
font-size: 19px;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.related-icons {
|
||||
margin-bottom: 32px;
|
||||
}
|
||||
|
||||
@@ -12,7 +12,8 @@ Lucide is an open-source icon library that provides 1000+ vector (svg) files for
|
||||
## Available Icons
|
||||
|
||||
Lucide contains icons with different variants and states, allowing users to choose the most suitable icon for their needs. And if a desired icon isn't available yet, users can open a design request, and the Lucide community contributors will help provide new icons. With more icons to choose from, users have more options to work with in their projects.
|
||||
Complete Set of Icons
|
||||
|
||||
### Complete Set of Icons
|
||||
|
||||
As new applications with specific features arise, Lucide aims to provide a complete set of icons for every project. The community follows a set of design rules when designing new icons. These rules maintain standards for the icons, such as recognizability, consistency in style, and readability at all sizes. While creativity is valued in new icons, recognizable design conventions are important to ensure that the icons are easily identifiable by users.
|
||||
|
||||
|
||||
@@ -22,6 +22,10 @@ yarn add lucide
|
||||
npm install lucide
|
||||
```
|
||||
|
||||
```sh [bun]
|
||||
bun add lucide
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
For more details, see the [documentation](packages/lucide.md).
|
||||
@@ -44,6 +48,10 @@ yarn add lucide-react
|
||||
npm install lucide-react
|
||||
```
|
||||
|
||||
```sh [bun]
|
||||
bun add lucide-react
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
For more details, see the [documentation](packages/lucide-react.md).
|
||||
@@ -67,6 +75,10 @@ yarn add lucide-vue-next
|
||||
npm install lucide-vue-next
|
||||
```
|
||||
|
||||
```sh [bun]
|
||||
bun add lucide-vue-next
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
For more details, see the [documentation](packages/lucide-vue-next.md).
|
||||
@@ -90,6 +102,10 @@ yarn add lucide-svelte
|
||||
npm install lucide-svelte
|
||||
```
|
||||
|
||||
```sh [bun]
|
||||
bun add lucide-svelte
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
For more details, see the [documentation](packages/lucide-svelte.md).
|
||||
@@ -112,6 +128,10 @@ yarn add lucide-solid
|
||||
npm install lucide-solid
|
||||
```
|
||||
|
||||
```sh [bun]
|
||||
bun add lucide-solid
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
For more details, see the [documentation](packages/lucide-solid.md).
|
||||
@@ -134,6 +154,10 @@ yarn add lucide-angular
|
||||
npm install lucide-angular
|
||||
```
|
||||
|
||||
```sh [bun]
|
||||
bun add lucide-angular
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
For more details, see the [documentation](packages/lucide-angular.md).
|
||||
@@ -156,6 +180,10 @@ yarn add lucide-preact
|
||||
npm install lucide-preact
|
||||
```
|
||||
|
||||
```sh [bun]
|
||||
bun add lucide-preact
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
## Static usage
|
||||
@@ -176,6 +204,10 @@ yarn add lucide-static
|
||||
npm install lucide-static
|
||||
```
|
||||
|
||||
```sh [bun]
|
||||
bun add lucide-static
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
For more details, see the [documentation](packages/lucide-static.md).
|
||||
|
||||
@@ -18,6 +18,10 @@ yarn add lucide-angular
|
||||
npm install lucide-angular
|
||||
```
|
||||
|
||||
```sh [bun]
|
||||
bun add lucide-angular
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
## How to use
|
||||
|
||||
@@ -22,6 +22,10 @@ yarn add lucide-preact
|
||||
npm install lucide-preact
|
||||
```
|
||||
|
||||
```sh [bun]
|
||||
bun add lucide-preact
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
## How to use
|
||||
|
||||
@@ -20,6 +20,10 @@ yarn add lucide-react-native
|
||||
npm install lucide-react-native
|
||||
```
|
||||
|
||||
```sh [bun]
|
||||
bun add lucide-react-native
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
## How to use
|
||||
|
||||
@@ -18,6 +18,10 @@ yarn add lucide-react
|
||||
npm install lucide-react
|
||||
```
|
||||
|
||||
```sh [bun]
|
||||
bun add lucide-react
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
## How to use
|
||||
@@ -81,108 +85,21 @@ const App = () => (
|
||||
);
|
||||
```
|
||||
|
||||
## One generic icon component
|
||||
## Dynamic Icon Component
|
||||
|
||||
It is possible to create one generic icon component to load icons, but it is not recommended.
|
||||
Since it is importing all icons during build. This increases build time and the different modules it will create.
|
||||
|
||||
::: danger
|
||||
The example below imports all ES Modules, so exercise caution when using it. Importing all icons will significantly increase the build size of the application, negatively affecting its performance. This is especially important to keep in mind when using bundlers like `Webpack`, `Rollup`, or `Vite`.
|
||||
`DynamicIcon` is useful for applications that want to show icons dynamically by icon name. For example, when using a content management system with where icon names are stored in a database.
|
||||
|
||||
This is not the case for the latest NextJS, because it uses server side rendering. The icons will be streamed to the client when needed. For NextJS with Dynamic Imports, see [dynamic imports](#nextjs-example) section for more information.
|
||||
:::
|
||||
For static use cases, it is recommended to import the icons directly.
|
||||
|
||||
### Icon Component Example
|
||||
The same props can be passed to adjust the icon appearance. The `name` prop is required to load the correct icon.
|
||||
|
||||
```jsx
|
||||
import { icons } from 'lucide-react';
|
||||
import { DynamicIcon } from 'lucide-react/dynamic';
|
||||
|
||||
const Icon = ({ name, color, size }) => {
|
||||
const LucideIcon = icons[name];
|
||||
|
||||
return <LucideIcon color={color} size={size} />;
|
||||
};
|
||||
|
||||
export default Icon;
|
||||
```
|
||||
|
||||
#### Using the Icon Component
|
||||
|
||||
```jsx
|
||||
import Icon from './Icon';
|
||||
|
||||
const App = () => {
|
||||
return <Icon name="Home" />;
|
||||
};
|
||||
|
||||
export default App;
|
||||
```
|
||||
|
||||
#### With Dynamic Imports
|
||||
|
||||
Lucide react exports a dynamic import map `dynamicIconImports`, which is useful for applications that want to show icons dynamically by icon name. For example, when using a content management system with where icon names are stored in a database.
|
||||
|
||||
When using client side rendering, it will fetch the icon component when it's needed. This will reduce the initial bundle size.
|
||||
|
||||
The keys of the dynamic import map are the lucide original icon names (kebab case).
|
||||
|
||||
Example with React suspense:
|
||||
|
||||
```tsx
|
||||
import React, { lazy, Suspense } from 'react';
|
||||
import { LucideProps } from 'lucide-react';
|
||||
import dynamicIconImports from 'lucide-react/dynamicIconImports';
|
||||
|
||||
const fallback = <div style={{ background: '#ddd', width: 24, height: 24 }}/>
|
||||
|
||||
interface IconProps extends Omit<LucideProps, 'ref'> {
|
||||
name: keyof typeof dynamicIconImports;
|
||||
}
|
||||
|
||||
const Icon = ({ name, ...props }: IconProps) => {
|
||||
const LucideIcon = lazy(dynamicIconImports[name]);
|
||||
|
||||
return (
|
||||
<Suspense fallback={fallback}>
|
||||
<LucideIcon {...props} />
|
||||
</Suspense>
|
||||
const App = () => (
|
||||
<DynamicIcon name="camera" color="red" size={48} />
|
||||
);
|
||||
}
|
||||
|
||||
export default Icon
|
||||
```
|
||||
|
||||
##### NextJS Example
|
||||
|
||||
In NextJS, [the dynamic function](https://nextjs.org/docs/pages/building-your-application/optimizing/lazy-loading#nextdynamic) can be used to dynamically load the icon component.
|
||||
|
||||
To make dynamic imports work with NextJS, you need to add `lucide-react` to the [`transpilePackages`](https://nextjs.org/docs/app/api-reference/next-config-js/transpilePackages) option in your `next.config.js` like this:
|
||||
|
||||
```js
|
||||
/** @type {import('next').NextConfig} */
|
||||
const nextConfig = {
|
||||
transpilePackages: ['lucide-react'] // add this
|
||||
}
|
||||
|
||||
module.exports = nextConfig
|
||||
|
||||
```
|
||||
|
||||
You can then start using it:
|
||||
|
||||
```tsx
|
||||
import dynamic from 'next/dynamic'
|
||||
import { LucideProps } from 'lucide-react';
|
||||
import dynamicIconImports from 'lucide-react/dynamicIconImports';
|
||||
|
||||
interface IconProps extends LucideProps {
|
||||
name: keyof typeof dynamicIconImports;
|
||||
}
|
||||
|
||||
const Icon = ({ name, ...props }: IconProps) => {
|
||||
const LucideIcon = dynamic(dynamicIconImports[name])
|
||||
|
||||
return <LucideIcon {...props} />;
|
||||
};
|
||||
|
||||
export default Icon;
|
||||
```
|
||||
|
||||
@@ -18,6 +18,10 @@ yarn add lucide-solid
|
||||
npm install lucide-solid
|
||||
```
|
||||
|
||||
```sh [bun]
|
||||
bun add lucide-solid
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
## How to use
|
||||
|
||||
@@ -33,13 +33,17 @@ yarn add lucide-static
|
||||
npm install lucide-static
|
||||
```
|
||||
|
||||
```sh [bun]
|
||||
bun add lucide-static
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
### CDN
|
||||
|
||||
```html
|
||||
<!-- SVG file for a single icon -->
|
||||
<img src="https://unpkg.com/lucide-static@latest/icons/home.svg" />
|
||||
<img src="https://unpkg.com/lucide-static@latest/icons/house.svg" />
|
||||
|
||||
<!-- Icon font -->
|
||||
<style>
|
||||
@@ -62,12 +66,12 @@ To use it in for example html:
|
||||
|
||||
```html
|
||||
<!-- SVG file for a single icon -->
|
||||
<img src="~lucide-static/icons/home.svg" />
|
||||
<img src="~lucide-static/icons/house.svg" />
|
||||
```
|
||||
|
||||
```css
|
||||
.home-icon {
|
||||
background-image: url(~lucide-static/icons/home.svg);
|
||||
.house-icon {
|
||||
background-image: url(~lucide-static/icons/house.svg);
|
||||
}
|
||||
```
|
||||
|
||||
@@ -90,7 +94,7 @@ You may need additional loader for this.
|
||||
|
||||
```html
|
||||
<!-- Icon Sprite, not recommended for production! -->
|
||||
<img src="lucide-static/sprite.svg#home" />
|
||||
<img src="lucide-static/sprite.svg#house" />
|
||||
|
||||
<!-- or -->
|
||||
<svg
|
||||
@@ -147,7 +151,7 @@ and update the SVG as follows
|
||||
```
|
||||
|
||||
```html
|
||||
<div class="icon-home"></div>
|
||||
<div class="icon-house"></div>
|
||||
```
|
||||
|
||||
### Node.js
|
||||
|
||||
@@ -18,6 +18,10 @@ yarn add lucide-svelte
|
||||
npm install lucide-svelte
|
||||
```
|
||||
|
||||
```sh [bun]
|
||||
bun add lucide-svelte
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
## How to use
|
||||
@@ -87,35 +91,34 @@ The package includes type definitions for all icons. This is useful if you want
|
||||
|
||||
### TypeScript Example
|
||||
|
||||
#### Svelte 4
|
||||
|
||||
```svelte
|
||||
<script lang="ts">
|
||||
import Home from 'lucide-svelte/icons/home';
|
||||
import Library from 'lucide-svelte/icons/library';
|
||||
import Cog from 'lucide-svelte/icons/cog';
|
||||
import { Home, Library, Cog, type Icon } from 'lucide-svelte';
|
||||
import type { ComponentType } from 'svelte';
|
||||
import type { Icon } from 'lucide-svelte';
|
||||
|
||||
type MenuItem = {
|
||||
name: string;
|
||||
href: string;
|
||||
icon: ComponentType<Icon>;
|
||||
}
|
||||
};
|
||||
|
||||
const menuItems: MenuItem[] = [
|
||||
{
|
||||
name: 'Home',
|
||||
href: '/',
|
||||
icon: Home,
|
||||
icon: Home
|
||||
},
|
||||
{
|
||||
name: 'Blog',
|
||||
href: '/blog',
|
||||
icon: Library,
|
||||
icon: Library
|
||||
},
|
||||
{
|
||||
name: 'Projects',
|
||||
href: '/projects',
|
||||
icon: Cog,
|
||||
icon: Cog
|
||||
}
|
||||
];
|
||||
</script>
|
||||
@@ -128,13 +131,55 @@ The package includes type definitions for all icons. This is useful if you want
|
||||
{/each}
|
||||
```
|
||||
|
||||
|
||||
#### Svelte 5
|
||||
Some changes are required since Svelte 5 [deprecates](https://svelte.dev/docs/svelte/v5-migration-guide#Components-are-no-longer-classes-Component-typing-changes) the `ComponentType` typescript type.
|
||||
|
||||
```svelte
|
||||
<script lang="ts">
|
||||
import { Home, Library, Cog, type Icon as IconType } from 'lucide-svelte';
|
||||
|
||||
type MenuItem = {
|
||||
name: string;
|
||||
href: string;
|
||||
icon: typeof IconType;
|
||||
};
|
||||
|
||||
const menuItems: MenuItem[] = [
|
||||
{
|
||||
name: 'Home',
|
||||
href: '/',
|
||||
icon: Home
|
||||
},
|
||||
{
|
||||
name: 'Blog',
|
||||
href: '/blog',
|
||||
icon: Library
|
||||
},
|
||||
{
|
||||
name: 'Projects',
|
||||
href: '/projects',
|
||||
icon: Cog
|
||||
}
|
||||
];
|
||||
</script>
|
||||
|
||||
{#each menuItems as item}
|
||||
{@const Icon = item.icon}
|
||||
<a href={item.href}>
|
||||
<Icon />
|
||||
<span>{item.name}</span>
|
||||
</a>
|
||||
{/each}
|
||||
```
|
||||
|
||||
### JSDoc Example
|
||||
|
||||
#### Svelte 4
|
||||
|
||||
```svelte
|
||||
<script>
|
||||
import Home from 'lucide-svelte/icons/home';
|
||||
import Library from 'lucide-svelte/icons/library';
|
||||
import Cog from 'lucide-svelte/icons/cog';
|
||||
import { Home, Library, Cog } from 'lucide-svelte';
|
||||
|
||||
/**
|
||||
* @typedef {Object} MenuItem
|
||||
@@ -162,6 +207,57 @@ The package includes type definitions for all icons. This is useful if you want
|
||||
}
|
||||
];
|
||||
</script>
|
||||
|
||||
{#each menuItems as item}
|
||||
<a href={item.href}>
|
||||
<svelte:component this={item.icon} />
|
||||
<span>{item.name}</span>
|
||||
</a>
|
||||
{/each}
|
||||
```
|
||||
|
||||
|
||||
#### Svelte 5
|
||||
|
||||
```svelte
|
||||
<script>
|
||||
import { Home, Library, Cog } from 'lucide-svelte';
|
||||
|
||||
/**
|
||||
* @typedef {Object} MenuItem
|
||||
* @property {string} name
|
||||
* @property {string} href
|
||||
* @property {typeof import('lucide-svelte').Icon} icon
|
||||
*/
|
||||
|
||||
/** @type {MenuItem[]} */
|
||||
const menuItems = [
|
||||
{
|
||||
name: 'Home',
|
||||
href: '/',
|
||||
icon: Home
|
||||
},
|
||||
{
|
||||
name: 'Blog',
|
||||
href: '/blog',
|
||||
icon: Library
|
||||
},
|
||||
{
|
||||
name: 'Projects',
|
||||
href: '/projects',
|
||||
icon: Cog
|
||||
}
|
||||
];
|
||||
</script>
|
||||
|
||||
{#each menuItems as item}
|
||||
{@const Icon = item.icon}
|
||||
<a href={item.href}>
|
||||
<Icon />
|
||||
<span>{item.name}</span>
|
||||
</a>
|
||||
{/each}
|
||||
|
||||
```
|
||||
|
||||
For more details about typing the `svelte:component` directive, see the [Svelte documentation](https://svelte.dev/docs/typescript#types-componenttype).
|
||||
@@ -197,13 +293,28 @@ The example below imports all ES Modules, so exercise caution when using it. Imp
|
||||
|
||||
### Icon Component Example
|
||||
|
||||
#### Svelte 4
|
||||
|
||||
```svelte
|
||||
<script>
|
||||
import * as icons from 'lucide-svelte';
|
||||
export let name;
|
||||
</script>
|
||||
|
||||
<svelte:component this="{icons[name]}" {...$$props} />
|
||||
<svelte:component this={icons[name]} {...$$props} />
|
||||
```
|
||||
|
||||
#### Svelte 5
|
||||
|
||||
```svelte
|
||||
<script>
|
||||
import * as icons from 'lucide-svelte';
|
||||
let { name } = $props();
|
||||
|
||||
const Icon = icons[name];
|
||||
</script>
|
||||
|
||||
<Icon {...props} />
|
||||
```
|
||||
|
||||
#### Using the Icon Component
|
||||
|
||||
@@ -2,12 +2,6 @@
|
||||
|
||||
Implementation of the lucide icon library for Vue 3 applications.
|
||||
|
||||
## Vue 3 or Vue 2
|
||||
|
||||
::: tip
|
||||
This version of lucide is for Vue 3, For Vue 2 got to [lucide-vue ->](lucide-vue)
|
||||
:::
|
||||
|
||||
## Installation
|
||||
|
||||
::: code-group
|
||||
@@ -24,6 +18,10 @@ yarn add lucide-vue-next
|
||||
npm install lucide-vue-next
|
||||
```
|
||||
|
||||
```sh [bun]
|
||||
bun add lucide-vue-next
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
## How to use
|
||||
|
||||
@@ -2,15 +2,8 @@
|
||||
|
||||
Implementation of the lucide icon library for Vue applications.
|
||||
|
||||
::: warning
|
||||
This package will be deprecated end of 2023. Vue v2 will be EOF at the end of 2023 See [Announcement](https://v2.vuejs.org/lts/). We recommend to migrate to Vue 3.
|
||||
The Lucide Vue package will be only maintained for Vue 3 after the deprecation.
|
||||
:::
|
||||
|
||||
## Vue 2 or Vue 3
|
||||
|
||||
::: tip
|
||||
This version of lucide is for Vue 2, For Vue 3 go to [lucide-vue-next ->](lucide-vue-next)
|
||||
::: danger
|
||||
This package is deprecated. Vue 2 is EOF See [Announcement](https://v2.vuejs.org/eol/). Migrate to Vue 3.
|
||||
:::
|
||||
|
||||
## Installation
|
||||
@@ -29,6 +22,10 @@ yarn add lucide-vue
|
||||
npm install lucide-vue
|
||||
```
|
||||
|
||||
```sh [bun]
|
||||
bun add lucide-vue
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
## How to use
|
||||
|
||||
@@ -20,6 +20,10 @@ yarn add lucide
|
||||
npm install lucide
|
||||
```
|
||||
|
||||
```sh [bun]
|
||||
bun add lucide
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
### CDN
|
||||
|
||||
@@ -14,6 +14,7 @@ import IconPreview from '~/.vitepress/theme/components/icons/IconPreview.vue'
|
||||
import IconPreviewSmall from '~/.vitepress/theme/components/icons/IconPreviewSmall.vue'
|
||||
import IconInfo from '~/.vitepress/theme/components/icons/IconInfo.vue'
|
||||
import IconContributors from '~/.vitepress/theme/components/icons/IconContributors.vue'
|
||||
import IconShowcase from '~/.vitepress/theme/components/icons/IconShowcase.vue'
|
||||
import RelatedIcons from '~/.vitepress/theme/components/icons/RelatedIcons.vue'
|
||||
import CodeGroup from '~/.vitepress/theme/components/base/CodeGroup.vue'
|
||||
import Badge from '~/.vitepress/theme/components/base/Badge.vue'
|
||||
@@ -104,6 +105,11 @@ function releaseTagLink(version) {
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<IconShowcase
|
||||
:name="params.name"
|
||||
:iconNode="params.iconNode"
|
||||
/>
|
||||
|
||||
<RelatedIcons
|
||||
v-if="params.relatedIcons"
|
||||
:icons="params.relatedIcons"
|
||||
@@ -233,3 +239,12 @@ function releaseTagLink(version) {
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<style>
|
||||
section h2.title {
|
||||
text-align: center;
|
||||
font-weight: 500;
|
||||
margin-block-end: 64px;
|
||||
padding-top: 32px;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -39,8 +39,8 @@
|
||||
"@floating-ui/vue": "^1.0.3",
|
||||
"@headlessui/vue": "^1.7.17",
|
||||
"@resvg/resvg-wasm": "^2.6.2",
|
||||
"@vueuse/components": "^10.7.2",
|
||||
"@vueuse/core": "^10.7.2",
|
||||
"@vueuse/components": "^12.0.0",
|
||||
"@vueuse/core": "^12.0.0",
|
||||
"element-to-path": "^1.2.1",
|
||||
"fuse.js": "^6.5.3",
|
||||
"jszip": "^3.7.0",
|
||||
@@ -57,6 +57,6 @@
|
||||
"sitemap": "^7.1.1",
|
||||
"svg-pathdata": "^6.0.3",
|
||||
"svgson": "^5.2.1",
|
||||
"vue": "^3.4.13"
|
||||
"vue": "^3.5.13"
|
||||
}
|
||||
}
|
||||
|
||||
6
docs/public/library-logos/reflex-dark.svg
Normal file
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="81" height="16" viewBox="0 0 81 16" fill="none">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M29 16H32V10H39V7H32V4H39V1H29V16ZM42 16H52V13H45V1H42V16ZM55 16H65V13H58.0439L58 10H65V7H58V4H65V1H55V16ZM68 7H71V10H68V16H71V10H78V16H81V10H78V7H81V1H78V7H71V1H68V7Z" fill="#1C2024"/>
|
||||
<path d="M16 16V1H26V4H19V7H26V10H19L19.0439 13H26V16H16Z" fill="#1C2024"/>
|
||||
<path d="M10 10V16H13V10H10Z" fill="#1C2024"/>
|
||||
<path d="M0 1V16H3V10H10V7H3V4H10V7H13V1H0Z" fill="#1C2024"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 522 B |
6
docs/public/library-logos/reflex-light.svg
Normal file
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="81" height="16" viewBox="0 0 81 16" fill="none">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M29 16H32V10H39V7H32V4H39V1H29V16ZM42 16H52V13H45V1H42V16ZM55 16H65V13H58.0439L58 10H65V7H58V4H65V1H55V16ZM68 7H71V10H68V16H71V10H78V16H81V10H78V7H81V1H78V7H71V1H68V7Z" fill="#FCFCFD"/>
|
||||
<path d="M16 16V1H26V4H19V7H26V10H19L19.0439 13H26V16H16Z" fill="#FCFCFD"/>
|
||||
<path d="M10 10V16H13V10H10Z" fill="#FCFCFD"/>
|
||||
<path d="M0 1V16H3V10H10V7H3V4H10V7H13V1H0Z" fill="#FCFCFD"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 522 B |
@@ -1,4 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 118 22">
|
||||
<svg viewBox="0 0 160 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="128" height="32" rx="8" fill="#fff"/>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 118 22" height="22" width="118" x="4" y="5">
|
||||
<path fill="#1B1B1F" d="M74.202 17.17c-.875 0-1.63-.181-2.267-.545a3.694 3.694 0 0 1-1.46-1.557c-.341-.674-.512-1.468-.512-2.38 0-.898.17-1.686.512-2.364a3.867 3.867 0 0 1 1.443-1.591c.617-.383 1.342-.574 2.176-.574.538 0 1.045.087 1.523.261.48.17.905.436 1.272.796.371.36.663.818.875 1.375.212.553.319 1.212.319 1.977v.63h-7.154v-1.386h5.182a2.213 2.213 0 0 0-.256-1.05c-.166-.311-.4-.556-.699-.734a1.964 1.964 0 0 0-1.034-.267c-.42 0-.79.103-1.108.307-.318.2-.566.466-.744.796a2.289 2.289 0 0 0-.267 1.073v1.21c0 .508.093.944.278 1.307.186.36.445.637.779.83.333.19.723.284 1.17.284.3 0 .57-.041.813-.125.242-.087.452-.214.63-.38.178-.167.313-.374.404-.62l1.92.216c-.121.508-.352.95-.693 1.33a3.379 3.379 0 0 1-1.295.875c-.527.204-1.13.306-1.807.306Z"/>
|
||||
<path fill="#1B1B1F" d="M63.498 17.153c-.685 0-1.299-.176-1.84-.528-.542-.352-.97-.864-1.285-1.534-.314-.67-.471-1.485-.471-2.443 0-.97.159-1.788.477-2.455.322-.67.756-1.176 1.301-1.517a3.344 3.344 0 0 1 1.824-.517c.512 0 .932.087 1.262.261.329.17.59.377.784.62.193.238.342.464.448.676h.086V5.364h2.062V17h-2.023v-1.375h-.125c-.106.212-.259.438-.46.676a2.53 2.53 0 0 1-.795.602c-.33.167-.745.25-1.245.25Zm.574-1.687c.436 0 .807-.117 1.114-.352.307-.239.54-.57.699-.995.159-.424.238-.918.238-1.483 0-.564-.08-1.055-.238-1.471-.156-.417-.387-.74-.693-.972-.303-.23-.676-.346-1.12-.346-.458 0-.84.119-1.147.358-.307.238-.538.568-.694.988-.155.42-.233.902-.233 1.443 0 .546.078 1.033.233 1.46.16.425.392.76.7 1.006.31.243.69.364 1.141.364Z"/>
|
||||
<path fill="#1B1B1F" d="M56.088 17V8.273h2.057V17h-2.057Zm1.034-9.966a1.2 1.2 0 0 1-.84-.324 1.044 1.044 0 0 1-.353-.79c0-.31.117-.573.352-.79.235-.219.515-.329.841-.329.33 0 .61.11.841.33.235.216.352.479.352.79 0 .306-.117.57-.352.79a1.187 1.187 0 0 1-.84.323Z"/>
|
||||
@@ -25,3 +27,4 @@
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.6 KiB |
@@ -1,4 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 118 24">
|
||||
<svg viewBox="0 0 160 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="128" height="32" rx="8" fill="#fff"/>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 118 24" height="24" width="118" x="4" y="4">
|
||||
<path fill="#1B1B1F" d="M74.202 18.17c-.875 0-1.63-.181-2.267-.545a3.694 3.694 0 0 1-1.46-1.557c-.341-.674-.512-1.468-.512-2.38 0-.898.17-1.686.512-2.364a3.867 3.867 0 0 1 1.443-1.591c.617-.383 1.342-.574 2.176-.574.538 0 1.045.087 1.523.261.48.17.905.436 1.272.796.371.36.663.818.875 1.375.212.553.319 1.212.319 1.977v.63h-7.154v-1.386h5.182a2.213 2.213 0 0 0-.256-1.05c-.166-.311-.4-.556-.699-.734a1.964 1.964 0 0 0-1.034-.267c-.42 0-.79.103-1.108.307-.318.2-.566.466-.744.796a2.289 2.289 0 0 0-.267 1.073v1.21c0 .508.093.944.278 1.307.186.36.445.637.779.83.333.19.723.284 1.17.284.3 0 .57-.042.813-.125.242-.087.452-.214.63-.38.178-.167.313-.374.404-.62l1.92.216c-.121.508-.352.95-.693 1.33a3.379 3.379 0 0 1-1.295.875c-.527.204-1.13.306-1.807.306Z"/>
|
||||
<path fill="#1B1B1F" d="M63.498 18.153c-.685 0-1.299-.176-1.84-.528-.542-.352-.97-.864-1.285-1.534-.314-.67-.471-1.485-.471-2.443 0-.97.159-1.788.477-2.455.322-.67.756-1.176 1.301-1.517a3.344 3.344 0 0 1 1.824-.517c.512 0 .932.087 1.262.261.329.17.59.377.784.62.193.238.342.464.448.676h.086V6.364h2.062V18h-2.023v-1.375h-.125c-.106.212-.259.438-.46.676a2.53 2.53 0 0 1-.795.602c-.33.167-.745.25-1.245.25Zm.574-1.687c.436 0 .807-.117 1.114-.352.307-.239.54-.57.699-.995.159-.424.238-.918.238-1.483 0-.564-.08-1.055-.238-1.471-.156-.417-.387-.74-.693-.972-.303-.23-.676-.346-1.12-.346-.458 0-.84.119-1.147.358-.307.238-.538.568-.694.988-.155.42-.233.902-.233 1.443 0 .546.078 1.033.233 1.46.16.425.392.76.7 1.006.31.243.69.364 1.141.364Z"/>
|
||||
<path fill="#1B1B1F" d="M56.088 18V9.273h2.057V18h-2.057Zm1.034-9.966a1.2 1.2 0 0 1-.84-.324 1.044 1.044 0 0 1-.353-.79c0-.31.117-.573.352-.79.235-.219.515-.329.841-.329.33 0 .61.11.841.33.235.216.352.479.352.79 0 .306-.117.57-.352.79a1.187 1.187 0 0 1-.84.323Z"/>
|
||||
@@ -13,3 +15,4 @@
|
||||
<path fill="#fff" d="M115.206 17.225c1.33-1.702-.951-5.487-4.939-8.604-3.989-3.116-8.214-4.413-9.543-2.711-1.33 1.702.951 5.487 4.939 8.604 3.989 3.116 8.214 4.413 9.543 2.71Zm-.568-.444c-.441.565-1.562.646-3.119.168-1.638-.503-3.575-1.568-5.412-3.003-1.838-1.436-3.339-3.057-4.224-4.526-.84-1.394-1.032-2.502-.591-3.066.441-.565 1.562-.646 3.119-.168 1.638.503 3.575 1.568 5.412 3.003 1.838 1.436 3.339 3.057 4.224 4.525.839 1.395 1.032 2.503.591 3.067Z"/>
|
||||
<path fill="#fff" d="M107.965 13.099a1.531 1.531 0 1 0 0-3.062 1.531 1.531 0 0 0 0 3.062Z"/>
|
||||
</svg>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.5 KiB |
@@ -1,4 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 119 26">
|
||||
<svg viewBox="0 0 160 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="128" height="32" rx="8" fill="#fff"/>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 119 26" height="26" width="119" x="4" y="3">
|
||||
<g clip-path="url(#a)">
|
||||
<path fill="#1B1B1F" d="M74.2 19.17a4.5 4.5 0 0 1-2.27-.55 3.7 3.7 0 0 1-1.46-1.55 5.21 5.21 0 0 1-.5-2.38c0-.9.16-1.69.5-2.37a3.87 3.87 0 0 1 3.62-2.16c.54 0 1.05.09 1.53.26s.9.44 1.27.8c.37.36.66.81.87 1.37.22.55.32 1.21.32 1.98v.63h-7.15V13.8h5.18c0-.4-.09-.74-.25-1.05-.17-.3-.4-.55-.7-.73-.3-.18-.64-.27-1.04-.27a2 2 0 0 0-1.1.3c-.32.2-.57.47-.75.8-.17.33-.26.69-.27 1.08v1.2c0 .52.1.95.28 1.31.19.36.45.64.78.83.33.2.72.29 1.17.29.3 0 .57-.04.81-.13.25-.08.46-.21.63-.38.18-.16.32-.37.4-.62l1.93.22a3 3 0 0 1-.7 1.33c-.33.37-.76.67-1.3.87-.52.2-1.12.31-1.8.31Z"/>
|
||||
<path fill="#1B1B1F" d="M63.5 19.15a3.3 3.3 0 0 1-3.13-2.06 5.73 5.73 0 0 1-.47-2.44c0-.97.16-1.79.48-2.46a3.34 3.34 0 0 1 4.39-1.77c.33.17.59.38.78.62.2.24.34.46.45.68h.08V7.36h2.07V19h-2.03v-1.38H66c-.1.22-.26.44-.46.68a2.53 2.53 0 0 1-2.04.85Zm.57-1.68c.44 0 .8-.12 1.12-.36.3-.23.54-.57.7-1 .15-.41.23-.9.23-1.47s-.08-1.06-.24-1.48a2.1 2.1 0 0 0-.69-.97 1.8 1.8 0 0 0-1.12-.34c-.46 0-.84.12-1.15.35-.3.24-.53.57-.69 1-.15.41-.23.9-.23 1.44 0 .54.08 1.03.23 1.46.16.42.4.76.7 1 .31.24.7.37 1.14.37Z"/>
|
||||
@@ -24,3 +26,4 @@
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 6.1 KiB |
@@ -1,4 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 119 22">
|
||||
<svg viewBox="0 0 160 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="128" height="32" rx="8" fill="#fff"/>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 119 22" height="22" width="119" x="4" y="5">
|
||||
<path fill="#61DAFB" d="M107.5 13.28a2.05 2.05 0 1 0 0-4.1 2.05 2.05 0 0 0 0 4.1Z"/>
|
||||
<path stroke="#61DAFB" d="M107.5 15.43c6.08 0 11-1.88 11-4.2 0-2.32-4.92-4.2-11-4.2s-11 1.88-11 4.2c0 2.32 4.92 4.2 11 4.2Z"/>
|
||||
<path stroke="#61DAFB" d="M103.86 13.33c3.04 5.26 7.13 8.59 9.14 7.43 2-1.16 1.17-6.37-1.86-11.63C108.1 3.87 104 .55 102 1.71c-2 1.16-1.17 6.36 1.86 11.62Z"/>
|
||||
@@ -13,3 +15,4 @@
|
||||
<path stroke="#F56565" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 11a4 4 0 0 0 8 0 8 8 0 1 0-16 0c0 3.58 1.57 6.8 4.06 9"/>
|
||||
<circle cx="88" cy="11" r="2" fill="#DDD"/>
|
||||
</svg>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.2 KiB |
@@ -1,4 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 120 23">
|
||||
<svg viewBox="0 0 160 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="128" height="32" rx="8" fill="#fff"/>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 120 23" height="23" width="120" x="4" y="4">
|
||||
<path fill="#76B3E1" d="M119.14 5.18S111.29-.59 105.22.74l-.44.15c-.9.3-1.63.74-2.08 1.33l-.3.45-2.22 3.85 3.85.74a7.51 7.51 0 0 0 5.63 1.03l6.81 1.34 2.67-4.45Z"/>
|
||||
<path fill="url(#a)" d="M119.14 5.18S111.29-.59 105.22.74l-.44.15c-.9.3-1.63.74-2.08 1.33l-.3.45-2.22 3.85 3.85.74a7.51 7.51 0 0 0 5.63 1.03l6.81 1.34 2.67-4.45Z" opacity=".3"/>
|
||||
<path fill="#518AC8" d="m102.7 5.18-.6.15c-2.5.74-3.25 3.11-1.92 5.19a7.01 7.01 0 0 0 7.11 2.22l9.18-3.11s-7.84-5.78-13.77-4.45Z"/>
|
||||
@@ -37,3 +39,4 @@
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.6 KiB |
@@ -1,4 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 120 24">
|
||||
<svg viewBox="0 0 160 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="128" height="32" rx="8" fill="#fff"/>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 120 24" height="24" width="120" x="4" y="4">
|
||||
<path fill="#1B1B1F" d="M74.2 18.17a4.5 4.5 0 0 1-2.27-.55 3.7 3.7 0 0 1-1.46-1.55 5.21 5.21 0 0 1-.5-2.38c0-.9.16-1.69.5-2.37a3.87 3.87 0 0 1 3.62-2.16c.54 0 1.05.09 1.53.26s.9.44 1.27.8c.37.36.66.81.87 1.37.22.55.32 1.21.32 1.98v.63h-7.15V12.8h5.18c0-.4-.09-.74-.25-1.05-.17-.3-.4-.55-.7-.73-.3-.18-.64-.27-1.04-.27a2 2 0 0 0-1.1.3c-.32.2-.57.47-.75.8-.17.33-.26.69-.27 1.08v1.2c0 .52.1.95.28 1.31.19.36.45.64.78.83.33.2.72.29 1.17.29.3 0 .57-.04.81-.13.25-.08.46-.21.63-.38.18-.16.32-.37.4-.62l1.93.22a3 3 0 0 1-.7 1.33c-.33.37-.76.67-1.3.87-.52.2-1.12.31-1.8.31Z"/>
|
||||
<path fill="#1B1B1F" d="M63.5 18.15a3.3 3.3 0 0 1-3.13-2.06 5.73 5.73 0 0 1-.47-2.44c0-.97.16-1.79.48-2.46a3.34 3.34 0 0 1 4.39-1.77c.33.17.59.38.78.62.2.24.34.46.45.68h.08V6.36h2.07V18h-2.03v-1.38H66c-.1.22-.26.44-.46.68a2.53 2.53 0 0 1-2.04.85Zm.57-1.68c.44 0 .8-.12 1.12-.36.3-.23.54-.57.7-1 .15-.41.23-.9.23-1.47s-.08-1.06-.24-1.48a2.1 2.1 0 0 0-.69-.97 1.8 1.8 0 0 0-1.12-.34c-.46 0-.84.12-1.15.35-.3.24-.53.57-.69 1-.15.41-.23.9-.23 1.44 0 .54.08 1.03.23 1.46.16.42.4.76.7 1 .31.24.7.37 1.14.37Z"/>
|
||||
<path fill="#1B1B1F" d="M56.09 18V9.27h2.05V18H56.1Zm1.03-9.97c-.32 0-.6-.1-.84-.32a1.04 1.04 0 0 1-.35-.79c0-.31.12-.57.35-.79.24-.22.52-.33.84-.33.33 0 .61.11.84.33.24.22.36.48.36.79 0 .3-.12.57-.36.79-.23.22-.5.32-.84.32Z"/>
|
||||
@@ -14,3 +16,4 @@
|
||||
<path fill="#000" d="M96.68 12h22.64v8a3.26 3.26 0 0 1-3.32 3.32h-16A3.26 3.26 0 0 1 96.68 20v-8Z" opacity=".8"/>
|
||||
<path fill="#fff" d="M100.08 17.65a2.93 2.93 0 0 1 2.08-5.01c1.6 0 2.93 1.31 2.93 2.94h-1.73a1.22 1.22 0 0 0-1.09-1.21 1.21 1.21 0 0 0-.99 2.06c.22.23.42.29.86.37a3.3 3.3 0 0 1 2.08.85 2.93 2.93 0 1 1-5 2.08h1.74a1.21 1.21 0 0 0 1.68 1.11 1.22 1.22 0 0 0 .7-1.47c-.06-.19-.16-.36-.3-.5-.24-.23-.54-.3-.88-.36-.78-.13-1.54-.32-2.08-.86Zm10.88-5.01-2.08 10.02h-1.73l-2.08-10.02h1.73l1.22 5.87 1.21-5.87h1.73Zm2.93 4.16h2.91v2.93a2.93 2.93 0 0 1-5.86 0v-4.16a2.92 2.92 0 1 1 5.86 0h-1.7a1.22 1.22 0 1 0-2.43 0v4.16a1.22 1.22 0 1 0 2.43 0V18.5h-1.21V16.8Z"/>
|
||||
</svg>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.5 KiB |
@@ -1,4 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 118 25">
|
||||
<svg viewBox="0 0 160 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="128" height="32" rx="8" fill="#fff"/>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 118 25" height="25" width="118" x="4" y="4">
|
||||
<path fill="#1B1B1F" d="M74.2 18.17a4.5 4.5 0 0 1-2.27-.55 3.7 3.7 0 0 1-1.46-1.55 5.21 5.21 0 0 1-.5-2.38c0-.9.16-1.69.5-2.37a3.87 3.87 0 0 1 3.62-2.16c.54 0 1.05.09 1.53.26s.9.44 1.27.8c.37.36.66.81.87 1.37.22.55.32 1.21.32 1.98v.63h-7.15V12.8h5.18c0-.4-.09-.74-.25-1.05-.17-.3-.4-.55-.7-.73-.3-.18-.64-.27-1.04-.27a2 2 0 0 0-1.1.3c-.32.2-.57.47-.75.8-.17.33-.26.69-.27 1.08v1.2c0 .52.1.95.28 1.31.19.36.45.64.78.83.33.2.72.29 1.17.29.3 0 .57-.04.81-.13.25-.08.46-.21.63-.38.18-.16.32-.37.4-.62l1.93.22a3 3 0 0 1-.7 1.33c-.33.37-.76.67-1.3.87-.52.2-1.12.31-1.8.31Z"/>
|
||||
<path fill="#1B1B1F" d="M63.5 18.15a3.3 3.3 0 0 1-3.13-2.06 5.73 5.73 0 0 1-.47-2.44c0-.97.16-1.79.48-2.46a3.34 3.34 0 0 1 4.39-1.77c.33.17.59.38.78.62.2.24.34.46.45.68h.08V6.36h2.07V18h-2.03v-1.38H66c-.1.22-.26.44-.46.68a2.53 2.53 0 0 1-2.04.85Zm.57-1.68c.44 0 .8-.12 1.12-.36.3-.23.54-.57.7-1 .15-.41.23-.9.23-1.47s-.08-1.06-.24-1.48a2.1 2.1 0 0 0-.69-.97 1.8 1.8 0 0 0-1.12-.34c-.46 0-.84.12-1.15.35-.3.24-.53.57-.69 1-.15.41-.23.9-.23 1.44 0 .54.08 1.03.23 1.46.16.42.4.76.7 1 .31.24.7.37 1.14.37Z"/>
|
||||
<path fill="#1B1B1F" d="M56.09 18V9.27h2.05V18H56.1Zm1.03-9.97c-.32 0-.6-.1-.84-.32a1.04 1.04 0 0 1-.35-.79c0-.31.12-.57.35-.79.24-.22.52-.33.84-.33.33 0 .61.11.84.33.24.22.36.48.36.79 0 .3-.12.57-.36.79-.23.22-.5.32-.84.32Z"/>
|
||||
@@ -11,3 +13,4 @@
|
||||
<path fill="#FF3E00" d="M116.72 3.18a7.34 7.34 0 0 0-9.82-2.11l-5.6 3.57a6.42 6.42 0 0 0-2.9 4.29 6.77 6.77 0 0 0 .67 4.34c-.48.73-.81 1.54-.96 2.4a6.84 6.84 0 0 0 1.17 5.18 7.34 7.34 0 0 0 9.82 2.1l5.6-3.54a6.44 6.44 0 0 0 2.9-4.3c.27-1.48.03-3-.67-4.34a6.45 6.45 0 0 0 .9-5.1 6.84 6.84 0 0 0-1.1-2.47"/>
|
||||
<path fill="#fff" d="M106.35 21.16a4.45 4.45 0 0 1-5.44-3.26 4.1 4.1 0 0 1 .1-2.14l.1-.33.3.22c.65.48 1.4.85 2.17 1.09l.22.06-.02.21c-.02.3.06.59.23.83a1.34 1.34 0 0 0 1.78.38l5.6-3.57a1.16 1.16 0 0 0 .5-1.27 1.35 1.35 0 0 0-1.64-.98c-.11.03-.23.09-.34.15l-2.14 1.37c-.35.22-.74.39-1.14.5a4.45 4.45 0 0 1-5.42-3.26 4.12 4.12 0 0 1-.04-1.63 3.86 3.86 0 0 1 1.75-2.58l5.6-3.57c.35-.22.73-.4 1.13-.5a4.45 4.45 0 0 1 5.44 3.26 4.1 4.1 0 0 1-.1 2.14l-.1.33-.3-.22a7.24 7.24 0 0 0-2.18-1.1l-.22-.06.02-.21c.03-.3-.05-.59-.22-.83a1.33 1.33 0 0 0-1.78-.37l-5.6 3.56a1.17 1.17 0 0 0-.5 1.27 1.34 1.34 0 0 0 1.97.83l2.14-1.36a4 4 0 0 1 1.14-.5 4.44 4.44 0 0 1 5.43 3.25 3.87 3.87 0 0 1-1.7 4.22l-5.6 3.57c-.35.22-.74.39-1.14.5Z"/>
|
||||
</svg>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.7 KiB |
@@ -1,4 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 120 22">
|
||||
<svg viewBox="0 0 160 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="128" height="32" rx="8" fill="#fff"/>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 120 22" height="22" width="120" x="4" y="5">
|
||||
<path fill="#1B1B1F" d="M74.2 17.17a4.5 4.5 0 0 1-2.27-.55 3.7 3.7 0 0 1-1.46-1.55 5.21 5.21 0 0 1-.5-2.38c0-.9.16-1.69.5-2.37a3.87 3.87 0 0 1 3.62-2.16c.54 0 1.05.09 1.53.26s.9.44 1.27.8c.37.36.66.81.87 1.37.22.55.32 1.21.32 1.98v.63h-7.15V11.8h5.18c0-.4-.09-.74-.25-1.05-.17-.3-.4-.55-.7-.73-.3-.18-.64-.27-1.04-.27a2 2 0 0 0-1.1.3c-.32.2-.57.47-.75.8-.17.33-.26.69-.27 1.08v1.2c0 .52.1.95.28 1.31.19.36.45.64.78.83.33.2.72.29 1.17.29.3 0 .57-.04.81-.13.25-.08.46-.21.63-.38.18-.16.32-.37.4-.62l1.93.22a3 3 0 0 1-.7 1.33c-.33.37-.76.67-1.3.87-.52.2-1.12.31-1.8.31Z"/>
|
||||
<path fill="#1B1B1F" d="M63.5 17.15a3.3 3.3 0 0 1-3.13-2.06 5.73 5.73 0 0 1-.47-2.44c0-.97.16-1.79.48-2.46a3.34 3.34 0 0 1 4.39-1.77c.33.17.59.38.78.62.2.24.34.46.45.68h.08V5.36h2.07V17h-2.03v-1.38H66c-.1.22-.26.44-.46.68a2.53 2.53 0 0 1-2.04.85Zm.57-1.68c.44 0 .8-.12 1.12-.36.3-.23.54-.57.7-1 .15-.41.23-.9.23-1.47s-.08-1.06-.24-1.48a2.1 2.1 0 0 0-.69-.97 1.8 1.8 0 0 0-1.12-.34c-.46 0-.84.12-1.15.35-.3.24-.53.57-.69 1-.15.41-.23.9-.23 1.44 0 .54.08 1.03.23 1.46.16.42.4.76.7 1 .31.24.7.37 1.14.37Z"/>
|
||||
<path fill="#1B1B1F" d="M56.09 17V8.27h2.05V17H56.1Zm1.03-9.97c-.32 0-.6-.1-.84-.32a1.04 1.04 0 0 1-.35-.79c0-.31.12-.57.35-.79.24-.22.52-.33.84-.33.33 0 .61.11.84.33.24.22.36.48.36.79 0 .3-.12.57-.36.79-.23.22-.5.32-.84.32Z"/>
|
||||
@@ -11,3 +13,4 @@
|
||||
<path fill="#41B883" d="m110.21 1-2.66 4.62L104.88 1H96l11.55 20 11.54-20h-8.88Z"/>
|
||||
<path fill="#34495E" d="m110.21 1-2.66 4.62L104.88 1h-4.26l6.93 12 6.92-12h-4.26Z"/>
|
||||
</svg>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.9 KiB |
@@ -1,4 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 118 22">
|
||||
<svg viewBox="0 0 160 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="128" height="32" rx="8" fill="#fff"/>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 118 22" height="22" width="118" x="4" y="5">
|
||||
<path fill="#1B1B1F" d="M74.2 17.17a4.5 4.5 0 0 1-2.27-.55 3.7 3.7 0 0 1-1.46-1.55 5.21 5.21 0 0 1-.5-2.38c0-.9.16-1.69.5-2.37a3.87 3.87 0 0 1 3.62-2.16c.54 0 1.05.09 1.53.26s.9.44 1.27.8c.37.36.66.81.87 1.37.22.55.32 1.21.32 1.98v.63h-7.15V11.8h5.18c0-.4-.09-.74-.25-1.05-.17-.3-.4-.55-.7-.73-.3-.18-.64-.27-1.04-.27a2 2 0 0 0-1.1.3c-.32.2-.57.47-.75.8-.17.33-.26.69-.27 1.08v1.2c0 .52.1.95.28 1.31.19.36.45.64.78.83.33.2.72.29 1.17.29.3 0 .57-.04.81-.13.25-.08.46-.21.63-.38.18-.16.32-.37.4-.62l1.93.22a3 3 0 0 1-.7 1.33c-.33.37-.76.67-1.3.87-.52.2-1.12.31-1.8.31Z"/>
|
||||
<path fill="#1B1B1F" d="M63.5 17.15a3.3 3.3 0 0 1-3.13-2.06 5.73 5.73 0 0 1-.47-2.44c0-.97.16-1.79.48-2.46a3.34 3.34 0 0 1 4.39-1.77c.33.17.59.38.78.62.2.24.34.46.45.68h.08V5.36h2.07V17h-2.03v-1.38H66c-.1.22-.26.44-.46.68a2.53 2.53 0 0 1-2.04.85Zm.57-1.68c.44 0 .8-.12 1.12-.36.3-.23.54-.57.7-1 .15-.41.23-.9.23-1.47s-.08-1.06-.24-1.48a2.1 2.1 0 0 0-.69-.97 1.8 1.8 0 0 0-1.12-.34c-.46 0-.84.12-1.15.35-.3.24-.53.57-.69 1-.15.41-.23.9-.23 1.44 0 .54.08 1.03.23 1.46.16.42.4.76.7 1 .31.24.7.37 1.14.37Z"/>
|
||||
<path fill="#1B1B1F" d="M56.09 17V8.27h2.05V17H56.1Zm1.03-9.97c-.32 0-.6-.1-.84-.32a1.04 1.04 0 0 1-.35-.79c0-.31.12-.57.35-.79.24-.22.52-.33.84-.33.33 0 .61.11.84.33.24.22.36.48.36.79 0 .3-.12.57-.36.79-.23.22-.5.32-.84.32Z"/>
|
||||
@@ -11,3 +13,4 @@
|
||||
<path fill="#F7DF1E" d="M98 1h20v20H98V1Z"/>
|
||||
<path fill="#000" d="M111.43 16.62c.41.67.92 1.14 1.87 1.14.76 0 1.27-.38 1.27-.92 0-.63-.5-.89-1.36-1.24l-.48-.22c-1.37-.57-2.25-1.3-2.25-2.82 0-1.4 1.08-2.48 2.73-2.48 1.2 0 2.06.41 2.7 1.5l-1.47.94c-.34-.57-.7-.79-1.23-.79-.54 0-.9.35-.9.8 0 .57.36.79 1.18 1.14l.45.19c1.62.7 2.5 1.4 2.5 2.95 0 1.68-1.33 2.63-3.1 2.63-1.75 0-2.9-.85-3.44-1.93l1.53-.9Zm-6.64.16c.29.54.57.98 1.21.98s1.02-.25 1.02-1.17v-6.42h1.87v6.42c0 1.97-1.14 2.85-2.8 2.85a2.9 2.9 0 0 1-2.82-1.74l1.52-.92Z"/>
|
||||
</svg>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.2 KiB |
41
docs/public/sponsors/pdfme.svg
Normal file
@@ -0,0 +1,41 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="138" height="42" fill="none" viewBox="0 0 138 42">
|
||||
<path fill="#fff" fill-rule="evenodd" d="M138 4a4 4 0 0 0-4-4H4a4 4 0 0 0-4 4v34a4 4 0 0 0 4 4h130a4 4 0 0 0 4-4V4Z" clip-rule="evenodd"/>
|
||||
<path fill="#000" d="M55.78 32.95V14.42h1.8l.21 1.52h.05c.6-.5 1.24-.93 1.96-1.3a4.73 4.73 0 0 1 2.2-.55c1.11 0 2.06.27 2.84.83.8.58 1.4 1.38 1.75 2.31.39 1 .59 2.16.59 3.5 0 1.5-.27 2.76-.8 3.81-.47.97-1.2 1.8-2.1 2.4-.85.55-1.78.83-2.77.83-.6 0-1.2-.13-1.8-.4-.6-.26-1.2-.63-1.8-1.11l.07 2.28v4.41h-2.2Zm5.37-7.03c.72 0 1.37-.2 1.93-.61.57-.4 1.02-1 1.34-1.78.32-.77.48-1.7.48-2.77 0-.96-.12-1.8-.35-2.53-.23-.73-.6-1.3-1.1-1.7a3.52 3.52 0 0 0-3.68-.14c-.57.3-1.16.75-1.79 1.32v6.87c.58.5 1.15.84 1.7 1.04.57.2 1.06.3 1.47.3Zm13.95 1.85c-1 .02-2-.26-2.85-.8a5.09 5.09 0 0 1-1.87-2.31 9.32 9.32 0 0 1-.66-3.7c0-1.42.26-2.63.8-3.66a6.1 6.1 0 0 1 2.07-2.37 4.97 4.97 0 0 1 4.75-.44c.61.3 1.18.67 1.7 1.11l-.13-2.23V8.35h2.2v19.1h-1.8l-.18-1.53h-.07a7.5 7.5 0 0 1-1.78 1.3c-.67.37-1.4.55-2.18.55Zm.48-1.85c.6 0 1.18-.15 1.72-.44.55-.3 1.08-.74 1.61-1.34V17.3c-.46-.44-1-.8-1.58-1.05-.5-.2-1.04-.31-1.59-.31-.68 0-1.31.2-1.88.63a4.58 4.58 0 0 0-1.37 1.75c-.36.82-.53 1.7-.51 2.6 0 1.05.14 1.94.43 2.7.29.75.7 1.32 1.23 1.71.54.4 1.18.6 1.94.6v-.01Zm10.32 1.54V12.34c0-.88.13-1.64.4-2.28.28-.64.7-1.14 1.25-1.5.65-.37 1.4-.55 2.14-.52.4 0 .79.04 1.16.12.38.08.72.18 1.02.29l-.48 1.7a3.24 3.24 0 0 0-1.46-.36c-.63 0-1.1.22-1.4.65-.3.43-.45 1.07-.45 1.92v15.1H85.9ZM84.12 16.2v-1.66l1.87-.12h4.85v1.78h-6.72Zm9.22 11.26V14.42h1.8l.21 1.9h.05a9.48 9.48 0 0 1 1.88-1.58c.68-.44 1.4-.65 2.18-.65 1 0 1.79.22 2.35.67.56.45.97 1.06 1.25 1.82.68-.73 1.38-1.33 2.07-1.8.7-.46 1.45-.7 2.25-.7 1.32 0 2.31.44 2.96 1.32.65.87.97 2.14.97 3.8v8.26h-2.18v-7.97c0-1.23-.2-2.12-.6-2.67-.38-.54-1-.81-1.83-.81-.5 0-1 .16-1.54.5-.54.32-1.12.82-1.74 1.5v9.45h-2.19v-7.97c0-1.23-.2-2.12-.59-2.67-.39-.54-1-.81-1.83-.81-.5 0-1.02.16-1.56.5-.55.32-1.11.82-1.7 1.5v9.45h-2.21Zm27.5.31a6.23 6.23 0 0 1-3.17-.82 5.87 5.87 0 0 1-2.24-2.34 7.56 7.56 0 0 1-.83-3.66c0-1.07.16-2.03.48-2.87.32-.84.76-1.56 1.3-2.16a5.66 5.66 0 0 1 4.05-1.83c1.12 0 2.07.25 2.83.74.77.5 1.36 1.2 1.77 2.13.52 1.24.73 2.58.59 3.92-.02.2-.04.4-.08.58h-8.78c.05.92.26 1.73.64 2.4.37.69.87 1.22 1.5 1.6.62.37 1.35.56 2.18.56.64 0 1.22-.1 1.74-.28.54-.2 1.05-.45 1.52-.76l.77 1.47c-.6.38-1.23.7-1.9.93-.7.26-1.5.39-2.37.39Zm-4.1-7.87h6.98c0-1.32-.28-2.32-.85-3.02a2.91 2.91 0 0 0-2.4-1.04c-.6 0-1.17.16-1.7.48-.54.32-1 .78-1.35 1.37a5.23 5.23 0 0 0-.68 2.2v.01Z"/>
|
||||
<path fill="#fff" d="m18.9 25.51 2.17-.73.18-.8a2.7 2.7 0 0 0-.06-1.13c-.05-.14-.12-.27-.16-.41-.04-.16.02-.37-.06-.5-.11-.16-.5-.2-.67-.11-.26.12-.24.33-.28.55-.02.1-.06.13-.12.2-.06.08-.11.17-.15.27-.43 0-.78-.17-1.2-.23l-1.01-.14c-.55-.09-.94-.13-1.42-.18-.55-.06-1.49-.04-1.64.31-.44.07-.8.22-.76.55-.14.1-.2.24 0 .39l-.01.02c-.21.33.47.43.7.47.8.13 1.6.1 2.39.27.64.15 1.07.49 1.6.86l.5.34Z"/>
|
||||
<path fill="#CE9FB5" d="M23.2 38.66c0-.35.5-3.02.5-3.02-.38.1-.82.24-1.22.13a1.8 1.8 0 0 1-1.03-.79c-.96-1.4-1.75-5.33-2.23-6.96-.18-.62-.55-1.57-.82-2.17-.07-.14-.28-.4-.2-.57.1-.16.47-.11.66-.13.68-.1 2.3-.46 2.4-1.25.25 0 .53.6.64.77.23.4 1.3 3.26 1.54 3.66.2.35.3.74.5 1.1l.25.49c.67-1.89 3.07-6.37 3.92-7.26a4.87 4.87 0 0 1 2.35-1.4c.17-.04.4-.04.56-.12.47-.24 1.1.04 1.62 0 .7-.04 1.38-.32 2.03-.57.7-.26 1.42-.57 2.18-.61.8-.05 1.6.17 2.2.76.4.02.52-.02.9-.04 2.25.08 3.48 2.31 4.42 4.12 1.3 2.49 1.85 6.23 2.32 13.83"/>
|
||||
<path stroke="#000" stroke-miterlimit="10" stroke-width=".04" d="M23.2 38.66c0-.35.5-3.02.5-3.02-.38.1-.82.24-1.22.13a1.8 1.8 0 0 1-1.03-.79c-.96-1.4-1.75-5.33-2.23-6.96-.18-.62-.55-1.57-.82-2.17-.07-.14-.28-.4-.2-.57.1-.16.47-.11.66-.13.68-.1 2.3-.46 2.4-1.25.25 0 .53.6.64.77.23.4 1.3 3.26 1.54 3.66.2.35.3.74.5 1.1l.25.49c.67-1.89 3.07-6.37 3.92-7.26a4.87 4.87 0 0 1 2.35-1.4c.17-.04.4-.04.56-.12.47-.24 1.1.04 1.62 0 .7-.04 1.38-.32 2.03-.57.7-.26 1.42-.57 2.18-.61.8-.05 1.6.17 2.2.76.4.02.52-.02.9-.04 2.25.08 3.48 2.31 4.42 4.12 1.3 2.49 1.85 6.23 2.32 13.83"/>
|
||||
<path fill="#000" d="m33.48 21.33 1.97 1.14c0-.03 1.48-2.8 1.48-2.8l-1.84-.43"/>
|
||||
<path stroke="#000" stroke-miterlimit="10" stroke-width=".04" d="m33.48 21.33 1.97 1.14c0-.03 1.48-2.8 1.48-2.8l-1.84-.43"/>
|
||||
<path fill="#FFD153" d="M37.08 18.66c3 1.7.78 2.58.47 3.31-.74 1.77-1.48 2.04-2.3 3.44-2.08 3.56-2.47 8.07-2.8 12.09h-.02c-.06-.07-.18-.11-.27-.2h-.02c0 .1-.06.16-.08.25-.17-.19-.34-.15-.46.04h-.02c-.02-.06-.09-.12-.1-.18h-.32a.75.75 0 0 1-.1.12h-.03c-.03-.08-.12-.17-.15-.25h-.02l-.15.15h-.02c-.1-.11-.23-.14-.36-.04h-.02a4.73 4.73 0 0 1-.18-.4c-.04.05-.12.11-.16.18-.13-.14-.28-.13-.4.02h-.03c-.04-.05-.12-.1-.16-.16-.06.04-.09.03-.12.1h-.02c-.02-.09-.09-.18-.1-.24h-.02a.5.5 0 0 1-.15.1c0-3.21.4-6.28 1.57-9.28.86-2.2 1.98-3.24 3.53-5.02.52-.6 1.08-1.21 1.56-1.83.2-.27.35-.48.3-.84"/>
|
||||
<path stroke="#000" stroke-miterlimit="10" stroke-width=".04" d="M37.08 18.66c3 1.7.78 2.58.47 3.31-.74 1.77-1.48 2.04-2.3 3.44-2.08 3.56-2.47 8.07-2.8 12.09h-.02c-.06-.07-.18-.11-.27-.2h-.02c0 .1-.06.16-.08.25-.17-.19-.34-.15-.46.04h-.02c-.02-.06-.09-.12-.1-.18h-.32a.75.75 0 0 1-.1.12h-.03c-.03-.08-.12-.17-.15-.25h-.02l-.15.15h-.02c-.1-.11-.23-.14-.36-.04h-.02a4.73 4.73 0 0 1-.18-.4c-.04.05-.12.11-.16.18-.13-.14-.28-.13-.4.02h-.03c-.04-.05-.12-.1-.16-.16-.06.04-.09.03-.12.1h-.02c-.02-.09-.09-.18-.1-.24h-.02a.5.5 0 0 1-.15.1c0-3.21.4-6.28 1.57-9.28.86-2.2 1.98-3.24 3.53-5.02.52-.6 1.08-1.21 1.56-1.83.2-.27.35-.48.3-.84"/>
|
||||
<path fill="#000" d="M30.95 23.65s1.15 2.14 3.27 1.7a5.8 5.8 0 0 0 3.96-2.85c.78-1.24 1.14-1.47 1.73-1.82"/>
|
||||
<path stroke="#000" stroke-miterlimit="10" stroke-width=".04" d="M30.95 23.65s1.15 2.14 3.27 1.7a5.8 5.8 0 0 0 3.96-2.85c.78-1.24 1.14-1.47 1.73-1.82"/>
|
||||
<path fill="#FFD153" d="M35.93 18.7c-.9.32-1.92.27-2.83.6a3.98 3.98 0 0 0-2.27 2.13c-.28.72-.36 1.7.04 2.38.72 1.26 2.61 1.6 3.9 1.22 1.26-.4 2.37-1.54 3.18-2.55.33-.41.61-.85 1.01-1.22.23-.21.55-.54.95-.58.66-.07-.92-.7-1.26-.75a1.8 1.8 0 0 0-1.29.22c-.68.4-1.14 1.24-1.93 1.5-.38.12-.68.06-.9-.26-.35-.48-.08-.85.34-1.25"/>
|
||||
<path stroke="#000" stroke-miterlimit="10" stroke-width=".04" d="M35.93 18.7c-.9.32-1.92.27-2.83.6a3.98 3.98 0 0 0-2.27 2.13c-.28.72-.36 1.7.04 2.38.72 1.26 2.61 1.6 3.9 1.22 1.26-.4 2.37-1.54 3.18-2.55.33-.41.61-.85 1.01-1.22.23-.21.55-.54.95-.58.66-.07-.92-.7-1.26-.75a1.8 1.8 0 0 0-1.29.22c-.68.4-1.14 1.24-1.93 1.5-.38.12-.68.06-.9-.26-.35-.48-.08-.85.34-1.25"/>
|
||||
<path fill="#000" d="M32.26 20.53s1.27 1.02 2.71.6c1.45-.43 1.66-1.89 2.52-2.22a1.8 1.8 0 0 0-.52-.25"/>
|
||||
<path stroke="#000" stroke-miterlimit="10" stroke-width=".04" d="M32.26 20.53s1.27 1.02 2.71.6c1.45-.43 1.66-1.89 2.52-2.22a1.8 1.8 0 0 0-.52-.25M18.4 25.17c-.53-.37-.96-.71-1.6-.86-.8-.17-1.6-.14-2.4-.27-.22-.04-.9-.14-.7-.47.15-.23.77-.15.99-.14.74.02 1.55.12 2.3.2"/>
|
||||
<path stroke="#000" stroke-miterlimit="10" stroke-width=".05" d="M13.72 23.55c-.34-.26.1-.5.35-.55.27-.06.6-.02.87 0 .65.02 1.3.13 1.96.14.22 0 .38.05.6.06"/>
|
||||
<path stroke="#000" stroke-miterlimit="10" stroke-width=".04" d="M13.72 23.16c-.08-.73 1.77-.6 2.17-.57.43.02.86.15 1.3.19.33.03.53.04.86.1"/>
|
||||
<path stroke="#000" stroke-miterlimit="10" stroke-width=".05" d="M14.48 22.61c.15-.35 1.1-.37 1.64-.31.48.05.87.1 1.42.18.34.06.66.09 1 .14.43.06.78.23 1.2.23"/>
|
||||
<path stroke="#000" stroke-miterlimit="10" stroke-width=".04" d="M19.73 23.43c-.11-.32 0-.6.17-.85.06-.07.1-.1.12-.2.04-.22.02-.43.28-.55.16-.08.56-.05.67.12.08.12.02.33.06.49.04.14.1.27.16.4.1.31.11.83.06 1.14"/>
|
||||
<path stroke="#000" stroke-miterlimit="10" stroke-width=".05" d="M16.8 23.84c.34-.5.99-.82 1.5-1.1m-.54 1.24a7.9 7.9 0 0 1 1.66-.41"/>
|
||||
<path stroke="#000" stroke-linejoin="round" stroke-miterlimit="10" stroke-width=".04" d="m23.69 35.64.9-3.49c.64-2.27.58-2.36 1.63-4.48a38.32 38.32 0 0 1 2.92-4.82"/>
|
||||
<path fill="#000" d="M40.6 38.67v-2.52c0-2.26-.13-4.43-.42-6.66 0 0 .15 4.88 0 5.13s-.1.73.09 1.13c.19.4.06.67-.09 1.14-.15.47.1 1.15-.09 1.78"/>
|
||||
<path stroke="#000" stroke-linejoin="round" stroke-miterlimit="10" stroke-width=".04" d="M24.2 29.88c.05.25.23.5.36.72.13.23.2.49.3.73"/>
|
||||
<path stroke="#000" stroke-linejoin="round" stroke-miterlimit="10" stroke-width=".05" d="M18.74 26.06c.49 0 .94 0 1.4-.17m-.76.64c-.22-.04-.4-.1-.6-.21m5.55 3.95c.15.05.36.08.49.19"/>
|
||||
<path stroke="#000" stroke-miterlimit="10" stroke-width=".04" d="M39.2 21.04s1.36-.06 1.9.42c.54.48 1.79 1.54 2.21 2.53.43 1 .82.8 1.1 2 .29 1.17.74 3.77.94 5.5.2 1.73-.48 2.27-.11 2.2.37-.1.56-.16.4.2-.18.32-.1 1.07.06 1.86.16.8.25 2.88.25 2.88"/>
|
||||
<path fill="#fff" d="M31.1 14.3c.34-2.78.48-5.63 1.08-8.38.2-.85.43-1.7.94-2.43.2-.3.64-.55 1.06-.4 1 .36.48 1.99.26 3.13a32.28 32.28 0 0 0-.68 6.58"/>
|
||||
<path stroke="#000" stroke-miterlimit="10" stroke-width=".04" d="M31.1 14.3c.34-2.78.48-5.63 1.08-8.38.2-.85.43-1.7.94-2.43.2-.3.64-.55 1.06-.4 1 .36.48 1.99.26 3.13a32.28 32.28 0 0 0-.68 6.58"/>
|
||||
<path fill="#fff" d="M35.75 11.74c-2.04-.74-4.26.42-4.65 2.2-.27 1.19-.38 2.1-.37 3.34.01 1.14.22 1.97.98 2.8.54.59 1.31.84 2.06.86 2.3.05 3.82-2.29 4.3-4.37.63-2.7.9-5.54 1.29-8.28.16-1.1.3-2.19.37-3.3.04-.7.13-1.5-.19-2.17-.37-.8-1.3-.54-1.7.04-.42.62-.58 1.5-.77 2.21-.2.77-.37 1.54-.52 2.32l-.58 3.05-.3 1.7"/>
|
||||
<path stroke="#000" stroke-miterlimit="10" stroke-width=".04" d="M35.75 11.74c-2.04-.74-4.26.42-4.65 2.2-.27 1.19-.38 2.1-.37 3.34.01 1.14.22 1.97.98 2.8.54.59 1.31.84 2.06.86 2.3.05 3.82-2.29 4.3-4.37.63-2.7.9-5.54 1.29-8.28.16-1.1.3-2.19.37-3.3.04-.7.13-1.5-.19-2.17-.37-.8-1.3-.54-1.7.04-.42.62-.58 1.5-.77 2.21-.2.77-.37 1.54-.52 2.32l-.58 3.05-.3 1.7"/>
|
||||
<path fill="#000" d="M32.2 16.17c-.17.69 1.01.53.73-.11-.16-.35-.63-.28-.73.11Z"/>
|
||||
<path stroke="#000" stroke-miterlimit="10" stroke-width=".04" d="M32.2 16.17c-.17.69 1 .53.73-.11-.16-.35-.63-.28-.73.11Z" clip-rule="evenodd"/>
|
||||
<path stroke="#000" stroke-miterlimit="10" stroke-width=".04" d="M32.2 16.17c-.17.69 1 .53.73-.11-.16-.35-.63-.28-.73.11Z" clip-rule="evenodd"/>
|
||||
<path stroke="#000" stroke-miterlimit="10" stroke-width=".04" d="M35.38 16.63c-1.07.79-2.4.97-2.97.5 0 0-.75.62-1.81-.31m7.3-13.48c.1-.24.28-.53.58-.5.36.02.32.63.3.87-.03.33-.16.7-.3.97-.17.34-.2.5-.08.82.1.3-.03.49-.1.76s.1.44.1.7c.01.41-.13.79-.2 1.2-.1.53-.3 1.07-.37 1.62-.03.22 0 .22.1.38.08.12.13.15.09.3-.06.26-.28.45-.32.72-.05.3.16.52-.12.72-.19.13-.28.17-.06.32l-.2.1c0 .05.03.03.05.04"/>
|
||||
<path stroke="#000" stroke-miterlimit="10" stroke-width=".05" d="M36.8 12.17c.41.14.78.31 1.1.6"/>
|
||||
<path stroke="#000" stroke-miterlimit="10" stroke-width=".04" d="M33.03 4.01c.11-.26.49-.6.76-.4.26.2.14.48-.02.69-.17.22-.46.37-.33.66.07.17.1.26.06.46l-.2.7c-.16.6-.25 1.15-.22 1.77.01.33.02.59-.14.87-.13.21-.38.6-.27.87.06.19.23.22.2.47 0 .13-.08.25-.15.36-.04.07-.2.26-.17.36.03.16.26.15.24.36-.03.25-.42.28-.4.53.07.02.14 0 .2.03-.09.14-.36.1-.5.17l.1.2c0 .06-.06.08-.08.14l-.01.1"/>
|
||||
<path stroke="#000" stroke-linejoin="round" stroke-miterlimit="10" stroke-width=".04" d="M35.33 26.99s.45.04 1.17 0c.73-.04 2.34 0 2.34 0m-6.77-6.5a3 3 0 0 0 2.78 1.45c2.02-.05 5-2.36 2.99-1.68"/>
|
||||
<path fill="#000" stroke="#000" stroke-linejoin="round" stroke-miterlimit="10" stroke-width=".04" d="M31.66 14.3c-.22 0-.37-.52 0-.59.37-.07 0 .6 0 .6v-.01Zm2.94.3c-.23 0-.38-.52 0-.59.37-.07 0 .6 0 .6v-.01Z"/>
|
||||
<path fill="#F4EED8" stroke="#000" stroke-miterlimit="10" stroke-width=".05" d="m21.95 20.79-9.59-.75V5.77l9.59.74V20.8v-.01Z"/>
|
||||
<path stroke="#000" stroke-miterlimit="10" stroke-width=".05" d="m13.02 9.08 8.27.64M19.52 7.3l1.78.13m-1.78.2 1.78.14m-1.78.19 1.78.14m-8.28 1.96 8.27.64m-8.27.33 8.27.65m-8.27.33 8.27.64m-8.27.34 8.27.64m-8.27.34 8.27.64m-8.27.33 8.27.64m-8.27.34 8.27.64m-8.27.34 8.27.64m-8.27.33 6.72.53"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 11 KiB |
@@ -1,16 +1,17 @@
|
||||
import fs from 'fs';
|
||||
import fs from 'fs/promises';
|
||||
import path from 'path';
|
||||
|
||||
const currentDir = process.cwd();
|
||||
const dataDirectory = path.resolve(currentDir, '.vitepress/data');
|
||||
const directory = path.join(process.cwd(), '../categories');
|
||||
|
||||
function getAllCategoryFiles() {
|
||||
const fileNames = fs.readdirSync(directory).filter((file) => path.extname(file) === '.json');
|
||||
async function getAllCategoryFiles() {
|
||||
const categoryDirectoryContents = await fs.readdir(directory);
|
||||
const fileNames = categoryDirectoryContents.filter((file) => path.extname(file) === '.json');
|
||||
|
||||
return fileNames.map((fileName) => {
|
||||
const categoryJSONReadPromises = fileNames.map(async (fileName) => {
|
||||
const name = path.basename(fileName, '.json');
|
||||
const fileContent = fs.readFileSync(path.join(directory, fileName), 'utf8');
|
||||
const fileContent = await fs.readFile(path.join(directory, fileName), 'utf8');
|
||||
|
||||
const parsedFileContent = JSON.parse(fileContent);
|
||||
|
||||
@@ -19,14 +20,15 @@ function getAllCategoryFiles() {
|
||||
title: parsedFileContent.title,
|
||||
};
|
||||
});
|
||||
|
||||
return Promise.all(categoryJSONReadPromises);
|
||||
}
|
||||
|
||||
const categoriesFile = path.resolve(dataDirectory, `categoriesData.json`);
|
||||
|
||||
const categoriesData = getAllCategoryFiles();
|
||||
const categoriesData = await getAllCategoryFiles();
|
||||
|
||||
fs.promises
|
||||
.writeFile(categoriesFile, JSON.stringify(categoriesData, null, 2), 'utf-8')
|
||||
fs.writeFile(categoriesFile, JSON.stringify(categoriesData, null, 2), 'utf-8')
|
||||
.then(() => {
|
||||
console.log('Successfully written categoriesData.json file');
|
||||
})
|
||||
|
||||
@@ -4,7 +4,7 @@ import { readSvgDirectory, toCamelCase } from '@lucide/helpers';
|
||||
|
||||
const currentDir = process.cwd();
|
||||
const ICONS_DIR = path.resolve(currentDir, '../icons');
|
||||
const icons = readSvgDirectory(ICONS_DIR, '.json');
|
||||
const icons = await readSvgDirectory(ICONS_DIR, '.json');
|
||||
|
||||
const iconDetailsDirectory = path.resolve(currentDir, '.vitepress/data', 'iconDetails');
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import { readSvgDirectory, toCamelCase } from '@lucide/helpers';
|
||||
|
||||
const currentDir = process.cwd();
|
||||
const ICONS_DIR = path.resolve(currentDir, '../icons');
|
||||
const iconJsonFiles = readSvgDirectory(ICONS_DIR, '.json');
|
||||
const iconJsonFiles = await readSvgDirectory(ICONS_DIR, '.json');
|
||||
|
||||
const location = path.resolve(currentDir, '.vitepress/data', 'iconMetaData.ts');
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@ import { readSvgDirectory, toCamelCase } from '@lucide/helpers';
|
||||
|
||||
const currentDir = process.cwd();
|
||||
const ICONS_DIR = path.resolve(currentDir, '../icons');
|
||||
const svgFiles = readSvgDirectory(ICONS_DIR);
|
||||
const icons = renderIconsObject(svgFiles, ICONS_DIR, true);
|
||||
const svgFiles = await readSvgDirectory(ICONS_DIR);
|
||||
const icons = await renderIconsObject(svgFiles, ICONS_DIR, true);
|
||||
|
||||
const iconNodesDirectory = path.resolve(currentDir, '.vitepress/data', 'iconNodes');
|
||||
|
||||
@@ -32,7 +32,7 @@ const writeIconFiles = Object.entries(icons).map(async ([iconName, { children }]
|
||||
await fs.promises.writeFile(location, output, 'utf-8');
|
||||
|
||||
iconIndexFileImports.push(
|
||||
`import ${toCamelCase(iconName)}Node from './${iconName}.node.json' assert { type: "json" };`,
|
||||
`import ${toCamelCase(iconName)}Node from './${iconName}.node.json' with { type: "json" };`,
|
||||
);
|
||||
iconIndexFileExports.push(` ${toCamelCase(iconName)}Node as ${toCamelCase(iconName)},`);
|
||||
iconIndexFileDefaultExports.push(` '${iconName}': ${toCamelCase(iconName)}Node,`);
|
||||
|
||||
@@ -4,7 +4,7 @@ import { readSvgDirectory } from '@lucide/helpers';
|
||||
|
||||
const currentDir = process.cwd();
|
||||
const ICONS_DIR = path.resolve(currentDir, '../icons');
|
||||
const svgFiles = readSvgDirectory(ICONS_DIR, '.json');
|
||||
const svgFiles = await readSvgDirectory(ICONS_DIR, '.json');
|
||||
|
||||
const location = path.resolve(currentDir, '.vitepress/data', 'relatedIcons.json');
|
||||
|
||||
@@ -18,9 +18,7 @@ const categoryWeight = 3;
|
||||
|
||||
const MAX_RELATED_ICONS = 4 * 17; // grid of 4x17 icons, = 68 icons
|
||||
|
||||
const arrayMatches = (a, b) => {
|
||||
return a.filter((item) => b.includes(item)).length;
|
||||
};
|
||||
const arrayMatches = (a, b) => a.filter((item) => b.includes(item)).length;
|
||||
|
||||
const nameParts = (icon) =>
|
||||
[
|
||||
@@ -36,6 +34,7 @@ const getRelatedIcons = (currentIcon, icons) => {
|
||||
nameWeight * arrayMatches(nameParts(item), nameParts(currentIcon)) +
|
||||
categoryWeight * arrayMatches(item.categories ?? [], currentIcon.categories ?? []) +
|
||||
tagWeight * arrayMatches(item.tags ?? [], currentIcon.tags ?? []);
|
||||
|
||||
return icons
|
||||
.filter((i) => i.name !== currentIcon.name)
|
||||
.map((icon) => ({ icon, similarity: iconSimilarity(icon) }))
|
||||
@@ -46,7 +45,8 @@ const getRelatedIcons = (currentIcon, icons) => {
|
||||
};
|
||||
|
||||
const iconsMetaDataPromises = svgFiles.map(async (iconName) => {
|
||||
const metaData = JSON.parse(fs.readFileSync(`../icons/${iconName}`));
|
||||
const metaDataFileContent = await fs.promises.readFile(`../icons/${iconName}`);
|
||||
const metaData = JSON.parse(metaDataFileContent);
|
||||
|
||||
const name = iconName.replace('.json', '');
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ const git = simpleGit();
|
||||
|
||||
const currentDir = process.cwd();
|
||||
const ICONS_DIR = path.resolve(currentDir, '../icons');
|
||||
const iconJsonFiles = readSvgDirectory(ICONS_DIR, '.json');
|
||||
const iconJsonFiles = await readSvgDirectory(ICONS_DIR, '.json');
|
||||
const location = path.resolve(currentDir, '.vitepress/data', 'releaseMetaData.json');
|
||||
const releaseMetaDataDirectory = path.resolve(currentDir, '.vitepress/data', 'releaseMetadata');
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ import { getCurrentDirPath } from '@lucide/helpers';
|
||||
const currentDir = process.cwd();
|
||||
const scriptDir = getCurrentDirPath(import.meta.url);
|
||||
|
||||
const iconMetaData = await getIconMetaData(path.resolve(scriptDir, '../icons'));
|
||||
const iconMetaData = await getIconMetaData(path.resolve(scriptDir, '../../icons'));
|
||||
|
||||
const iconAliasesRedirectRoutes = Object.entries(iconMetaData)
|
||||
.filter(([, { aliases }]) => aliases?.length)
|
||||
@@ -16,7 +16,7 @@ const iconAliasesRedirectRoutes = Object.entries(iconMetaData)
|
||||
const aliasRouteMatches = aliases.join('|');
|
||||
|
||||
return {
|
||||
src: `/icons/(${aliasRouteMatches})`,
|
||||
src: `/icons/${aliasRouteMatches}`,
|
||||
status: 302,
|
||||
headers: {
|
||||
Location: `/icons/${iconName}`,
|
||||
@@ -44,4 +44,4 @@ const output = JSON.stringify(vercelRouteConfig, null, 2);
|
||||
|
||||
const vercelOutputJSON = path.resolve(currentDir, '.vercel/output/config.json');
|
||||
|
||||
fs.writeFileSync(vercelOutputJSON, output, 'utf-8');
|
||||
await fs.promises.writeFile(vercelOutputJSON, output, 'utf-8');
|
||||
|
||||
@@ -64,23 +64,20 @@
|
||||
"charts",
|
||||
"communication",
|
||||
"connectivity",
|
||||
"currency",
|
||||
"cursors",
|
||||
"design",
|
||||
"development",
|
||||
"devices",
|
||||
"emoji",
|
||||
"files",
|
||||
"finance",
|
||||
"food-beverage",
|
||||
"furniture",
|
||||
"gaming",
|
||||
"home",
|
||||
"layout",
|
||||
"mail",
|
||||
"maps",
|
||||
"maths",
|
||||
"math",
|
||||
"medical",
|
||||
"money",
|
||||
"multimedia",
|
||||
"nature",
|
||||
"navigation",
|
||||
@@ -142,7 +139,7 @@
|
||||
},
|
||||
"aliasDeprecationReasons": {
|
||||
"type": "string",
|
||||
"enum": ["alias.typo", "alias.name"]
|
||||
"enum": ["alias.typo", "alias.name", "alias.duplicate"]
|
||||
},
|
||||
"versionNumber": {
|
||||
"type": "string",
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
],
|
||||
"categories": [
|
||||
"transportation",
|
||||
"text",
|
||||
"maps"
|
||||
"text"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -13,6 +13,6 @@
|
||||
"couch"
|
||||
],
|
||||
"categories": [
|
||||
"furniture"
|
||||
"home"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation",
|
||||
"maps"
|
||||
"navigation"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
],
|
||||
"categories": [
|
||||
"arrows",
|
||||
"navigation",
|
||||
"maps"
|
||||
"navigation"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
],
|
||||
"categories": [
|
||||
"text",
|
||||
"maths",
|
||||
"math",
|
||||
"development"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
],
|
||||
"categories": [
|
||||
"account",
|
||||
"social",
|
||||
"shapes"
|
||||
"social"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -24,9 +24,6 @@
|
||||
],
|
||||
"categories": [
|
||||
"shopping",
|
||||
"money",
|
||||
"currency",
|
||||
"account",
|
||||
"shapes"
|
||||
"finance"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -12,8 +12,6 @@
|
||||
"check"
|
||||
],
|
||||
"categories": [
|
||||
"account",
|
||||
"social",
|
||||
"shapes"
|
||||
"social"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -22,9 +22,6 @@
|
||||
],
|
||||
"categories": [
|
||||
"shopping",
|
||||
"money",
|
||||
"currency",
|
||||
"account",
|
||||
"shapes"
|
||||
"finance"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -20,9 +20,6 @@
|
||||
],
|
||||
"categories": [
|
||||
"shopping",
|
||||
"money",
|
||||
"currency",
|
||||
"account",
|
||||
"shapes"
|
||||
"finance"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -10,9 +10,7 @@
|
||||
"help"
|
||||
],
|
||||
"categories": [
|
||||
"account",
|
||||
"accessibility",
|
||||
"social",
|
||||
"shapes"
|
||||
"social"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -21,9 +21,6 @@
|
||||
],
|
||||
"categories": [
|
||||
"shopping",
|
||||
"money",
|
||||
"currency",
|
||||
"account",
|
||||
"shapes"
|
||||
"finance"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
"categories": [
|
||||
"account",
|
||||
"accessibility",
|
||||
"social",
|
||||
"shapes"
|
||||
"social"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -21,9 +21,6 @@
|
||||
],
|
||||
"categories": [
|
||||
"shopping",
|
||||
"money",
|
||||
"currency",
|
||||
"account",
|
||||
"shapes"
|
||||
"finance"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -12,8 +12,6 @@
|
||||
"erase"
|
||||
],
|
||||
"categories": [
|
||||
"account",
|
||||
"social",
|
||||
"shapes"
|
||||
"social"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -15,11 +15,9 @@
|
||||
"price tag"
|
||||
],
|
||||
"categories": [
|
||||
"account",
|
||||
"social",
|
||||
"money",
|
||||
"finance",
|
||||
"shopping",
|
||||
"maths",
|
||||
"shapes"
|
||||
"math"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -12,8 +12,6 @@
|
||||
"new"
|
||||
],
|
||||
"categories": [
|
||||
"account",
|
||||
"social",
|
||||
"shapes"
|
||||
"social"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -22,9 +22,6 @@
|
||||
],
|
||||
"categories": [
|
||||
"shopping",
|
||||
"money",
|
||||
"currency",
|
||||
"account",
|
||||
"shapes"
|
||||
"finance"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -21,9 +21,6 @@
|
||||
],
|
||||
"categories": [
|
||||
"shopping",
|
||||
"money",
|
||||
"currency",
|
||||
"account",
|
||||
"shapes"
|
||||
"finance"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -21,9 +21,6 @@
|
||||
],
|
||||
"categories": [
|
||||
"shopping",
|
||||
"money",
|
||||
"currency",
|
||||
"account",
|
||||
"shapes"
|
||||
"finance"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -12,8 +12,6 @@
|
||||
"remove"
|
||||
],
|
||||
"categories": [
|
||||
"account",
|
||||
"social",
|
||||
"shapes"
|
||||
"social"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
"payment"
|
||||
],
|
||||
"categories": [
|
||||
"currency",
|
||||
"money"
|
||||
"finance"
|
||||
]
|
||||
}
|
||||
|
||||
29
icons/battery-plus.json
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"$schema": "../icon.schema.json",
|
||||
"contributors": [
|
||||
"colebemis",
|
||||
"ericfennis",
|
||||
"jguddas",
|
||||
"johnletey",
|
||||
"Footagesus"
|
||||
],
|
||||
"tags": [
|
||||
"power",
|
||||
"electricity",
|
||||
"energy",
|
||||
"accumulator",
|
||||
"charge",
|
||||
"plus",
|
||||
"economy",
|
||||
"health",
|
||||
"add",
|
||||
"new",
|
||||
"maximum",
|
||||
"upgrade",
|
||||
"extra",
|
||||
"+"
|
||||
],
|
||||
"categories": [
|
||||
"devices"
|
||||
]
|
||||
}
|
||||
17
icons/battery-plus.svg
Normal file
@@ -0,0 +1,17 @@
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M10 9v6" />
|
||||
<path d="M13.5 7H16a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2h-2.5" />
|
||||
<path d="M22 11v2" />
|
||||
<path d="M6.5 17H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h2.5" />
|
||||
<path d="M7 12h6" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 398 B |
@@ -10,6 +10,6 @@
|
||||
"furniture"
|
||||
],
|
||||
"categories": [
|
||||
"furniture"
|
||||
"home"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -10,6 +10,6 @@
|
||||
"furniture"
|
||||
],
|
||||
"categories": [
|
||||
"furniture"
|
||||
"home"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -10,6 +10,6 @@
|
||||
"furniture"
|
||||
],
|
||||
"categories": [
|
||||
"furniture"
|
||||
"home"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M19.4 14.9C20.2 16.4 21 17 21 17H3s3-2 3-9c0-3.3 2.7-6 6-6 .7 0 1.3.1 1.9.3" />
|
||||
<path d="M10.3 21a1.94 1.94 0 0 0 3.4 0" />
|
||||
<path d="M10.268 21a2 2 0 0 0 3.464 0" />
|
||||
<path d="M13.916 2.314A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.74 7.327A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673 9 9 0 0 1-.585-.665" />
|
||||
<circle cx="18" cy="8" r="3" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 379 B After Width: | Height: | Size: 418 B |
@@ -9,7 +9,7 @@
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M18.4 12c.8 3.8 2.6 5 2.6 5H3s3-2 3-9c0-3.3 2.7-6 6-6 1.8 0 3.4.8 4.5 2" />
|
||||
<path d="M10.3 21a1.94 1.94 0 0 0 3.4 0" />
|
||||
<path d="M10.268 21a2 2 0 0 0 3.464 0" />
|
||||
<path d="M15 8h6" />
|
||||
<path d="M16.243 3.757A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673A9.4 9.4 0 0 1 18.667 12" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 364 B After Width: | Height: | Size: 412 B |
@@ -9,8 +9,8 @@
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M8.7 3A6 6 0 0 1 18 8a21.3 21.3 0 0 0 .6 5" />
|
||||
<path d="M17 17H3s3-2 3-9a4.67 4.67 0 0 1 .3-1.7" />
|
||||
<path d="M10.3 21a1.94 1.94 0 0 0 3.4 0" />
|
||||
<path d="M10.268 21a2 2 0 0 0 3.464 0" />
|
||||
<path d="M17 17H4a1 1 0 0 1-.74-1.673C4.59 13.956 6 12.499 6 8a6 6 0 0 1 .258-1.742" />
|
||||
<path d="m2 2 20 20" />
|
||||
<path d="M8.668 3.01A6 6 0 0 1 18 8c0 2.687.77 4.653 1.707 6.05" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 393 B After Width: | Height: | Size: 438 B |
@@ -9,8 +9,8 @@
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M19.3 14.8C20.1 16.4 21 17 21 17H3s3-2 3-9c0-3.3 2.7-6 6-6 1 0 1.9.2 2.8.7" />
|
||||
<path d="M10.3 21a1.94 1.94 0 0 0 3.4 0" />
|
||||
<path d="M10.268 21a2 2 0 0 0 3.464 0" />
|
||||
<path d="M15 8h6" />
|
||||
<path d="M18 5v6" />
|
||||
<path d="M20.002 14.464a9 9 0 0 0 .738.863A1 1 0 0 1 20 17H4a1 1 0 0 1-.74-1.673C4.59 13.956 6 12.499 6 8a6 6 0 0 1 8.75-5.332" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 390 B After Width: | Height: | Size: 431 B |
@@ -9,8 +9,8 @@
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9" />
|
||||
<path d="M10.3 21a1.94 1.94 0 0 0 3.4 0" />
|
||||
<path d="M4 2C2.8 3.7 2 5.7 2 8" />
|
||||
<path d="M10.268 21a2 2 0 0 0 3.464 0" />
|
||||
<path d="M22 8c0-2.3-.8-4.3-2-6" />
|
||||
<path d="M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326" />
|
||||
<path d="M4 2C2.8 3.7 2 5.7 2 8" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 387 B After Width: | Height: | Size: 469 B |
@@ -9,6 +9,6 @@
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9" />
|
||||
<path d="M10.3 21a1.94 1.94 0 0 0 3.4 0" />
|
||||
<path d="M10.268 21a2 2 0 0 0 3.464 0" />
|
||||
<path d="M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 311 B After Width: | Height: | Size: 393 B |
@@ -29,8 +29,7 @@
|
||||
"categories": [
|
||||
"layout",
|
||||
"design",
|
||||
"tools",
|
||||
"account"
|
||||
"tools"
|
||||
],
|
||||
"aliases": [
|
||||
{
|
||||
|
||||
@@ -29,8 +29,7 @@
|
||||
"categories": [
|
||||
"layout",
|
||||
"design",
|
||||
"tools",
|
||||
"account"
|
||||
"tools"
|
||||
],
|
||||
"aliases": [
|
||||
{
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
"research"
|
||||
],
|
||||
"categories": [
|
||||
"maps",
|
||||
"navigation",
|
||||
"nature",
|
||||
"photography",
|
||||
"science",
|
||||
|
||||
@@ -11,8 +11,7 @@
|
||||
],
|
||||
"categories": [
|
||||
"brands",
|
||||
"currency",
|
||||
"development",
|
||||
"money"
|
||||
"finance"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -14,11 +14,10 @@
|
||||
"diy",
|
||||
"fixed",
|
||||
"build",
|
||||
"contruction",
|
||||
"construction",
|
||||
"parts"
|
||||
],
|
||||
"categories": [
|
||||
"account",
|
||||
"tools",
|
||||
"home"
|
||||
]
|
||||
|
||||
@@ -45,7 +45,6 @@
|
||||
],
|
||||
"categories": [
|
||||
"text",
|
||||
"maps",
|
||||
"gaming"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -9,15 +9,15 @@
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M12 17h2" />
|
||||
<path d="M12 22h2" />
|
||||
<path d="M12 2h2" />
|
||||
<path d="M18 22h1a1 1 0 0 0 1-1" />
|
||||
<path d="M18 2h1a1 1 0 0 1 1 1v1" />
|
||||
<path d="M20 15v2h-2" />
|
||||
<path d="M20 8v3" />
|
||||
<path d="M4 11V9" />
|
||||
<path d="M4 19.5V15" />
|
||||
<path d="M4 5v-.5A2.5 2.5 0 0 1 6.5 2H8" />
|
||||
<path d="M12 17h1.5" />
|
||||
<path d="M12 22h1.5" />
|
||||
<path d="M12 2h1.5" />
|
||||
<path d="M17.5 22H19a1 1 0 0 0 1-1" />
|
||||
<path d="M17.5 2H19a1 1 0 0 1 1 1v1.5" />
|
||||
<path d="M20 14v3h-2.5" />
|
||||
<path d="M20 8.5V10" />
|
||||
<path d="M4 10V8.5" />
|
||||
<path d="M4 19.5V14" />
|
||||
<path d="M4 4.5A2.5 2.5 0 0 1 6.5 2H8" />
|
||||
<path d="M8 22H6.5a1 1 0 0 1 0-5H8" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 542 B After Width: | Height: | Size: 561 B |
@@ -41,7 +41,6 @@
|
||||
"categories": [
|
||||
"social",
|
||||
"text",
|
||||
"communication",
|
||||
"gaming"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -35,7 +35,6 @@
|
||||
],
|
||||
"categories": [
|
||||
"text",
|
||||
"development",
|
||||
"gaming"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -31,7 +31,6 @@
|
||||
"unlearn"
|
||||
],
|
||||
"categories": [
|
||||
"development",
|
||||
"text",
|
||||
"gaming"
|
||||
]
|
||||
|
||||
@@ -19,6 +19,6 @@
|
||||
"shapes",
|
||||
"gaming",
|
||||
"development",
|
||||
"maths"
|
||||
"math"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -12,7 +12,8 @@
|
||||
"enterprise",
|
||||
"skyscraper",
|
||||
"organisation",
|
||||
"organization"
|
||||
"organization",
|
||||
"city"
|
||||
],
|
||||
"categories": [
|
||||
"account",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"calculating machine"
|
||||
],
|
||||
"categories": [
|
||||
"maths",
|
||||
"math",
|
||||
"devices"
|
||||
]
|
||||
}
|
||||
|
||||