Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ec3c3906f7 | ||
|
|
eb3c04d059 | ||
|
|
796dad298f | ||
|
|
3f4a337c5d | ||
|
|
47ad47f321 | ||
|
|
c967b3225c | ||
|
|
0516a35c56 | ||
|
|
48fb4d0079 | ||
|
|
672d891a6b | ||
|
|
d8a7841d33 | ||
|
|
716ae6d4e9 | ||
|
|
cd6ee554c8 | ||
|
|
be0956479b | ||
|
|
9f3692dee3 | ||
|
|
af82050077 | ||
|
|
50de1605e1 | ||
|
|
56b50bba8a | ||
|
|
bd4cdc5f39 | ||
|
|
fb617bfd6e | ||
|
|
50eacd724a | ||
|
|
06e26d6ff1 | ||
|
|
a79d711591 | ||
|
|
1bcad8fccb | ||
|
|
8d8b8744d1 | ||
|
|
23f9abc4ed | ||
|
|
bc0e5d1929 | ||
|
|
ce14971fa6 | ||
|
|
f68bec5ad1 | ||
|
|
1a60fd28ed | ||
|
|
c42aba062d | ||
|
|
33a44aa8b0 | ||
|
|
59978cecf8 | ||
|
|
2c9b468404 | ||
|
|
7c758075a3 | ||
|
|
15804aa9eb | ||
|
|
86eb89c794 | ||
|
|
a08ebd74dc | ||
|
|
51b9aa19de | ||
|
|
c0ea22e282 | ||
|
|
2e88f33494 | ||
|
|
c5b33f81f8 | ||
|
|
f9d8161e6a | ||
|
|
e110ccf92f | ||
|
|
75b55160aa | ||
|
|
7367c8f0fc | ||
|
|
a7c781bd43 | ||
|
|
62527757e2 |
@@ -1,11 +0,0 @@
|
||||
dist
|
||||
build
|
||||
coverage
|
||||
lib
|
||||
tests
|
||||
node_modules
|
||||
.eslintrc.js
|
||||
docs/images
|
||||
docs/**/examples/
|
||||
packages/lucide-react/dynamicIconImports.js
|
||||
packages/angular/.angular
|
||||
@@ -1,75 +0,0 @@
|
||||
const DEFAULT_ATTRS = require('./tools/build-icons/render/default-attrs.json');
|
||||
|
||||
module.exports = {
|
||||
root: true,
|
||||
env: {
|
||||
browser: true,
|
||||
node: true,
|
||||
},
|
||||
extends: ['airbnb-base', 'prettier'],
|
||||
plugins: ['import', '@html-eslint'],
|
||||
rules: {
|
||||
'no-console': 'off',
|
||||
'no-param-reassign': 'off',
|
||||
'no-shadow': 'off',
|
||||
'no-use-before-define': 'off',
|
||||
'import/no-extraneous-dependencies': [
|
||||
'error',
|
||||
{
|
||||
devDependencies: ['**/*.test.js', '**/*.spec.js', '**/scripts/**'],
|
||||
},
|
||||
],
|
||||
'import/extensions': [
|
||||
'error',
|
||||
{
|
||||
pattern: {
|
||||
mjs: 'always',
|
||||
json: 'always',
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
parserOptions: {
|
||||
tsconfigRootDir: __dirname,
|
||||
project: ['./docs/tsconfig.json', './packages/*/tsconfig.json'],
|
||||
ecmaVersion: 'latest',
|
||||
sourceType: 'module',
|
||||
},
|
||||
overrides: [
|
||||
{
|
||||
files: ['./icons/*.svg'],
|
||||
parser: '@html-eslint/parser',
|
||||
rules: {
|
||||
'@html-eslint/require-doctype': 'off',
|
||||
'@html-eslint/no-duplicate-attrs': 'error',
|
||||
'@html-eslint/no-inline-styles': 'error',
|
||||
'@html-eslint/require-attrs': [
|
||||
'error',
|
||||
...Object.entries(DEFAULT_ATTRS).map(([attr, value]) => ({
|
||||
tag: 'svg',
|
||||
attr,
|
||||
value: String(value),
|
||||
})),
|
||||
],
|
||||
'@html-eslint/indent': ['error', 2],
|
||||
'@html-eslint/no-multiple-empty-lines': ['error', { max: 0 }],
|
||||
'@html-eslint/no-extra-spacing-attrs': [
|
||||
'error',
|
||||
{
|
||||
enforceBeforeSelfClose: true,
|
||||
},
|
||||
],
|
||||
'@html-eslint/require-closing-tags': [
|
||||
'error',
|
||||
{
|
||||
selfClosing: 'always',
|
||||
allowSelfClosingCustom: true,
|
||||
},
|
||||
],
|
||||
'@html-eslint/element-newline': 'error',
|
||||
'@html-eslint/no-trailing-spaces': 'error',
|
||||
'@html-eslint/quotes': 'error',
|
||||
},
|
||||
},
|
||||
],
|
||||
};
|
||||
@@ -0,0 +1,49 @@
|
||||
title: 'Icon Request: '
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Before submitting an icon request check if it has already been requested. If there is an open request, please add a 👍.
|
||||
|
||||
> [!CAUTION]
|
||||
> 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 have been phased out. Consider using https://simpleicons.org, which offers purpose-built SVGs that are also on a 24×24px grid.
|
||||
- type: input
|
||||
id: name
|
||||
attributes:
|
||||
label: Icon name
|
||||
description: What should this icon depict? For multiple icons, provide a comma-separated list.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: use-cases
|
||||
attributes:
|
||||
label: Use cases
|
||||
description: Why do you need this icon? Include at least two real-life use cases per requested icon, avoiding generic descriptions like "it's a car icon".
|
||||
placeholder: e.g. I need a star icon to use in my rating system.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: design-ideas
|
||||
attributes:
|
||||
label: Design ideas
|
||||
description: What should this icon look like? Provide simple, minimalistic icon examples from other sets or your own drafts to help us visualize your request.
|
||||
validations:
|
||||
required: true
|
||||
- type: checkboxes
|
||||
id: checklist
|
||||
attributes:
|
||||
label: Checklist
|
||||
description: Please review the following checklist before submitting your request.
|
||||
options:
|
||||
- label: I have searched if someone has submitted a similar request before and there weren't any.
|
||||
required: true
|
||||
- label: I have searched existing icons to make sure it does not already exist and I didn't find any.
|
||||
required: true
|
||||
- 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
|
||||
- label: I am not requesting an icon that includes religious, war/violence related, political imagery or hate symbols.
|
||||
required: true
|
||||
- label: I have provided appropriate use cases for the icon(s) requested.
|
||||
required: true
|
||||
@@ -78,8 +78,10 @@ updates:
|
||||
- 'vite-plugin-*'
|
||||
linting-deps:
|
||||
patterns:
|
||||
- '@eslint/*'
|
||||
- '@html-eslint/*'
|
||||
- '@typescript-eslint/*'
|
||||
- 'angular-eslint'
|
||||
- 'cspell'
|
||||
- 'eslint'
|
||||
- 'eslint-*'
|
||||
|
||||
@@ -3,6 +3,8 @@ name: Close Icon Requests with Brand Terms
|
||||
on:
|
||||
issues:
|
||||
types: [opened]
|
||||
discussion:
|
||||
types: [created]
|
||||
|
||||
permissions: {}
|
||||
|
||||
@@ -16,12 +18,13 @@ jobs:
|
||||
permissions:
|
||||
contents: read
|
||||
issues: write
|
||||
discussions: write
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
|
||||
- name: Load stopwords from JSON & check issue title & body
|
||||
if: contains(github.event.issue.labels.*.name, '🙌 icon request')
|
||||
if: github.event_name == 'issues' && contains(github.event.issue.labels.*.name, '🙌 icon request')
|
||||
run: |
|
||||
ISSUE_TITLE=$(jq -r '.issue.title' "$GITHUB_EVENT_PATH")
|
||||
ISSUE_BODY=$(jq -r '.issue.body // ""' "$GITHUB_EVENT_PATH")
|
||||
@@ -34,6 +37,8 @@ jobs:
|
||||
if echo "$ISSUE_TITLE" | grep -iqE "$SAFE_KEY|$SAFE_VALUE" || \
|
||||
{ [ -n "$ICON_NAME_SECTION" ] && echo "$ICON_NAME_SECTION" | grep -iqE "$SAFE_KEY|$SAFE_VALUE"; }; then
|
||||
|
||||
URL_ENCODED_VALUE=$(jq -rn --arg val "$VALUE" '$val|@uri')
|
||||
|
||||
gh issue close ${{ github.event.issue.number }} \
|
||||
--reason "not planned" \
|
||||
--comment "It looks like this request is about **${VALUE}**, which is a brand logo.
|
||||
@@ -42,7 +47,7 @@ jobs:
|
||||
|
||||
[Click here to read our official statement about brand logos in Lucide.](https://github.com/lucide-icons/lucide/blob/main/BRAND_LOGOS_STATEMENT.md)
|
||||
|
||||
You can [search for similar issues.](https://github.com/lucide-icons/lucide/issues?q=is%3Aissue+${VALUE})
|
||||
You can [search for similar issues.](https://github.com/lucide-icons/lucide/issues?q=is%3Aissue+${URL_ENCODED_VALUE})
|
||||
|
||||
We’re always happy to help on [Discord](https://discord.gg/EH6nSts)."
|
||||
|
||||
@@ -50,3 +55,56 @@ jobs:
|
||||
exit 0
|
||||
fi
|
||||
done
|
||||
|
||||
- name: Load stopwords from JSON & check discussion title & body
|
||||
if: github.event_name == 'discussion' && github.event.discussion.category.slug == 'icon-design'
|
||||
run: |
|
||||
DISCUSSION_TITLE=$(jq -r '.discussion.title' "$GITHUB_EVENT_PATH")
|
||||
DISCUSSION_BODY=$(jq -r '.discussion.body // ""' "$GITHUB_EVENT_PATH")
|
||||
ICON_NAME_SECTION=$(printf '%s\n' "$DISCUSSION_BODY" | awk '/### Icon name/{flag=1; next} /^### /{flag=0} flag')
|
||||
|
||||
jq -r 'to_entries[] | "\(.key) \(.value)"' brand-stopwords.json | while read -r KEY VALUE; do
|
||||
SAFE_KEY=$(printf '%s\n' "$KEY" | sed 's/[][\.^$*]/\\&/g')
|
||||
SAFE_VALUE=$(printf '%s\n' "$VALUE" | sed 's/[][\.^$*]/\\&/g')
|
||||
|
||||
if echo "$DISCUSSION_TITLE" | grep -iqE "$SAFE_KEY|$SAFE_VALUE" || \
|
||||
{ [ -n "$ICON_NAME_SECTION" ] && echo "$ICON_NAME_SECTION" | grep -iqE "$SAFE_KEY|$SAFE_VALUE"; }; then
|
||||
|
||||
URL_ENCODED_VALUE=$(jq -rn --arg val "$VALUE" '$val|@uri')
|
||||
DISCUSSION_NODE_ID=$(jq -r '.discussion.node_id' "$GITHUB_EVENT_PATH")
|
||||
COMMENT_BODY="It looks like this request is about **${VALUE}**, which is a brand logo.
|
||||
|
||||
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.](https://github.com/lucide-icons/lucide/blob/main/BRAND_LOGOS_STATEMENT.md)
|
||||
|
||||
You can [search for similar discussions.](https://github.com/lucide-icons/lucide/discussions/categories/icon-design?discussions_q=category%253A%22Icon+design%22+${URL_ENCODED_VALUE})
|
||||
|
||||
We’re always happy to help on [Discord](https://discord.gg/EH6nSts)."
|
||||
|
||||
# Add comment to discussion
|
||||
gh api graphql -f query='
|
||||
mutation($discussionId: ID!, $body: String!) {
|
||||
addDiscussionComment(input: {discussionId: $discussionId, body: $body}) {
|
||||
comment { id }
|
||||
}
|
||||
}' -f discussionId="$DISCUSSION_NODE_ID" -f body="$COMMENT_BODY"
|
||||
|
||||
# Close discussion
|
||||
gh api graphql -f query='
|
||||
mutation($discussionId: ID!) {
|
||||
closeDiscussion(input: {discussionId: $discussionId}) {
|
||||
discussion { closed }
|
||||
}
|
||||
}' -f discussionId="$DISCUSSION_NODE_ID"
|
||||
|
||||
# Lock discussion
|
||||
gh api graphql -f query='
|
||||
mutation($lockableId: ID!, $reason: LockReason) {
|
||||
lockLockable(input: {lockableId: $lockableId, lockReason: $reason}) {
|
||||
lockedRecord { locked }
|
||||
}
|
||||
}' -f lockableId="$DISCUSSION_NODE_ID" -f reason="SPAM"
|
||||
exit 0
|
||||
fi
|
||||
done
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
.next
|
||||
.obsidian
|
||||
.now
|
||||
.idea
|
||||
.cache
|
||||
.env
|
||||
node_modules
|
||||
dist
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"cSpell.words": ["devs", "preact", "Preact"],
|
||||
"cSpell.words": ["devs", "linecap", "linejoin", "preact", "Preact"],
|
||||
"eslint.enable": true,
|
||||
"eslint.validate": ["javascript", "svg"],
|
||||
"svg.preview.background": "editor"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"$schema": "../category.schema.json",
|
||||
"title": "Emoji",
|
||||
"icon": "smile"
|
||||
"icon": "face-slightly-smiling"
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import React, { Fragment } from 'react';
|
||||
import React from 'react';
|
||||
|
||||
interface BackdropProps {
|
||||
src: string;
|
||||
|
||||
@@ -3,7 +3,6 @@ import pathToPoints from './path-to-points';
|
||||
import { Path, PathProps } from './types';
|
||||
|
||||
export const GapViolationHighlight = ({
|
||||
radius,
|
||||
stroke,
|
||||
strokeWidth,
|
||||
strokeOpacity,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import React, { Fragment } from 'react';
|
||||
import React from 'react';
|
||||
import { PathProps, Path } from './types';
|
||||
import getPaths, { assert } from './utils';
|
||||
import { GapViolationHighlight } from './GapViolationHighlight.tsx';
|
||||
@@ -293,7 +293,7 @@ const Radii = ({
|
||||
...props
|
||||
}: { paths: Path[] } & PathProps<
|
||||
'strokeWidth' | 'stroke' | 'strokeDasharray' | 'strokeOpacity',
|
||||
any
|
||||
never
|
||||
>) => {
|
||||
return (
|
||||
<g
|
||||
@@ -361,12 +361,12 @@ const Radii = ({
|
||||
const Handles = ({
|
||||
paths,
|
||||
...props
|
||||
}: { paths: Path[] } & PathProps<'strokeWidth' | 'stroke' | 'strokeOpacity', any>) => (
|
||||
}: { paths: Path[] } & PathProps<'strokeWidth' | 'stroke' | 'strokeOpacity', never>) => (
|
||||
<g
|
||||
className="svg-preview-handles-group"
|
||||
{...props}
|
||||
>
|
||||
{paths.map(({ c, prev, next, cp1, cp2 }, i) => (
|
||||
{paths.map(({ prev, next, cp1, cp2 }, i) => (
|
||||
<React.Fragment key={i}>
|
||||
{cp1 && <path d={`M${prev.x} ${prev.y} ${cp1.x} ${cp1.y}`} />}
|
||||
{cp1 && (
|
||||
|
||||
@@ -12,7 +12,9 @@ function pathToPoints({ d, prev, next }: Path, interval = 1) {
|
||||
points.push(commander.getPointAtLength(i));
|
||||
}
|
||||
points.push(next);
|
||||
} catch (err) {}
|
||||
} catch (err) {
|
||||
console.warn(`Failed to convert path to points for d="${d}": ${err}`);
|
||||
}
|
||||
return points;
|
||||
}
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@ export const getCommands = (src: string) =>
|
||||
.flatMap(({ d, name }, idx) =>
|
||||
new SVGPathData(d)
|
||||
.toAbs()
|
||||
// @ts-ignore
|
||||
// @ts-expect-error `commands` is typed as a union of command types svgson does not narrow
|
||||
.commands.map((c, cIdx) => ({ ...c, id: idx, idx: cIdx, name })),
|
||||
);
|
||||
|
||||
@@ -242,7 +242,7 @@ const getPaths = (src: string) => {
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
// @ts-ignore
|
||||
// @ts-expect-error every command type is handled above, so `c` is not `never` here
|
||||
assertNever(c);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,11 +13,11 @@ const getIconCodes = (): CodeExampleType => {
|
||||
title: 'Vanilla',
|
||||
code: `\
|
||||
<script>
|
||||
import { createIcons, $CamelCase } from 'lucide';
|
||||
import { createIcons, $PascalCase } from 'lucide';
|
||||
|
||||
createIcons({
|
||||
icons: {
|
||||
$CamelCase
|
||||
$PascalCase
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
@@ -9,11 +9,9 @@ export const hash = (string: string, seed = 5381) => {
|
||||
let i = string.length;
|
||||
|
||||
while (i) {
|
||||
// eslint-disable-next-line no-bitwise, no-plusplus
|
||||
seed = (seed * 33) ^ string.charCodeAt(--i);
|
||||
}
|
||||
|
||||
// eslint-disable-next-line no-bitwise
|
||||
return (seed >>> 0).toString(36).substr(0, 6);
|
||||
};
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import type MarkdownIt from 'markdown-it';
|
||||
import type { RenderRule } from 'markdown-it/lib/renderer.mjs';
|
||||
import type Token from 'markdown-it/lib/token.mjs';
|
||||
import container from 'markdown-it-container';
|
||||
import sandpackTheme from '../theme/sandpackTheme.json';
|
||||
|
||||
@@ -21,14 +22,10 @@ export default function sandpackPlugin(md: MarkdownIt, pluginOptions: SnackParam
|
||||
throw new Error('MarkdownIt instance is required for sandpackPlugin');
|
||||
}
|
||||
const escapeHtml = md?.utils?.escapeHtml;
|
||||
const defaultFence =
|
||||
md.renderer.rules.fence ||
|
||||
((tokens, idx, options, env, self) => self.renderToken(tokens, idx, options));
|
||||
|
||||
const renderSandbox = (tokenList: any[], index: number) => {
|
||||
const renderFunc = (tokens: any[], idx: number) => {
|
||||
const renderSandbox = (tokenList: Token[], index: number) => {
|
||||
const renderFunc = (tokens: Token[], idx: number) => {
|
||||
if (tokens[idx].nesting === 1) {
|
||||
const fileAttr: string[] = [];
|
||||
const attrs = Object.fromEntries(tokens[idx].attrs || []);
|
||||
|
||||
const files: Record<
|
||||
@@ -47,7 +44,7 @@ export default function sandpackPlugin(md: MarkdownIt, pluginOptions: SnackParam
|
||||
) {
|
||||
if (tokens[i].type === 'fence' && tokens[i].tag === 'code') {
|
||||
const info = tokens[i].info ?? '';
|
||||
const [lang, fileName, params = ''] = info.split(' ');
|
||||
const [, fileName, params = ''] = info.split(' ');
|
||||
|
||||
const active = params.includes('[active]');
|
||||
const hidden = params.includes('[hidden]');
|
||||
@@ -57,15 +54,9 @@ export default function sandpackPlugin(md: MarkdownIt, pluginOptions: SnackParam
|
||||
if (fileName && code) {
|
||||
files[fileName] = {
|
||||
code,
|
||||
...(active && { active: true }),
|
||||
...(hidden && { hidden: true }),
|
||||
};
|
||||
|
||||
if (active) {
|
||||
(files[fileName] as any).active = true;
|
||||
}
|
||||
|
||||
if (hidden) {
|
||||
(files[fileName] as any).hidden = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -122,7 +113,7 @@ export default function sandpackPlugin(md: MarkdownIt, pluginOptions: SnackParam
|
||||
return renderFunc(tokenList, index);
|
||||
};
|
||||
|
||||
function createCodeGroup(md: MarkdownIt): ContainerArgs {
|
||||
function createCodeGroup(): ContainerArgs {
|
||||
return [
|
||||
container,
|
||||
'sandpack',
|
||||
@@ -134,5 +125,5 @@ export default function sandpackPlugin(md: MarkdownIt, pluginOptions: SnackParam
|
||||
];
|
||||
}
|
||||
|
||||
md.use(...createCodeGroup(md));
|
||||
md.use(...createCodeGroup());
|
||||
}
|
||||
|
||||
@@ -73,7 +73,6 @@ export default function snackPlayerPlugin(md: MarkdownIt) {
|
||||
'react-native-safe-area-context' + (params.dependencies ? `,${params.dependencies}` : '');
|
||||
const platform = params.platform ?? 'web';
|
||||
const supportedPlatforms = params.supportedPlatforms ?? 'ios,android,web';
|
||||
const theme = params.theme ?? 'light';
|
||||
const preview = params.preview ?? 'true';
|
||||
const loading = params.loading ?? 'lazy';
|
||||
const deviceAppearance = params.deviceAppearance ?? 'dark';
|
||||
@@ -88,7 +87,7 @@ export default function snackPlayerPlugin(md: MarkdownIt) {
|
||||
` data-snack-dependencies="${escapeHtml(dependencies)}"` +
|
||||
` data-snack-platform="${escapeHtml(platform)}"` +
|
||||
` data-snack-supported-platforms="${escapeHtml(supportedPlatforms)}"` +
|
||||
// ` data-snack-theme="${escapeHtml(theme)}"` +
|
||||
// ` data-snack-theme="${escapeHtml(params.theme ?? 'light')}"` +
|
||||
` data-snack-preview="${escapeHtml(preview)}"` +
|
||||
` data-snack-loading="${escapeHtml(loading)}"` +
|
||||
` data-snack-device-appearance="${escapeHtml(deviceAppearance)}"` +
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import { getAllData } from '../../../lib/icons';
|
||||
import { getAllCategoryFiles, mapCategoryIconCount } from '../../../lib/categories';
|
||||
import iconsMetaData from '../../../data/iconMetaData';
|
||||
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
/* eslint-disable no-console */
|
||||
|
||||
import { ref, inject, Ref } from 'vue';
|
||||
|
||||
export const ICON_STYLE_CONTEXT = Symbol('style');
|
||||
|
||||
@@ -6,13 +6,13 @@ declare module '*.vue' {
|
||||
}
|
||||
|
||||
declare module '*.data.ts' {
|
||||
const data: any;
|
||||
const data: unknown;
|
||||
|
||||
export { data };
|
||||
}
|
||||
|
||||
declare module '*.data' {
|
||||
const data: any;
|
||||
const data: unknown;
|
||||
|
||||
export { data };
|
||||
}
|
||||
@@ -75,7 +75,7 @@ declare global {
|
||||
doNotShowAfterSubmit?: boolean;
|
||||
customFormUrl?: string; // when you want to load the form via it's custom domain URL
|
||||
hiddenFields?: {
|
||||
[key: string]: any;
|
||||
[key: string]: unknown;
|
||||
};
|
||||
onOpen?: () => void;
|
||||
onClose?: () => void;
|
||||
|
||||
@@ -68,6 +68,6 @@
|
||||
"react": "18.2.0",
|
||||
"react-dom": "18.2.0",
|
||||
"sandpack-vue3": "3.1.12",
|
||||
"vue": "^3.5.40"
|
||||
"vue": "^3.5.41"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
/* eslint-disable no-restricted-syntax, no-await-in-loop */
|
||||
import fs from 'fs';
|
||||
import path from 'path';
|
||||
import { simpleGit } from 'simple-git';
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
/* eslint-disable no-restricted-syntax, no-await-in-loop */
|
||||
import fs from 'fs';
|
||||
import path from 'path';
|
||||
import { loadEnvFile } from 'node:process';
|
||||
@@ -10,7 +9,9 @@ const dataDirectory = path.resolve(currentDir, '.vitepress/data');
|
||||
try {
|
||||
// Load environment variables from .env file, if it exists.
|
||||
loadEnvFile(`${currentDir}/.env`);
|
||||
} catch (error) {}
|
||||
} catch {
|
||||
// No .env file, so rely on the environment as-is.
|
||||
}
|
||||
|
||||
interface IconCollection {
|
||||
/** Human readable name, used for logging. */
|
||||
|
||||
@@ -0,0 +1,154 @@
|
||||
import path from 'node:path';
|
||||
import js from '@eslint/js';
|
||||
import { includeIgnoreFile } from '@eslint/compat';
|
||||
import { defineConfig } from 'eslint/config';
|
||||
import prettier from 'eslint-config-prettier';
|
||||
import importX, { createNodeResolver } from 'eslint-plugin-import-x';
|
||||
import htmlEslint from '@html-eslint/eslint-plugin';
|
||||
import htmlParser from '@html-eslint/parser';
|
||||
import defaultAttrs from './tools/build-icons/render/default-attrs.json' with { type: 'json' };
|
||||
import tseslint from 'typescript-eslint';
|
||||
|
||||
const gitignorePath = path.join(import.meta.dirname, '.gitignore');
|
||||
|
||||
export default defineConfig([
|
||||
tseslint.configs.recommended,
|
||||
{
|
||||
// `packages/angular` has its own config with its own tsconfig, so a single `eslint .` run sees
|
||||
// two candidate roots and typescript-eslint refuses to guess between them.
|
||||
languageOptions: {
|
||||
parserOptions: {
|
||||
tsconfigRootDir: import.meta.dirname,
|
||||
},
|
||||
},
|
||||
},
|
||||
// Everything git ignores (generated icon sources, build output, caches) is ignored here too.
|
||||
includeIgnoreFile(gitignorePath),
|
||||
{
|
||||
// Ignores that are not in .gitignore, because these files are committed.
|
||||
ignores: [
|
||||
'lib',
|
||||
'**/tests',
|
||||
'packages/**/tests/*',
|
||||
'docs/images',
|
||||
'docs/**/examples/',
|
||||
'docs/.vitepress/theme/components/editors/preact/index.js',
|
||||
'packages/svelte/.svelte-kit',
|
||||
// Tracked in git despite matching a .gitignore pattern, so lint it.
|
||||
'!packages/lucide-react/dynamicIconImports.mjs',
|
||||
],
|
||||
},
|
||||
{
|
||||
files: ['**/*.js'],
|
||||
languageOptions: {
|
||||
ecmaVersion: 'latest',
|
||||
sourceType: 'module',
|
||||
globals: {
|
||||
console: 'readonly',
|
||||
process: 'readonly',
|
||||
global: 'readonly',
|
||||
__dirname: 'readonly',
|
||||
},
|
||||
},
|
||||
plugins: {
|
||||
'import-x': importX,
|
||||
},
|
||||
settings: {
|
||||
'import-x/resolver-next': [createNodeResolver()],
|
||||
},
|
||||
rules: {
|
||||
...js.configs.recommended.rules,
|
||||
...prettier.rules,
|
||||
'no-console': 'off',
|
||||
'no-param-reassign': 'off',
|
||||
'no-shadow': 'off',
|
||||
'no-use-before-define': 'off',
|
||||
'import-x/no-extraneous-dependencies': [
|
||||
'error',
|
||||
{
|
||||
devDependencies: [
|
||||
'**/*.test.js',
|
||||
'**/*.spec.js',
|
||||
'**/scripts/**',
|
||||
'eslint.config.js',
|
||||
'packages/**/tests/**',
|
||||
],
|
||||
},
|
||||
],
|
||||
'import-x/extensions': [
|
||||
'error',
|
||||
{
|
||||
pattern: {
|
||||
mjs: 'always',
|
||||
json: 'always',
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
rules: {
|
||||
// Omitting a property by destructuring it away (`const { key, ...attrs } = node`) leaves the
|
||||
// omitted binding unused on purpose, so don't report it.
|
||||
'@typescript-eslint/no-unused-vars': ['error', { ignoreRestSiblings: true }],
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ['./icons/*.svg'],
|
||||
languageOptions: {
|
||||
parser: htmlParser,
|
||||
},
|
||||
plugins: {
|
||||
'@html-eslint': htmlEslint,
|
||||
},
|
||||
rules: {
|
||||
'@html-eslint/require-doctype': 'off',
|
||||
'@html-eslint/no-duplicate-attrs': 'error',
|
||||
'@html-eslint/no-inline-styles': 'error',
|
||||
'@html-eslint/require-attrs': [
|
||||
'error',
|
||||
...Object.entries(defaultAttrs).map(([attr, value]) => ({
|
||||
tag: 'svg',
|
||||
attr,
|
||||
value: String(value),
|
||||
})),
|
||||
],
|
||||
'@html-eslint/indent': ['error', 2],
|
||||
'@html-eslint/no-multiple-empty-lines': ['error', { max: 0 }],
|
||||
'@html-eslint/no-extra-spacing-attrs': [
|
||||
'error',
|
||||
{
|
||||
enforceBeforeSelfClose: true,
|
||||
},
|
||||
],
|
||||
'@html-eslint/attrs-newline': [
|
||||
'error',
|
||||
{
|
||||
inline: ['path', 'line', 'polyline', 'polygon', 'rect', 'circle', 'ellipse'],
|
||||
},
|
||||
],
|
||||
'@html-eslint/require-closing-tags': [
|
||||
'error',
|
||||
{
|
||||
selfClosing: 'always',
|
||||
// Inside <svg> every tag counts as "foreign", where the rule only checks that a tag
|
||||
// already written `/>` stays that way. Listing the shapes here is what actually forces
|
||||
// `<path ...></path>` to become `<path ... />`.
|
||||
selfClosingCustomPatterns: ['^(path|line|polyline|polygon|rect|circle|ellipse)$'],
|
||||
},
|
||||
],
|
||||
'@html-eslint/no-restricted-attr-values': [
|
||||
'error',
|
||||
{
|
||||
attrPatterns: ['^(fill|stroke)$'],
|
||||
attrValuePatterns: ['^(?!(none|currentColor)$).*$'],
|
||||
message:
|
||||
'Icons must inherit their colors: `fill` and `stroke` may only be `none` or `currentColor`.',
|
||||
},
|
||||
],
|
||||
'@html-eslint/element-newline': 'error',
|
||||
'@html-eslint/no-trailing-spaces': 'error',
|
||||
'@html-eslint/quotes': 'error',
|
||||
},
|
||||
},
|
||||
]);
|
||||
@@ -2,10 +2,21 @@
|
||||
"$schema": "../icon.schema.json",
|
||||
"contributors": [
|
||||
"mittalyashu",
|
||||
"ericfennis"
|
||||
"ericfennis",
|
||||
"jguddas"
|
||||
],
|
||||
"use-cases": [],
|
||||
"tags": [
|
||||
"symbol",
|
||||
"sterisk",
|
||||
"mark",
|
||||
"pointer",
|
||||
"pencil",
|
||||
"sign",
|
||||
"alert",
|
||||
"notification",
|
||||
"indicator",
|
||||
"symbolic",
|
||||
"reference",
|
||||
"times",
|
||||
"multiply",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M12 6v12" />
|
||||
<path d="M17.196 9 6.804 15" />
|
||||
<path d="m6.804 9 10.392 6" />
|
||||
<path d="M12 5v14" />
|
||||
<path d="m18.065 8.496-12.125 7" />
|
||||
<path d="m5.94 8.504 12.125 7" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 299 B After Width: | Height: | Size: 306 B |
@@ -0,0 +1,55 @@
|
||||
{
|
||||
"$schema": "../icon.schema.json",
|
||||
"contributors": [
|
||||
"danielbayley",
|
||||
"karsa-mistmere"
|
||||
],
|
||||
"use-cases": [
|
||||
"indicating that audio levels, playback, or monitoring are turned off",
|
||||
"showing muted sound, silenced voice activity, or disabled audio output",
|
||||
"marking controls that pause waveform visualization or stop live audio analysis",
|
||||
"representing inactive music, radio, broadcast, or voice signal displays",
|
||||
"identifying settings that disable sound processing, hearing feedback, or media levels",
|
||||
"showing a muted microphone during voice or video calls",
|
||||
"indicating speaker or headphone output is disabled in system audio controls",
|
||||
"marking disabled waveform or spectrum visualization in audio editors and daws",
|
||||
"showing that sound notifications or alerts are silenced"
|
||||
],
|
||||
"tags": [
|
||||
"audio",
|
||||
"sound",
|
||||
"noise",
|
||||
"mute",
|
||||
"silence",
|
||||
"off",
|
||||
"disabled",
|
||||
"inactive",
|
||||
"listen",
|
||||
"hearing",
|
||||
"equalizer",
|
||||
"equaliser",
|
||||
"hertz",
|
||||
"frequency",
|
||||
"wavelength",
|
||||
"vibrate",
|
||||
"sine",
|
||||
"waveform",
|
||||
"synthesizer",
|
||||
"synthesiser",
|
||||
"levels",
|
||||
"track",
|
||||
"music",
|
||||
"playback",
|
||||
"radio",
|
||||
"broadcast",
|
||||
"airwaves",
|
||||
"voice",
|
||||
"vocals",
|
||||
"singer",
|
||||
"song"
|
||||
],
|
||||
"categories": [
|
||||
"multimedia",
|
||||
"communication"
|
||||
]
|
||||
}
|
||||
@@ -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="M10 10v11" />
|
||||
<path d="M10 3v1.35" />
|
||||
<path d="M14 14v1" />
|
||||
<path d="M14 8v.35" />
|
||||
<path d="M18 5v7.35" />
|
||||
<path d="M2 10v3" />
|
||||
<path d="m2 2 20 20" />
|
||||
<path d="M22 10v3" />
|
||||
<path d="M6 6v11" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 430 B |
@@ -10,5 +10,5 @@
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z" />
|
||||
<path d="m9 12 2 2 4-4" />
|
||||
<path d="m16 9-5.5 5.5L8 12" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 412 B After Width: | Height: | Size: 417 B |
@@ -3,7 +3,8 @@
|
||||
"contributors": [
|
||||
"kemie",
|
||||
"ericfennis",
|
||||
"karsa-mistmere"
|
||||
"karsa-mistmere",
|
||||
"jguddas"
|
||||
],
|
||||
"use-cases": [],
|
||||
"tags": [
|
||||
|
||||
@@ -10,6 +10,6 @@
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M16.4 13.7A6.5 6.5 0 1 0 6.28 6.6c-1.1 3.13-.78 3.9-3.18 6.08A3 3 0 0 0 5 18c4 0 8.4-1.8 11.4-4.3" />
|
||||
<path d="m18.5 6 2.19 4.5a6.48 6.48 0 0 1-2.29 7.2C15.4 20.2 11 22 7 22a3 3 0 0 1-2.68-1.66L2.4 16.5" />
|
||||
<path d="m18.5 6 1.754 3.5a6.48 6.48 0 0 1-1.854 8.2C15.4 20.2 11 22 7 22a3 3 0 0 1-2.68-1.66L2.4 16.5" />
|
||||
<circle cx="12.5" cy="8.5" r="2.5" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 468 B After Width: | Height: | Size: 470 B |
@@ -1,7 +1,8 @@
|
||||
{
|
||||
"$schema": "../icon.schema.json",
|
||||
"contributors": [
|
||||
"danielbayley"
|
||||
"danielbayley",
|
||||
"jguddas"
|
||||
],
|
||||
"use-cases": [],
|
||||
"tags": [
|
||||
@@ -22,7 +23,11 @@
|
||||
"brightness",
|
||||
"overlap",
|
||||
"colors",
|
||||
"colours"
|
||||
"colours",
|
||||
"marriage",
|
||||
"rings",
|
||||
"couple",
|
||||
"connection"
|
||||
],
|
||||
"categories": [
|
||||
"design",
|
||||
|
||||
@@ -9,6 +9,6 @@
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<circle cx="9" cy="9" r="7" />
|
||||
<circle cx="15" cy="15" r="7" />
|
||||
<circle cx="15" cy="9" r="7" />
|
||||
<circle cx="9" cy="15" r="7" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 276 B After Width: | Height: | Size: 276 B |
@@ -9,7 +9,7 @@
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="m14.5 7-5 5" />
|
||||
<path d="m14.5 7.5-5 5" />
|
||||
<path d="M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20" />
|
||||
<path d="m9.5 7 5 5" />
|
||||
<path d="m9.5 7.5 5 5" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 363 B After Width: | Height: | Size: 367 B |
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"$schema": "../icon.schema.json",
|
||||
"contributors": [
|
||||
"andreynaz4renko"
|
||||
],
|
||||
"use-cases": [
|
||||
"Showing battery status, power, and charging state",
|
||||
"Category icon for car batteries, jump starters, or battery testers",
|
||||
"Menu or shortcut for power-related info"
|
||||
],
|
||||
"tags": [
|
||||
"battery",
|
||||
"automobile",
|
||||
"powercell",
|
||||
"electric",
|
||||
"power",
|
||||
"electricity",
|
||||
"energy",
|
||||
"accumulator",
|
||||
"charge",
|
||||
"transport",
|
||||
"vehicle",
|
||||
"car"
|
||||
],
|
||||
"categories": [
|
||||
"connectivity",
|
||||
"transportation"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
<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 13h4" />
|
||||
<path d="M16 15v-4" />
|
||||
<path d="M18 5v2" />
|
||||
<path d="M6 13h4" />
|
||||
<path d="M6 5v2" />
|
||||
<rect x="2" y="7" width="20" height="12" rx="2" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 378 B |
@@ -10,5 +10,5 @@
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<circle cx="12" cy="12" r="10" />
|
||||
<path d="m9 12 2 2 4-4" />
|
||||
<path d="m16 9-5.5 5.5L8 12" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 273 B After Width: | Height: | Size: 278 B |
@@ -14,7 +14,25 @@
|
||||
"version control",
|
||||
"choices",
|
||||
"multiple choice",
|
||||
"choose"
|
||||
"choose",
|
||||
"album",
|
||||
"music",
|
||||
"songs",
|
||||
"format",
|
||||
"cd",
|
||||
"dvd",
|
||||
"vinyl",
|
||||
"sleeve",
|
||||
"cover",
|
||||
"platinum",
|
||||
"compilation",
|
||||
"ep",
|
||||
"recording",
|
||||
"playback",
|
||||
"spin",
|
||||
"rotate",
|
||||
"rpm",
|
||||
"dj"
|
||||
],
|
||||
"categories": [
|
||||
"development",
|
||||
|
||||
@@ -9,6 +9,6 @@
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<circle cx="12" cy="12" r="10" />
|
||||
<circle cx="12" cy="12" r="1" />
|
||||
<circle cx="12" cy="12" r="10" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 279 B After Width: | Height: | Size: 279 B |
@@ -11,6 +11,6 @@
|
||||
>
|
||||
<rect width="8" height="4" x="8" y="2" rx="1" ry="1" />
|
||||
<path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2" />
|
||||
<path d="m15 11-6 6" />
|
||||
<path d="m9 11 6 6" />
|
||||
<path d="m14.5 11.5-5 5" />
|
||||
<path d="m9.5 11.5 5 5" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 405 B After Width: | Height: | Size: 413 B |
@@ -9,7 +9,7 @@
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M21.95 13a10 10 0 1 0-8.685 8.92" />
|
||||
<path d="M12 6v6l4 2" />
|
||||
<path d="M22 12a10 10 0 1 0-11 9.95" />
|
||||
<path d="m22 16-5.5 5.5L14 19" />
|
||||
<path d="m16 19 2 2 4-4" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 313 B After Width: | Height: | Size: 313 B |
@@ -9,8 +9,8 @@
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<line x1="12" x2="18" y1="12" y2="18" />
|
||||
<line x1="12" x2="18" y1="18" y2="12" />
|
||||
<rect width="14" height="14" x="8" y="8" rx="2" ry="2" />
|
||||
<path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2" />
|
||||
<path d="M4 16a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2" />
|
||||
<rect x="8" y="8" width="14" height="14" rx="2" />
|
||||
<path d="m12.5 12.5 5 5" />
|
||||
<path d="m12.5 17.5 5-5" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 425 B After Width: | Height: | Size: 389 B |
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"$schema": "../icon.schema.json",
|
||||
"contributors": [
|
||||
"colebemis",
|
||||
"ericfennis",
|
||||
"karsa-mistmere"
|
||||
],
|
||||
"use-cases": [
|
||||
"Confirming a saved payment card is valid",
|
||||
"Indicating an approved card payment during checkout",
|
||||
"Verifying a payment method in billing settings",
|
||||
"Showing successful card authorization in banking apps"
|
||||
],
|
||||
"tags": [
|
||||
"debit",
|
||||
"payment",
|
||||
"banking",
|
||||
"finance",
|
||||
"transaction",
|
||||
"wallet",
|
||||
"purchase",
|
||||
"checkout",
|
||||
"billing",
|
||||
"account",
|
||||
"cardholder",
|
||||
"verified",
|
||||
"approved",
|
||||
"authorized",
|
||||
"valid",
|
||||
"success",
|
||||
"complete",
|
||||
"check",
|
||||
"bank",
|
||||
"cc"
|
||||
],
|
||||
"categories": [
|
||||
"account",
|
||||
"finance",
|
||||
"shopping"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
<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.5 19H4a2 2 0 01-2-2V7a2 2 0 012-2h16a2 2 0 012 2v4" />
|
||||
<path d="m16 17 2 2 4-4" />
|
||||
<path d="M2 10h20" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 332 B |
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"$schema": "../icon.schema.json",
|
||||
"contributors": [
|
||||
"colebemis",
|
||||
"ericfennis",
|
||||
"karsa-mistmere",
|
||||
"ameniti-mx"
|
||||
],
|
||||
"use-cases": [
|
||||
"Removing a saved payment card from an account",
|
||||
"Unlinking a payment method in billing settings",
|
||||
"Revoking card access in banking apps",
|
||||
"Indicating a declined or canceled card payment"
|
||||
],
|
||||
"tags": [
|
||||
"debit",
|
||||
"payment",
|
||||
"remove",
|
||||
"delete",
|
||||
"unlink",
|
||||
"revoke",
|
||||
"decline",
|
||||
"canceled",
|
||||
"banking",
|
||||
"finance",
|
||||
"wallet",
|
||||
"transaction",
|
||||
"billing",
|
||||
"account",
|
||||
"purchase",
|
||||
"checkout",
|
||||
"subtract",
|
||||
"minus",
|
||||
"bank",
|
||||
"cc"
|
||||
],
|
||||
"categories": [
|
||||
"account",
|
||||
"finance",
|
||||
"shopping"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
<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 17h6" />
|
||||
<path d="M22 10H2" />
|
||||
<path d="M22 13V7a2 2 0 00-2-2H4a2 2 0 00-2 2v10a2 2 0 002 2h8.536" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 329 B |
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"$schema": "../icon.schema.json",
|
||||
"contributors": [
|
||||
"colebemis",
|
||||
"ericfennis",
|
||||
"karsa-mistmere",
|
||||
"ameniti-mx"
|
||||
],
|
||||
"use-cases": [
|
||||
"Adding a payment card during checkout",
|
||||
"Saving a new payment method in billing settings",
|
||||
"Linking a card to a customer account",
|
||||
"Requesting an additional card in banking apps"
|
||||
],
|
||||
"tags": [
|
||||
"debit",
|
||||
"payment",
|
||||
"banking",
|
||||
"finance",
|
||||
"transaction",
|
||||
"wallet",
|
||||
"purchase",
|
||||
"checkout",
|
||||
"billing",
|
||||
"account",
|
||||
"cardholder",
|
||||
"add",
|
||||
"new",
|
||||
"link",
|
||||
"save",
|
||||
"method",
|
||||
"plastic",
|
||||
"bank",
|
||||
"cc"
|
||||
],
|
||||
"categories": [
|
||||
"account",
|
||||
"finance",
|
||||
"shopping"
|
||||
]
|
||||
}
|
||||
@@ -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="M16 17h6" />
|
||||
<path d="M19 14v6" />
|
||||
<path d="M22 10H2" />
|
||||
<path d="M22 11.354V7a2 2 0 00-2-2H4a2 2 0 00-2 2v10a2 2 0 002 2h8.536" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 357 B |
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"$schema": "../icon.schema.json",
|
||||
"contributors": [
|
||||
"colebemis",
|
||||
"ericfennis",
|
||||
"karsa-mistmere"
|
||||
],
|
||||
"use-cases": [
|
||||
"Indicating a declined card payment during checkout",
|
||||
"Marking an invalid payment card in billing settings",
|
||||
"Showing failed card authorization in banking apps",
|
||||
"Canceling a card payment before submission"
|
||||
],
|
||||
"tags": [
|
||||
"debit",
|
||||
"payment",
|
||||
"banking",
|
||||
"finance",
|
||||
"transaction",
|
||||
"wallet",
|
||||
"purchase",
|
||||
"checkout",
|
||||
"billing",
|
||||
"account",
|
||||
"cardholder",
|
||||
"declined",
|
||||
"rejected",
|
||||
"failed",
|
||||
"invalid",
|
||||
"canceled",
|
||||
"error",
|
||||
"cancel",
|
||||
"bank",
|
||||
"cc"
|
||||
],
|
||||
"categories": [
|
||||
"account",
|
||||
"finance",
|
||||
"shopping"
|
||||
]
|
||||
}
|
||||
@@ -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="M12.5 19H4a2 2 0 01-2-2V7a2 2 0 012-2h16a2 2 0 012 2v3.5" />
|
||||
<path d="m16.5 14.5 5 5" />
|
||||
<path d="M2 10h20" />
|
||||
<path d="m21.5 14.5-5 5" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 364 B |
@@ -8,7 +8,7 @@
|
||||
"about",
|
||||
"calculate",
|
||||
"math",
|
||||
"operater"
|
||||
"operator"
|
||||
],
|
||||
"categories": [
|
||||
"math"
|
||||
|
||||
@@ -9,10 +9,10 @@
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M15 11V9.416" />
|
||||
<path d="M17 9a5 5 0 00-3 1" />
|
||||
<path d="M7 9a5 5 0 013 1" />
|
||||
<path d="M9 11V9.416" />
|
||||
<path d="M9 16a5 5 0 016.001 0" />
|
||||
<path d="M15 12v-1.584" />
|
||||
<path d="M17 10a5 5 0 00-3 1" />
|
||||
<path d="M7 10a5 5 0 013 1" />
|
||||
<path d="M9 12v-1.584" />
|
||||
<path d="M9 17a5 5 0 016.001 0" />
|
||||
<circle cx="12" cy="12" r="10" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 402 B After Width: | Height: | Size: 406 B |
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"$schema": "../icon.schema.json",
|
||||
"contributors": [
|
||||
"karsa-mistmere"
|
||||
],
|
||||
"use-cases": [
|
||||
"representing galaxies, stars, or deep space in astronomy content",
|
||||
"visualizing the universe or cosmos in science education",
|
||||
"marking space exploration, stargazing, or observatory features",
|
||||
"identifying star chart or constellation map features",
|
||||
"signifying interstellar or sci-fi travel sections in apps",
|
||||
"branding planetarium events or astronomy clubs",
|
||||
"decorative element in space-themed user interfaces or games",
|
||||
"marking cosmic discoveries or research in science publications"
|
||||
],
|
||||
"tags": [
|
||||
"astronomy",
|
||||
"space",
|
||||
"stars",
|
||||
"cosmos",
|
||||
"universe",
|
||||
"spiral",
|
||||
"milky way",
|
||||
"nebula",
|
||||
"cosmology",
|
||||
"interstellar",
|
||||
"celestial",
|
||||
"constellation",
|
||||
"stargazing",
|
||||
"spaceflight"
|
||||
],
|
||||
"categories": [
|
||||
"science"
|
||||
]
|
||||
}
|
||||
@@ -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="M16.005 15.108a5.041 6.52 28.25 00-8.008-6.217 5.041 6.52 28.25 008.008 6.217A11.884 7.288-60.76 014.029 7.001" />
|
||||
<path d="M17 21h.01" />
|
||||
<path d="M7 3h.01" />
|
||||
<path d="M7.997 8.891a11.885 7.288-60.756 0111.977 8.107" />
|
||||
<circle cx="12" cy="12" r="1" fill="currentColor" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 502 B |
@@ -2,12 +2,37 @@
|
||||
"$schema": "../icon.schema.json",
|
||||
"contributors": [
|
||||
"mittalyashu",
|
||||
"ericfennis"
|
||||
"ericfennis",
|
||||
"jguddas"
|
||||
],
|
||||
"use-cases": [
|
||||
"Representing Halloween themes in seasonal content",
|
||||
"Indicating spooky or haunted themes",
|
||||
"Marking invisible or hidden states in playful UIs",
|
||||
"Indicating dead links or obsolete content",
|
||||
"Showing ghosts or spirits in arcade-style games"
|
||||
],
|
||||
"use-cases": [],
|
||||
"tags": [
|
||||
"spirit",
|
||||
"haunt",
|
||||
"specter",
|
||||
"apparition",
|
||||
"wraith",
|
||||
"shade",
|
||||
"phantom",
|
||||
"entity",
|
||||
"shadow",
|
||||
"silhouette",
|
||||
"pac-man",
|
||||
"spooky"
|
||||
"spooky",
|
||||
"halloween",
|
||||
"haunted",
|
||||
"invisible",
|
||||
"hidden",
|
||||
"empty",
|
||||
"dead",
|
||||
"obsolete",
|
||||
"outdated"
|
||||
],
|
||||
"categories": [
|
||||
"gaming"
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M9 10h.01" />
|
||||
<path d="M15 10h.01" />
|
||||
<path d="M12 2a8 8 0 0 0-8 8v12l3-3 2.5 2.5L12 19l2.5 2.5L17 19l3 3V10a8 8 0 0 0-8-8z" />
|
||||
<path d="M15 10v1" />
|
||||
<path d="M7.528 20.472a1.6 1.6 0 012.277 0l1.057 1.056a1.6 1.6 0 002.276 0l1.057-1.056a1.6 1.6 0 012.277 0l1.114 1.114a1.4 1.4 0 002.414-1V10a8 8 0 00-16 0v10.586a1.4 1.4 0 002.414 1z" />
|
||||
<path d="M9 10v1" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 351 B After Width: | Height: | Size: 445 B |
@@ -11,7 +11,7 @@
|
||||
>
|
||||
<path d="M12 6h4a2 2 0 0 1 2 2v7" />
|
||||
<path d="M6 12v9" />
|
||||
<path d="M9 3 3 9" />
|
||||
<path d="M9 9 3 3" />
|
||||
<path d="m8.5 3.5-5 5" />
|
||||
<path d="m8.5 8.5-5-5" />
|
||||
<circle cx="18" cy="18" r="3" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 353 B After Width: | Height: | Size: 361 B |
@@ -9,10 +9,10 @@
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<circle cx="6" cy="6" r="3" />
|
||||
<path d="m15.5 3.5 5 5" />
|
||||
<path d="m15.5 8.5 5-5" />
|
||||
<path d="M18 11.62V15" />
|
||||
<path d="M6 9v12" />
|
||||
<path d="m21 3-6 6" />
|
||||
<path d="m21 9-6-6" />
|
||||
<path d="M18 11.5V15" />
|
||||
<circle cx="18" cy="18" r="3" />
|
||||
<circle cx="6" cy="6" r="3" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 376 B After Width: | Height: | Size: 385 B |
@@ -10,6 +10,6 @@
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M12 3v17a1 1 0 0 1-1 1H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v6a1 1 0 0 1-1 1H3" />
|
||||
<path d="m16 16 5 5" />
|
||||
<path d="m16 21 5-5" />
|
||||
<path d="m16.5 16.5 5 5" />
|
||||
<path d="m16.5 21.5 5-5" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 365 B After Width: | Height: | Size: 373 B |
@@ -9,7 +9,7 @@
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4" />
|
||||
<path d="m21 2-9.6 9.6" />
|
||||
<circle cx="7.5" cy="15.5" r="5.5" />
|
||||
<path d="m2 21 9.6-9.6" />
|
||||
<path d="m7.5 15.5 2.3 2.3a1 1 0 0 1 0 1.4l-2.1 2.1a1 1 0 0 1-1.4 0L4 19" />
|
||||
<circle cx="15.5" cy="7.5" r="5.5" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 355 B After Width: | Height: | Size: 356 B |
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"$schema": "../icon.schema.json",
|
||||
"contributors": [
|
||||
"karsa-mistmere",
|
||||
"jamiemlaw",
|
||||
"kemie"
|
||||
],
|
||||
"use-cases": [
|
||||
"showing the edit or revision history of a list item",
|
||||
"indicating recently viewed list entries",
|
||||
"displaying a list of recently changed tasks",
|
||||
"representing an activity or audit log for list-based content",
|
||||
"marking last-updated or timestamped list rows"
|
||||
],
|
||||
"tags": [
|
||||
"history",
|
||||
"log",
|
||||
"clock",
|
||||
"time",
|
||||
"recent",
|
||||
"updated",
|
||||
"revision",
|
||||
"activity",
|
||||
"timestamp",
|
||||
"audit",
|
||||
"list"
|
||||
],
|
||||
"categories": [
|
||||
"text",
|
||||
"time",
|
||||
"notifications"
|
||||
]
|
||||
}
|
||||
@@ -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="M16 13v2.2l1.6 1" />
|
||||
<path d="M3 12h3.458" />
|
||||
<path d="M3 19h3.832" />
|
||||
<path d="M3 5h18" />
|
||||
<circle cx="16" cy="15" r="6" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 352 B |
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"$schema": "../icon.schema.json",
|
||||
"contributors": [
|
||||
"colebemis",
|
||||
"karsa-mistmere",
|
||||
"ericfennis"
|
||||
],
|
||||
"use-cases": [
|
||||
"Represents scheduled communication",
|
||||
"Represents send later icons",
|
||||
"Indication scheduled mail",
|
||||
"Indication delayed delivery features in messaging, email, and productivity tools"
|
||||
],
|
||||
"tags": [
|
||||
"email",
|
||||
"message",
|
||||
"letter",
|
||||
"unread",
|
||||
"scheduled",
|
||||
"delayed",
|
||||
"sendlater",
|
||||
"delivery",
|
||||
"reminder",
|
||||
"pending",
|
||||
"outgoing",
|
||||
"timer"
|
||||
],
|
||||
"categories": [
|
||||
"text",
|
||||
"account",
|
||||
"mail",
|
||||
"time",
|
||||
"notifications",
|
||||
"communication"
|
||||
]
|
||||
}
|
||||
@@ -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="M16 14v2.2l1.6 1" />
|
||||
<path d="m22 7-.759.484" />
|
||||
<path d="M6.835 20H4a2 2 0 01-2-2V6a2 2 0 012-2h16a2 2 0 012 2v2" />
|
||||
<path d="M7.605 10.567 2 7" />
|
||||
<circle cx="16" cy="16" r="6" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 409 B |
@@ -9,8 +9,8 @@
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M22 13V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h9" />
|
||||
<path d="m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7" />
|
||||
<path d="m17 17 4 4" />
|
||||
<path d="m21 17-4 4" />
|
||||
<path d="M22 12.532V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8.792" />
|
||||
<path d="m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7" />
|
||||
<path d="m16.5 16.5 5 5" />
|
||||
<path d="m21.5 16.5-5 5" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 390 B After Width: | Height: | Size: 404 B |
@@ -10,5 +10,5 @@
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719" />
|
||||
<path d="m9 12 2 2 4-4" />
|
||||
<path d="m16 9-5.5 5.5L8 12" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 376 B After Width: | Height: | Size: 381 B |
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"$schema": "../icon.schema.json",
|
||||
"contributors": [
|
||||
"colebemis",
|
||||
"csandman",
|
||||
"ericfennis",
|
||||
"jguddas",
|
||||
"karsa-mistmere",
|
||||
"aliyasirnac"
|
||||
],
|
||||
"use-cases": [
|
||||
"Confirming a draft message is ready",
|
||||
"Marking pending feedback as resolved",
|
||||
"Indicating provisional approval in conversation threads",
|
||||
"Showing completed review status for comments"
|
||||
],
|
||||
"tags": [
|
||||
"comment",
|
||||
"chat",
|
||||
"conversation",
|
||||
"dialog",
|
||||
"feedback",
|
||||
"speech bubble",
|
||||
"draft",
|
||||
"pending",
|
||||
"provisional",
|
||||
"verification",
|
||||
"confirmation",
|
||||
"success",
|
||||
"status",
|
||||
"check",
|
||||
"approval",
|
||||
"moderate",
|
||||
"resolved",
|
||||
"done",
|
||||
"complete"
|
||||
],
|
||||
"categories": [
|
||||
"social",
|
||||
"account"
|
||||
]
|
||||
}
|
||||
@@ -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="M10.1 2.182a10 10 0 013.8 0" />
|
||||
<path d="M13.9 21.818a10 10 0 01-3.8 0" />
|
||||
<path d="M17.609 3.72a10 10 0 012.69 2.7" />
|
||||
<path d="M2.182 13.9a10 10 0 010-3.8" />
|
||||
<path d="M20.28 17.61a10 10 0 01-2.7 2.69" />
|
||||
<path d="M21.818 10.1a10 10 0 010 3.8" />
|
||||
<path d="M3.721 6.391a10 10 0 012.7-2.69" />
|
||||
<path d="m6.163 21.117-2.906.85a1 1 0 01-1.236-1.169l.965-2.98" />
|
||||
<path d="m16 9-5.5 5.5L8 12" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 628 B |
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"$schema": "../icon.schema.json",
|
||||
"contributors": [
|
||||
"simoncoudeville",
|
||||
"karsa-mistmere"
|
||||
],
|
||||
"use-cases": [
|
||||
"Representing MIDI connections and ports in music production software",
|
||||
"Indicating MIDI input and output on synthesizers, keyboards, and controllers",
|
||||
"Showing MIDI device connectivity in audio and hardware configuration interfaces",
|
||||
"Representing MIDI routing, patching, and signal flow",
|
||||
"Identifying 5-pin DIN MIDI connectors in technical diagrams and device documentation"
|
||||
],
|
||||
"tags": [
|
||||
"musical instrument digital interface",
|
||||
"port",
|
||||
"connector",
|
||||
"socket",
|
||||
"jack",
|
||||
"din",
|
||||
"5-pin",
|
||||
"audio",
|
||||
"music",
|
||||
"synthesizer",
|
||||
"keyboard",
|
||||
"controller",
|
||||
"interface",
|
||||
"input",
|
||||
"output",
|
||||
"io"
|
||||
],
|
||||
"categories": [
|
||||
"multimedia",
|
||||
"connectivity",
|
||||
"devices"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
<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 18h.01" />
|
||||
<path d="M15 2.458V5a1 1 0 01-1 1h-4a1 1 0 01-1-1V2.458" />
|
||||
<path d="M16 16h.01" />
|
||||
<path d="M18 12h.01" />
|
||||
<path d="M6 12h.01" />
|
||||
<path d="M8 16h.01" />
|
||||
<circle cx="12" cy="12" r="10" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 434 B |
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"$schema": "../icon.schema.json",
|
||||
"contributors": [
|
||||
"karsa-mistmere"
|
||||
],
|
||||
"use-cases": [
|
||||
"representing AI-assisted cleaning or automation features",
|
||||
"indicating spotless or freshly cleaned surfaces",
|
||||
"showing magical cleanup actions in smart home apps"
|
||||
],
|
||||
"tags": [
|
||||
"cleaning",
|
||||
"scrubbing",
|
||||
"sweeping",
|
||||
"ai",
|
||||
"magic",
|
||||
"sparkle",
|
||||
"smart",
|
||||
"automation",
|
||||
"housekeeping",
|
||||
"hygiene",
|
||||
"sanitation",
|
||||
"chores",
|
||||
"swab",
|
||||
"tidy",
|
||||
"floor",
|
||||
"spotless",
|
||||
"pristine",
|
||||
"polish",
|
||||
"sanitize",
|
||||
"disinfect"
|
||||
],
|
||||
"categories": [
|
||||
"home",
|
||||
"tools",
|
||||
"design"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
<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 22a3 3 0 01-3-3" />
|
||||
<path d="M10 22c2.761 0 5-1.79 5-4-4.42 0-4.08-5-8.5-5a4.501 4.501 0 000 9z" />
|
||||
<path d="M10 3H8" />
|
||||
<path d="M12.5 11.5 22 2" />
|
||||
<path d="M20 13v4" />
|
||||
<path d="M22 15h-4" />
|
||||
<path d="M4 5v4" />
|
||||
<path d="M6 7H2" />
|
||||
<path d="m6.98 13.02 2.665-2.664a1.21 1.21 0 011.71 0l2.29 2.288a1.21 1.21 0 010 1.712l-2.088 2.087" />
|
||||
<path d="M9 2v2" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 600 B |
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"$schema": "../icon.schema.json",
|
||||
"contributors": [
|
||||
"karsa-mistmere"
|
||||
],
|
||||
"use-cases": [
|
||||
"representing floor cleaning and housekeeping tasks",
|
||||
"indicating janitorial or sanitation services",
|
||||
"showing cleaning supplies in home maintenance apps",
|
||||
"showing cleaning-in-progress or wet floor warnings",
|
||||
"representing cleaning supplies in ecommerce listings",
|
||||
"adding housekeeping requests in hotel apps",
|
||||
"scheduling recurring floor maintenance tasks",
|
||||
"labeling janitorial services on property management dashboards"
|
||||
],
|
||||
"tags": [
|
||||
"cleaning",
|
||||
"sweeping",
|
||||
"scrubbing",
|
||||
"housekeeping",
|
||||
"hygiene",
|
||||
"sanitation",
|
||||
"chores",
|
||||
"swab",
|
||||
"tidy",
|
||||
"floor",
|
||||
"janitor",
|
||||
"maintenance",
|
||||
"wash",
|
||||
"wipe",
|
||||
"spotless",
|
||||
"pristine",
|
||||
"disinfect"
|
||||
],
|
||||
"categories": [
|
||||
"home",
|
||||
"tools"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
<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 22c2.761 0 5-1.79 5-4-4.42 0-4.08-5-8.5-5a1 1 0 100 9za3 3 0 01-3-3" />
|
||||
<path d="M12.5 11.5 22 2" />
|
||||
<path d="m6.98 13.02 2.665-2.664a1.21 1.21 0 011.71 0l2.29 2.288a1.21 1.21 0 010 1.712l-2.088 2.087" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 432 B |
@@ -2,7 +2,8 @@
|
||||
"$schema": "../icon.schema.json",
|
||||
"contributors": [
|
||||
"chessurisme",
|
||||
"karsa-mistmere"
|
||||
"karsa-mistmere",
|
||||
"jguddas"
|
||||
],
|
||||
"use-cases": [],
|
||||
"tags": [
|
||||
|
||||
@@ -11,8 +11,8 @@
|
||||
>
|
||||
<path d="M11.25 17.25h1.5L12 18z" />
|
||||
<path d="m15 12 2 2" />
|
||||
<path d="M18 6.5a.5.5 0 0 0-.5-.5" />
|
||||
<path d="M20.69 9.67a4.5 4.5 0 1 0-7.04-5.5 8.35 8.35 0 0 0-3.3 0 4.5 4.5 0 1 0-7.04 5.5C2.49 11.2 2 12.88 2 14.5 2 19.47 6.48 22 12 22s10-2.53 10-7.5c0-1.62-.48-3.3-1.3-4.83" />
|
||||
<path d="M6 6.5a.495.495 0 0 1 .5-.5" />
|
||||
<path d="M17.902 6.599a8 8 0 0 0-.5-.5" />
|
||||
<path d="M2 14.5C2 19.47 6.48 22 12 22s10-2.53 10-7.5a10 10 0 0 0-1.3-4.83 4.5 4.5 0 1 0-7.05-5.5 8 8 0 0 0-3.3 0 4.5 4.5 0 1 0-7.04 5.5A10 10 0 0 0 2 14.5" />
|
||||
<path d="M6.099 6.599a8 8 0 0 1 .5-.5" />
|
||||
<path d="m9 12-2 2" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 562 B After Width: | Height: | Size: 549 B |
@@ -9,10 +9,10 @@
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M18.5 8c-1.4 0-2.6-.8-3.2-2A6.87 6.87 0 0 0 2 9v11a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-8.5C22 9.6 20.4 8 18.5 8" />
|
||||
<path d="M2 14h20" />
|
||||
<path d="M6 14v4" />
|
||||
<path d="M10 14v4" />
|
||||
<path d="M14 14v4" />
|
||||
<path d="M18 14v4" />
|
||||
<path d="M10 13v4" />
|
||||
<path d="M14 13v4" />
|
||||
<path d="M18 13v4" />
|
||||
<path d="M2 13h20" />
|
||||
<path d="M22 11.5A3.5 3.5 0 0018.5 8a3.52 3.52 0 01-3.173-2A7 7 0 002 9v10a2 2 0 002 2h16a2 2 0 002-2z" />
|
||||
<path d="M6 13v4" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 450 B After Width: | Height: | Size: 436 B |
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"$schema": "../icon.schema.json",
|
||||
"contributors": [
|
||||
"Barakudum",
|
||||
"jamiemlaw",
|
||||
"karsa-mistmere"
|
||||
],
|
||||
"use-cases": [
|
||||
"Representing a single card in tabletop games",
|
||||
"Showing flashcards in learning interfaces",
|
||||
"Marking prompts in icebreaker activities",
|
||||
"Indicating chance-based actions or random selection"
|
||||
],
|
||||
"tags": [
|
||||
"deck",
|
||||
"draw",
|
||||
"deal",
|
||||
"shuffle",
|
||||
"chance",
|
||||
"random",
|
||||
"selection",
|
||||
"tabletop",
|
||||
"flashcard",
|
||||
"study",
|
||||
"learning",
|
||||
"prompt",
|
||||
"icebreaker",
|
||||
"conversation",
|
||||
"collectible",
|
||||
"trading",
|
||||
"poker",
|
||||
"casino",
|
||||
"game",
|
||||
"gambling",
|
||||
"suit"
|
||||
],
|
||||
"categories": [
|
||||
"gaming",
|
||||
"development"
|
||||
]
|
||||
}
|
||||
@@ -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="M12.832 8.445a1 1 0 00-1.589-.098l-2.075 3.098a1 1 0 000 1.11l2 3a1 1 0 001.664 0l2-3a1 1 0 000-1.11z" />
|
||||
<rect x="5" y="2" width="14" height="20" rx="2" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 378 B |
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"$schema": "../icon.schema.json",
|
||||
"contributors": [
|
||||
"Barakudum",
|
||||
"karsa-mistmere"
|
||||
],
|
||||
"use-cases": [
|
||||
"Representing a player's hand in card games",
|
||||
"Showing planning poker estimates in agile tools",
|
||||
"Displaying icebreaker prompts in conversation apps",
|
||||
"Marking spread or revealed collectible cards"
|
||||
],
|
||||
"tags": [
|
||||
"deck",
|
||||
"fan",
|
||||
"spread",
|
||||
"hand",
|
||||
"deal",
|
||||
"dealt",
|
||||
"draw",
|
||||
"shuffle",
|
||||
"tabletop",
|
||||
"planning poker",
|
||||
"scrum",
|
||||
"agile",
|
||||
"estimation",
|
||||
"estimate",
|
||||
"prompt",
|
||||
"icebreaker",
|
||||
"conversation",
|
||||
"collectible",
|
||||
"collection",
|
||||
"trading",
|
||||
"poker",
|
||||
"casino",
|
||||
"game",
|
||||
"gambling",
|
||||
"suit"
|
||||
],
|
||||
"categories": [
|
||||
"gaming",
|
||||
"development",
|
||||
"social"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
<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.65 7.65a2 2 0 012.629-1.046l5.51 2.374a2 2 0 011.046 2.628l-3.957 9.184a2 2 0 01-2.628 1.046l-5.51-2.374a2 2 0 01-1.046-2.628z" />
|
||||
<path d="M18 7.777V4a2 2 0 00-2-2h-6a2 2 0 00-2 2v10a2 2 0 001.137 1.805" />
|
||||
<path d="m8 4.389-4.364.809a2 2 0 00-1.602 2.33l1.822 9.833a2 2 0 002.331 1.602l2.542-.47" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 529 B |
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"$schema": "../icon.schema.json",
|
||||
"contributors": [
|
||||
"Barakudum",
|
||||
"jamiemlaw",
|
||||
"karsa-mistmere"
|
||||
],
|
||||
"use-cases": [
|
||||
"Representing decks in tabletop games",
|
||||
"Showing planning poker cards in agile tools",
|
||||
"Organizing flashcard sets in learning apps",
|
||||
"Marking collectible card collections in inventories"
|
||||
],
|
||||
"tags": [
|
||||
"deck",
|
||||
"stack",
|
||||
"shuffle",
|
||||
"deal",
|
||||
"draw",
|
||||
"hand",
|
||||
"tabletop",
|
||||
"planning poker",
|
||||
"scrum",
|
||||
"agile",
|
||||
"estimation",
|
||||
"estimate",
|
||||
"flashcards",
|
||||
"study",
|
||||
"learning",
|
||||
"collectible",
|
||||
"collection",
|
||||
"trading",
|
||||
"poker",
|
||||
"casino",
|
||||
"game",
|
||||
"gambling",
|
||||
"suit"
|
||||
],
|
||||
"categories": [
|
||||
"gaming",
|
||||
"development"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
<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.832 8.445a1 1 0 00-1.589-.098l-2.075 3.098a1 1 0 000 1.11l2 3a1 1 0 001.664 0l2-3a1 1 0 000-1.11z" />
|
||||
<path d="m7.18 20.827-5-11a2 2 0 01.993-2.647L7 5.44" />
|
||||
<rect x="7" y="2" width="14" height="20" rx="2" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 437 B |
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"$schema": "../icon.schema.json",
|
||||
"contributors": [
|
||||
"zoharma",
|
||||
"karsa-mistmere"
|
||||
],
|
||||
"use-cases": [
|
||||
"Representing industrial automation and robotics",
|
||||
"Showing automated assembly or fabrication processes",
|
||||
"Controlling robotic equipment in manufacturing apps",
|
||||
"Monitoring assembly line operations in factory dashboards",
|
||||
"Indicating automated production tasks in workflow tools"
|
||||
],
|
||||
"tags": [
|
||||
"mechanical",
|
||||
"automation",
|
||||
"factory",
|
||||
"manufacture",
|
||||
"technology",
|
||||
"cyborg",
|
||||
"industrial",
|
||||
"hardware",
|
||||
"machinery"
|
||||
],
|
||||
"categories": [
|
||||
"science",
|
||||
"tools"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
<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 21 7.5 8.322" />
|
||||
<path d="m14 7 1.75-3.767a.5.5 0 0 1 .662-.172L20 5.005" />
|
||||
<path d="m20 8.998-3.588 1.944a.5.5 0 0 1-.662-.172L14 7H8" />
|
||||
<path d="M3.486 21h10" />
|
||||
<path d="M5 21V8.732" />
|
||||
<circle cx="6" cy="7" r="2" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 455 B |
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"$schema": "../icon.schema.json",
|
||||
"contributors": [
|
||||
"benhaube",
|
||||
"karsa-mistmere"
|
||||
],
|
||||
"use-cases": [
|
||||
"Representing automated floor cleaning on a smart home app control panel",
|
||||
"Displaying as a device icon on a local network clients list",
|
||||
"Controlling robotic cleaning devices from connected home dashboards",
|
||||
"Scheduling recurring vacuum runs in housekeeping apps",
|
||||
"Monitoring cleaning progress on mapped floor plans"
|
||||
],
|
||||
"tags": [
|
||||
"appliance",
|
||||
"cleaning",
|
||||
"household",
|
||||
"housekeeping",
|
||||
"tool",
|
||||
"maintenance",
|
||||
"smarthome",
|
||||
"sweeping",
|
||||
"hygiene",
|
||||
"chores",
|
||||
"automation",
|
||||
"smart home",
|
||||
"device",
|
||||
"floor",
|
||||
"dust",
|
||||
"debris",
|
||||
"navigation",
|
||||
"sensor"
|
||||
],
|
||||
"categories": [
|
||||
"devices",
|
||||
"home",
|
||||
"tools"
|
||||
]
|
||||
}
|
||||
@@ -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="M11 17h2" />
|
||||
<path d="M12 12h.01" />
|
||||
<path d="M17 12a5 5 0 00-10 0" />
|
||||
<path d="M19 2v2.8" />
|
||||
<path d="M2 5h2.8" />
|
||||
<path d="M22 5h-2.8" />
|
||||
<path d="M5 2v2.8" />
|
||||
<circle cx="12" cy="12" r="10" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 429 B |
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"$schema": "../icon.schema.json",
|
||||
"contributors": [
|
||||
"l0uisgrange",
|
||||
"karsa-mistmere",
|
||||
"jguddas"
|
||||
],
|
||||
"use-cases": [
|
||||
"representing maritime freight or cargo shipments",
|
||||
"indicating seaborne logistics in supply chain dashboards",
|
||||
"marking ports, terminals, or dock operations on maps",
|
||||
"showing import or export status in trade apps",
|
||||
"offering a shipping option in e-commerce or order tracking",
|
||||
"illustrating cargo capacity or vessel type in transport apps",
|
||||
"denoting bulk or container shipping routes"
|
||||
],
|
||||
"tags": [
|
||||
"boat",
|
||||
"knots",
|
||||
"nautical mile",
|
||||
"maritime",
|
||||
"sailing",
|
||||
"cruise",
|
||||
"ocean liner",
|
||||
"tanker",
|
||||
"vessel",
|
||||
"navy",
|
||||
"cargo",
|
||||
"container",
|
||||
"freighter",
|
||||
"freight",
|
||||
"shipping",
|
||||
"port",
|
||||
"harbor",
|
||||
"dock",
|
||||
"logistics",
|
||||
"import",
|
||||
"export"
|
||||
],
|
||||
"categories": [
|
||||
"transportation",
|
||||
"navigation",
|
||||
"travel"
|
||||
]
|
||||
}
|
||||
@@ -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="M12 15v-3" />
|
||||
<path d="M12 2v2" />
|
||||
<path d="M16.5 12V9a1 1 0 011-1h1a1 1 0 001-1V5a1 1 0 00-1-1h-13a1 1 0 00-1 1v2a1 1 0 001 1h1a1 1 0 011 1v3" />
|
||||
<path d="M19.38 19c1.076-1.815 1.636-4.89 1.628-6.008a1 1 0 00-1-.992H3.984a1 1 0 00-1 .984c-.03 1.86.97 5.621 2.826 7.776" />
|
||||
<path d="M2 20c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1s1.2 1 2.5 1c2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 617 B |
@@ -9,9 +9,9 @@
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M12 10.189V14" />
|
||||
<path d="M12 2v3" />
|
||||
<path d="M19 13V7a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2v6" />
|
||||
<path d="M19.38 20A11.6 11.6 0 0 0 21 14l-8.188-3.639a2 2 0 0 0-1.624 0L3 14a11.6 11.6 0 0 0 2.81 7.76" />
|
||||
<path d="M2 21c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1s1.2 1 2.5 1c2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1" />
|
||||
<path d="M12 2v2" />
|
||||
<path d="M12 9.189V13" />
|
||||
<path d="M19 12V6a2 2 0 00-2-2H7a2 2 0 00-2 2v6" />
|
||||
<path d="M19.38 19A11.6 11.6 0 0021 13l-8.188-3.639a2 2 0 00-1.624 0L3 13.001a11.6 11.6 0 002.81 7.76" />
|
||||
<path d="M2 20c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1s1.2 1 2.5 1c2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 543 B After Width: | Height: | Size: 539 B |
@@ -4,7 +4,8 @@
|
||||
"colebemis",
|
||||
"csandman",
|
||||
"ericfennis",
|
||||
"karsa-mistmere"
|
||||
"karsa-mistmere",
|
||||
"jguddas"
|
||||
],
|
||||
"use-cases": [],
|
||||
"tags": [
|
||||
|
||||
@@ -9,7 +9,8 @@
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<circle cx="8" cy="21" r="1" />
|
||||
<circle cx="19" cy="21" r="1" />
|
||||
<path d="M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12" />
|
||||
<path d="m2.05 2.05 1.099-.028a1 1 0 0 1 1.008.815l2.69 14.347A1 1 0 0 0 7.83 18H18" />
|
||||
<path d="M4.563 5h16.435a1 1 0 0 1 .981 1.204l-1.026 6.226A2 2 0 0 1 18.962 14H6.25" />
|
||||
<circle cx="18" cy="20" r="2" />
|
||||
<circle cx="8" cy="20" r="2" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 373 B After Width: | Height: | Size: 457 B |
@@ -9,7 +9,7 @@
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="m6 16 6-12 6 12" />
|
||||
<path d="M8 12h8" />
|
||||
<path d="m16 20 2 2 4-4" />
|
||||
<path d="m20 15-5.5 5.5L12 18" />
|
||||
<path d="m4 16 6-12 5.115 10.23" />
|
||||
<path d="M6 12h8" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 292 B After Width: | Height: | Size: 305 B |
@@ -10,5 +10,5 @@
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<rect width="18" height="18" x="3" y="3" rx="2" />
|
||||
<path d="m9 12 2 2 4-4" />
|
||||
<path d="m16 9-5.5 5.5L8 12" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 290 B After Width: | Height: | Size: 295 B |
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"$schema": "../icon.schema.json",
|
||||
"contributors": [
|
||||
"samuelalake"
|
||||
],
|
||||
"use-cases": [
|
||||
"setting or displaying the width and height of a frame or object",
|
||||
"a size or dimensions control in a design or layout editor",
|
||||
"indicating fixed-size mode for an element",
|
||||
"representing artboard or canvas size settings",
|
||||
"labeling size presets or templates in a design system"
|
||||
],
|
||||
"tags": [
|
||||
"ratio",
|
||||
"size",
|
||||
"width",
|
||||
"height",
|
||||
"resize",
|
||||
"scale",
|
||||
"frame",
|
||||
"proportions",
|
||||
"aspect",
|
||||
"bounds",
|
||||
"measurements",
|
||||
"canvas"
|
||||
],
|
||||
"categories": [
|
||||
"design",
|
||||
"layout"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
<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"
|
||||
>
|
||||
<rect width="18" height="18" x="3" y="3" rx="2" />
|
||||
<path d="M12 7H7v5" />
|
||||
<path d="M12 17h5v-5" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 313 B |
@@ -2,7 +2,8 @@
|
||||
"$schema": "../icon.schema.json",
|
||||
"contributors": [
|
||||
"Patchethium",
|
||||
"ericfennis"
|
||||
"ericfennis",
|
||||
"jguddas"
|
||||
],
|
||||
"use-cases": [],
|
||||
"tags": [
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M8 19H5c-1 0-2-1-2-2V7c0-1 1-2 2-2h3" />
|
||||
<path d="M16 5h3c1 0 2 1 2 2v10c0 1-1 2-2 2h-3" />
|
||||
<line x1="12" x2="12" y1="4" y2="20" />
|
||||
<path d="M12 2v20" />
|
||||
<path d="M16 3h3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-3" />
|
||||
<path d="M8 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 355 B After Width: | Height: | Size: 344 B |
@@ -2,7 +2,8 @@
|
||||
"$schema": "../icon.schema.json",
|
||||
"contributors": [
|
||||
"Patchethium",
|
||||
"ericfennis"
|
||||
"ericfennis",
|
||||
"jguddas"
|
||||
],
|
||||
"use-cases": [],
|
||||
"tags": [
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M5 8V5c0-1 1-2 2-2h10c1 0 2 1 2 2v3" />
|
||||
<path d="M19 16v3c0 1-1 2-2 2H7c-1 0-2-1-2-2v-3" />
|
||||
<line x1="4" x2="20" y1="12" y2="12" />
|
||||
<path d="M2 12h20" />
|
||||
<path d="M21 16v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-3" />
|
||||
<path d="M3 8V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v3" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 355 B After Width: | Height: | Size: 344 B |