Compare commits
29 Commits
remove-umd
...
0.542.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d52c369b99 | ||
|
|
a7a1973d3f | ||
|
|
b6dfcef41b | ||
|
|
1c5a9dafc1 | ||
|
|
546bb1f391 | ||
|
|
64c1a55e01 | ||
|
|
0e3ac6beb9 | ||
|
|
c7c0e2bead | ||
|
|
85dba80322 | ||
|
|
f8a1a76b83 | ||
|
|
bd50af7afb | ||
|
|
cfabc9f608 | ||
|
|
09f98127c6 | ||
|
|
867c0581af | ||
|
|
987edb14f8 | ||
|
|
9db4dc7e1c | ||
|
|
2150ce75ce | ||
|
|
106e37c3ce | ||
|
|
528ffd6fa5 | ||
|
|
3b92fae633 | ||
|
|
fcf42bf754 | ||
|
|
0b6149c02d | ||
|
|
bc9a8de419 | ||
|
|
26ab33a832 | ||
|
|
ac4c3581c4 | ||
|
|
1ddba6da04 | ||
|
|
8754c9b6fd | ||
|
|
e9febe4fab | ||
|
|
570f7d7e76 |
10
.github/ISSUE_TEMPLATE/01_icon_request.yml
vendored
@@ -7,8 +7,10 @@ body:
|
|||||||
value: |
|
value: |
|
||||||
Before submitting an icon request check if it has already been requested. If there is an open request, please add a 👍.
|
Before submitting an icon request check if it has already been requested. If there is an open request, please add a 👍.
|
||||||
|
|
||||||
**Important note**: No new brand logos are allowed, see https://github.com/lucide-icons/lucide/issues/670.
|
> [!CAUTION]
|
||||||
Existing brand icons will also be phased out. For brand icons, consider using https://simpleicons.org, which offers purpose-built SVGs that are also on a 24×24px grid.
|
> New brand logos are **not** allowed, see our official statement: https://github.com/lucide-icons/lucide/blob/main/BRAND_LOGOS_STATEMENT.md.
|
||||||
|
>
|
||||||
|
> Existing brand icons are being phased out. Consider using https://simpleicons.org, which offers purpose-built SVGs that are also on a 24×24px grid.
|
||||||
- type: input
|
- type: input
|
||||||
id: name
|
id: name
|
||||||
attributes:
|
attributes:
|
||||||
@@ -41,9 +43,9 @@ body:
|
|||||||
required: true
|
required: true
|
||||||
- label: I have searched existing icons to make sure it does not already exist and I didn't find any.
|
- label: I have searched existing icons to make sure it does not already exist and I didn't find any.
|
||||||
required: true
|
required: true
|
||||||
- label: I am not requesting a brand logo and the art is not protected by copyright.
|
- label: I am not requesting a brand logo and the art is not protected by copyright, see more at https://github.com/lucide-icons/lucide/blob/main/BRAND_LOGOS_STATEMENT.md
|
||||||
required: true
|
required: true
|
||||||
- label: I am not requesting an icon that includes religious, political imagery or hate symbols.
|
- label: I am not requesting an icon that includes religious, war/violence related, political imagery or hate symbols.
|
||||||
required: true
|
required: true
|
||||||
- label: I have provided appropriate use cases for the icon(s) requested.
|
- label: I have provided appropriate use cases for the icon(s) requested.
|
||||||
required: true
|
required: true
|
||||||
|
|||||||
6
.github/pull_request_template.md
vendored
@@ -25,10 +25,12 @@ Common scopes: icons, docs, studio, site, dev
|
|||||||
|
|
||||||
### Concept <!-- ONLY for new icons -->
|
### Concept <!-- ONLY for new icons -->
|
||||||
<!-- All of these requirements must be fulfilled. -->
|
<!-- All of these requirements must be fulfilled. -->
|
||||||
|
<!-- IMPORTANT! Please read our official statement on brand logos in Lucide: -->
|
||||||
|
<!-- https://github.com/lucide-icons/lucide/blob/main/BRAND_LOGOS_STATEMENT.md -->
|
||||||
- [ ] I have provided valid use cases for each icon.
|
- [ ] I have provided valid use cases for each icon.
|
||||||
- [ ] I have not added any a brand or logo icon.
|
- [ ] I have [not added any brand or logo icon](https://github.com/lucide-icons/lucide/blob/main/BRAND_LOGOS_STATEMENT.md).
|
||||||
- [ ] I have not used any hate symbols.
|
- [ ] I have not used any hate symbols.
|
||||||
- [ ] I have not included any religious or political imagery.
|
- [ ] I have not included any religious, war/violence related or political imagery.
|
||||||
|
|
||||||
### Author, credits & license<!-- ONLY for new icons. -->
|
### Author, credits & license<!-- ONLY for new icons. -->
|
||||||
<!-- Please choose one of the following, and put an "x" next to it. -->
|
<!-- Please choose one of the following, and put an "x" next to it. -->
|
||||||
|
|||||||
1
.github/workflows/release.yml
vendored
@@ -48,7 +48,6 @@ jobs:
|
|||||||
'lucide',
|
'lucide',
|
||||||
'lucide-react',
|
'lucide-react',
|
||||||
'lucide-react-native',
|
'lucide-react-native',
|
||||||
'lucide-vue',
|
|
||||||
'lucide-vue-next',
|
'lucide-vue-next',
|
||||||
'lucide-angular',
|
'lucide-angular',
|
||||||
'lucide-preact',
|
'lucide-preact',
|
||||||
|
|||||||
71
BRAND_LOGOS_STATEMENT.md
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
# Our Official Stance on Including Brand Logos in Lucide
|
||||||
|
|
||||||
|
## TL;DR
|
||||||
|
|
||||||
|
Lucide **does not accept** brand logos, and we do not plan to add them in the future.
|
||||||
|
|
||||||
|
This is due to a combination of **legal restrictions**, **design consistency concerns**, and **practical maintenance reasons**.
|
||||||
|
|
||||||
|
If you need brand logos, we recommend [Simple Icons](https://simpleicons.org/), which provides an extensive, legally safer collection of brand marks.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. Historical Context
|
||||||
|
|
||||||
|
This is not a new debate — other icon sets have gone through the same discussion:
|
||||||
|
|
||||||
|
- **Material Design Icons** [deprecated all brand icons](https://github.com/Templarian/MaterialDesign/issues/6602) because they didn't fit the style, didn't work well in one color, and often looked out of place in a 24×24px grid.
|
||||||
|
- **Feather Icons** [came to the same conclusion](https://github.com/feathericons/feather/issues/763): brand logos have their own style, and forcing them into another inevitably leads to aesthetic compromises.
|
||||||
|
- **Lucide** learned from these examples — we'd rather focus on making a consistent set of non-brand icons that all work together.
|
||||||
|
|
||||||
|
## 2. Legal Considerations
|
||||||
|
|
||||||
|
Most brand logos:
|
||||||
|
- Are **protected by trademark or copyright**.
|
||||||
|
- Have **strict rules** for how they can be used (colors, spacing, proportions, etc.).
|
||||||
|
- **Don't allow modification** — but we'd have to change them to fit Lucide's style.
|
||||||
|
|
||||||
|
This means adding them could:
|
||||||
|
1. Break copyright or trademark law.
|
||||||
|
2. Make both you and the Lucide project legally responsible.
|
||||||
|
3. Force us to review every new request one by one for legal issues — something we simply can't do.
|
||||||
|
|
||||||
|
> **Note:** Simple Icons avoids this by keeping logos exactly as the brand provides them — though even they sometimes face [legal challenges](https://github.com/simple-icons/simple-icons/issues/11236).
|
||||||
|
|
||||||
|
## 3. Design & Consistency
|
||||||
|
|
||||||
|
Lucide is all about **visual consistency**.
|
||||||
|
|
||||||
|
Adding brand logos would:
|
||||||
|
- Break [our own design rules](https://lucide.dev/guide/design/icon-design-guide#icon-design-principles) for shapes, proportions, and stroke.
|
||||||
|
- Mix two fundamentally different categories of graphics (pictograms vs. corporate logos).
|
||||||
|
- Create a library where a subset of icons will always look "out of place".
|
||||||
|
|
||||||
|
If the logos are not in Lucide's style, why include them in Lucide at all? Better to use them from a dedicated brand icon source.
|
||||||
|
|
||||||
|
## 4. Maintenance Burden
|
||||||
|
|
||||||
|
Even with our current **"no brand icon requests"** policy, people still request them regularly.
|
||||||
|
|
||||||
|
Having any brand icons in the set:
|
||||||
|
- Makes people think we might add more in the future.
|
||||||
|
- Leads to repeated requests and the same conversations over and over.
|
||||||
|
- Wastes maintainer time redirecting people to the same explanation.
|
||||||
|
|
||||||
|
Removing them entirely solves this problem.
|
||||||
|
|
||||||
|
## 5. Recommended Alternatives
|
||||||
|
|
||||||
|
If you need brand icons, try:
|
||||||
|
- [Simple Icons](https://simpleicons.org/): offers a huge range of brands, in consistent SVG format, using a 24×24 viewBox, the same as ours.
|
||||||
|
- Official brand asset pages: most major companies provide downloadable SVGs.
|
||||||
|
|
||||||
|
You can use these alongside Lucide without bloating our core library.
|
||||||
|
|
||||||
|
## Final Words
|
||||||
|
|
||||||
|
Lucide is an **icon** set, not a **logo** set.
|
||||||
|
|
||||||
|
Logos belong in dedicated logo resources.
|
||||||
|
|
||||||
|
We're focusing on what Lucide does best: providing a clean, cohesive, and legally safe collection of open-source icons.
|
||||||
26
LICENSE
@@ -1,6 +1,6 @@
|
|||||||
ISC License
|
ISC License
|
||||||
|
|
||||||
Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2022 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2022.
|
Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2023 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2025.
|
||||||
|
|
||||||
Permission to use, copy, modify, and/or distribute this software for any
|
Permission to use, copy, modify, and/or distribute this software for any
|
||||||
purpose with or without fee is hereby granted, provided that the above
|
purpose with or without fee is hereby granted, provided that the above
|
||||||
@@ -13,3 +13,27 @@ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|||||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
The MIT License (MIT) (for portions derived from Feather)
|
||||||
|
|
||||||
|
Copyright (c) 2013-2023 Cole Bemis
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
|||||||
@@ -57,6 +57,12 @@ For more info on how to contribute please see the [contribution guidelines](http
|
|||||||
|
|
||||||
Caught a mistake or want to contribute to the documentation? [Edit this page on Github](https://github.com/lucide-icons/lucide/blob/main/README.md)
|
Caught a mistake or want to contribute to the documentation? [Edit this page on Github](https://github.com/lucide-icons/lucide/blob/main/README.md)
|
||||||
|
|
||||||
|
## About brand logos
|
||||||
|
|
||||||
|
Lucide **does not accept** brand logos, and we do not plan to add them in the future. This is due to a combination of **legal restrictions**, **design consistency concerns**, and **practical maintenance reasons**.
|
||||||
|
|
||||||
|
[Click here to read our official statement about brand logos in Lucide.](./BRAND_LOGOS_STATEMENT.md)
|
||||||
|
|
||||||
## Community
|
## Community
|
||||||
|
|
||||||
Join the community on our [Discord](https://discord.gg/EH6nSts) server!
|
Join the community on our [Discord](https://discord.gg/EH6nSts) server!
|
||||||
|
|||||||
@@ -15,8 +15,10 @@ export default eventHandler((event) => {
|
|||||||
|
|
||||||
const src = Buffer.from(data, 'base64').toString('utf8').replaceAll('\n', '');
|
const src = Buffer.from(data, 'base64').toString('utf8').replaceAll('\n', '');
|
||||||
|
|
||||||
const width = parseInt((src.includes('svg') ? src.match(/width="(\d+)"/)?.[1] : null) ?? '24');
|
const width = parseInt((src.includes('<svg ') ? src.match(/width="(\d+)"/)?.[1] : null) ?? '24');
|
||||||
const height = parseInt((src.includes('svg') ? src.match(/height="(\d+)"/)?.[1] : null) ?? '24');
|
const height = parseInt(
|
||||||
|
(src.includes('<svg ') ? src.match(/height="(\d+)"/)?.[1] : null) ?? '24',
|
||||||
|
);
|
||||||
|
|
||||||
const children = [];
|
const children = [];
|
||||||
|
|
||||||
|
|||||||
@@ -17,6 +17,13 @@ export default eventHandler((event) => {
|
|||||||
.replaceAll('\n', '')
|
.replaceAll('\n', '')
|
||||||
.replace(/<svg[^>]*>|<\/svg>/g, '');
|
.replace(/<svg[^>]*>|<\/svg>/g, '');
|
||||||
|
|
||||||
|
const width = parseInt(
|
||||||
|
(newSrc.includes('<svg ') ? newSrc.match(/width="(\d+)"/)?.[1] : null) ?? '24',
|
||||||
|
);
|
||||||
|
const height = parseInt(
|
||||||
|
(newSrc.includes('<svg ') ? newSrc.match(/height="(\d+)"/)?.[1] : null) ?? '24',
|
||||||
|
);
|
||||||
|
|
||||||
const children = [];
|
const children = [];
|
||||||
|
|
||||||
const oldSrc = iconNodes[name]
|
const oldSrc = iconNodes[name]
|
||||||
@@ -27,7 +34,9 @@ export default eventHandler((event) => {
|
|||||||
|
|
||||||
const svg = Buffer.from(
|
const svg = Buffer.from(
|
||||||
// We can't use jsx here, is not supported here by nitro.
|
// We can't use jsx here, is not supported here by nitro.
|
||||||
renderToString(createElement(Diff, { oldSrc, newSrc, showGrid: true }, children)),
|
renderToString(
|
||||||
|
createElement(Diff, { oldSrc, newSrc, showGrid: true, height, width }, children),
|
||||||
|
),
|
||||||
).toString('utf8');
|
).toString('utf8');
|
||||||
|
|
||||||
defaultContentType(event, 'image/svg+xml');
|
defaultContentType(event, 'image/svg+xml');
|
||||||
|
|||||||
@@ -1,6 +1,10 @@
|
|||||||
import { eventHandler, setResponseHeader, defaultContentType } from 'h3';
|
import { eventHandler, setResponseHeader, defaultContentType } from 'h3';
|
||||||
import { Resvg, initWasm } from '@resvg/resvg-wasm';
|
import { Resvg, initWasm } from '@resvg/resvg-wasm';
|
||||||
|
import iconNodes from '../../../data/iconNodes';
|
||||||
import wasm from './loadWasm';
|
import wasm from './loadWasm';
|
||||||
|
import { createElement } from 'react';
|
||||||
|
import { renderToStaticMarkup } from 'react-dom/server';
|
||||||
|
import createLucideIcon from 'lucide-react/src/createLucideIcon';
|
||||||
|
|
||||||
var initializedResvg = initWasm(wasm);
|
var initializedResvg = initWasm(wasm);
|
||||||
|
|
||||||
@@ -9,27 +13,37 @@ export default eventHandler(async (event) => {
|
|||||||
await initializedResvg;
|
await initializedResvg;
|
||||||
|
|
||||||
const imageSize = 96;
|
const imageSize = 96;
|
||||||
const [iconSizeString, svgData] = params.data.split('/');
|
const name = params.data.split('/').at(-3);
|
||||||
|
const iconSizeString = params.data.split('/').at(-2);
|
||||||
|
const svgData = params.data.split('/').at(-1);
|
||||||
const iconSize = parseInt(iconSizeString, 10);
|
const iconSize = parseInt(iconSizeString, 10);
|
||||||
const data = svgData.slice(0, -4);
|
const data = svgData.slice(0, -4);
|
||||||
|
|
||||||
|
const prevSvg = iconNodes[name]
|
||||||
|
? renderToStaticMarkup(createElement(createLucideIcon(name, iconNodes[name])))
|
||||||
|
: undefined;
|
||||||
|
|
||||||
const src = Buffer.from(data, 'base64').toString('utf8');
|
const src = Buffer.from(data, 'base64').toString('utf8');
|
||||||
const svg = (src.includes('<svg') ? src : `<svg>${src}</svg>`)
|
const svg = (src.includes('<svg') ? src : `<svg>${src}</svg>`)
|
||||||
.replace(/(\r\n|\n|\r)/gm, '')
|
.replace(/(\r\n|\n|\r)/gm, '')
|
||||||
.replace(
|
.replace(
|
||||||
/<svg[^>]*/,
|
/<svg[^>]*>/,
|
||||||
`<svg
|
`<svg
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
width="${iconSize}"
|
width="${iconSize}"
|
||||||
height="${iconSize}"
|
height="${prevSvg ? iconSize * 2 : iconSize}"
|
||||||
viewBox="0 0 24 24"
|
viewBox="0 0 24 ${prevSvg ? 48 : 24}"
|
||||||
fill="none"
|
fill="none"
|
||||||
stroke="#fff"
|
stroke="#fff"
|
||||||
stroke-width="2"
|
stroke-width="2"
|
||||||
stroke-linecap="round"
|
stroke-linecap="round"
|
||||||
stroke-linejoin="round"
|
stroke-linejoin="round"
|
||||||
|
>
|
||||||
|
${prevSvg?.replaceAll('\n', '').replace(/<svg[^>]*>|<\/svg>/g, '')}
|
||||||
|
<g transform="translate(0, ${prevSvg ? 24 : 0})">
|
||||||
`,
|
`,
|
||||||
);
|
)
|
||||||
|
.replace(/<\/svg>/, '</g></svg>');
|
||||||
|
|
||||||
const resvg = new Resvg(svg, { background: '#000' });
|
const resvg = new Resvg(svg, { background: '#000' });
|
||||||
const pngData = resvg.render();
|
const pngData = resvg.render();
|
||||||
@@ -39,7 +53,7 @@ export default eventHandler(async (event) => {
|
|||||||
setResponseHeader(event, 'Cache-Control', 'public,max-age=31536000');
|
setResponseHeader(event, 'Cache-Control', 'public,max-age=31536000');
|
||||||
|
|
||||||
return `
|
return `
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" width="${imageSize}" height="${imageSize}" viewBox="0 0 ${imageSize} ${imageSize}">
|
<svg xmlns="http://www.w3.org/2000/svg" width="${imageSize}" height="${prevSvg ? imageSize * 2 : imageSize}" viewBox="0 0 ${imageSize} ${prevSvg ? imageSize * 2 : imageSize}">
|
||||||
<style>
|
<style>
|
||||||
@media screen and (prefers-color-scheme: light) {
|
@media screen and (prefers-color-scheme: light) {
|
||||||
#fallback-background { fill: transparent; }
|
#fallback-background { fill: transparent; }
|
||||||
@@ -52,20 +66,20 @@ export default eventHandler(async (event) => {
|
|||||||
<mask id="mask">
|
<mask id="mask">
|
||||||
<image
|
<image
|
||||||
width="${imageSize}"
|
width="${imageSize}"
|
||||||
height="${imageSize}"
|
height="${prevSvg ? imageSize * 2 : imageSize}"
|
||||||
href="data:image/png;base64,${pngBuffer.toString('base64')}"
|
href="data:image/png;base64,${pngBuffer.toString('base64')}"
|
||||||
image-rendering="pixelated"
|
image-rendering="pixelated"
|
||||||
/>
|
/>
|
||||||
</mask>
|
</mask>
|
||||||
<rect
|
<rect
|
||||||
id="fallback-background"
|
id="fallback-background"
|
||||||
width="${imageSize}"
|
width="100%"
|
||||||
height="${imageSize}" ry="${imageSize / 24}"
|
height="100%" ry="${imageSize / 24}"
|
||||||
fill="#fff"
|
fill="#fff"
|
||||||
/>
|
/>
|
||||||
<rect
|
<rect
|
||||||
width="${imageSize}"
|
width="100%"
|
||||||
height="${imageSize}"
|
height="100%"
|
||||||
fill="#000"
|
fill="#000"
|
||||||
mask="url(#mask)"
|
mask="url(#mask)"
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -7,6 +7,14 @@
|
|||||||
"dark": "/company-logos/vercel-dark.svg"
|
"dark": "/company-logos/vercel-dark.svg"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "MDN Web Docs",
|
||||||
|
"url": "https://developer.mozilla.org/",
|
||||||
|
"image": {
|
||||||
|
"light": "/company-logos/mdn-light.svg",
|
||||||
|
"dark": "/company-logos/mdn-dark.svg"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "Supabase",
|
"name": "Supabase",
|
||||||
"url": "https://supabase.com",
|
"url": "https://supabase.com",
|
||||||
@@ -23,6 +31,14 @@
|
|||||||
"dark": "/company-logos/obsidian-dark.svg"
|
"dark": "/company-logos/obsidian-dark.svg"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "Nuxt",
|
||||||
|
"url": "https://nuxt.com/",
|
||||||
|
"image": {
|
||||||
|
"light": "/company-logos/nuxt-light.svg",
|
||||||
|
"dark": "/company-logos/nuxt-dark.svg"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "Open Collective",
|
"name": "Open Collective",
|
||||||
"url": "https://opencollective.com",
|
"url": "https://opencollective.com",
|
||||||
|
|||||||
@@ -53,8 +53,8 @@ const Backdrop = ({
|
|||||||
<rect
|
<rect
|
||||||
x="0"
|
x="0"
|
||||||
y="0"
|
y="0"
|
||||||
width="24"
|
width="100%"
|
||||||
height="24"
|
height="100%"
|
||||||
fill="#fff"
|
fill="#fff"
|
||||||
stroke="none"
|
stroke="none"
|
||||||
/>
|
/>
|
||||||
@@ -67,8 +67,8 @@ const Backdrop = ({
|
|||||||
<rect
|
<rect
|
||||||
x="0"
|
x="0"
|
||||||
y="0"
|
y="0"
|
||||||
width="24"
|
width="100%"
|
||||||
height="24"
|
height="100%"
|
||||||
opacity={0.5}
|
opacity={0.5}
|
||||||
fill={`url(#pattern-${id})`}
|
fill={`url(#pattern-${id})`}
|
||||||
stroke="none"
|
stroke="none"
|
||||||
|
|||||||
@@ -7,15 +7,17 @@ const SvgPreview = React.forwardRef<
|
|||||||
{
|
{
|
||||||
oldSrc: string;
|
oldSrc: string;
|
||||||
newSrc: string;
|
newSrc: string;
|
||||||
|
height: number;
|
||||||
|
width: number;
|
||||||
} & React.SVGProps<SVGSVGElement>
|
} & React.SVGProps<SVGSVGElement>
|
||||||
>(({ oldSrc, newSrc, children, ...props }, ref) => {
|
>(({ oldSrc, newSrc, children, height, width, ...props }, ref) => {
|
||||||
return (
|
return (
|
||||||
<svg
|
<svg
|
||||||
ref={ref}
|
ref={ref}
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
width={24}
|
width={width}
|
||||||
height={24}
|
height={height}
|
||||||
viewBox="0 0 24 24"
|
viewBox={`0 0 ${width} ${height}`}
|
||||||
fill="none"
|
fill="none"
|
||||||
stroke="currentColor"
|
stroke="currentColor"
|
||||||
strokeWidth={2}
|
strokeWidth={2}
|
||||||
@@ -25,6 +27,8 @@ const SvgPreview = React.forwardRef<
|
|||||||
>
|
>
|
||||||
<style>{darkModeCss}</style>
|
<style>{darkModeCss}</style>
|
||||||
<Grid
|
<Grid
|
||||||
|
width={width}
|
||||||
|
height={height}
|
||||||
strokeWidth={0.1}
|
strokeWidth={0.1}
|
||||||
stroke="#777"
|
stroke="#777"
|
||||||
strokeOpacity={0.3}
|
strokeOpacity={0.3}
|
||||||
@@ -37,8 +41,8 @@ const SvgPreview = React.forwardRef<
|
|||||||
<rect
|
<rect
|
||||||
x="0"
|
x="0"
|
||||||
y="0"
|
y="0"
|
||||||
width="24"
|
width="100%"
|
||||||
height="24"
|
height="100%"
|
||||||
fill="#000"
|
fill="#000"
|
||||||
stroke="none"
|
stroke="none"
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -178,6 +178,8 @@ const DiamondIcon = createLucideIcon('Diamond', diamond)
|
|||||||
stroke-width: var(--customize-strokeWidth, 2);
|
stroke-width: var(--customize-strokeWidth, 2);
|
||||||
width: calc(var(--customize-size, 24) * 1px);
|
width: calc(var(--customize-size, 24) * 1px);
|
||||||
height: calc(var(--customize-size, 24) * 1px);
|
height: calc(var(--customize-size, 24) * 1px);
|
||||||
|
max-width: 3rem;
|
||||||
|
max-height: 3rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
html.absolute-stroke-width .lucide-icon.customizable {
|
html.absolute-stroke-width .lucide-icon.customizable {
|
||||||
|
|||||||
@@ -26,10 +26,9 @@ const iconComponent = computed(() => {
|
|||||||
<component
|
<component
|
||||||
ref="previewIcon"
|
ref="previewIcon"
|
||||||
:is="iconComponent"
|
:is="iconComponent"
|
||||||
:width="size"
|
:size="size"
|
||||||
:height="size"
|
:color="color"
|
||||||
:stroke="color"
|
:strokeWidth="absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth"
|
||||||
:stroke-width="absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth"
|
|
||||||
/>
|
/>
|
||||||
<svg class="icon-grid" :viewBox="`0 0 ${size} ${size}`" fill="none" stroke-width="0.1" xmlns="http://www.w3.org/2000/svg">
|
<svg class="icon-grid" :viewBox="`0 0 ${size} ${size}`" fill="none" stroke-width="0.1" xmlns="http://www.w3.org/2000/svg">
|
||||||
<g :key="`grid-${i}`" v-for="(_, i) in gridLines">
|
<g :key="`grid-${i}`" v-for="(_, i) in gridLines">
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ const customizingActive = computed(() => {
|
|||||||
name="size"
|
name="size"
|
||||||
v-model="size"
|
v-model="size"
|
||||||
:min="16"
|
:min="16"
|
||||||
:max="48"
|
:max="256"
|
||||||
:step="4"
|
:step="4"
|
||||||
/>
|
/>
|
||||||
</InputField>
|
</InputField>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
import { ref, inject, Ref } from 'vue';
|
import { ref, inject, Ref } from 'vue';
|
||||||
|
|
||||||
export const ICON_STYLE_CONTEXT = Symbol('size');
|
export const ICON_STYLE_CONTEXT = Symbol('style');
|
||||||
|
|
||||||
interface IconSizeContext {
|
interface IconSizeContext {
|
||||||
size: Ref<number>;
|
size: Ref<number>;
|
||||||
|
|||||||
@@ -88,7 +88,11 @@ createIcons({
|
|||||||
|
|
||||||
### Additional Options
|
### Additional Options
|
||||||
|
|
||||||
In the `createIcons` function you can pass some extra parameters to adjust the `nameAttr` or add custom attributes like for example classes.
|
In the `createIcons` function you can pass some extra parameters:
|
||||||
|
|
||||||
|
- you can pass `nameAttr` to adjust the attribute name to replace for
|
||||||
|
- you can pass `attrs` to pass additional custom attributes, for instance CSS classes or stroke options.
|
||||||
|
- you can pass `root` to provide a custom DOM element the icons should be replaced in (useful when manipulating small sections of a large DOM or elements in the shadow DOM)
|
||||||
|
|
||||||
Here is a full example:
|
Here is a full example:
|
||||||
|
|
||||||
@@ -101,7 +105,8 @@ createIcons({
|
|||||||
'stroke-width': 1,
|
'stroke-width': 1,
|
||||||
stroke: '#333'
|
stroke: '#333'
|
||||||
},
|
},
|
||||||
nameAttr: 'data-lucide' // attribute for the icon name.
|
nameAttr: 'data-lucide', // attribute for the icon name.
|
||||||
|
root: element, // DOM element to replace icons in.
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
4
docs/public/company-logos/mdn-dark.svg
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewBox="0 0 361 104.2">
|
||||||
|
<g style="fill:#0F5DBD"><path d="M40.3 0 11.7 92.1H0L28.5 0h11.8zM50.7 0v92.1H40.3V0h10.4zM101.4 0v92.1H91V0h10.4zM91 0 62.5 92.1H50.8L79.3 0H91zM294 95.4h67v8.8h-67v-8.8z"/></g>
|
||||||
|
<g style="fill:#000"><path d="M198.7 72.8h-17.1v-5.5h3.8V51.5c0-3.7-.7-6.3-2.1-7.9-1.4-1.6-3.3-2.3-5.7-2.3-3.2 0-5.6 1.1-7.2 3.4s-2.4 4.6-2.5 6.9v15.6h6v5.5h-17.1v-5.5h3.8V51.5c0-3.8-.7-6.4-2.1-7.9-1.4-1.5-3.3-2.3-5.6-2.3-3.2 0-5.5 1.1-7.2 3.3-1.6 2.2-2.4 4.5-2.5 6.9v15.8h6.9v5.5h-20.2v-5.5h6V42h-6.1v-5.6h13.4v6.4c1.2-2.1 2.7-3.8 4.7-5.2 2-1.3 4.4-2 7.3-2 2.8 0 5.3.7 7.5 2.1 2.2 1.4 3.7 3.5 4.5 6.4 1.1-2.5 2.7-4.5 4.9-6.1 2.2-1.6 4.8-2.4 7.9-2.4 3.5 0 6.5 1.1 8.9 3.3 2.4 2.2 3.7 5.6 3.7 10.2v18.2h6.1v5.5zM241.2 72.8H228v-7.2c-1.2 2.2-2.8 4.1-4.9 5.6-2.1 1.6-4.8 2.4-8.3 2.4-4.8 0-8.7-1.6-11.6-4.9-2.9-3.2-4.3-7.7-4.3-13.3 0-5 1.3-9.6 4-13.7 2.6-4.1 6.9-6.2 12.8-6.2 5.7 0 9.8 2.2 12.3 6.5V22.3h-8.6v-5.6h15.8v50.6h6v5.5zM227.9 56v-4.4c-.1-3-1.2-5.5-3.2-7.3-2-1.8-4.4-2.8-7.2-2.8-3.6 0-6.3 1.3-8.2 3.9-1.9 2.6-2.8 5.8-2.8 9.6 0 4.1 1 7.3 3 9.5s4.5 3.3 7.4 3.3c3.2 0 5.8-1.3 7.8-3.8 2.1-2.6 3.1-5.3 3.2-8zM286.4 72.8h-19.3v-5.5h6V51.5c0-3.7-.7-6.3-2.2-7.9-1.4-1.6-3.4-2.3-5.7-2.3-3.1 0-5.6 1-7.4 3-1.8 2-2.8 4.4-2.9 7v15.9h6v5.5h-19.3v-5.5h6V42h-6.2v-5.6H255v6.2c2.6-4.6 6.8-6.9 12.7-6.9 3.6 0 6.7 1.1 9.2 3.3 2.5 2.2 3.7 5.6 3.7 10.2v18.2h6v5.4z"/></g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.4 KiB |
4
docs/public/company-logos/mdn-light.svg
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewBox="0 0 361 104.2">
|
||||||
|
<g style="fill:#A4CEFE"><path d="M40.3 0 11.7 92.1H0L28.5 0h11.8zM50.7 0v92.1H40.3V0h10.4zM101.4 0v92.1H91V0h10.4zM91 0 62.5 92.1H50.8L79.3 0H91zM294 95.4h67v8.8h-67v-8.8z"/></g>
|
||||||
|
<g style="fill:#fff"><path d="M198.7 72.8h-17.1v-5.5h3.8V51.5c0-3.7-.7-6.3-2.1-7.9-1.4-1.6-3.3-2.3-5.7-2.3-3.2 0-5.6 1.1-7.2 3.4s-2.4 4.6-2.5 6.9v15.6h6v5.5h-17.1v-5.5h3.8V51.5c0-3.8-.7-6.4-2.1-7.9-1.4-1.5-3.3-2.3-5.6-2.3-3.2 0-5.5 1.1-7.2 3.3-1.6 2.2-2.4 4.5-2.5 6.9v15.8h6.9v5.5h-20.2v-5.5h6V42h-6.1v-5.6h13.4v6.4c1.2-2.1 2.7-3.8 4.7-5.2 2-1.3 4.4-2 7.3-2 2.8 0 5.3.7 7.5 2.1 2.2 1.4 3.7 3.5 4.5 6.4 1.1-2.5 2.7-4.5 4.9-6.1 2.2-1.6 4.8-2.4 7.9-2.4 3.5 0 6.5 1.1 8.9 3.3 2.4 2.2 3.7 5.6 3.7 10.2v18.2h6.1v5.5zM241.2 72.8H228v-7.2c-1.2 2.2-2.8 4.1-4.9 5.6-2.1 1.6-4.8 2.4-8.3 2.4-4.8 0-8.7-1.6-11.6-4.9-2.9-3.2-4.3-7.7-4.3-13.3 0-5 1.3-9.6 4-13.7 2.6-4.1 6.9-6.2 12.8-6.2 5.7 0 9.8 2.2 12.3 6.5V22.3h-8.6v-5.6h15.8v50.6h6v5.5zM227.9 56v-4.4c-.1-3-1.2-5.5-3.2-7.3-2-1.8-4.4-2.8-7.2-2.8-3.6 0-6.3 1.3-8.2 3.9-1.9 2.6-2.8 5.8-2.8 9.6 0 4.1 1 7.3 3 9.5s4.5 3.3 7.4 3.3c3.2 0 5.8-1.3 7.8-3.8 2.1-2.6 3.1-5.3 3.2-8zM286.4 72.8h-19.3v-5.5h6V51.5c0-3.7-.7-6.3-2.2-7.9-1.4-1.6-3.4-2.3-5.7-2.3-3.1 0-5.6 1-7.4 3-1.8 2-2.8 4.4-2.9 7v15.9h6v5.5h-19.3v-5.5h6V42h-6.2v-5.6H255v6.2c2.6-4.6 6.8-6.9 12.7-6.9 3.6 0 6.7 1.1 9.2 3.3 2.5 2.2 3.7 5.6 3.7 10.2v18.2h6v5.4z"/></g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.4 KiB |
4
docs/public/company-logos/nuxt-dark.svg
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="800" height="200" fill="none" class="text-highlighted block w-auto h-6" viewBox="0 0 800 200">
|
||||||
|
<path fill="#000" d="M377 200c2.16 0 4-1.791 4-4v-93s5 9 14 24l39 67c1.785 3.74 5.744 6 9 6h27V50h-27c-1.798 0-4 1.494-4 4v94l-18-32-36-61c-1.752-3.109-5.521-5-9-5h-26v150h27ZM726 92h13a6 6 0 0 0 6-6V60h28v32h27v24h-27v43c0 10.5 5.057 15 14 15h13v26h-17c-23.052 0-38-14.929-38-40v-44h-19V92ZM591 92v62c0 14.004-5.258 25.809-13 34-7.742 8.191-18.434 12-33 12-14.566 0-26.258-3.809-34-12-7.611-8.191-13-19.996-13-34V92h16c3.412 0 6.769.622 9 3 2.231 2.246 3 3.565 3 7v52c0 8.059.457 13.037 4 17 3.543 3.831 7.914 5 15 5 7.217 0 10.457-1.169 14-5 3.543-3.963 4-8.941 4-17v-52c0-3.435.769-5.622 3-8 1.96-2.09 4.028-2.04 7-2 .411.005 1.586 0 2 0h16ZM676 144l34-52h-26c-3.277 0-6.188 1.176-8 4l-16 24-15-23c-1.812-2.824-5.723-5-9-5h-25l34 51-37 57h26c3.25 0 6.182-3.213 8-6l18-27 19 28c1.818 2.787 4.75 5 8 5h26l-37-56Z"/>
|
||||||
|
<path fill="#00DC82" d="M168 200h111c3.542 0 6.932-1.244 10-3 3.068-1.756 6.23-3.959 8-7 1.77-3.041 3.002-6.49 3-10.001-.002-3.511-1.227-6.959-3-9.998L222 41c-1.77-3.04-3.933-5.245-7-7s-7.458-3-11-3-6.933 1.245-10 3-5.23 3.96-7 7l-19 33-38-64.002c-1.772-3.04-3.932-6.243-7-7.998s-6.458-2-10-2-6.932.245-10 2c-3.068 1.755-6.228 4.958-8 7.998L2 170c-1.773 3.039-1.998 6.487-2 9.998-.002 3.511.23 6.96 2 10.001 1.77 3.04 4.932 5.244 8 7 3.068 1.756 6.458 3 10 3h70c27.737 0 47.925-12.442 62-36l34-59 18-31 55 94h-73l-18 32Zm-79-32H40l73-126 37 63-24.509 42.725C116.144 163.01 105.488 168 89 168Z"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.5 KiB |
4
docs/public/company-logos/nuxt-light.svg
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="800" height="200" fill="none" class="text-highlighted block w-auto h-6" viewBox="0 0 800 200">
|
||||||
|
<path fill="#fff" d="M377 200c2.16 0 4-1.791 4-4v-93s5 9 14 24l39 67c1.785 3.74 5.744 6 9 6h27V50h-27c-1.798 0-4 1.494-4 4v94l-18-32-36-61c-1.752-3.109-5.521-5-9-5h-26v150h27ZM726 92h13a6 6 0 0 0 6-6V60h28v32h27v24h-27v43c0 10.5 5.057 15 14 15h13v26h-17c-23.052 0-38-14.929-38-40v-44h-19V92ZM591 92v62c0 14.004-5.258 25.809-13 34-7.742 8.191-18.434 12-33 12-14.566 0-26.258-3.809-34-12-7.611-8.191-13-19.996-13-34V92h16c3.412 0 6.769.622 9 3 2.231 2.246 3 3.565 3 7v52c0 8.059.457 13.037 4 17 3.543 3.831 7.914 5 15 5 7.217 0 10.457-1.169 14-5 3.543-3.963 4-8.941 4-17v-52c0-3.435.769-5.622 3-8 1.96-2.09 4.028-2.04 7-2 .411.005 1.586 0 2 0h16ZM676 144l34-52h-26c-3.277 0-6.188 1.176-8 4l-16 24-15-23c-1.812-2.824-5.723-5-9-5h-25l34 51-37 57h26c3.25 0 6.182-3.213 8-6l18-27 19 28c1.818 2.787 4.75 5 8 5h26l-37-56Z"/>
|
||||||
|
<path fill="#00DC82" d="M168 200h111c3.542 0 6.932-1.244 10-3 3.068-1.756 6.23-3.959 8-7 1.77-3.041 3.002-6.49 3-10.001-.002-3.511-1.227-6.959-3-9.998L222 41c-1.77-3.04-3.933-5.245-7-7s-7.458-3-11-3-6.933 1.245-10 3-5.23 3.96-7 7l-19 33-38-64.002c-1.772-3.04-3.932-6.243-7-7.998s-6.458-2-10-2-6.932.245-10 2c-3.068 1.755-6.228 4.958-8 7.998L2 170c-1.773 3.039-1.998 6.487-2 9.998-.002 3.511.23 6.96 2 10.001 1.77 3.04 4.932 5.244 8 7 3.068 1.756 6.458 3 10 3h70c27.737 0 47.925-12.442 62-36l34-59 18-31 55 94h-73l-18 32Zm-79-32H40l73-126 37 63-24.509 42.725C116.144 163.01 105.488 168 89 168Z"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.5 KiB |
@@ -5,7 +5,27 @@
|
|||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
"fruit",
|
"fruit",
|
||||||
"food"
|
"food",
|
||||||
|
"healthy",
|
||||||
|
"snack",
|
||||||
|
"nutrition",
|
||||||
|
"fresh",
|
||||||
|
"produce",
|
||||||
|
"grocery",
|
||||||
|
"organic",
|
||||||
|
"harvest",
|
||||||
|
"vitamin",
|
||||||
|
"red",
|
||||||
|
"green",
|
||||||
|
"juicy",
|
||||||
|
"sweet",
|
||||||
|
"tart",
|
||||||
|
"bite",
|
||||||
|
"orchard",
|
||||||
|
"plant",
|
||||||
|
"core",
|
||||||
|
"raw",
|
||||||
|
"diet"
|
||||||
],
|
],
|
||||||
"categories": [
|
"categories": [
|
||||||
"food-beverage"
|
"food-beverage"
|
||||||
|
|||||||
@@ -9,6 +9,6 @@
|
|||||||
stroke-linecap="round"
|
stroke-linecap="round"
|
||||||
stroke-linejoin="round"
|
stroke-linejoin="round"
|
||||||
>
|
>
|
||||||
<path d="M12 20.94c1.5 0 2.75 1.06 4 1.06 3 0 6-8 6-12.22A4.91 4.91 0 0 0 17 5c-2.22 0-4 1.44-5 2-1-.56-2.78-2-5-2a4.9 4.9 0 0 0-5 4.78C2 14 5 22 8 22c1.25 0 2.5-1.06 4-1.06Z" />
|
<path d="M12 6.528V3a1 1 0 0 1 1-1h0" />
|
||||||
<path d="M10 2c1 .5 2 2 2 5" />
|
<path d="M18.237 21A15 15 0 0 0 22 11a6 6 0 0 0-10-4.472A6 6 0 0 0 2 11a15.1 15.1 0 0 0 3.763 10 3 3 0 0 0 3.648.648 5.5 5.5 0 0 1 5.178 0A3 3 0 0 0 18.237 21" />
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 423 B After Width: | Height: | Size: 416 B |
68
icons/brick-wall-shield.json
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
{
|
||||||
|
"$schema": "../icon.schema.json",
|
||||||
|
"contributors": [
|
||||||
|
"karsa-mistmere",
|
||||||
|
"danielbayley"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"firewall",
|
||||||
|
"security",
|
||||||
|
"bricks",
|
||||||
|
"mortar",
|
||||||
|
"cement",
|
||||||
|
"materials",
|
||||||
|
"construction",
|
||||||
|
"builder",
|
||||||
|
"labourer",
|
||||||
|
"quantity surveyor",
|
||||||
|
"blocks",
|
||||||
|
"stone",
|
||||||
|
"cybersecurity",
|
||||||
|
"secure",
|
||||||
|
"safety",
|
||||||
|
"protection",
|
||||||
|
"guardian",
|
||||||
|
"armored",
|
||||||
|
"armoured",
|
||||||
|
"defense",
|
||||||
|
"defence",
|
||||||
|
"defender",
|
||||||
|
"block",
|
||||||
|
"threat",
|
||||||
|
"prevention",
|
||||||
|
"antivirus",
|
||||||
|
"vigilance",
|
||||||
|
"vigilant",
|
||||||
|
"detection",
|
||||||
|
"scan",
|
||||||
|
"find",
|
||||||
|
"strength",
|
||||||
|
"strong",
|
||||||
|
"tough",
|
||||||
|
"invincible",
|
||||||
|
"invincibility",
|
||||||
|
"invulnerable",
|
||||||
|
"undamaged",
|
||||||
|
"audit",
|
||||||
|
"admin",
|
||||||
|
"verification",
|
||||||
|
"crest",
|
||||||
|
"bravery",
|
||||||
|
"knight",
|
||||||
|
"foot soldier",
|
||||||
|
"infantry",
|
||||||
|
"trooper",
|
||||||
|
"pawn",
|
||||||
|
"battle",
|
||||||
|
"war",
|
||||||
|
"military",
|
||||||
|
"army",
|
||||||
|
"cadet",
|
||||||
|
"scout"
|
||||||
|
],
|
||||||
|
"categories": [
|
||||||
|
"security",
|
||||||
|
"home",
|
||||||
|
"connectivity"
|
||||||
|
]
|
||||||
|
}
|
||||||
20
icons/brick-wall-shield.svg
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
<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="M12 9v1.258" />
|
||||||
|
<path d="M16 3v5.46" />
|
||||||
|
<path d="M21 9.118V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h5.75" />
|
||||||
|
<path d="M22 17.5c0 2.499-1.75 3.749-3.83 4.474a.5.5 0 0 1-.335-.005c-2.085-.72-3.835-1.97-3.835-4.47V14a.5.5 0 0 1 .5-.499c1 0 2.25-.6 3.12-1.36a.6.6 0 0 1 .76-.001c.875.765 2.12 1.36 3.12 1.36a.5.5 0 0 1 .5.5z" />
|
||||||
|
<path d="M3 15h7" />
|
||||||
|
<path d="M3 9h12.142" />
|
||||||
|
<path d="M8 15v6" />
|
||||||
|
<path d="M8 3v6" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 653 B |
@@ -9,15 +9,15 @@
|
|||||||
stroke-linecap="round"
|
stroke-linecap="round"
|
||||||
stroke-linejoin="round"
|
stroke-linejoin="round"
|
||||||
>
|
>
|
||||||
<rect width="16" height="20" x="4" y="2" rx="2" ry="2" />
|
|
||||||
<path d="M9 22v-4h6v4" />
|
|
||||||
<path d="M8 6h.01" />
|
|
||||||
<path d="M16 6h.01" />
|
|
||||||
<path d="M12 6h.01" />
|
|
||||||
<path d="M12 10h.01" />
|
<path d="M12 10h.01" />
|
||||||
<path d="M12 14h.01" />
|
<path d="M12 14h.01" />
|
||||||
|
<path d="M12 6h.01" />
|
||||||
<path d="M16 10h.01" />
|
<path d="M16 10h.01" />
|
||||||
<path d="M16 14h.01" />
|
<path d="M16 14h.01" />
|
||||||
|
<path d="M16 6h.01" />
|
||||||
<path d="M8 10h.01" />
|
<path d="M8 10h.01" />
|
||||||
<path d="M8 14h.01" />
|
<path d="M8 14h.01" />
|
||||||
|
<path d="M8 6h.01" />
|
||||||
|
<path d="M9 22v-3a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v3" />
|
||||||
|
<rect x="4" y="2" width="16" height="20" rx="2" />
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 524 B After Width: | Height: | Size: 545 B |
@@ -9,8 +9,8 @@
|
|||||||
stroke-linecap="round"
|
stroke-linecap="round"
|
||||||
stroke-linejoin="round"
|
stroke-linejoin="round"
|
||||||
>
|
>
|
||||||
<line x1="2" x2="22" y1="2" y2="22" />
|
<path d="M14.564 14.558a3 3 0 1 1-4.122-4.121" />
|
||||||
<path d="M7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16" />
|
<path d="m2 2 20 20" />
|
||||||
<path d="M9.5 4h5L17 7h3a2 2 0 0 1 2 2v7.5" />
|
<path d="M20 20H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 .819-.175" />
|
||||||
<path d="M14.121 15.121A3 3 0 1 1 9.88 10.88" />
|
<path d="M9.695 4.024A2 2 0 0 1 10.004 4h3.993a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v7.344" />
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 404 B After Width: | Height: | Size: 488 B |
@@ -3,9 +3,19 @@
|
|||||||
"contributors": [
|
"contributors": [
|
||||||
"colebemis",
|
"colebemis",
|
||||||
"lscheibel",
|
"lscheibel",
|
||||||
"ericfennis"
|
"ericfennis",
|
||||||
|
"karsa-mistmere"
|
||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
|
"photography",
|
||||||
|
"lens",
|
||||||
|
"focus",
|
||||||
|
"capture",
|
||||||
|
"shot",
|
||||||
|
"visual",
|
||||||
|
"image",
|
||||||
|
"device",
|
||||||
|
"equipment",
|
||||||
"photo",
|
"photo",
|
||||||
"webcam",
|
"webcam",
|
||||||
"video"
|
"video"
|
||||||
|
|||||||
@@ -9,6 +9,6 @@
|
|||||||
stroke-linecap="round"
|
stroke-linecap="round"
|
||||||
stroke-linejoin="round"
|
stroke-linejoin="round"
|
||||||
>
|
>
|
||||||
<path d="M14.5 4h-5L7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3l-2.5-3z" />
|
<path d="M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z" />
|
||||||
<circle cx="12" cy="13" r="3" />
|
<circle cx="12" cy="13" r="3" />
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 349 B After Width: | Height: | Size: 437 B |
@@ -13,5 +13,13 @@
|
|||||||
],
|
],
|
||||||
"categories": [
|
"categories": [
|
||||||
"brands"
|
"brands"
|
||||||
|
],
|
||||||
|
"aliases": [
|
||||||
|
{
|
||||||
|
"name": "chrome",
|
||||||
|
"deprecated": true,
|
||||||
|
"deprecationReason": "alias.name",
|
||||||
|
"toBeRemovedInVersion": "v1.0"
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -9,9 +9,9 @@
|
|||||||
stroke-linecap="round"
|
stroke-linecap="round"
|
||||||
stroke-linejoin="round"
|
stroke-linejoin="round"
|
||||||
>
|
>
|
||||||
|
<path d="M10.88 21.94 15.46 14" />
|
||||||
|
<path d="M21.17 8H12" />
|
||||||
|
<path d="M3.95 6.06 8.54 14" />
|
||||||
<circle cx="12" cy="12" r="10" />
|
<circle cx="12" cy="12" r="10" />
|
||||||
<circle cx="12" cy="12" r="4" />
|
<circle cx="12" cy="12" r="4" />
|
||||||
<line x1="21.17" x2="12" y1="8" y2="8" />
|
|
||||||
<line x1="3.95" x2="8.54" y1="6.06" y2="14" />
|
|
||||||
<line x1="10.88" x2="15.46" y1="21.94" y2="14" />
|
|
||||||
</svg>
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 424 B After Width: | Height: | Size: 377 B |
25
icons/circle-star.json
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
{
|
||||||
|
"$schema": "../icon.schema.json",
|
||||||
|
"contributors": [
|
||||||
|
"karsa-mistmere"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"badge",
|
||||||
|
"medal",
|
||||||
|
"honour",
|
||||||
|
"decoration",
|
||||||
|
"order",
|
||||||
|
"pin",
|
||||||
|
"laurel",
|
||||||
|
"trophy",
|
||||||
|
"medallion",
|
||||||
|
"insignia",
|
||||||
|
"bronze",
|
||||||
|
"silver",
|
||||||
|
"gold"
|
||||||
|
],
|
||||||
|
"categories": [
|
||||||
|
"sports",
|
||||||
|
"gaming"
|
||||||
|
]
|
||||||
|
}
|
||||||
14
icons/circle-star.svg
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
<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="M11.051 7.616a1 1 0 0 1 1.909.024l.737 1.452a1 1 0 0 0 .737.535l1.634.256a1 1 0 0 1 .588 1.806l-1.172 1.168a1 1 0 0 0-.282.866l.259 1.613a1 1 0 0 1-1.541 1.134l-1.465-.75a1 1 0 0 0-.912 0l-1.465.75a1 1 0 0 1-1.539-1.133l.258-1.613a1 1 0 0 0-.282-.867l-1.156-1.152a1 1 0 0 1 .572-1.822l1.633-.256a1 1 0 0 0 .737-.535z" />
|
||||||
|
<circle cx="12" cy="12" r="10" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 576 B |
@@ -9,18 +9,18 @@
|
|||||||
stroke-linecap="round"
|
stroke-linecap="round"
|
||||||
stroke-linejoin="round"
|
stroke-linejoin="round"
|
||||||
>
|
>
|
||||||
<path d="M12 20a8 8 0 1 0 0-16 8 8 0 0 0 0 16Z" />
|
|
||||||
<path d="M12 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z" />
|
|
||||||
<path d="M12 2v2" />
|
|
||||||
<path d="M12 22v-2" />
|
|
||||||
<path d="m17 20.66-1-1.73" />
|
|
||||||
<path d="M11 10.27 7 3.34" />
|
<path d="M11 10.27 7 3.34" />
|
||||||
<path d="m20.66 17-1.73-1" />
|
<path d="m11 13.73-4 6.93" />
|
||||||
<path d="m3.34 7 1.73 1" />
|
<path d="M12 22v-2" />
|
||||||
|
<path d="M12 2v2" />
|
||||||
<path d="M14 12h8" />
|
<path d="M14 12h8" />
|
||||||
|
<path d="m17 20.66-1-1.73" />
|
||||||
|
<path d="m17 3.34-1 1.73" />
|
||||||
<path d="M2 12h2" />
|
<path d="M2 12h2" />
|
||||||
|
<path d="m20.66 17-1.73-1" />
|
||||||
<path d="m20.66 7-1.73 1" />
|
<path d="m20.66 7-1.73 1" />
|
||||||
<path d="m3.34 17 1.73-1" />
|
<path d="m3.34 17 1.73-1" />
|
||||||
<path d="m17 3.34-1 1.73" />
|
<path d="m3.34 7 1.73 1" />
|
||||||
<path d="m11 13.73-4 6.93" />
|
<circle cx="12" cy="12" r="2" />
|
||||||
|
<circle cx="12" cy="12" r="8" />
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 658 B After Width: | Height: | Size: 624 B |
23
icons/kayak.json
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{
|
||||||
|
"$schema": "../icon.schema.json",
|
||||||
|
"contributors": [
|
||||||
|
"jguddas",
|
||||||
|
"jpjacobpadilla"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"kayak",
|
||||||
|
"boat",
|
||||||
|
"paddle",
|
||||||
|
"water",
|
||||||
|
"sport",
|
||||||
|
"recreation",
|
||||||
|
"adventure",
|
||||||
|
"outdoors",
|
||||||
|
"equipment",
|
||||||
|
"lake",
|
||||||
|
"ocean"
|
||||||
|
],
|
||||||
|
"categories": [
|
||||||
|
"transportation"
|
||||||
|
]
|
||||||
|
}
|
||||||
16
icons/kayak.svg
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
<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="M18 17a1 1 0 0 0-1 1v1a2 2 0 1 0 2-2z" />
|
||||||
|
<path d="M20.97 3.61a.45.45 0 0 0-.58-.58C10.2 6.6 6.6 10.2 3.03 20.39a.45.45 0 0 0 .58.58C13.8 17.4 17.4 13.8 20.97 3.61" />
|
||||||
|
<path d="m6.707 6.707 10.586 10.586" />
|
||||||
|
<path d="M7 5a2 2 0 1 0-2 2h1a1 1 0 0 0 1-1z" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 482 B |
33
icons/list-chevrons-down-up.json
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
"$schema": "../icon.schema.json",
|
||||||
|
"contributors": [
|
||||||
|
"colebemis",
|
||||||
|
"ericfennis",
|
||||||
|
"ocavue",
|
||||||
|
"jguddas",
|
||||||
|
"PeterlitsZo",
|
||||||
|
"mittalyashu",
|
||||||
|
"juliankellydesign"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"options",
|
||||||
|
"items",
|
||||||
|
"collapse",
|
||||||
|
"expand",
|
||||||
|
"details",
|
||||||
|
"disclosure",
|
||||||
|
"show",
|
||||||
|
"hide",
|
||||||
|
"toggle",
|
||||||
|
"accordion",
|
||||||
|
"more",
|
||||||
|
"less",
|
||||||
|
"fold",
|
||||||
|
"unfold",
|
||||||
|
"vertical"
|
||||||
|
],
|
||||||
|
"categories": [
|
||||||
|
"text",
|
||||||
|
"arrows"
|
||||||
|
]
|
||||||
|
}
|
||||||
17
icons/list-chevrons-down-up.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="m15 18 3-3 3 3" />
|
||||||
|
<path d="m15 6 3 3 3-3" />
|
||||||
|
<path d="M3 12h8" />
|
||||||
|
<path d="M3 18h8" />
|
||||||
|
<path d="M3 6h8" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 335 B |
@@ -4,7 +4,8 @@
|
|||||||
"colebemis",
|
"colebemis",
|
||||||
"csandman",
|
"csandman",
|
||||||
"ericfennis",
|
"ericfennis",
|
||||||
"karsa-mistmere"
|
"karsa-mistmere",
|
||||||
|
"LieOnLion"
|
||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
"record",
|
"record",
|
||||||
|
|||||||
@@ -9,10 +9,10 @@
|
|||||||
stroke-linecap="round"
|
stroke-linecap="round"
|
||||||
stroke-linejoin="round"
|
stroke-linejoin="round"
|
||||||
>
|
>
|
||||||
<line x1="2" x2="22" y1="2" y2="22" />
|
<path d="M12 19v3" />
|
||||||
<path d="M18.89 13.23A7.12 7.12 0 0 0 19 12v-2" />
|
|
||||||
<path d="M5 10v2a7 7 0 0 0 12 5" />
|
|
||||||
<path d="M15 9.34V5a3 3 0 0 0-5.68-1.33" />
|
<path d="M15 9.34V5a3 3 0 0 0-5.68-1.33" />
|
||||||
|
<path d="M16.95 16.95A7 7 0 0 1 5 12v-2" />
|
||||||
|
<path d="M18.89 13.23A7 7 0 0 0 19 12v-2" />
|
||||||
|
<path d="m2 2 20 20" />
|
||||||
<path d="M9 9v3a3 3 0 0 0 5.12 2.12" />
|
<path d="M9 9v3a3 3 0 0 0 5.12 2.12" />
|
||||||
<line x1="12" x2="12" y1="19" y2="22" />
|
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 471 B After Width: | Height: | Size: 439 B |
@@ -2,13 +2,19 @@
|
|||||||
"$schema": "../icon.schema.json",
|
"$schema": "../icon.schema.json",
|
||||||
"contributors": [
|
"contributors": [
|
||||||
"danielbayley",
|
"danielbayley",
|
||||||
"ericfennis"
|
"ericfennis",
|
||||||
|
"irvineacosta"
|
||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
"drawer",
|
"drawer",
|
||||||
"dock",
|
"dock",
|
||||||
"show",
|
"show",
|
||||||
"reveal"
|
"reveal",
|
||||||
|
"padding",
|
||||||
|
"margin",
|
||||||
|
"guide",
|
||||||
|
"layout",
|
||||||
|
"bleed"
|
||||||
],
|
],
|
||||||
"categories": [
|
"categories": [
|
||||||
"layout"
|
"layout"
|
||||||
|
|||||||
@@ -2,14 +2,20 @@
|
|||||||
"$schema": "../icon.schema.json",
|
"$schema": "../icon.schema.json",
|
||||||
"contributors": [
|
"contributors": [
|
||||||
"danielbayley",
|
"danielbayley",
|
||||||
"ericfennis"
|
"ericfennis",
|
||||||
|
"irvineacosta"
|
||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
"sidebar",
|
"sidebar",
|
||||||
"primary",
|
"primary",
|
||||||
"drawer",
|
"drawer",
|
||||||
"show",
|
"show",
|
||||||
"reveal"
|
"reveal",
|
||||||
|
"padding",
|
||||||
|
"margin",
|
||||||
|
"guide",
|
||||||
|
"layout",
|
||||||
|
"bleed"
|
||||||
],
|
],
|
||||||
"categories": [
|
"categories": [
|
||||||
"layout"
|
"layout"
|
||||||
|
|||||||
24
icons/panel-left-right-dashed.json
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
{
|
||||||
|
"$schema": "../icon.schema.json",
|
||||||
|
"contributors": [
|
||||||
|
"danielbayley",
|
||||||
|
"ericfennis",
|
||||||
|
"irvineacosta"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"sidebar",
|
||||||
|
"primary",
|
||||||
|
"drawer",
|
||||||
|
"show",
|
||||||
|
"reveal",
|
||||||
|
"padding",
|
||||||
|
"margin",
|
||||||
|
"guide",
|
||||||
|
"layout",
|
||||||
|
"vertical",
|
||||||
|
"bleed"
|
||||||
|
],
|
||||||
|
"categories": [
|
||||||
|
"layout"
|
||||||
|
]
|
||||||
|
}
|
||||||
21
icons/panel-left-right-dashed.svg
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
<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="M16 10V9" />
|
||||||
|
<path d="M16 15v-1" />
|
||||||
|
<path d="M16 21v-2" />
|
||||||
|
<path d="M16 5V3" />
|
||||||
|
<path d="M8 10V9" />
|
||||||
|
<path d="M8 15v-1" />
|
||||||
|
<path d="M8 21v-2" />
|
||||||
|
<path d="M8 5V3" />
|
||||||
|
<rect x="3" y="3" width="18" height="18" rx="2" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 450 B |
@@ -2,14 +2,20 @@
|
|||||||
"$schema": "../icon.schema.json",
|
"$schema": "../icon.schema.json",
|
||||||
"contributors": [
|
"contributors": [
|
||||||
"danielbayley",
|
"danielbayley",
|
||||||
"ericfennis"
|
"ericfennis",
|
||||||
|
"irvineacosta"
|
||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
"sidebar",
|
"sidebar",
|
||||||
"secondary",
|
"secondary",
|
||||||
"drawer",
|
"drawer",
|
||||||
"show",
|
"show",
|
||||||
"reveal"
|
"reveal",
|
||||||
|
"padding",
|
||||||
|
"margin",
|
||||||
|
"guide",
|
||||||
|
"layout",
|
||||||
|
"bleed"
|
||||||
],
|
],
|
||||||
"categories": [
|
"categories": [
|
||||||
"layout"
|
"layout"
|
||||||
|
|||||||
24
icons/panel-top-bottom-dashed.json
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
{
|
||||||
|
"$schema": "../icon.schema.json",
|
||||||
|
"contributors": [
|
||||||
|
"danielbayley",
|
||||||
|
"ericfennis",
|
||||||
|
"irvineacosta"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"sidebar",
|
||||||
|
"primary",
|
||||||
|
"drawer",
|
||||||
|
"show",
|
||||||
|
"reveal",
|
||||||
|
"padding",
|
||||||
|
"margin",
|
||||||
|
"guide",
|
||||||
|
"layout",
|
||||||
|
"horizontal",
|
||||||
|
"bleed"
|
||||||
|
],
|
||||||
|
"categories": [
|
||||||
|
"layout"
|
||||||
|
]
|
||||||
|
}
|
||||||
21
icons/panel-top-bottom-dashed.svg
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
<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="M14 16h1" />
|
||||||
|
<path d="M14 8h1" />
|
||||||
|
<path d="M19 16h2" />
|
||||||
|
<path d="M19 8h2" />
|
||||||
|
<path d="M3 16h2" />
|
||||||
|
<path d="M3 8h2" />
|
||||||
|
<path d="M9 16h1" />
|
||||||
|
<path d="M9 8h1" />
|
||||||
|
<rect x="3" y="3" width="18" height="18" rx="2" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 444 B |
@@ -2,13 +2,19 @@
|
|||||||
"$schema": "../icon.schema.json",
|
"$schema": "../icon.schema.json",
|
||||||
"contributors": [
|
"contributors": [
|
||||||
"danielbayley",
|
"danielbayley",
|
||||||
"ericfennis"
|
"ericfennis",
|
||||||
|
"irvineacosta"
|
||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
"menu bar",
|
"menu bar",
|
||||||
"drawer",
|
"drawer",
|
||||||
"show",
|
"show",
|
||||||
"reveal"
|
"reveal",
|
||||||
|
"padding",
|
||||||
|
"margin",
|
||||||
|
"guide",
|
||||||
|
"layout",
|
||||||
|
"bleed"
|
||||||
],
|
],
|
||||||
"categories": [
|
"categories": [
|
||||||
"layout"
|
"layout"
|
||||||
|
|||||||
@@ -3,6 +3,9 @@
|
|||||||
"contributors": [
|
"contributors": [
|
||||||
"danielbayley"
|
"danielbayley"
|
||||||
],
|
],
|
||||||
|
"deprecated": true,
|
||||||
|
"deprecationReason": "icon.brand",
|
||||||
|
"toBeRemovedInVersion": "v1.0",
|
||||||
"tags": [
|
"tags": [
|
||||||
"railway",
|
"railway",
|
||||||
"train",
|
"train",
|
||||||
|
|||||||
39
icons/rose.json
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
{
|
||||||
|
"$schema": "../icon.schema.json",
|
||||||
|
"contributors": [
|
||||||
|
"danielbayley",
|
||||||
|
"jguddas",
|
||||||
|
"jamiemlaw",
|
||||||
|
"mittalyashu"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"roses",
|
||||||
|
"thorns",
|
||||||
|
"petals",
|
||||||
|
"plant",
|
||||||
|
"stem",
|
||||||
|
"leaves",
|
||||||
|
"spring",
|
||||||
|
"bloom",
|
||||||
|
"blossom",
|
||||||
|
"gardening",
|
||||||
|
"botanical",
|
||||||
|
"flora",
|
||||||
|
"florist",
|
||||||
|
"bouquet",
|
||||||
|
"bunch",
|
||||||
|
"gift",
|
||||||
|
"date",
|
||||||
|
"romance",
|
||||||
|
"romantic",
|
||||||
|
"valentines day",
|
||||||
|
"special occasion"
|
||||||
|
],
|
||||||
|
"categories": [
|
||||||
|
"nature",
|
||||||
|
"seasons",
|
||||||
|
"sustainability",
|
||||||
|
"home",
|
||||||
|
"social"
|
||||||
|
]
|
||||||
|
}
|
||||||
17
icons/rose.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="M17 10h-1a4 4 0 1 1 4-4v.534" />
|
||||||
|
<path d="M17 6h1a4 4 0 0 1 1.42 7.74l-2.29.87a6 6 0 0 1-5.339-10.68l2.069-1.31" />
|
||||||
|
<path d="M4.5 17c2.8-.5 4.4 0 5.5.8s1.8 2.2 2.3 3.7c-2 .4-3.5.4-4.8-.3-1.2-.6-2.3-1.9-3-4.2" />
|
||||||
|
<path d="M9.77 12C4 15 2 22 2 22" />
|
||||||
|
<circle cx="17" cy="8" r="2" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 508 B |
@@ -9,10 +9,10 @@
|
|||||||
stroke-linecap="round"
|
stroke-linecap="round"
|
||||||
stroke-linejoin="round"
|
stroke-linejoin="round"
|
||||||
>
|
>
|
||||||
<path d="M14 22v-4a2 2 0 1 0-4 0v4" />
|
<path d="M14 21v-3a2 2 0 0 0-4 0v3" />
|
||||||
<path d="m18 10 3.447 1.724a1 1 0 0 1 .553.894V20a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-7.382a1 1 0 0 1 .553-.894L6 10" />
|
<path d="M18 5v16" />
|
||||||
<path d="M18 5v17" />
|
<path d="m4 6 7.106-3.79a2 2 0 0 1 1.788 0L20 6" />
|
||||||
<path d="m4 6 7.106-3.553a2 2 0 0 1 1.788 0L20 6" />
|
<path d="m6 11-3.52 2.147a1 1 0 0 0-.48.854V19a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5a1 1 0 0 0-.48-.853L18 11" />
|
||||||
<path d="M6 5v17" />
|
<path d="M6 5v16" />
|
||||||
<circle cx="12" cy="9" r="2" />
|
<circle cx="12" cy="9" r="2" />
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 503 B After Width: | Height: | Size: 496 B |
@@ -2,7 +2,8 @@
|
|||||||
"$schema": "../icon.schema.json",
|
"$schema": "../icon.schema.json",
|
||||||
"contributors": [
|
"contributors": [
|
||||||
"danielbayley",
|
"danielbayley",
|
||||||
"karsa-mistmere"
|
"karsa-mistmere",
|
||||||
|
"jguddas"
|
||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
"shape",
|
"shape",
|
||||||
|
|||||||
@@ -9,6 +9,6 @@
|
|||||||
stroke-linecap="round"
|
stroke-linecap="round"
|
||||||
stroke-linejoin="round"
|
stroke-linejoin="round"
|
||||||
>
|
>
|
||||||
<path d="M5 9c-1.5 1.5-3 3.2-3 5.5A5.5 5.5 0 0 0 7.5 20c1.8 0 3-.5 4.5-2 1.5 1.5 2.7 2 4.5 2a5.5 5.5 0 0 0 5.5-5.5c0-2.3-1.5-4-3-5.5l-7-7-7 7Z" />
|
|
||||||
<path d="M12 18v4" />
|
<path d="M12 18v4" />
|
||||||
|
<path d="M2 14.499a5.5 5.5 0 0 0 9.591 3.675.6.6 0 0 1 .818.001A5.5 5.5 0 0 0 22 14.5c0-2.29-1.5-4-3-5.5l-5.492-5.312a2 2 0 0 0-3-.02L5 8.999c-1.5 1.5-3 3.2-3 5.5" />
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 381 B After Width: | Height: | Size: 401 B |
25
icons/square-star.json
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
{
|
||||||
|
"$schema": "../icon.schema.json",
|
||||||
|
"contributors": [
|
||||||
|
"karsa-mistmere"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"badge",
|
||||||
|
"medal",
|
||||||
|
"honour",
|
||||||
|
"decoration",
|
||||||
|
"order",
|
||||||
|
"pin",
|
||||||
|
"laurel",
|
||||||
|
"trophy",
|
||||||
|
"medallion",
|
||||||
|
"insignia",
|
||||||
|
"bronze",
|
||||||
|
"silver",
|
||||||
|
"gold"
|
||||||
|
],
|
||||||
|
"categories": [
|
||||||
|
"sports",
|
||||||
|
"gaming"
|
||||||
|
]
|
||||||
|
}
|
||||||
14
icons/square-star.svg
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
<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="M11.035 7.69a1 1 0 0 1 1.909.024l.737 1.452a1 1 0 0 0 .737.535l1.634.256a1 1 0 0 1 .588 1.806l-1.172 1.168a1 1 0 0 0-.282.866l.259 1.613a1 1 0 0 1-1.541 1.134l-1.465-.75a1 1 0 0 0-.912 0l-1.465.75a1 1 0 0 1-1.539-1.133l.258-1.613a1 1 0 0 0-.282-.866l-1.156-1.153a1 1 0 0 1 .572-1.822l1.633-.256a1 1 0 0 0 .737-.535z" />
|
||||||
|
<rect x="3" y="3" width="18" height="18" rx="2" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 592 B |
@@ -9,9 +9,7 @@
|
|||||||
stroke-linecap="round"
|
stroke-linecap="round"
|
||||||
stroke-linejoin="round"
|
stroke-linejoin="round"
|
||||||
>
|
>
|
||||||
<path d="m2 7 4.41-4.41A2 2 0 0 1 7.83 2h8.34a2 2 0 0 1 1.42.59L22 7" />
|
<path d="M15 21v-5a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v5" />
|
||||||
<path d="M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8" />
|
<path d="M17.774 10.31a1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.451 0 1.12 1.12 0 0 0-1.548 0 2.5 2.5 0 0 1-3.452 0 1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.77-3.248l2.889-4.184A2 2 0 0 1 7 2h10a2 2 0 0 1 1.653.873l2.895 4.192a2.5 2.5 0 0 1-3.774 3.244" />
|
||||||
<path d="M15 22v-4a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v4" />
|
<path d="M4 10.95V19a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8.05" />
|
||||||
<path d="M2 7h20" />
|
|
||||||
<path d="M22 7v3a2 2 0 0 1-2 2a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 16 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 12 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 8 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 4 12a2 2 0 0 1-2-2V7" />
|
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 708 B After Width: | Height: | Size: 587 B |
@@ -9,8 +9,9 @@
|
|||||||
stroke-linecap="round"
|
stroke-linecap="round"
|
||||||
stroke-linejoin="round"
|
stroke-linejoin="round"
|
||||||
>
|
>
|
||||||
<path d="M12 2v1" />
|
<path d="M12 13v7a2 2 0 0 0 4 0" />
|
||||||
<path d="M15.5 21a1.85 1.85 0 0 1-3.5-1v-8H2a10 10 0 0 1 3.428-6.575" />
|
<path d="M12 2v2" />
|
||||||
<path d="M17.5 12H22A10 10 0 0 0 9.004 3.455" />
|
<path d="M18.656 13h2.336a1 1 0 0 0 .97-1.274 10.284 10.284 0 0 0-12.07-7.51" />
|
||||||
<path d="m2 2 20 20" />
|
<path d="m2 2 20 20" />
|
||||||
|
<path d="M5.961 5.957a10.28 10.28 0 0 0-3.922 5.769A1 1 0 0 0 3 13h10" />
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 383 B After Width: | Height: | Size: 454 B |
@@ -9,7 +9,7 @@
|
|||||||
stroke-linecap="round"
|
stroke-linecap="round"
|
||||||
stroke-linejoin="round"
|
stroke-linejoin="round"
|
||||||
>
|
>
|
||||||
<path d="M22 12a10.06 10.06 1 0 0-20 0Z" />
|
<path d="M12 13v7a2 2 0 0 0 4 0" />
|
||||||
<path d="M12 12v8a2 2 0 0 0 4 0" />
|
<path d="M12 2v2" />
|
||||||
<path d="M12 2v1" />
|
<path d="M20.992 13a1 1 0 0 0 .97-1.274 10.284 10.284 0 0 0-19.923 0A1 1 0 0 0 3 13z" />
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 315 B After Width: | Height: | Size: 360 B |
@@ -2,9 +2,19 @@
|
|||||||
"$schema": "../icon.schema.json",
|
"$schema": "../icon.schema.json",
|
||||||
"contributors": [
|
"contributors": [
|
||||||
"karsa-mistmere",
|
"karsa-mistmere",
|
||||||
"ericfennis"
|
"ericfennis",
|
||||||
|
"jguddas"
|
||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
|
"background",
|
||||||
|
"texture",
|
||||||
|
"image",
|
||||||
|
"art",
|
||||||
|
"design",
|
||||||
|
"visual",
|
||||||
|
"decor",
|
||||||
|
"pattern",
|
||||||
|
"screen",
|
||||||
"cover",
|
"cover",
|
||||||
"lock screen"
|
"lock screen"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -9,8 +9,9 @@
|
|||||||
stroke-linecap="round"
|
stroke-linecap="round"
|
||||||
stroke-linejoin="round"
|
stroke-linejoin="round"
|
||||||
>
|
>
|
||||||
<circle cx="8" cy="9" r="2" />
|
|
||||||
<path d="m9 17 6.1-6.1a2 2 0 0 1 2.81.01L22 15V5a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2" />
|
|
||||||
<path d="M8 21h8" />
|
|
||||||
<path d="M12 17v4" />
|
<path d="M12 17v4" />
|
||||||
|
<path d="M8 21h8" />
|
||||||
|
<path d="m9 17 6.1-6.1a2 2 0 0 1 2.81.01L22 15" />
|
||||||
|
<circle cx="8" cy="9" r="2" />
|
||||||
|
<rect x="2" y="3" width="20" height="14" rx="2" />
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 407 B After Width: | Height: | Size: 394 B |
@@ -7,7 +7,9 @@
|
|||||||
"tags": [
|
"tags": [
|
||||||
"cancel",
|
"cancel",
|
||||||
"close",
|
"close",
|
||||||
|
"cross",
|
||||||
"delete",
|
"delete",
|
||||||
|
"ex",
|
||||||
"remove",
|
"remove",
|
||||||
"times",
|
"times",
|
||||||
"clear",
|
"clear",
|
||||||
|
|||||||
@@ -3,27 +3,32 @@ import * as iconAndAliases from './iconsAndAliases';
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Replaces all elements with matching nameAttr with the defined icons
|
* Replaces all elements with matching nameAttr with the defined icons
|
||||||
* @param {{ icons?: object, nameAttr?: string, attrs?: object }} options
|
* @param {{ icons?: object, nameAttr?: string, attrs?: object, root?: Element | Document }} options
|
||||||
*/
|
*/
|
||||||
const createIcons = ({ icons = {}, nameAttr = 'data-lucide', attrs = {} } = {}) => {
|
const createIcons = ({
|
||||||
|
icons = {},
|
||||||
|
nameAttr = 'data-lucide',
|
||||||
|
attrs = {},
|
||||||
|
root = document,
|
||||||
|
}: { icons?: object; nameAttr?: string; attrs?: object; root?: Element | Document } = {}) => {
|
||||||
if (!Object.values(icons).length) {
|
if (!Object.values(icons).length) {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
"Please provide an icons object.\nIf you want to use all the icons you can import it like:\n `import { createIcons, icons } from 'lucide';\nlucide.createIcons({icons});`",
|
"Please provide an icons object.\nIf you want to use all the icons you can import it like:\n `import { createIcons, icons } from 'lucide';\nlucide.createIcons({icons});`",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (typeof document === 'undefined') {
|
if (typeof root === 'undefined') {
|
||||||
throw new Error('`createIcons()` only works in a browser environment.');
|
throw new Error('`createIcons()` only works in a browser environment.');
|
||||||
}
|
}
|
||||||
|
|
||||||
const elementsToReplace = document.querySelectorAll(`[${nameAttr}]`);
|
const elementsToReplace = root.querySelectorAll(`[${nameAttr}]`);
|
||||||
Array.from(elementsToReplace).forEach((element) =>
|
Array.from(elementsToReplace).forEach((element) =>
|
||||||
replaceElement(element, { nameAttr, icons, attrs }),
|
replaceElement(element, { nameAttr, icons, attrs }),
|
||||||
);
|
);
|
||||||
|
|
||||||
/** @todo: remove this block in v1.0 */
|
/** @todo: remove this block in v1.0 */
|
||||||
if (nameAttr === 'data-lucide') {
|
if (nameAttr === 'data-lucide') {
|
||||||
const deprecatedElements = document.querySelectorAll('[icon-name]');
|
const deprecatedElements = root.querySelectorAll('[icon-name]');
|
||||||
if (deprecatedElements.length > 0) {
|
if (deprecatedElements.length > 0) {
|
||||||
console.warn(
|
console.warn(
|
||||||
'[Lucide] Some icons were found with the now deprecated icon-name attribute. These will still be replaced for backwards compatibility, but will no longer be supported in v1.0 and you should switch to data-lucide',
|
'[Lucide] Some icons were found with the now deprecated icon-name attribute. These will still be replaced for backwards compatibility, but will no longer be supported in v1.0 and you should switch to data-lucide',
|
||||||
|
|||||||
@@ -27,6 +27,22 @@ describe('createIcons', () => {
|
|||||||
expect(hasSvg).toBeTruthy();
|
expect(hasSvg).toBeTruthy();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should only execute given provided context', () => {
|
||||||
|
document.body.innerHTML = `<div id="context"><i data-lucide="volume-2"></i></div><i data-lucide="funnel"></i>`;
|
||||||
|
|
||||||
|
const context = document.querySelector('#context')!;
|
||||||
|
createIcons({
|
||||||
|
icons,
|
||||||
|
root: context,
|
||||||
|
});
|
||||||
|
|
||||||
|
const hasSvg = !!document.querySelector('svg.lucide-volume-2');
|
||||||
|
const hasUnreplaced = !!document.querySelector('i[data-lucide="funnel"]');
|
||||||
|
|
||||||
|
expect(hasSvg).toBeTruthy();
|
||||||
|
expect(hasUnreplaced).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
it('should add custom attributes', () => {
|
it('should add custom attributes', () => {
|
||||||
document.body.innerHTML = `<i data-lucide="volume-2" class="lucide"></i>`;
|
document.body.innerHTML = `<i data-lucide="volume-2" class="lucide"></i>`;
|
||||||
|
|
||||||
|
|||||||
3509
pnpm-lock.yaml
generated
@@ -30,17 +30,23 @@ if (changedFiles.length === 0) {
|
|||||||
process.exit(0);
|
process.exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
const getImageTagsByFiles = (files: string[], getBaseUrl: (file: string) => string, width?: number) =>
|
const getImageTagsByFiles = (
|
||||||
|
files: string[],
|
||||||
|
getBaseUrl: (file: string) => string,
|
||||||
|
width?: number,
|
||||||
|
linkToLucideStudio = false,
|
||||||
|
) =>
|
||||||
files.map((file) => {
|
files.map((file) => {
|
||||||
const svgContent = fs.readFileSync(path.join(process.cwd(), file), 'utf-8');
|
const svgContent = fs.readFileSync(path.join(process.cwd(), file), 'utf-8');
|
||||||
const strippedAttrsSVG = svgContent.replace(/<svg[^>]*>/, '<svg>');
|
const strippedAttrsSVG = svgContent.replace(/<svg[^>]*>/, '<svg>');
|
||||||
const minifiedSvg = minifySvg(strippedAttrsSVG);
|
const minifiedSvg = minifySvg(strippedAttrsSVG);
|
||||||
|
const name = path.basename(file, '.svg');
|
||||||
|
|
||||||
const base64 = Buffer.from(minifiedSvg).toString('base64');
|
const base64 = Buffer.from(minifiedSvg).toString('base64');
|
||||||
const url = getBaseUrl(file);
|
const url = getBaseUrl(file);
|
||||||
const widthAttr = width ? `width="${width}"` : '';
|
const widthAttr = width ? `width="${width}"` : '';
|
||||||
|
|
||||||
return `<img title="${file}" alt="${file}" ${widthAttr} src="${url}/${base64}.svg"/>`;
|
return `${linkToLucideStudio ? `<a title="Open ${name} in lucide studio" target="_blank" href="https://studio.lucide.dev/edit?value=${encodeURI(minifiedSvg)}&name=${name}">` : ''}<img title="${name}" alt="${name}" ${widthAttr} src="${url}/${base64}.svg"/>${linkToLucideStudio ? '</a>' : ''}`;
|
||||||
});
|
});
|
||||||
|
|
||||||
const svgFiles = await readSvgDirectory(ICONS_DIR);
|
const svgFiles = await readSvgDirectory(ICONS_DIR);
|
||||||
@@ -73,25 +79,25 @@ const changeFiles3pxStrokeImageTags = getImageTagsByFiles(
|
|||||||
() => `${BASE_URL}/stroke-width/3`,
|
() => `${BASE_URL}/stroke-width/3`,
|
||||||
).join('');
|
).join('');
|
||||||
|
|
||||||
const changeFilesLowDPIImageTags16 = getImageTagsByFiles(
|
const changeFilesLowDPIImageTags16 = getImageTagsByFiles(changedFiles, (file) => {
|
||||||
changedFiles,
|
const iconName = path.basename(file, '.svg');
|
||||||
() => `${BASE_URL}/dpi/16`,
|
return `${BASE_URL}/dpi/${iconName}/16`;
|
||||||
).join(' ');
|
}).join(' ');
|
||||||
|
|
||||||
const changeFilesLowDPIImageTags24 = getImageTagsByFiles(
|
const changeFilesLowDPIImageTags24 = getImageTagsByFiles(changedFiles, (file) => {
|
||||||
changedFiles,
|
const iconName = path.basename(file, '.svg');
|
||||||
() => `${BASE_URL}/dpi/24`,
|
return `${BASE_URL}/dpi/${iconName}/24`;
|
||||||
).join(' ');
|
}).join(' ');
|
||||||
|
|
||||||
const changeFilesLowDPIImageTags32 = getImageTagsByFiles(
|
const changeFilesLowDPIImageTags32 = getImageTagsByFiles(changedFiles, (file) => {
|
||||||
changedFiles,
|
const iconName = path.basename(file, '.svg');
|
||||||
() => `${BASE_URL}/dpi/32`,
|
return `${BASE_URL}/dpi/${iconName}/32`;
|
||||||
).join(' ');
|
}).join(' ');
|
||||||
|
|
||||||
const changeFilesLowDPIImageTags48 = getImageTagsByFiles(
|
const changeFilesLowDPIImageTags48 = getImageTagsByFiles(changedFiles, (file) => {
|
||||||
changedFiles,
|
const iconName = path.basename(file, '.svg');
|
||||||
() => `${BASE_URL}/dpi/48`,
|
return `${BASE_URL}/dpi/${iconName}/48`;
|
||||||
).join(' ');
|
}).join(' ');
|
||||||
|
|
||||||
const changeFilesXRayImageTags = getImageTagsByFiles(
|
const changeFilesXRayImageTags = getImageTagsByFiles(
|
||||||
changedFiles,
|
changedFiles,
|
||||||
@@ -101,6 +107,7 @@ const changeFilesXRayImageTags = getImageTagsByFiles(
|
|||||||
return `${BASE_URL}/${iconName}`;
|
return `${BASE_URL}/${iconName}`;
|
||||||
},
|
},
|
||||||
400,
|
400,
|
||||||
|
true,
|
||||||
).join(' ');
|
).join(' ');
|
||||||
|
|
||||||
const changeFilesDiffImageTags = getImageTagsByFiles(
|
const changeFilesDiffImageTags = getImageTagsByFiles(
|
||||||
|
|||||||