Compare commits

...

26 Commits

Author SHA1 Message Date
codecalm aaef5f4c3d Update LICENSE year to 2026 2026-01-03 01:42:26 +01:00
codecalm 0094572ac2 Release 3.36.1 2026-01-01 21:03:15 +01:00
codecalm d98c78b6c1 Update build scripts to use environment variables and improve icon build logging. The `after:bump` hook in package.json now utilizes `pnpm exec turbo build` for better performance, while console output for icon building has been commented out for cleaner logs during the build process. 2025-12-31 18:16:31 +01:00
codecalm 07d1e4a796 Refactor build scripts in package.json and update changelog generation to use environment variables for versioning. This improves consistency and clarity in version handling across scripts. 2025-12-30 19:24:53 +01:00
codecalm 7358779979 Remove eleventy-sass dependency and update @tabler/icons references to use workspace protocol in package.json and pnpm-lock.yaml for improved dependency management. 2025-12-30 18:57:49 +01:00
Marlon Daniel 22e23512d8
Add folder-open SVG icon (#1449)
* Add folder-open SVG icon

* Add `.svg` extension to folder-open icon

* Enhance icon validation by ensuring only .svg files exist in filled and outline directories; update crown and folder-open SVG files for consistency and clarity.

---------

Co-authored-by: codecalm <codecalm@gmail.com>
2025-12-30 18:39:05 +01:00
Paweł Kuna 2702274bfa
Update package dependencies and configurations (#1447)
* Update package dependencies and configurations

* Update GitHub Actions workflow to use Node.js 22 and adjust build command to utilize pnpm for improved consistency and performance.

* Remove specific pnpm version from GitHub Actions workflow to allow for more flexible dependency management.

* Remove specific pnpm version from GitHub Actions workflow for improved flexibility in dependency management.

* Add rsvg-convert availability check in convertIconsToImages function to prevent errors when the command is not found

* Update GitHub Actions workflow to use Node.js 22 for improved compatibility and performance.

* Remove push trigger from GitHub Actions workflow to streamline build process and focus on pull requests.

* Add system dependencies for canvas in GitHub Actions workflow and update package.json to include canvas dependency

* Update GitHub Actions workflow to install additional system dependencies for canvas and rsvg-convert

* Update pnpm-lock.yaml to add canvas dependency and remove optional flags from several packages

* Update package.json to upgrade pnpm from version 10.12.1 to 10.26.1 for improved performance and compatibility.

* Refactor Eleventy configuration to use Sass directly and update package dependencies for improved compatibility and performance. Added support for SCSS file compilation and updated various package versions in package.json and pnpm-lock.yaml.

* Reorganize GitHub Actions workflow to reposition the in-progress comment step for better clarity and execution flow during icon validation.

* Update GitHub Actions workflows to install pnpm version 10.26.2 for consistency across build and validation processes.

* Install additional system dependencies for canvas and rsvg-convert in GitHub Actions workflow to ensure proper build environment.

* Ensure canvas is loaded before jsdom by using require in utilities.mjs

* Update canvas and @napi-rs/canvas dependencies to version 3.2.0 and 0.1.88 respectively in package.json and pnpm-lock.yaml for improved compatibility. Add "onlyBuiltDependencies" field in package.json to specify required dependencies.
2025-12-30 18:33:11 +01:00
codecalm f999bcc00d Update GitHub Actions workflow to use Node.js 22 and pnpm version 10.26.2, while repositioning the in-progress comment step for better visibility during validation. 2025-12-30 18:04:58 +01:00
codecalm c6a429a3be Update package.json to remove specific pnpm version and adjust GitHub Actions workflow to use pnpm version 10.26.1 for consistency across environments. 2025-12-26 16:36:18 +01:00
codecalm 3a1c1fde8b Update .gitignore to include .astro files and modify labeler configuration for improved icon detection rules. 2025-12-25 13:10:15 +01:00
codecalm 7a71dc0019 Update GitHub Actions workflows to use the latest versions of actions, enhancing performance and compatibility. 2025-12-24 02:05:52 +01:00
codecalm 40853f9a33 Update labeler action to version 6 for improved functionality and performance. 2025-12-24 02:00:04 +01:00
codecalm 1616de976d Update labeler configuration to include new rules for React Native, PNG, PDF packages, tests, and website documentation, enhancing automation for file management and organization. 2025-12-24 01:58:38 +01:00
codecalm a6497147f7 Enhance labeler configuration to include new rules for identifying new and modified icons in the 'icons' directory, improving automation for icon management. 2025-12-24 01:54:03 +01:00
sam a2b135fff0
Add icon `filled/crown` (#1441)
* Add new: `filled/crown`

* Update icon validation to require '.svg' extension in names and remove tag checks for filled icons, enhancing validation accuracy.

---------

Co-authored-by: codecalm <codecalm@gmail.com>
2025-12-23 02:45:52 +01:00
codecalm a2d526f493 Refactor icon validation logic to enforce stricter naming and category rules for outline and filled icons, improving error reporting for invalid configurations. 2025-12-23 02:38:33 +01:00
codecalm 3c47dab3ed Enhance icon generation script and PR workflow to utilize PR-specific repository and SHA, improving accuracy for forked repositories. 2025-12-23 02:33:39 +01:00
codecalm 69e0b696fb Update icon validation scripts to use dynamic base branch reference for improved accuracy in PR icon checks 2025-12-23 02:30:59 +01:00
codecalm 39b30d7109 Refactor icon comment generation to conditionally include category and tags in markdown table based on icon type, enhancing clarity and organization. 2025-12-23 02:26:40 +01:00
codecalm bccc80e934 Change PR validation workflow trigger from 'pull_request' to 'pull_request_target' for improved security and context access. 2025-12-23 02:18:58 +01:00
codecalm c23e6a8eea Merge branch 'main' of https://github.com/tabler/tabler-icons 2025-12-23 02:13:02 +01:00
codecalm 992a34a233 Update GitHub Actions workflow to include permissions for pull requests and contents 2025-12-23 02:13:01 +01:00
Paweł Kuna 6d5f43d993
Add icon comment generation with categories and tags to PR validation workflow (#1444)
* Add 'generate-icons-comment' script to package.json and update PR validation workflow to include icon generation and commenting steps.

* Refactor icon comment generation to include inline SVGs in markdown tables and update workflow to handle output correctly.

* Refactor icon comment generation to use base64 data URIs for SVGs in markdown tables, improving compatibility and visual representation.

* Refactor icon comment generation to use GitHub raw file URLs instead of base64 data URIs, enhancing compatibility with GitHub comments.

* Update icon size in markdown table for improved visibility in GitHub comments.

* Enhance icon comment generation by adding category and tags to markdown table, improving organization and metadata visibility.

* Implement category validation for new icons and consolidate helper imports in icon generation scripts.

* Add workflow step to remove comment with added icons if no icons are present

* Remove unused SVG icon file 'a-b-2 copy 2.svg' to clean up the icon directory.

* Update PR validation workflow to change icon comment mode from 'recreate' to 'upsert', allowing for more efficient comment updates.

* Update icon name in markdown table to include file extension for clarity in generated comments.

* Remove unused SVG icon file 'a-b-2 copy.svg' to streamline the icon directory.
2025-12-23 01:59:33 +01:00
Paweł Kuna e7f40a1500
Add 'validate-pr' script to package.json (#1443) 2025-12-23 00:59:53 +01:00
Paweł Kuna 67ede20ca5
Add validation rules and icon optimizations (#1440) 2025-12-22 23:43:52 +01:00
Paweł Kuna 78e46e478d
Added type checks in `icons-react` tests and ensured consistent dependency management in test packages. (#1439) 2025-12-22 19:50:20 +01:00
2494 changed files with 16178 additions and 13643 deletions

View File

@ -31,9 +31,9 @@ export const buildJsIcons = ({
let index = [];
Object.entries(allIcons).forEach(([type, icons]) => {
icons.forEach((icon, i) => {
process.stdout.write(
`Building \`${name}\` ${type} ${i}/${icons.length}: ${icon.name.padEnd(42)}\r`,
);
// process.stdout.write(
// `Building \`${name}\` ${type} ${i}/${icons.length}: ${icon.name.padEnd(42)}\r`,
// );
const children = icon.obj.children
.map(({ name, attributes }, i) => {
@ -107,9 +107,9 @@ export const buildIconsList = (name) => {
let index = [];
Object.entries(allIcons).forEach(([type, icons]) => {
icons.forEach((icon, i) => {
process.stdout.write(
`Building \`${name}\` ${type} ${i}/${icons.length}: ${icon.name.padEnd(42)}\r`,
);
// process.stdout.write(
// `Building \`${name}\` ${type} ${i}/${icons.length}: ${icon.name.padEnd(42)}\r`,
// );
const iconName = `${icon.name}${type !== 'outline' ? `-${type}` : ''}`;
@ -131,9 +131,9 @@ export const buildIconsDynamicImport = (name) => {
let dynamicImportString = 'export default {';
Object.entries(allIcons).forEach(([type, icons]) => {
icons.forEach((icon, i) => {
process.stdout.write(
`Building \`${name}\` ${type} ${i}/${icons.length}: ${icon.name.padEnd(42)}\r`,
);
// process.stdout.write(
// `Building \`${name}\` ${type} ${i}/${icons.length}: ${icon.name.padEnd(42)}\r`,
// );
const iconName = `${icon.name}${type !== 'outline' ? `-${type}` : ''}`,
iconNamePascal = `${icon.namePascal}${type !== 'outline' ? toPascalCase(type) : ''}`;

View File

@ -1,10 +1,9 @@
import { generateIconsPreview, getAllIcons, getArgvs, getPackageJson, GITHUB_DIR } from './helpers.mjs'
import { generateIconsPreview, getAllIcons, getPackageJson, GITHUB_DIR } from './helpers.mjs'
import path from 'path'
const argv = getArgvs(),
p = getPackageJson()
const p = getPackageJson()
const version = argv['new-version'] || `${p.version}`
const version = process.env.NEW_VERSION || `${p.version}`
if (version) {
const icons = getAllIcons()

View File

@ -1,9 +1,8 @@
import cp from 'child_process'
import { getArgvs, getPackageJson, printChangelog } from './helpers.mjs'
import { getPackageJson, printChangelog } from './helpers.mjs'
const p = getPackageJson(),
argv = getArgvs(),
version = argv['latest-version'] || `${p.version}`
version = process.env.LATEST_VERSION || `${p.version}`
if (version) {
cp.exec(`git diff ${version} HEAD --name-status ./icons`, function(err, ret) {

View File

@ -0,0 +1,107 @@
import { execSync } from 'child_process'
import { basename, join } from 'path'
import { ICONS_SRC_DIR, parseMatter } from './helpers.mjs'
// Check icon files added relative to base branch (for PR)
function getAddedIconsFromMain() {
try {
// Use BASE_SHA or BASE_REF from environment, fallback to origin/main
const baseRef = process.env.BASE_SHA || process.env.BASE_REF || 'origin/main'
const output = execSync(`git diff ${baseRef}...HEAD --name-status`, { encoding: 'utf-8' })
const addedIcons = []
output.split('\n').forEach(line => {
if (line.startsWith('A\t')) {
const filePath = line.substring(2)
// Filter only SVG files from icons/outline/ or icons/filled/ directories
if (filePath.match(/^icons\/(outline|filled)\/.+\.svg$/)) {
const iconPath = filePath.replace(/^icons\//, '')
addedIcons.push(iconPath)
}
}
})
return addedIcons
} catch (error) {
// Fallback: check relative to HEAD if base ref doesn't exist
try {
const output = execSync('git diff --diff-filter=A --name-only', { encoding: 'utf-8' })
const addedIcons = []
output.split('\n').forEach(filePath => {
if (filePath && filePath.match(/^icons\/(outline|filled)\/.+\.svg$/)) {
const iconPath = filePath.replace(/^icons\//, '')
addedIcons.push(iconPath)
}
})
return addedIcons
} catch {
return []
}
}
}
// Get GitHub raw file URL for icon
function getIconRawUrl(iconPath) {
// Use PR repo and SHA if available (for forks), otherwise fallback to current repo
const repo = process.env.PR_REPO || process.env.GITHUB_REPOSITORY || 'tabler/tabler-icons'
const ref = process.env.PR_SHA || process.env.GITHUB_SHA || 'main'
return `https://raw.githubusercontent.com/${repo}/${ref}/icons/${iconPath}`
}
// Generate markdown table for icons
function generateIconsTable(icons, type) {
if (icons.length === 0) {
return ''
}
const typeName = type === 'outline' ? 'Outline' : 'Filled'
let markdown = `### ${typeName} Icons (${icons.length})\n\n`
markdown += `| Icon | Name ${type === 'outline' ? '| Category | Tags ' : ''}|\n`
markdown += `|------|------${type === 'outline' ? '|------|------' : ''}|\n`
icons.forEach(iconPath => {
const iconName = basename(iconPath, '.svg')
const rawUrl = getIconRawUrl(iconPath)
const { data } = parseMatter(join(ICONS_SRC_DIR, iconPath))
const category = data.category || ''
const tags = data.tags || []
// Use GitHub raw file URL - GitHub Comments support external image URLs
markdown += `| <img src="${rawUrl}" width="240" height="240" alt="${iconName}" /> | \`${iconName}.svg\`${type === 'outline' ? ` | ${category || '❌ No category'} | ${tags.join(', ') || '❌ No tags' }` : ''}|\n`
})
markdown += `\n`
return markdown
}
// Generate markdown comment with table of added icons
function generateIconsComment(icons) {
if (icons.length === 0) {
return ''
}
// Group icons by type (outline/filled) with full paths
const outlineIcons = icons.filter(icon => icon.startsWith('outline/'))
const filledIcons = icons.filter(icon => icon.startsWith('filled/'))
let markdown = `## 📦 Added Icons\n\n`
markdown += `This PR adds **${icons.length}** new icon${icons.length > 1 ? 's' : ''}.\n\n`
markdown += generateIconsTable(outlineIcons, 'outline')
markdown += generateIconsTable(filledIcons, 'filled')
return markdown
}
const addedIcons = getAddedIconsFromMain()
if (addedIcons.length > 0) {
const comment = generateIconsComment(addedIcons)
console.log(comment)
} else {
process.exit(0)
}

View File

@ -14,6 +14,56 @@ import { globSync } from 'glob';
import { exec } from 'child_process';
import slash from 'slash';
export const strokes = {
200: 1,
300: 1.5,
400: 2,
}
export const categories = [
'Animals',
'Arrows',
'Badges',
'Brand',
'Buildings',
'Charts',
'Communication',
'Computers',
'Currencies',
'Database',
'Design',
'Development',
'Devices',
'Document',
'E-commerce',
'Electrical',
'Extensions',
'Food',
'Games',
'Gender',
'Gestures',
'Health',
'Laundry',
'Letters',
'Logic',
'Map',
'Math',
'Media',
'Mood',
'Nature',
'Numbers',
'Photography',
'Shapes',
'Sport',
'Symbols',
'System',
'Text',
'Vehicles',
'Version control',
'Weather',
'Zodiac'
]
export const iconTemplate = (type) =>
type === 'outline'
? `<svg
@ -65,12 +115,12 @@ const getSvgContent = (svg, type, name) => {
export const getAllIcons = (withContent = false, withObject = false) => {
let icons = {};
const limit = process.env['ICONS_LIMIT'] || Infinity;
const limit = process.env['ICONS_LIMIT'] ? parseInt(process.env['ICONS_LIMIT'], 10) : Infinity;
types.forEach((type) => {
icons[type] = globSync(slash(path.join(ICONS_SRC_DIR, `${type}/*.svg`)))
.sort((a, b) => a.localeCompare(b))
.slice(0, limit)
.sort()
.map((i) => {
const { data, content } = parseMatter(i),
name = basename(i, '.svg');
@ -503,6 +553,17 @@ export const getCompileOptions = () => {
};
export const convertIconsToImages = async (dir, extension, size = 240) => {
const rsvgConvertAvailable = await new Promise((resolve) => {
exec('command -v rsvg-convert', (error) => {
resolve(!error);
});
});
if (!rsvgConvertAvailable) {
console.log(`\nWarning: rsvg-convert not found. Skipping ${extension} conversion.`);
return;
}
const icons = getAllIcons();
await asyncForEach(Object.entries(icons), async function ([type, svgFiles]) {
@ -511,9 +572,9 @@ export const convertIconsToImages = async (dir, extension, size = 240) => {
await asyncForEach(svgFiles, async function (file, i) {
const distPath = path.join(dir, `./${type}/${file.name}.${extension}`);
process.stdout.write(
`Building \`icons/${extension}\` ${type} ${i}/${svgFiles.length}: ${file.name.padEnd(42)}\r`,
);
// process.stdout.write(
// `Building \`icons/${extension}\` ${type} ${i}/${svgFiles.length}: ${file.name.padEnd(42)}\r`,
// );
await new Promise((resolve, reject) => {
exec(`rsvg-convert -f ${extension} -h ${size} ${file.path} > ${distPath}`, (error) => {

View File

@ -24,8 +24,8 @@ types.forEach(type => {
.replace(/<line x1="([^"]+)" y1="([^"]+)" x2="([^"]+)" y2="([^"]+)"\s*\/>/g, function (f, x1, y1, x2, y2) {
return `<path d="M${x1} ${y1}L${x2} ${y2}" />`
})
.replace(/<circle cx="([^"]+)" cy="([^"]+)" r="([^"]+)"\s+\/>/g, function (f, cx, cy, r) {
return `<path d="M ${cx} ${cy}m -${r} 0a ${r} ${r} 0 1 0 ${r * 2} 0a ${r} ${r} 0 1 0 ${r * -2} 0" />`
.replace(/<circle cx="([^"]+)" cy="([^"]+)" r="([^"]+)"([^>]*)?\/>/g, function (f, cx, cy, r, attrs) {
return `<path d="M ${cx - r} ${cy}a ${r} ${r} 0 1 0 ${r * 2} 0a ${r} ${r} 0 1 0 ${r * -2} 0"${attrs}/>`
})
.replace(/<ellipse cx="([^"]+)" cy="([^"]+)" rx="([^"]+)"\s+\/>/g, function (f, cx, cy, rx) {
return `<ellipse cx="${cx}" cy="${cy}" rx="${rx}" ry="${rx}" />`
@ -33,8 +33,8 @@ types.forEach(type => {
.replace(/<ellipse cx="([^"]+)" cy="([^"]+)" rx="([^"]+)" ry="([^"]+)"\s+\/>/g, function (f, cx, cy, rx, ry) {
return `<path d="M${cx} ${cy}m -${rx} 0a${rx} ${ry} 0 1 0 ${rx * 2} 0a ${rx} ${ry} 0 1 0 -${rx * 2} 0" />`
})
.replace(/<rect width="([^"]+)" height="([^"]+)" x="([^"]+)" y="([^"]+)" rx="([^"]+)"\s+\/>/g, function (f, width, height, x, y, rx) {
return `<rect x="${x}" y="${y}" width="${width}" height="${height}" rx="${rx}" />`
.replace(/<rect width="([^"]+)" height="([^"]+)" x="([^"]+)" y="([^"]+)"(.*)?\/>/g, function (f, width, height, x, y, attrs) {
return `<rect x="${x}" y="${y}" width="${width}" height="${height}"${attrs} />`
})
.replace(/<rect x="([^"]+)" y="([^"]+)" rx="([^"]+)" width="([^"]+)" height="([^"]+)"\s+\/>/g, function (f, x, y, rx, width, height) {
return `<rect x="${x}" y="${y}" width="${height}" height="${height}" rx="${rx}" />`
@ -58,7 +58,6 @@ types.forEach(type => {
return `<path d="${r1}"`
})
.replace(/<path\s+d="([^"]+)"/g, function (f, d) {
const d2 = d
.replace(/m0 0/g, (f, m) => ``)
.replace(/ 0\./g, ' .')
@ -69,7 +68,20 @@ types.forEach(type => {
})
.replace(/d="m/g, 'd="M')
.replace(/([Aa])\s?([0-9.]+)[\s,]([0-9.]+)[\s,]([0-9.]+)[\s,]?([0-1])[\s,]?([0-1])[\s,]?(-?[0-9.]+)[\s,]?(-?[0-9.]+)/gi, '$1$2 $3 $4 $5 $6 $7 $8')
.replace(/<path[^>]*d=["']([^"']*?)a([\d.]+)\s+([\d.]+)\s([01])\s([01])\s([01]+)\s([0-9.-]+)\s([0-9.-]+)a\2\s+\3\s+([01])\s+([01])\s([01]+)\s([0-9.-]+)\s([0-9.-]+)z([^"']*?)["']\s+\/>/g, function (match, d, rx, ry, flag1, flag2, extra1, x1, y1, flag3, flag4, extra2, x2, y2, afterZ) {
return `<path d="${d}a${rx} ${ry} ${flag1} ${flag2} ${extra1} ${x1} ${y1}a${rx} ${ry} ${flag3} ${flag4} ${extra2} ${x2} ${y2}${afterZ}" />`
})
.replace(/<path[^>]*d=["']([^"']*?)M([0-9.-]+)\s([0-9.-]+)m([0-9.-]+)\s([0-9.-]+)([^"']*?)["'](.*)?\/>/g, function (match, d, x1, y1, x2, y2, afterM, attrs) {
return `<path d="${d}M${Number(x1) + Number(x2)} ${Number(y1) + Number(y2)}${afterM}"${attrs} />`
})
.replace(/\n\s+\n+/g, '\n')
.replace(/<path d="([^"]+)"/g, function (f, d) {
const d2 = d
.replace(/v0/g, (f, v) => ``)
.replace(/h0/g, (f, h) => ``)
return `<path d="${d2}"`
})
// Add icon template
svgFileContent = svgFileContent.replace(/<svg[^>]+>/, iconTemplate(type))

View File

@ -2,7 +2,6 @@ import { visualizer } from 'rollup-plugin-visualizer'
import license from 'rollup-plugin-license'
import esbuild from 'rollup-plugin-esbuild'
import { nodeResolve } from '@rollup/plugin-node-resolve';
import bundleSize from '@atomico/rollup-plugin-sizes';
const getRollupPlugins = (pkg, minify) => {
return [
@ -19,7 +18,6 @@ const getRollupPlugins = (pkg, minify) => {
This source code is licensed under the ${pkg.license} license.
See the LICENSE file in the root directory of this source tree.`
}),
bundleSize(),
visualizer({
sourcemap: false,
filename: `stats/${pkg.name}${minify ? '-min' : ''}.html`

View File

@ -1,11 +1,10 @@
import { globSync } from 'glob'
import { readFileSync, writeFileSync } from 'fs'
import path from 'path'
import { ICONS_SRC_DIR, getMaxUnicode, getArgvs, getPackageJson } from './helpers.mjs'
import { ICONS_SRC_DIR, getMaxUnicode, getPackageJson } from './helpers.mjs'
const argv = getArgvs(),
pkg = getPackageJson(),
newVersion = argv['new-version'] || pkg.version
const pkg = getPackageJson(),
newVersion = process.env.NEW_VERSION || pkg.version
const files = globSync(path.join(ICONS_SRC_DIR, '**/*.svg'))

View File

@ -1,8 +1,9 @@
import { globSync } from 'glob'
import fs from 'fs'
import { basename } from 'path'
import { HOME_DIR, ICONS_SRC_DIR, iconTemplate, parseMatter, types, getArgvs } from './helpers.mjs'
import { HOME_DIR, ICONS_SRC_DIR, iconTemplate, parseMatter, types, getArgvs, categories } from './helpers.mjs'
import { join } from 'path'
import { execSync } from 'child_process'
let error = false
@ -13,6 +14,24 @@ const outlineIconsNames = globSync(join(ICONS_SRC_DIR, 'outline/*.svg')).map(i =
let unicodes = []
// Validate that only .svg files exist in icons/filled and icons/outline directories
types.forEach(type => {
const dirPath = join(ICONS_SRC_DIR, type)
const files = fs.readdirSync(dirPath)
files.forEach(file => {
// Ignore .DS_Store (macOS system file)
if (file === '.DS_Store') {
return
}
if (!file.endsWith('.svg')) {
console.log(`⛔️ Directory \`icons/${type}\` contains non-SVG file: \`${file}\``)
error = true
}
})
})
const duplicateExists = (arr) => {
return new Set(arr).size !== arr.length
}
@ -22,6 +41,30 @@ const getIconName = (icon) => {
return icon.split('/').slice(-2).join('/')
}
function getAddedIconsFromMain() {
try {
// Use BASE_SHA or BASE_REF from environment, fallback to origin/main
const baseRef = process.env.BASE_SHA || process.env.BASE_REF || 'origin/main'
const output = execSync(`git diff ${baseRef}...HEAD --name-status`, { encoding: 'utf-8' })
const addedIcons = []
output.split('\n').forEach(line => {
if (line.startsWith('A\t')) {
const filePath = line.substring(2)
// Filter only SVG files from icons/outline/ or icons/filled/ directories
if (filePath.match(/^icons\/((outline|filled)\/.+\.svg)$/)) {
// add icon without icons/ prefix
addedIcons.push(filePath.replace(/^icons\//, ''))
}
}
})
return addedIcons
} catch (error) {
return []
}
}
types.forEach(type => {
const icons = globSync(join(ICONS_SRC_DIR, type, '*.svg')).sort()
@ -39,6 +82,71 @@ types.forEach(type => {
error = true
}
if (iconContent.includes('M0 0h24v24H0z')) {
console.log(`⛔️ Icon \`${iconName}\` contains empty rectangle path \`M0 0h24v24H0z\``)
error = true
}
// Check for SVG elements that should be converted to path
const invalidElements = ['<circle', '<rect', '<ellipse', '<line', '<polygon', '<polyline']
const foundInvalidElements = invalidElements.filter(el => iconContent.includes(el))
if (foundInvalidElements.length > 0) {
console.log(`⛔️ Icon \`${iconName}\` contains elements that should be converted to path: ${foundInvalidElements.join(', ')}`)
error = true
}
// Check for rectangle paths that end with 'z' (should not have closing 'z')
// Rectangle paths should have two arc commands next to each other with the same size (rx and ry)
const rectanglePathRegex = /<path[^>]*d=["']([^"']*?)a([\d.]+)\s+([\d.]+)\s+[01]\s+[01]\s([0-9.-]+)\s([0-9.-]+)\s[0-9.-]+a\2\s+\3\s+[01]\s+[01]\s[0-9.-]+\s([0-9.-]+)\s([0-9.-]+)z([^"']*?)["']\s+\/>/g
if (rectanglePathRegex.test(iconContent)) {
console.log(`⛔️ Icon \`${iconName}\` contains rectangle path that ends with 'z' (should not have closing 'z')`)
error = true
}
// Check for path with 'z' followed by h/v/H/V command (invalid pattern)
const invalidZCommandRegex = /<path[^>]*d=["']([^"']*?)z[hvHV]([^"']*?)["']\s+\/>/g
if (invalidZCommandRegex.test(iconContent)) {
console.log(`⛔️ Icon \`${iconName}\` contains path with 'z' followed by h/v/H/V command (invalid pattern)`)
error = true
}
// Check for path with 'm' (relative move) after 'M' (absolute move)
const invalidMAfterMRegex = /<path[^>]*d=["']([^"']*?)M[0-9.-]\s[0-9.-]*?m([^"']*?)["']/g
if (invalidMAfterMRegex.test(iconContent)) {
console.log(`⛔️ Icon \`${iconName}\` contains path with 'm' (relative move) after 'M' (absolute move)`)
error = true
}
// Check for path with 'Z' (uppercase) - disallow Z from path
if (type === 'outline') {
const invalidZRegex = /<path[^>]*d=["'][^"']*Z[^"']*["']\s+\/>/gi
if (invalidZRegex.test(iconContent)) {
console.log(`⛔️ Icon \`${iconName}\` contains path with 'Z'`)
error = true
}
}
// Check for empty path d=""
const emptyPathRegex = /<path[^>]*d=["']\s*["']/g
if (emptyPathRegex.test(iconContent)) {
console.log(`⛔️ Icon \`${iconName}\` contains empty path d=""`)
error = true
}
// Check for v0 or h0 (forbidden, but v0.1, h0.5 etc. are allowed)
const forbiddenV0H0Regex = /<path[^>]*d="[^"']*[hv]0(?!\.\d)[^"']*"/g
if (forbiddenV0H0Regex.test(iconContent)) {
console.log(`⛔️ Icon \`${iconName}\` contains forbidden v0 or h0`)
error = true
}
// Check for path with only M command (empty path)
const onlyMRegex = /<path[^>]*d=["']\s*[Mm][\s0-9.-]+\s*["']/g
if (onlyMRegex.test(iconContent)) {
console.log(`⛔️ Icon \`${iconName}\` contains path with only M command (empty path)`)
error = true
}
try {
const { data } = parseMatter(icon)
@ -105,6 +213,50 @@ Object.entries(aliases).forEach(([type, replacers]) => {
})
})
const addedIcons = getAddedIconsFromMain()
for (const icon of addedIcons) {
const iconPath = join(ICONS_SRC_DIR, icon)
try {
const { data, content } = parseMatter(iconPath)
if (data.unicode) {
console.log(`⛔️ Icon \`${icon}\` has unicode, but should not have it`)
error = true
}
if (data.version) {
console.log(`⛔️ New icon \`${icon}\` has version, but should not have it`)
error = true
}
if (!icon.match(/^(outline|filled)\/[a-z0-9-]+\.svg$/)) {
console.log(`⛔️ New icon \`${icon}\` has invalid name`)
error = true
}
// check if outline icon has category
if (icon.match(/^outline\//) ) {
if(!data.category) {
console.log(`⛔️ New outline icon \`${icon}\` has no category`)
error = true
} else if (!categories.includes(data.category)) {
console.log(`⛔️ New outline icon \`${icon}\` has invalid category \`${data.category}\`. Valid categories are: ${categories.join(', ')}`)
error = true
}
} else {
if (icon.match(/^filled\//) && data.category) {
console.log(`⛔️ New filled icon \`${icon}\` has category, but should not have it`)
error = true
}
}
} catch (error) {
console.log(`⛔️ New icon \`${icon}\` has invalid metadata`)
error = true
}
}
if (error) {
process.exit(1)
} else {

View File

@ -1,7 +1,27 @@
const eleventySass = require("eleventy-sass");
const sass = require("sass");
const path = require("path");
module.exports = function (eleventyConfig) {
eleventyConfig.addPlugin(eleventySass);
eleventyConfig.addTemplateFormats("scss");
eleventyConfig.addExtension("scss", {
outputFileExtension: "css",
compile: async function(inputContent, inputPath) {
const parsed = path.parse(inputPath);
if (parsed.name.startsWith("_")) {
return;
}
const result = sass.compileString(inputContent, {
loadPaths: [parsed.dir || ".", path.join(process.cwd(), "src", "_includes")],
style: "expanded"
});
return async (data) => {
return result.css;
};
}
});
eleventyConfig.addWatchTarget("./src");
eleventyConfig.addWatchTarget("./icons");

45
.github/labeler.yml vendored
View File

@ -11,6 +11,18 @@
- 'icons/**/*.svg'
- aliases.json
# For new icons
✨ new icons:
- changed-files:
- any-glob-to-any-file:
- 'icons/**/*.svg'
# For modified icons
🔧 modified icons:
- changed-files:
- any-glob-to-any-file:
- 'icons/**/*.svg'
# For Github Actions
🤖 github-actions:
- changed-files:
@ -68,3 +80,36 @@
- any-glob-to-any-file:
- 'packages/icons-sprite/*'
# For React Native package
🔗 react-native package:
- changed-files:
- any-glob-to-any-file:
- 'packages/icons-react-native/*'
# For PNG package
🔗 png package:
- changed-files:
- any-glob-to-any-file:
- 'packages/icons-png/*'
# For PDF package
🔗 pdf package:
- changed-files:
- any-glob-to-any-file:
- 'packages/icons-pdf/*'
# For tests
🧪 tests:
- changed-files:
- any-glob-to-any-file:
- 'test/**/*'
- 'packages/*/test.spec.*'
- 'packages/*/vitest.config.*'
# For website/documentation site
🌐 website:
- changed-files:
- any-glob-to-any-file:
- 'src/**/*'
- '*.liquid'

55
.github/workflows/build.yml vendored Normal file
View File

@ -0,0 +1,55 @@
name: Build
on:
pull_request:
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: Use Node.js 22
uses: actions/setup-node@v4
with:
node-version: 22
- uses: pnpm/action-setup@v4
name: Install pnpm
with:
version: 10.26.2
- name: Install system dependencies for canvas and rsvg-convert
run: |
sudo apt-get update
sudo apt-get install -y \
build-essential \
libcairo2-dev \
libpango1.0-dev \
libjpeg-dev \
libgif-dev \
librsvg2-dev \
librsvg2-bin
- name: Get pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install --no-frozen-lockfile
- name: Build
env:
ICONS_LIMIT: 100
run: pnpm exec turbo build

View File

@ -11,7 +11,7 @@ jobs:
pull-requests: write
issues: write
steps:
- uses: actions/stale@v5
- uses: actions/stale@v9
with:
days-before-issue-stale: 360
days-before-issue-close: 14

View File

@ -9,4 +9,4 @@ jobs:
pull-requests: write
runs-on: ubuntu-latest
steps:
- uses: actions/labeler@v5
- uses: actions/labeler@v6

View File

@ -18,7 +18,7 @@ jobs:
steps:
- name: Checkout main branch
uses: actions/checkout@v4
uses: actions/checkout@v5
with:
fetch-depth: 0

View File

@ -1,51 +0,0 @@
name: Validate icons
on: [pull_request]
permissions:
pull-requests: write
jobs:
validate:
if: github.repository == 'tabler/tabler-icons'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Use Node.js 20
uses: actions/setup-node@v3
with:
node-version: 20
- uses: pnpm/action-setup@v3
name: Install pnpm
with:
version: 8
run_install: false
- name: Get pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- uses: actions/cache@v3
name: Setup pnpm cache
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install --no-frozen-lockfile
- name: Validate icons
id: validate
run: pnpm run --silent validate > ./comment-markup.md
continue-on-error: true
- name: Comment PR
uses: thollander/actions-comment-pull-request@v2
with:
filePath: ./comment-markup.md
comment_tag: validate
mode: recreate

129
.github/workflows/validate-pr.yml vendored Normal file
View File

@ -0,0 +1,129 @@
name: Validate PR
on: [pull_request_target]
permissions:
pull-requests: write
jobs:
validate-pr:
if: github.repository == 'tabler/tabler-icons'
runs-on: ubuntu-latest
permissions:
pull-requests: write
contents: read
steps:
- uses: actions/checkout@v5
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}
- name: Set base branch and PR info
run: |
BASE_REF="${{ github.event.pull_request.base.ref }}"
BASE_SHA="${{ github.event.pull_request.base.sha }}"
PR_REPO="${{ github.event.pull_request.head.repo.full_name }}"
PR_SHA="${{ github.event.pull_request.head.sha }}"
echo "BASE_REF=${BASE_REF}" >> $GITHUB_ENV
echo "BASE_SHA=${BASE_SHA}" >> $GITHUB_ENV
echo "PR_REPO=${PR_REPO}" >> $GITHUB_ENV
echo "PR_SHA=${PR_SHA}" >> $GITHUB_ENV
# Fetch base branch to ensure it's available
git fetch origin ${BASE_REF}:${BASE_REF} || true
- name: Use Node.js 22
uses: actions/setup-node@v4
with:
node-version: 22
- uses: pnpm/action-setup@v4
name: Install pnpm
with:
version: 10.26.2
- name: Install system dependencies for canvas and rsvg-convert
run: |
sudo apt-get update
sudo apt-get install -y \
build-essential \
libcairo2-dev \
libpango1.0-dev \
libjpeg-dev \
libgif-dev \
librsvg2-dev \
librsvg2-bin
- name: Get pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install --no-frozen-lockfile
- name: Add in progress comment
id: add-in-progress-comment
uses: thollander/actions-comment-pull-request@v3
with:
comment-tag: validate
mode: upsert
message: |
🔄 Icons are being validated... Please wait...
continue-on-error: true
- name: Validate icons
id: validate
env:
BASE_REF: ${{ env.BASE_REF }}
BASE_SHA: ${{ env.BASE_SHA }}
run: pnpm run --silent validate > ./comment-markup.md
continue-on-error: true
- name: Comment PR
uses: thollander/actions-comment-pull-request@v3
with:
file-path: ./comment-markup.md
comment-tag: validate
mode: recreate
- name: Generate icons comment
id: generate-icons-comment
env:
BASE_REF: ${{ env.BASE_REF }}
BASE_SHA: ${{ env.BASE_SHA }}
PR_REPO: ${{ env.PR_REPO }}
PR_SHA: ${{ env.PR_SHA }}
run: pnpm run --silent generate-icons-comment > ./comment-icons.md || true
continue-on-error: true
- name: Check if icons were added
id: check-icons
run: |
if [ -s ./comment-icons.md ]; then
echo "has_icons=true" >> $GITHUB_OUTPUT
else
echo "has_icons=false" >> $GITHUB_OUTPUT
fi
- name: Comment PR with added icons
if: steps.check-icons.outputs.has_icons == 'true'
uses: thollander/actions-comment-pull-request@v3
with:
file-path: ./comment-icons.md
comment-tag: added-icons
mode: upsert
- name: Remove comment with added icons
if: steps.check-icons.outputs.has_icons == 'false'
uses: thollander/actions-comment-pull-request@v3
with:
comment-tag: added-icons
mode: delete

2
.gitignore vendored
View File

@ -6,7 +6,6 @@ package-lock.json
Gemfile.lock
packages-zip/*
.DS_Store
icons-outlined/
github
src/_icons/test.svg
src/test.svg
@ -38,3 +37,4 @@ packages/icons*/icons/*
!/**/.gitkeep
*.tgz
.env
.astro

View File

@ -1,6 +1,6 @@
MIT License
Copyright (c) 2020-2025 Paweł Kuna
Copyright (c) 2020-2026 Paweł Kuna
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@ -56,7 +56,8 @@
"mood-suprised": "mood-surprised",
"circle-dashed-letter-letter-v": "circle-dashed-letter-v",
"seeding": "seedling",
"seeding-off": "seedling-off"
"seeding-off": "seedling-off",
"brand-adobe-premier": "brand-adobe-premiere"
},
"filled": {
"discount-check": "rosette-discount-check",

0
comment-icons.md Normal file
View File

View File

@ -9,5 +9,5 @@ unicode: "f6ea"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M17 3.34a10 10 0 1 1 -14.995 8.984l-.005 -.324l.005 -.324a10 10 0 0 1 14.995 -8.336zm-1.051 6.844a1 1 0 0 0 -1.152 -.663l-.113 .03l-2.684 .895l-2.684 -.895l-.113 -.03a1 1 0 0 0 -.628 1.884l.109 .044l2.316 .771v.976l-1.832 2.75l-.06 .1a1 1 0 0 0 .237 1.21l.1 .076l.101 .06a1 1 0 0 0 1.21 -.237l.076 -.1l1.168 -1.752l1.168 1.752l.07 .093a1 1 0 0 0 1.653 -1.102l-.059 -.1l-1.832 -2.75v-.977l2.316 -.771l.109 -.044a1 1 0 0 0 .524 -1.221zm-3.949 -4.184a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3z" />
<path d="M17 3.34a10 10 0 1 1 -14.995 8.984l-.005 -.324l.005 -.324a10 10 0 0 1 14.995 -8.336zm-1.051 6.844a1 1 0 0 0 -1.152 -.663l-.113 .03l-2.684 .895l-2.684 -.895l-.113 -.03a1 1 0 0 0 -.628 1.884l.109 .044l2.316 .771v.976l-1.832 2.75l-.06 .1a1 1 0 0 0 .237 1.21l.1 .076l.101 .06a1 1 0 0 0 1.21 -.237l.076 -.1l1.168 -1.752l1.168 1.752l.07 .093a1 1 0 0 0 1.653 -1.102l-.059 -.1l-1.832 -2.75v-.977l2.316 -.771l.109 -.044a1 1 0 0 0 .524 -1.221zm-3.949 -4.184a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3" />
</svg>

Before

Width:  |  Height:  |  Size: 663 B

After

Width:  |  Height:  |  Size: 662 B

View File

@ -9,6 +9,6 @@ unicode: "fa82"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M2 3m0 2a2 2 0 0 1 2 -2h16a2 2 0 0 1 2 2v0a2 2 0 0 1 -2 2h-16a2 2 0 0 1 -2 -2z" />
<path d="M2 5a2 2 0 0 1 2 -2h16a2 2 0 0 1 2 2a2 2 0 0 1 -2 2h-16a2 2 0 0 1 -2 -2z" />
<path d="M19 9c.513 0 .936 .463 .993 1.06l.007 .14v7.2c0 1.917 -1.249 3.484 -2.824 3.594l-.176 .006h-10c-1.598 0 -2.904 -1.499 -2.995 -3.388l-.005 -.212v-7.2c0 -.663 .448 -1.2 1 -1.2h14zm-5 2h-4l-.117 .007a1 1 0 0 0 0 1.986l.117 .007h4l.117 -.007a1 1 0 0 0 0 -1.986l-.117 -.007z" />
</svg>

Before

Width:  |  Height:  |  Size: 542 B

After

Width:  |  Height:  |  Size: 536 B

View File

@ -10,5 +10,5 @@ unicode: "fb20"
fill="currentColor"
>
<path d="M8.486 11.143a1 1 0 0 1 1.371 .343c1.045 1.74 1.83 3.443 2.392 5.237l.172 .581l.092 -.13c2.093 -2.921 4.48 -3.653 7.565 -2.7l.238 .077a1 1 0 1 1 -.632 1.898c-2.932 -.978 -4.73 -.122 -6.79 3.998c-.433 .866 -1.721 .673 -1.88 -.283c-.46 -2.76 -1.369 -5.145 -2.871 -7.65a1 1 0 0 1 .343 -1.371z" />
<path d="M6 4a3 3 0 1 0 0 6a3 3 0 0 0 0 -6z" />
<path d="M6 4a3 3 0 1 0 0 6a3 3 0 0 0 0 -6" />
</svg>

Before

Width:  |  Height:  |  Size: 518 B

After

Width:  |  Height:  |  Size: 517 B

View File

@ -10,5 +10,5 @@ unicode: "fb21"
fill="currentColor"
>
<path d="M14.143 11.486a1 1 0 0 1 1.714 1.028c-1.502 2.505 -2.41 4.89 -2.87 7.65c-.16 .956 -1.448 1.15 -1.881 .283c-2.06 -4.12 -3.858 -4.976 -6.79 -3.998a1 1 0 1 1 -.632 -1.898c3.2 -1.067 5.656 -.373 7.803 2.623l.091 .13l.011 -.04c.522 -1.828 1.267 -3.55 2.273 -5.3l.28 -.478z" />
<path d="M18 4a3 3 0 1 0 0 6a3 3 0 0 0 0 -6z" />
<path d="M18 4a3 3 0 1 0 0 6a3 3 0 0 0 0 -6" />
</svg>

Before

Width:  |  Height:  |  Size: 497 B

After

Width:  |  Height:  |  Size: 496 B

View File

@ -9,5 +9,5 @@ unicode: "f706"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M12 2c5.523 0 10 4.477 10 10a10 10 0 0 1 -20 0c0 -5.523 4.477 -10 10 -10zm2 5a3 3 0 0 0 -2.98 2.65l-.015 .174l-.005 .176l.005 .176c.019 .319 .087 .624 .197 .908l.09 .209l-3.5 3.5l-.082 .094a1 1 0 0 0 0 1.226l.083 .094l1.5 1.5l.094 .083a1 1 0 0 0 1.226 0l.094 -.083l.083 -.094a1 1 0 0 0 0 -1.226l-.083 -.094l-.792 -.793l.585 -.585l.793 .792l.094 .083a1 1 0 0 0 1.403 -1.403l-.083 -.094l-.792 -.793l.792 -.792a3 3 0 1 0 1.293 -5.708zm0 2a1 1 0 1 1 0 2a1 1 0 0 1 0 -2z" />
<path d="M12 2c5.523 0 10 4.477 10 10a10 10 0 0 1 -20 0c0 -5.523 4.477 -10 10 -10zm2 5a3 3 0 0 0 -2.98 2.65l-.015 .174l-.005 .176l.005 .176c.019 .319 .087 .624 .197 .908l.09 .209l-3.5 3.5l-.082 .094a1 1 0 0 0 0 1.226l.083 .094l1.5 1.5l.094 .083a1 1 0 0 0 1.226 0l.094 -.083l.083 -.094a1 1 0 0 0 0 -1.226l-.083 -.094l-.792 -.793l.585 -.585l.793 .792l.094 .083a1 1 0 0 0 1.403 -1.403l-.083 -.094l-.792 -.793l.792 -.792a3 3 0 1 0 1.293 -5.708zm0 2a1 1 0 1 1 0 2a1 1 0 0 1 0 -2" />
</svg>

Before

Width:  |  Height:  |  Size: 643 B

After

Width:  |  Height:  |  Size: 642 B

View File

@ -9,5 +9,5 @@ version: "3.5"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M4.929 4.929a10 10 0 1 1 14.141 14.141a10 10 0 0 1 -14.14 -14.14zm8.071 4.071a1 1 0 1 0 -2 0v2h-2a1 1 0 1 0 0 2h2v2a1 1 0 1 0 2 0v-2h2a1 1 0 1 0 0 -2h-2v-2z" />
<path d="M4.929 4.929a10 10 0 1 1 14.141 14.141a10 10 0 0 1 -14.14 -14.14m8.071 4.071a1 1 0 1 0 -2 0v2h-2a1 1 0 1 0 0 2h2v2a1 1 0 1 0 2 0v-2h2a1 1 0 1 0 0 -2h-2v-2z" />
</svg>

Before

Width:  |  Height:  |  Size: 334 B

After

Width:  |  Height:  |  Size: 333 B

View File

@ -10,6 +10,6 @@ version: "3.34"
fill="currentColor"
>
<path d="M4 2h2a1 1 0 0 1 1 1v18a1 1 0 0 1 -1 1h-2a2 2 0 0 1 -2 -2v-16a2 2 0 0 1 2 -2" />
<path d="M9 2m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v18a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z" />
<path d="M9 3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v18a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z" />
<path d="M18 2h2a2 2 0 0 1 2 2v16a2 2 0 0 1 -2 2h-2a1 1 0 0 1 -1 -1v-18a1 1 0 0 1 1 -1" />
</svg>

Before

Width:  |  Height:  |  Size: 442 B

After

Width:  |  Height:  |  Size: 438 B

View File

@ -9,5 +9,5 @@ unicode: "fd10"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M17 3.34a10 10 0 1 1 -15 8.66l.005 -.324a10 10 0 0 1 14.995 -8.336zm-5 14.66a1 1 0 1 0 0 2a1 1 0 0 0 0 -2zm3.684 -10.949l-6 2a1 1 0 0 0 -.633 .633l-2.007 6.026l-.023 .086l-.017 .113l-.004 .068v.044l.009 .111l.012 .07l.04 .144l.045 .1l.054 .095l.064 .09l.069 .075l.084 .074l.098 .07l.1 .054l.078 .033l.105 .033l.109 .02l.043 .005l.068 .004h.044l.111 -.009l.07 -.012l.02 -.006l.019 -.002l.074 -.022l6 -2a1 1 0 0 0 .633 -.633l2 -6a1 1 0 0 0 -1.265 -1.265zm-1.265 2.529l-1.21 3.629l-3.629 1.21l1.21 -3.629l3.629 -1.21zm-9.419 1.42a1 1 0 1 0 0 2a1 1 0 0 0 0 -2zm14 0a1 1 0 1 0 0 2a1 1 0 0 0 0 -2zm-7 -7a1 1 0 1 0 0 2a1 1 0 0 0 0 -2z" />
<path d="M17 3.34a10 10 0 1 1 -15 8.66l.005 -.324a10 10 0 0 1 14.995 -8.336zm-5 14.66a1 1 0 1 0 0 2a1 1 0 0 0 0 -2m3.684 -10.949l-6 2a1 1 0 0 0 -.633 .633l-2.007 6.026l-.023 .086l-.017 .113l-.004 .068v.044l.009 .111l.012 .07l.04 .144l.045 .1l.054 .095l.064 .09l.069 .075l.084 .074l.098 .07l.1 .054l.078 .033l.105 .033l.109 .02l.043 .005l.068 .004h.044l.111 -.009l.07 -.012l.02 -.006l.019 -.002l.074 -.022l6 -2a1 1 0 0 0 .633 -.633l2 -6a1 1 0 0 0 -1.265 -1.265zm-1.265 2.529l-1.21 3.629l-3.629 1.21l1.21 -3.629l3.629 -1.21zm-9.419 1.42a1 1 0 1 0 0 2a1 1 0 0 0 0 -2m14 0a1 1 0 1 0 0 2a1 1 0 0 0 0 -2m-7 -7a1 1 0 1 0 0 2a1 1 0 0 0 0 -2" />
</svg>

Before

Width:  |  Height:  |  Size: 806 B

After

Width:  |  Height:  |  Size: 802 B

View File

@ -9,5 +9,5 @@ unicode: "fd11"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M22 10v6a4 4 0 0 1 -4 4h-12a4 4 0 0 1 -4 -4v-6h20zm-14.99 4h-.01a1 1 0 1 0 .01 2a1 1 0 0 0 0 -2zm5.99 0h-2a1 1 0 0 0 0 2h2a1 1 0 0 0 0 -2zm5 -10a4 4 0 0 1 4 4h-20a4 4 0 0 1 4 -4h12z" />
<path d="M22 10v6a4 4 0 0 1 -4 4h-12a4 4 0 0 1 -4 -4v-6h20zm-14.99 4h-.01a1 1 0 1 0 .01 2a1 1 0 0 0 0 -2m5.99 0h-2a1 1 0 0 0 0 2h2a1 1 0 0 0 0 -2zm5 -10a4 4 0 0 1 4 4h-20a4 4 0 0 1 4 -4h12z" />
</svg>

Before

Width:  |  Height:  |  Size: 360 B

After

Width:  |  Height:  |  Size: 359 B

11
icons/filled/crown.svg Normal file
View File

@ -0,0 +1,11 @@
<!--
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M19 19h-14c-.5 0 -.9 -.3 -1 -.8l-2 -10c0 -.4 .1 -.8 .5 -1.1c.4 -.2 .8 -.2 1.1 0l4.1 3.3l3.4 -5.1c.4 -.6 1.3 -.6 1.7 0l3.4 5.1l4.1 -3.3c.3 -.3 .8 -.3 1.1 0c.4 .2 .5 .6 .5 1.1l-2 10c0 .5 -.5 .8 -1 .8z" />
</svg>

After

Width:  |  Height:  |  Size: 345 B

View File

@ -9,5 +9,5 @@ unicode: "f73e"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M18.333 2c1.96 0 3.56 1.537 3.662 3.472l.005 .195v12.666c0 1.96 -1.537 3.56 -3.472 3.662l-.195 .005h-12.666a3.667 3.667 0 0 1 -3.662 -3.472l-.005 -.195v-12.666c0 -1.96 1.537 -3.56 3.472 -3.662l.195 -.005h12.666zm-6.333 8.5a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3z" />
<path d="M18.333 2c1.96 0 3.56 1.537 3.662 3.472l.005 .195v12.666c0 1.96 -1.537 3.56 -3.472 3.662l-.195 .005h-12.666a3.667 3.667 0 0 1 -3.662 -3.472l-.005 -.195v-12.666c0 -1.96 1.537 -3.56 3.472 -3.662l.195 -.005h12.666zm-6.333 8.5a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3" />
</svg>

Before

Width:  |  Height:  |  Size: 438 B

After

Width:  |  Height:  |  Size: 437 B

View File

@ -9,5 +9,5 @@ unicode: "f73f"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M18.333 2c1.96 0 3.56 1.537 3.662 3.472l.005 .195v12.666c0 1.96 -1.537 3.56 -3.472 3.662l-.195 .005h-12.666a3.667 3.667 0 0 1 -3.662 -3.472l-.005 -.195v-12.666c0 -1.96 1.537 -3.56 3.472 -3.662l.195 -.005h12.666zm-3.833 11a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3zm-5 -5a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3z" />
<path d="M18.333 2c1.96 0 3.56 1.537 3.662 3.472l.005 .195v12.666c0 1.96 -1.537 3.56 -3.472 3.662l-.195 .005h-12.666a3.667 3.667 0 0 1 -3.662 -3.472l-.005 -.195v-12.666c0 -1.96 1.537 -3.56 3.472 -3.662l.195 -.005h12.666zm-3.833 11a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3m-5 -5a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3" />
</svg>

Before

Width:  |  Height:  |  Size: 481 B

After

Width:  |  Height:  |  Size: 479 B

View File

@ -9,5 +9,5 @@ unicode: "f740"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M18.333 2c1.96 0 3.56 1.537 3.662 3.472l.005 .195v12.666c0 1.96 -1.537 3.56 -3.472 3.662l-.195 .005h-12.666a3.667 3.667 0 0 1 -3.662 -3.472l-.005 -.195v-12.666c0 -1.96 1.537 -3.56 3.472 -3.662l.195 -.005h12.666zm-2.833 12a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3zm-3.5 -3.5a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3zm-3.5 -3.5a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3z" />
<path d="M18.333 2c1.96 0 3.56 1.537 3.662 3.472l.005 .195v12.666c0 1.96 -1.537 3.56 -3.472 3.662l-.195 .005h-12.666a3.667 3.667 0 0 1 -3.662 -3.472l-.005 -.195v-12.666c0 -1.96 1.537 -3.56 3.472 -3.662l.195 -.005h12.666zm-2.833 12a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3m-3.5 -3.5a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3m-3.5 -3.5a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3" />
</svg>

Before

Width:  |  Height:  |  Size: 533 B

After

Width:  |  Height:  |  Size: 530 B

View File

@ -9,5 +9,5 @@ unicode: "f741"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M18.333 2c1.96 0 3.56 1.537 3.662 3.472l.005 .195v12.666c0 1.96 -1.537 3.56 -3.472 3.662l-.195 .005h-12.666a3.667 3.667 0 0 1 -3.662 -3.472l-.005 -.195v-12.666c0 -1.96 1.537 -3.56 3.472 -3.662l.195 -.005h12.666zm-2.833 12a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3zm-7 0a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3zm0 -7a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3zm7 0a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3z" />
<path d="M18.333 2c1.96 0 3.56 1.537 3.662 3.472l.005 .195v12.666c0 1.96 -1.537 3.56 -3.472 3.662l-.195 .005h-12.666a3.667 3.667 0 0 1 -3.662 -3.472l-.005 -.195v-12.666c0 -1.96 1.537 -3.56 3.472 -3.662l.195 -.005h12.666zm-2.833 12a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3m-7 0a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3m0 -7a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3m7 0a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3" />
</svg>

Before

Width:  |  Height:  |  Size: 565 B

After

Width:  |  Height:  |  Size: 561 B

View File

@ -9,5 +9,5 @@ unicode: "f742"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M18.333 2c1.96 0 3.56 1.537 3.662 3.472l.005 .195v12.666c0 1.96 -1.537 3.56 -3.472 3.662l-.195 .005h-12.666a3.667 3.667 0 0 1 -3.662 -3.472l-.005 -.195v-12.666c0 -1.96 1.537 -3.56 3.472 -3.662l.195 -.005h12.666zm-2.833 12a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3zm-7 0a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3zm3.5 -3.5a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3zm-3.5 -3.5a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3zm7 0a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3z" />
<path d="M18.333 2c1.96 0 3.56 1.537 3.662 3.472l.005 .195v12.666c0 1.96 -1.537 3.56 -3.472 3.662l-.195 .005h-12.666a3.667 3.667 0 0 1 -3.662 -3.472l-.005 -.195v-12.666c0 -1.96 1.537 -3.56 3.472 -3.662l.195 -.005h12.666zm-2.833 12a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3m-7 0a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3m3.5 -3.5a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3m-3.5 -3.5a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3m7 0a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3" />
</svg>

Before

Width:  |  Height:  |  Size: 617 B

After

Width:  |  Height:  |  Size: 612 B

View File

@ -9,5 +9,5 @@ unicode: "f743"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M18.333 2c1.96 0 3.56 1.537 3.662 3.472l.005 .195v12.666c0 1.96 -1.537 3.56 -3.472 3.662l-.195 .005h-12.666a3.667 3.667 0 0 1 -3.662 -3.472l-.005 -.195v-12.666c0 -1.96 1.537 -3.56 3.472 -3.662l.195 -.005h12.666zm-2.833 13a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3zm-7 0a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3zm0 -4.5a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3zm7 0a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3zm-7 -4.5a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3zm7 0a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3z" />
<path d="M18.333 2c1.96 0 3.56 1.537 3.662 3.472l.005 .195v12.666c0 1.96 -1.537 3.56 -3.472 3.662l-.195 .005h-12.666a3.667 3.667 0 0 1 -3.662 -3.472l-.005 -.195v-12.666c0 -1.96 1.537 -3.56 3.472 -3.662l.195 -.005h12.666zm-2.833 13a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3m-7 0a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3m0 -4.5a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3m7 0a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3m-7 -4.5a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3m7 0a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3" />
</svg>

Before

Width:  |  Height:  |  Size: 655 B

After

Width:  |  Height:  |  Size: 649 B

View File

@ -9,5 +9,5 @@ unicode: "f744"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M18.333 2c1.96 0 3.56 1.537 3.662 3.472l.005 .195v12.666c0 1.96 -1.537 3.56 -3.472 3.662l-.195 .005h-12.666a3.667 3.667 0 0 1 -3.662 -3.472l-.005 -.195v-12.666c0 -1.96 1.537 -3.56 3.472 -3.662l.195 -.005h12.666zm-2.833 12a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3zm-7 0a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3zm0 -7a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3zm7 0a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3z" />
<path d="M18.333 2c1.96 0 3.56 1.537 3.662 3.472l.005 .195v12.666c0 1.96 -1.537 3.56 -3.472 3.662l-.195 .005h-12.666a3.667 3.667 0 0 1 -3.662 -3.472l-.005 -.195v-12.666c0 -1.96 1.537 -3.56 3.472 -3.662l.195 -.005h12.666zm-2.833 12a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3m-7 0a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3m0 -7a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3m7 0a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3" />
</svg>

Before

Width:  |  Height:  |  Size: 565 B

After

Width:  |  Height:  |  Size: 561 B

View File

@ -9,5 +9,5 @@ unicode: "f679"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M12 4c4.29 0 7.863 2.429 10.665 7.154l.22 .379l.045 .1l.03 .083l.014 .055l.014 .082l.011 .1v.11l-.014 .111a.992 .992 0 0 1 -.026 .11l-.039 .108l-.036 .075l-.016 .03c-2.764 4.836 -6.3 7.38 -10.555 7.499l-.313 .004c-4.396 0 -8.037 -2.549 -10.868 -7.504a1 1 0 0 1 0 -.992c2.831 -4.955 6.472 -7.504 10.868 -7.504zm0 5a3 3 0 1 0 0 6a3 3 0 0 0 0 -6z" />
<path d="M12 4c4.29 0 7.863 2.429 10.665 7.154l.22 .379l.045 .1l.03 .083l.014 .055l.014 .082l.011 .1v.11l-.014 .111a.992 .992 0 0 1 -.026 .11l-.039 .108l-.036 .075l-.016 .03c-2.764 4.836 -6.3 7.38 -10.555 7.499l-.313 .004c-4.396 0 -8.037 -2.549 -10.868 -7.504a1 1 0 0 1 0 -.992c2.831 -4.955 6.472 -7.504 10.868 -7.504zm0 5a3 3 0 1 0 0 6a3 3 0 0 0 0 -6" />
</svg>

Before

Width:  |  Height:  |  Size: 521 B

After

Width:  |  Height:  |  Size: 520 B

View File

@ -0,0 +1,11 @@
<!--
-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M2 6c0 -.796 .316 -1.558 .879 -2.121c.563 -.563 1.325 -.879 2.121 -.879h4l.099 .005c.229 .023 .444 .124 .608 .288l2.707 2.707h6.586c.796 0 1.558 .316 2.121 .879c.319 .319 .559 .703 .707 1.121l-14.523 0c-.407 0 -.805 .125 -1.14 .356c-.292 .203 -.525 .48 -.674 .801l-.058 .141l-1.379 3.676c-.194 .517 .068 1.093 .585 1.287c.517 .194 1.094 -.068 1.288 -.585l1.134 -3.027c.146 -.39 .519 -.649 .937 -.649h13.002l.217 .012c.216 .024 .426 .082 .624 .173c.054 .025 .107 .053 .159 .083c.199 .115 .377 .263 .525 .439c.188 .222 .325 .482 .403 .762c.077 .28 .092 .573 .045 .859c-.001 .008 -.003 .016 -.005 .024l-.995 5.21c-.131 .686 -.497 1.304 -1.036 1.749c-.47 .389 -1.046 .624 -1.65 .677l-.261 .012h-14.026c-.796 0 -1.558 -.316 -2.121 -.879c-.563 -.563 -.879 -1.325 -.879 -2.121v-11z" fill="black" />
</svg>

After

Width:  |  Height:  |  Size: 934 B

View File

@ -11,7 +11,7 @@ version: "3.34"
>
<path d="M5 3h5a1 1 0 0 1 1 1v6a1 1 0 0 1 -1 1h-6a1 1 0 0 1 -1 -1v-5a2 2 0 0 1 2 -2" />
<path d="M14 3h5a2 2 0 0 1 2 2v2a1 1 0 0 1 -1 1h-6a1 1 0 0 1 -1 -1v-3a1 1 0 0 1 1 -1" />
<path d="M13 10m0 1a1 1 0 0 1 1 -1h6a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-6a1 1 0 0 1 -1 -1z" />
<path d="M13 11a1 1 0 0 1 1 -1h6a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-6a1 1 0 0 1 -1 -1z" />
<path d="M14 16h6a1 1 0 0 1 1 1v2a2 2 0 0 1 -2 2h-5a1 1 0 0 1 -1 -1v-3a1 1 0 0 1 1 -1" />
<path d="M4 13h6a1 1 0 0 1 1 1v6a1 1 0 0 1 -1 1h-5a2 2 0 0 1 -2 -2v-5a1 1 0 0 1 1 -1" />
</svg>

Before

Width:  |  Height:  |  Size: 622 B

After

Width:  |  Height:  |  Size: 618 B

View File

@ -9,5 +9,5 @@ unicode: "f680"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M18.364 4.636a9 9 0 0 1 .203 12.519l-.203 .21l-4.243 4.242a3 3 0 0 1 -4.097 .135l-.144 -.135l-4.244 -4.243a9 9 0 0 1 12.728 -12.728zm-6.364 3.364a3 3 0 1 0 0 6a3 3 0 0 0 0 -6z" />
<path d="M18.364 4.636a9 9 0 0 1 .203 12.519l-.203 .21l-4.243 4.242a3 3 0 0 1 -4.097 .135l-.144 -.135l-4.244 -4.243a9 9 0 0 1 12.728 -12.728zm-6.364 3.364a3 3 0 1 0 0 6a3 3 0 0 0 0 -6" />
</svg>

Before

Width:  |  Height:  |  Size: 353 B

After

Width:  |  Height:  |  Size: 352 B

View File

@ -9,5 +9,5 @@ version: "3.0"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M20.01 19a1 1 0 0 1 .117 1.993l-.127 .007a1 1 0 0 1 -.117 -1.993zm-16 0a1 1 0 0 1 0 2a1 1 0 0 1 -.127 -1.993zm4 0a1 1 0 0 1 0 2a1 1 0 0 1 -.127 -1.993zm4 0a1 1 0 0 1 .117 1.993l-.127 .007a1 1 0 0 1 -.117 -1.993zm4 0a1 1 0 0 1 .117 1.993l-.127 .007a1 1 0 0 1 -.117 -1.993zm4 -16a1 1 0 0 1 .117 1.993l-.127 .007a1 1 0 0 1 -.117 -1.993zm-16 0a1 1 0 1 1 0 2a1 1 0 0 1 -.127 -1.993zm4 0a1 1 0 1 1 0 2a1 1 0 0 1 -.127 -1.993zm4 0a1 1 0 0 1 .117 1.993l-.127 .007a1 1 0 0 1 -.117 -1.993zm3.99 0a1 1 0 0 1 1 1a1 1 0 1 1 -2 .01c0 -.562 .448 -1.01 1 -1.01m3 4a2 2 0 0 1 2 2v6a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-6a2 2 0 0 1 2 -2z" />
<path d="M20.01 19a1 1 0 0 1 .117 1.993l-.127 .007a1 1 0 0 1 -.117 -1.993zm-16 0a1 1 0 0 1 0 2a1 1 0 0 1 -.127 -1.993m4 0a1 1 0 0 1 0 2a1 1 0 0 1 -.127 -1.993m4 0a1 1 0 0 1 .117 1.993l-.127 .007a1 1 0 0 1 -.117 -1.993zm4 0a1 1 0 0 1 .117 1.993l-.127 .007a1 1 0 0 1 -.117 -1.993zm4 -16a1 1 0 0 1 .117 1.993l-.127 .007a1 1 0 0 1 -.117 -1.993zm-16 0a1 1 0 1 1 0 2a1 1 0 0 1 -.127 -1.993m4 0a1 1 0 1 1 0 2a1 1 0 0 1 -.127 -1.993m4 0a1 1 0 0 1 .117 1.993l-.127 .007a1 1 0 0 1 -.117 -1.993zm3.99 0a1 1 0 0 1 1 1a1 1 0 1 1 -2 .01c0 -.562 .448 -1.01 1 -1.01m3 4a2 2 0 0 1 2 2v6a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-6a2 2 0 0 1 2 -2z" />
</svg>

Before

Width:  |  Height:  |  Size: 796 B

After

Width:  |  Height:  |  Size: 792 B

View File

@ -9,5 +9,5 @@ unicode: "f69e"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M14.647 4.081a.724 .724 0 0 0 1.08 .448c2.439 -1.485 5.23 1.305 3.745 3.744a.724 .724 0 0 0 .447 1.08c2.775 .673 2.775 4.62 0 5.294a.724 .724 0 0 0 -.448 1.08c1.485 2.439 -1.305 5.23 -3.744 3.745a.724 .724 0 0 0 -1.08 .447c-.673 2.775 -4.62 2.775 -5.294 0a.724 .724 0 0 0 -1.08 -.448c-2.439 1.485 -5.23 -1.305 -3.745 -3.744a.724 .724 0 0 0 -.447 -1.08c-2.775 -.673 -2.775 -4.62 0 -5.294a.724 .724 0 0 0 .448 -1.08c-1.485 -2.439 1.305 -5.23 3.744 -3.745a.722 .722 0 0 0 1.08 -.447c.673 -2.775 4.62 -2.775 5.294 0zm-2.647 4.919a3 3 0 1 0 0 6a3 3 0 0 0 0 -6z" />
<path d="M14.647 4.081a.724 .724 0 0 0 1.08 .448c2.439 -1.485 5.23 1.305 3.745 3.744a.724 .724 0 0 0 .447 1.08c2.775 .673 2.775 4.62 0 5.294a.724 .724 0 0 0 -.448 1.08c1.485 2.439 -1.305 5.23 -3.744 3.745a.724 .724 0 0 0 -1.08 .447c-.673 2.775 -4.62 2.775 -5.294 0a.724 .724 0 0 0 -1.08 -.448c-2.439 1.485 -5.23 -1.305 -3.745 -3.744a.724 .724 0 0 0 -.447 -1.08c-2.775 -.673 -2.775 -4.62 0 -5.294a.724 .724 0 0 0 .448 -1.08c-1.485 -2.439 1.305 -5.23 3.744 -3.745a.722 .722 0 0 0 1.08 -.447c.673 -2.775 4.62 -2.775 5.294 0zm-2.647 4.919a3 3 0 1 0 0 6a3 3 0 0 0 0 -6" />
</svg>

Before

Width:  |  Height:  |  Size: 733 B

After

Width:  |  Height:  |  Size: 732 B

View File

@ -9,5 +9,5 @@ unicode: "fc3f"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M6 2a1 1 0 0 1 .993 .883l.007 .117v1.068l13.071 .935a1 1 0 0 1 .929 1.024l-.01 .114l-1 7a1 1 0 0 1 -.877 .853l-.113 .006h-12v2h10a3 3 0 1 1 -2.995 3.176l-.005 -.176l.005 -.176c.017 -.288 .074 -.564 .166 -.824h-5.342a3 3 0 1 1 -5.824 1.176l-.005 -.176l.005 -.176a3.002 3.002 0 0 1 1.995 -2.654v-12.17h-1a1 1 0 0 1 -.993 -.883l-.007 -.117a1 1 0 0 1 .883 -.993l.117 -.007h2zm0 16a1 1 0 1 0 0 2a1 1 0 0 0 0 -2zm11 0a1 1 0 1 0 0 2a1 1 0 0 0 0 -2z" />
<path d="M6 2a1 1 0 0 1 .993 .883l.007 .117v1.068l13.071 .935a1 1 0 0 1 .929 1.024l-.01 .114l-1 7a1 1 0 0 1 -.877 .853l-.113 .006h-12v2h10a3 3 0 1 1 -2.995 3.176l-.005 -.176l.005 -.176c.017 -.288 .074 -.564 .166 -.824h-5.342a3 3 0 1 1 -5.824 1.176l-.005 -.176l.005 -.176a3.002 3.002 0 0 1 1.995 -2.654v-12.17h-1a1 1 0 0 1 -.993 -.883l-.007 -.117a1 1 0 0 1 .883 -.993l.117 -.007h2zm0 16a1 1 0 1 0 0 2a1 1 0 0 0 0 -2m11 0a1 1 0 1 0 0 2a1 1 0 0 0 0 -2" />
</svg>

Before

Width:  |  Height:  |  Size: 620 B

After

Width:  |  Height:  |  Size: 618 B

View File

@ -9,5 +9,5 @@ unicode: "f6af"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M17 3a1 1 0 0 1 .993 .883l.007 .117v2.17a3 3 0 1 1 0 5.659v.171a6.002 6.002 0 0 1 -5 5.917v2.083h3a1 1 0 0 1 .117 1.993l-.117 .007h-8a1 1 0 0 1 -.117 -1.993l.117 -.007h3v-2.083a6.002 6.002 0 0 1 -4.996 -5.692l-.004 -.225v-.171a3 3 0 0 1 -3.996 -2.653l-.003 -.176l.005 -.176a3 3 0 0 1 3.995 -2.654l-.001 -2.17a1 1 0 0 1 1 -1h10zm-12 5a1 1 0 1 0 0 2a1 1 0 0 0 0 -2zm14 0a1 1 0 1 0 0 2a1 1 0 0 0 0 -2z" />
<path d="M17 3a1 1 0 0 1 .993 .883l.007 .117v2.17a3 3 0 1 1 0 5.659v.171a6.002 6.002 0 0 1 -5 5.917v2.083h3a1 1 0 0 1 .117 1.993l-.117 .007h-8a1 1 0 0 1 -.117 -1.993l.117 -.007h3v-2.083a6.002 6.002 0 0 1 -4.996 -5.692l-.004 -.225v-.171a3 3 0 0 1 -3.996 -2.653l-.003 -.176l.005 -.176a3 3 0 0 1 3.995 -2.654l-.001 -2.17a1 1 0 0 1 1 -1h10zm-12 5a1 1 0 1 0 0 2a1 1 0 0 0 0 -2m14 0a1 1 0 1 0 0 2a1 1 0 0 0 0 -2" />
</svg>

Before

Width:  |  Height:  |  Size: 576 B

After

Width:  |  Height:  |  Size: 574 B

View File

@ -9,6 +9,6 @@ unicode: "f785"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M17 3.34a10 10 0 1 1 -14.995 8.984l-.005 -.324l.005 -.324a10 10 0 0 1 14.995 -8.336zm-9 1.732a8 8 0 0 0 4 14.928l.2 -.005a4 4 0 0 0 0 -7.99l-.2 -.005a4 4 0 0 1 -.2 -7.995l.2 -.005a7.995 7.995 0 0 0 -4 1.072zm4 1.428a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3z" />
<path d="M12 14.5a1.5 1.5 0 1 1 0 3a1.5 1.5 0 0 1 0 -3z" />
<path d="M17 3.34a10 10 0 1 1 -14.995 8.984l-.005 -.324l.005 -.324a10 10 0 0 1 14.995 -8.336zm-9 1.732a8 8 0 0 0 4 14.928l.2 -.005a4 4 0 0 0 0 -7.99l-.2 -.005a4 4 0 0 1 -.2 -7.995l.2 -.005a7.995 7.995 0 0 0 -4 1.072zm4 1.428a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0 -3" />
<path d="M12 14.5a1.5 1.5 0 1 1 0 3a1.5 1.5 0 0 1 0 -3" />
</svg>

Before

Width:  |  Height:  |  Size: 493 B

After

Width:  |  Height:  |  Size: 491 B

View File

@ -15,8 +15,8 @@ unicode: "f25f"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M16 21h3c.81 0 1.48 -.67 1.48 -1.48l.02 -.02c0 -.82 -.69 -1.5 -1.5 -1.5h-3v3z" />
<path d="M16 15h2.5c.84 -.01 1.5 .66 1.5 1.5s-.66 1.5 -1.5 1.5h-2.5v-3z" />
<path d="M16 21h3c.81 0 1.48 -.67 1.48 -1.48l.02 -.02c0 -.82 -.69 -1.5 -1.5 -1.5h-3v3" />
<path d="M16 15h2.5c.84 -.01 1.5 .66 1.5 1.5s-.66 1.5 -1.5 1.5h-2.5v-3" />
<path d="M4 9v-4c0 -1.036 .895 -2 2 -2s2 .964 2 2v4" />
<path d="M2.99 11.98a9 9 0 0 0 9 9m9 -9a9 9 0 0 0 -9 -9" />
<path d="M8 7h-4" />

Before

Width:  |  Height:  |  Size: 622 B

After

Width:  |  Height:  |  Size: 620 B

View File

@ -15,7 +15,7 @@ unicode: "eba9"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0" />
<path d="M3 12a9 9 0 1 0 18 0a9 9 0 1 0 -18 0" />
<path d="M10 16.5l2 -3l2 3m-2 -3v-2l3 -1m-6 0l3 1" />
<circle cx="12" cy="7.5" r=".5" fill="currentColor" />
<path d="M11.5 7.5a.5 .5 0 1 0 1 0a.5 .5 0 1 0 -1 0" fill="currentColor" />
</svg>

Before

Width:  |  Height:  |  Size: 539 B

After

Width:  |  Height:  |  Size: 554 B

View File

@ -17,7 +17,7 @@ unicode: "ef1f"
>
<path d="M11.933 5h-6.933v16h13v-8" />
<path d="M14 17h-5" />
<path d="M9 13h5v-4h-5z" />
<path d="M9 13h5v-4h-5v4" />
<path d="M15 5v-2" />
<path d="M18 6l2 -2" />
<path d="M19 9h2" />

Before

Width:  |  Height:  |  Size: 540 B

After

Width:  |  Height:  |  Size: 541 B

View File

@ -15,8 +15,8 @@ unicode: "f79e"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M12 12m-10 0a10 10 0 1 0 20 0a10 10 0 1 0 -20 0" />
<path d="M2 12a10 10 0 1 0 20 0a10 10 0 1 0 -20 0" />
<path d="M7 15v-4.5a1.5 1.5 0 0 1 3 0v4.5" />
<path d="M7 13h3" />
<path d="M14 9v6h1a2 2 0 0 0 2 -2v-2a2 2 0 0 0 -2 -2h-1z" />
<path d="M14 9v6h1a2 2 0 0 0 2 -2v-2a2 2 0 0 0 -2 -2h-1" />
</svg>

Before

Width:  |  Height:  |  Size: 542 B

After

Width:  |  Height:  |  Size: 534 B

View File

@ -15,7 +15,7 @@ unicode: "ea02"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M3 5m0 2a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2z" />
<path d="M3 7a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-10" />
<path d="M7 15v-4a2 2 0 0 1 4 0v4" />
<path d="M7 13l4 0" />
<path d="M17 9v6h-1.5a1.5 1.5 0 1 1 1.5 -1.5" />

Before

Width:  |  Height:  |  Size: 581 B

After

Width:  |  Height:  |  Size: 580 B

View File

@ -15,9 +15,9 @@ unicode: "f021"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M20 6v12a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2z" />
<path d="M20 6v12a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2" />
<path d="M10 16h6" />
<path d="M13 11m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" />
<path d="M11 11a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" />
<path d="M4 8h3" />
<path d="M4 12h3" />
<path d="M4 16h3" />

Before

Width:  |  Height:  |  Size: 589 B

After

Width:  |  Height:  |  Size: 583 B

View File

@ -15,13 +15,13 @@ unicode: "ec37"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M4 8h4v4h-4z" />
<path d="M4 8h4v4h-4l0 -4" />
<path d="M6 4l0 4" />
<path d="M6 12l0 8" />
<path d="M10 14h4v4h-4z" />
<path d="M10 14h4v4h-4l0 -4" />
<path d="M12 4l0 10" />
<path d="M12 18l0 2" />
<path d="M16 5h4v4h-4z" />
<path d="M16 5h4v4h-4l0 -4" />
<path d="M18 4l0 1" />
<path d="M18 9l0 11" />
</svg>

Before

Width:  |  Height:  |  Size: 608 B

After

Width:  |  Height:  |  Size: 620 B

View File

@ -24,6 +24,6 @@ unicode: "f7fc"
<path d="M16 7a2 2 0 1 0 4 0a2 2 0 0 0 -4 0" />
<path d="M18 4v1" />
<path d="M18 9v3" />
<path d="M19 19m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0" />
<path d="M16 19a3 3 0 1 0 6 0a3 3 0 1 0 -6 0" />
<path d="M17 21l4 -4" />
</svg>

Before

Width:  |  Height:  |  Size: 726 B

After

Width:  |  Height:  |  Size: 721 B

View File

@ -24,7 +24,7 @@ unicode: "f7ff"
<path d="M16 7a2 2 0 1 0 4 0a2 2 0 0 0 -4 0" />
<path d="M18 4v1" />
<path d="M18 9v2.5" />
<path d="M19.001 19m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" />
<path d="M17.001 19a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" />
<path d="M19.001 15.5v1.5" />
<path d="M19.001 21v1.5" />
<path d="M22.032 17.25l-1.299 .75" />

Before

Width:  |  Height:  |  Size: 923 B

After

Width:  |  Height:  |  Size: 918 B

View File

@ -22,5 +22,5 @@ unicode: "f803"
<path d="M16 7a2 2 0 1 0 4 0a2 2 0 0 0 -4 0" />
<path d="M18 4v1" />
<path d="M18 9v2.5" />
<path d="M18 22l3.35 -3.284a2.143 2.143 0 0 0 .005 -3.071a2.242 2.242 0 0 0 -3.129 -.006l-.224 .22l-.223 -.22a2.242 2.242 0 0 0 -3.128 -.006a2.143 2.143 0 0 0 -.006 3.071l3.355 3.296z" />
<path d="M18 22l3.35 -3.284a2.143 2.143 0 0 0 .005 -3.071a2.242 2.242 0 0 0 -3.129 -.006l-.224 .22l-.223 -.22a2.242 2.242 0 0 0 -3.128 -.006a2.143 2.143 0 0 0 -.006 3.071l3.355 3.296" />
</svg>

Before

Width:  |  Height:  |  Size: 772 B

After

Width:  |  Height:  |  Size: 771 B

View File

@ -15,13 +15,13 @@ unicode: "ec38"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M14 6m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" />
<path d="M12 6a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" />
<path d="M4 6l8 0" />
<path d="M16 6l4 0" />
<path d="M8 12m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" />
<path d="M6 12a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" />
<path d="M4 12l2 0" />
<path d="M10 12l10 0" />
<path d="M17 18m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" />
<path d="M15 18a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" />
<path d="M4 18l11 0" />
<path d="M19 18l1 0" />
</svg>

Before

Width:  |  Height:  |  Size: 695 B

After

Width:  |  Height:  |  Size: 680 B

View File

@ -24,6 +24,6 @@ unicode: "f806"
<path d="M16 7a2 2 0 1 0 4 0a2 2 0 0 0 -4 0" />
<path d="M18 4v1" />
<path d="M18 9v2.5" />
<path d="M21.121 20.121a3 3 0 1 0 -4.242 0c.418 .419 1.125 1.045 2.121 1.879c1.051 -.89 1.759 -1.516 2.121 -1.879z" />
<path d="M21.121 20.121a3 3 0 1 0 -4.242 0c.418 .419 1.125 1.045 2.121 1.879c1.051 -.89 1.759 -1.516 2.121 -1.879" />
<path d="M19 18v.01" />
</svg>

Before

Width:  |  Height:  |  Size: 783 B

After

Width:  |  Height:  |  Size: 782 B

View File

@ -23,6 +23,6 @@ unicode: "f809"
<path d="M16 7a2 2 0 1 0 4 0a2 2 0 0 0 -4 0" />
<path d="M18 4v1" />
<path d="M18 9v2" />
<path d="M18 18m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0" />
<path d="M15 18a3 3 0 1 0 6 0a3 3 0 1 0 -6 0" />
<path d="M20.2 20.2l1.8 1.8" />
</svg>

Before

Width:  |  Height:  |  Size: 708 B

After

Width:  |  Height:  |  Size: 703 B

View File

@ -21,6 +21,6 @@ unicode: "f80b"
<path d="M12 4v9.5" />
<path d="M16 7a2 2 0 1 0 4 0a2 2 0 0 0 -4 0" />
<path d="M18 4v1" />
<path d="M17.8 20.817l-2.172 1.138a.392 .392 0 0 1 -.568 -.41l.415 -2.411l-1.757 -1.707a.389 .389 0 0 1 .217 -.665l2.428 -.352l1.086 -2.193a.392 .392 0 0 1 .702 0l1.086 2.193l2.428 .352a.39 .39 0 0 1 .217 .665l-1.757 1.707l.414 2.41a.39 .39 0 0 1 -.567 .411l-2.172 -1.138z" />
<path d="M17.8 20.817l-2.172 1.138a.392 .392 0 0 1 -.568 -.41l.415 -2.411l-1.757 -1.707a.389 .389 0 0 1 .217 -.665l2.428 -.352l1.086 -2.193a.392 .392 0 0 1 .702 0l1.086 2.193l2.428 .352a.39 .39 0 0 1 .217 .665l-1.757 1.707l.414 2.41a.39 .39 0 0 1 -.567 .411l-2.172 -1.138" />
<path d="M18 9v1" />
</svg>

Before

Width:  |  Height:  |  Size: 858 B

After

Width:  |  Height:  |  Size: 857 B

View File

@ -15,5 +15,8 @@ unicode: "edfe"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M4 5l16 -2m-8 1v10m-5.106 -6h10.306c2.45 3 2.45 9 -.2 12h-10.106c-2.544 -3 -2.544 -9 0 -12zm-1.894 6h14" />
<path d="M4 5l16 -2" />
<path d="M12 4v10" />
<path d="M6.894 8h10.306c2.45 3 2.45 9 -.2 12h-10.106c-2.544 -3 -2.544 -9 0 -12" />
<path d="M5 14h14" />
</svg>

Before

Width:  |  Height:  |  Size: 473 B

After

Width:  |  Height:  |  Size: 514 B

View File

@ -17,8 +17,8 @@ unicode: "edff"
>
<path d="M5.931 6.936l1.275 4.249m5.607 5.609l4.251 1.275" />
<path d="M11.683 12.317l5.759 -5.759" />
<path d="M5.5 5.5m-1.5 0a1.5 1.5 0 1 0 3 0a1.5 1.5 0 1 0 -3 0" />
<path d="M18.5 5.5m-1.5 0a1.5 1.5 0 1 0 3 0a1.5 1.5 0 1 0 -3 0" />
<path d="M18.5 18.5m-1.5 0a1.5 1.5 0 1 0 3 0a1.5 1.5 0 1 0 -3 0" />
<path d="M8.5 15.5m-4.5 0a4.5 4.5 0 1 0 9 0a4.5 4.5 0 1 0 -9 0" />
<path d="M4 5.5a1.5 1.5 0 1 0 3 0a1.5 1.5 0 1 0 -3 0" />
<path d="M17 5.5a1.5 1.5 0 1 0 3 0a1.5 1.5 0 1 0 -3 0" />
<path d="M17 18.5a1.5 1.5 0 1 0 3 0a1.5 1.5 0 1 0 -3 0" />
<path d="M4 15.5a4.5 4.5 0 1 0 9 0a4.5 4.5 0 1 0 -9 0" />
</svg>

Before

Width:  |  Height:  |  Size: 746 B

After

Width:  |  Height:  |  Size: 710 B

View File

@ -15,7 +15,7 @@ unicode: "f4a6"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M10 19m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v1a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z" />
<path d="M12 16c3.314 0 6 -4.686 6 -8a6 6 0 1 0 -12 0c0 3.314 2.686 8 6 8z" />
<path d="M12 9m-2 0a2 7 0 1 0 4 0a2 7 0 1 0 -4 0" />
<path d="M10 20a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v1a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1l0 -1" />
<path d="M12 16c3.314 0 6 -4.686 6 -8a6 6 0 1 0 -12 0c0 3.314 2.686 8 6 8" />
<path d="M10 9a2 7 0 1 0 4 0a2 7 0 1 0 -4 0" />
</svg>

Before

Width:  |  Height:  |  Size: 597 B

After

Width:  |  Height:  |  Size: 591 B

View File

@ -15,6 +15,6 @@ unicode: "f542"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M3 8m0 2a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v4a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2z" />
<path d="M3 10a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v4a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2l0 -4" />
<path d="M7 16v-3a1 1 0 0 1 1 -1h8a1 1 0 0 1 1 1v3" />
</svg>

Before

Width:  |  Height:  |  Size: 486 B

After

Width:  |  Height:  |  Size: 487 B

View File

@ -18,6 +18,6 @@ unicode: "f3a2"
<path d="M8 16a3 3 0 0 1 -3 3" />
<path d="M16 16a3 3 0 0 0 3 3" />
<path d="M12 16v4" />
<path d="M3 5m0 2a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v4a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2z" />
<path d="M3 7a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v4a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2l0 -4" />
<path d="M7 13v-3a1 1 0 0 1 1 -1h8a1 1 0 0 1 1 1v3" />
</svg>

Before

Width:  |  Height:  |  Size: 580 B

After

Width:  |  Height:  |  Size: 580 B

View File

@ -17,7 +17,7 @@ unicode: "fb01"
>
<path d="M11 3h2" />
<path d="M12 3v3" />
<path d="M5.998 6h12.004a2 2 0 0 1 1.916 2.575l-1.8 6a2 2 0 0 1 -1.916 1.425h-8.404a2 2 0 0 1 -1.916 -1.425l-1.8 -6a2 2 0 0 1 1.916 -2.575z" />
<path d="M5.998 6h12.004a2 2 0 0 1 1.916 2.575l-1.8 6a2 2 0 0 1 -1.916 1.425h-8.404a2 2 0 0 1 -1.916 -1.425l-1.8 -6a2 2 0 0 1 1.916 -2.575" />
<path d="M8.5 6l1.5 10v5" />
<path d="M15.5 6l-1.5 10v5" />
</svg>

Before

Width:  |  Height:  |  Size: 616 B

After

Width:  |  Height:  |  Size: 615 B

View File

@ -15,7 +15,7 @@ unicode: "f630"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M12 13m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0" />
<path d="M5 13a7 7 0 1 0 14 0a7 7 0 1 0 -14 0" />
<path d="M7 4l-2.75 2" />
<path d="M17 4l2.75 2" />
<path d="M10 13h4" />

Before

Width:  |  Height:  |  Size: 498 B

After

Width:  |  Height:  |  Size: 492 B

View File

@ -15,7 +15,7 @@ unicode: "f631"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M12 13m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0" />
<path d="M5 13a7 7 0 1 0 14 0a7 7 0 1 0 -14 0" />
<path d="M7 4l-2.75 2" />
<path d="M17 4l2.75 2" />
<path d="M10 13h4" />

Before

Width:  |  Height:  |  Size: 515 B

After

Width:  |  Height:  |  Size: 509 B

View File

@ -16,7 +16,7 @@ version: "3.23"
stroke-linejoin="round"
>
<path d="M18 8l-.8 3a1.25 1.25 0 0 1 -1.2 1h-8a1.25 1.25 0 0 1 -1.2 -1l-.8 -3" />
<path d="M3 4m0 1a1 1 0 0 1 1 -1h16a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-16a1 1 0 0 1 -1 -1z" />
<path d="M3 5a1 1 0 0 1 1 -1h16a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-16a1 1 0 0 1 -1 -1l0 -2" />
<path d="M12 16c.643 .288 1.017 .756 1 1.25c.017 .494 -.357 .962 -1 1.25s-1.017 .756 -1 1.25c-.017 .494 .357 .962 1 1.25" />
<path d="M7 16c.643 .288 1.017 .756 1 1.25c.017 .494 -.357 .962 -1 1.25s-1.017 .756 -1 1.25c-.017 .494 .357 .962 1 1.25" />
<path d="M17 16c.643 .288 1.017 .756 1 1.25c.017 .494 -.357 .962 -1 1.25s-1.017 .756 -1 1.25c-.017 .494 .357 .962 1 1.25" />

Before

Width:  |  Height:  |  Size: 922 B

After

Width:  |  Height:  |  Size: 922 B

View File

@ -15,7 +15,7 @@ unicode: "f632"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M12 13m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0" />
<path d="M5 13a7 7 0 1 0 14 0a7 7 0 1 0 -14 0" />
<path d="M10 11h4l-4 4h4" />
<path d="M7 4l-2.75 2" />
<path d="M17 4l2.75 2" />

Before

Width:  |  Height:  |  Size: 507 B

After

Width:  |  Height:  |  Size: 501 B

View File

@ -15,7 +15,7 @@ unicode: "ea04"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M12 13m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0" />
<path d="M5 13a7 7 0 1 0 14 0a7 7 0 1 0 -14 0" />
<path d="M12 10l0 3l2 0" />
<path d="M7 4l-2.75 2" />
<path d="M17 4l2.75 2" />

Before

Width:  |  Height:  |  Size: 502 B

After

Width:  |  Height:  |  Size: 496 B

View File

@ -15,6 +15,6 @@ unicode: "f022"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M4 4m0 2a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2z" />
<path d="M4 6a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2l0 -12" />
<path d="M12 4v7l2 -2l2 2v-7" />
</svg>

Before

Width:  |  Height:  |  Size: 475 B

After

Width:  |  Height:  |  Size: 476 B

View File

@ -15,7 +15,7 @@ category: System
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M19.875 6.27c.7 .398 1.13 1.143 1.125 1.948v7.284c0 .809 -.443 1.555 -1.158 1.948l-6.75 4.27a2.269 2.269 0 0 1 -2.184 0l-6.75 -4.27a2.225 2.225 0 0 1 -1.158 -1.948v-7.285c0 -.809 .443 -1.554 1.158 -1.947l6.75 -3.98a2.33 2.33 0 0 1 2.25 0l6.75 3.98h-.033z" />
<path d="M19.875 6.27c.7 .398 1.13 1.143 1.125 1.948v7.284c0 .809 -.443 1.555 -1.158 1.948l-6.75 4.27a2.269 2.269 0 0 1 -2.184 0l-6.75 -4.27a2.225 2.225 0 0 1 -1.158 -1.948v-7.285c0 -.809 .443 -1.554 1.158 -1.947l6.75 -3.98a2.33 2.33 0 0 1 2.25 0l6.75 3.98h-.033" />
<path d="M12 8v4" />
<path d="M12 16h.01" />
</svg>

Before

Width:  |  Height:  |  Size: 671 B

After

Width:  |  Height:  |  Size: 670 B

View File

@ -15,7 +15,7 @@ unicode: "ecc6"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M12.802 2.165l5.575 2.389c.48 .206 .863 .589 1.07 1.07l2.388 5.574c.22 .512 .22 1.092 0 1.604l-2.389 5.575c-.206 .48 -.589 .863 -1.07 1.07l-5.574 2.388c-.512 .22 -1.092 .22 -1.604 0l-5.575 -2.389a2.036 2.036 0 0 1 -1.07 -1.07l-2.388 -5.574a2.036 2.036 0 0 1 0 -1.604l2.389 -5.575c.206 -.48 .589 -.863 1.07 -1.07l5.574 -2.388a2.036 2.036 0 0 1 1.604 0z" />
<path d="M12.802 2.165l5.575 2.389c.48 .206 .863 .589 1.07 1.07l2.388 5.574c.22 .512 .22 1.092 0 1.604l-2.389 5.575c-.206 .48 -.589 .863 -1.07 1.07l-5.574 2.388c-.512 .22 -1.092 .22 -1.604 0l-5.575 -2.389a2.036 2.036 0 0 1 -1.07 -1.07l-2.388 -5.574a2.036 2.036 0 0 1 0 -1.604l2.389 -5.575c.206 -.48 .589 -.863 1.07 -1.07l5.574 -2.388a2.036 2.036 0 0 1 1.604 0" />
<path d="M12 8v4" />
<path d="M12 16h.01" />
</svg>

Before

Width:  |  Height:  |  Size: 778 B

After

Width:  |  Height:  |  Size: 777 B

View File

@ -15,7 +15,7 @@ category: System
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M12 3c7.2 0 9 1.8 9 9s-1.8 9 -9 9s-9 -1.8 -9 -9s1.8 -9 9 -9z" />
<path d="M12 3c7.2 0 9 1.8 9 9c0 7.2 -1.8 9 -9 9c-7.2 0 -9 -1.8 -9 -9c0 -7.2 1.8 -9 9 -9" />
<path d="M12 8v4" />
<path d="M12 16h.01" />
</svg>

Before

Width:  |  Height:  |  Size: 479 B

After

Width:  |  Height:  |  Size: 498 B

View File

@ -15,7 +15,7 @@ category: System
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M3 5a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-14z" />
<path d="M3 5a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-14" />
<path d="M12 8v4" />
<path d="M12 16h.01" />
</svg>

Before

Width:  |  Height:  |  Size: 497 B

After

Width:  |  Height:  |  Size: 496 B

View File

@ -16,6 +16,6 @@ unicode: "ea06"
stroke-linejoin="round"
>
<path d="M12 9v4" />
<path d="M10.363 3.591l-8.106 13.534a1.914 1.914 0 0 0 1.636 2.871h16.214a1.914 1.914 0 0 0 1.636 -2.87l-8.106 -13.536a1.914 1.914 0 0 0 -3.274 0z" />
<path d="M10.363 3.591l-8.106 13.534a1.914 1.914 0 0 0 1.636 2.871h16.214a1.914 1.914 0 0 0 1.636 -2.87l-8.106 -13.536a1.914 1.914 0 0 0 -3.274 0" />
<path d="M12 16h.01" />
</svg>

Before

Width:  |  Height:  |  Size: 564 B

After

Width:  |  Height:  |  Size: 563 B

View File

@ -16,7 +16,7 @@ unicode: "ebde"
stroke-linejoin="round"
>
<path d="M11 17a2.5 2.5 0 0 0 2 0" />
<path d="M12 3c-4.664 0 -7.396 2.331 -7.862 5.595a11.816 11.816 0 0 0 2 8.592a10.777 10.777 0 0 0 3.199 3.064c1.666 1 3.664 1 5.33 0a10.777 10.777 0 0 0 3.199 -3.064a11.89 11.89 0 0 0 2 -8.592c-.466 -3.265 -3.198 -5.595 -7.862 -5.595z" />
<path d="M12 3c-4.664 0 -7.396 2.331 -7.862 5.595a11.816 11.816 0 0 0 2 8.592a10.777 10.777 0 0 0 3.199 3.064c1.666 1 3.664 1 5.33 0a10.777 10.777 0 0 0 3.199 -3.064a11.89 11.89 0 0 0 2 -8.592c-.466 -3.265 -3.198 -5.595 -7.862 -5.595l-.004 0" />
<path d="M8 11l2 2" />
<path d="M16 11l-2 2" />
</svg>

Before

Width:  |  Height:  |  Size: 687 B

After

Width:  |  Height:  |  Size: 694 B

View File

@ -15,7 +15,7 @@ unicode: "f530"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M3 3m0 2a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2z" />
<path d="M3 5a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-14" />
<path d="M9 15v2" />
<path d="M12 11v6" />
<path d="M15 13v4" />

Before

Width:  |  Height:  |  Size: 512 B

After

Width:  |  Height:  |  Size: 511 B

View File

@ -15,7 +15,7 @@ unicode: "f531"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M3 3m0 2a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2z" />
<path d="M3 5a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-14" />
<path d="M7 15v2" />
<path d="M10 11v6" />
<path d="M13 13v4" />

Before

Width:  |  Height:  |  Size: 511 B

After

Width:  |  Height:  |  Size: 510 B

View File

@ -15,7 +15,7 @@ unicode: "f532"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M3 3m0 2a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2z" />
<path d="M3 5a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-14" />
<path d="M11 15v2" />
<path d="M14 11v6" />
<path d="M17 13v4" />

Before

Width:  |  Height:  |  Size: 513 B

After

Width:  |  Height:  |  Size: 512 B

View File

@ -15,7 +15,7 @@ unicode: "facb"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M3 19v-14a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2z" />
<path d="M3 19v-14a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2" />
<path d="M11 17h2" />
<path d="M9 14h6" />
<path d="M10 11h4" />

Before

Width:  |  Height:  |  Size: 521 B

After

Width:  |  Height:  |  Size: 520 B

View File

@ -15,7 +15,7 @@ unicode: "f79f"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M3 19v-14a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2z" />
<path d="M3 19v-14a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2" />
<path d="M11 15h2" />
<path d="M9 12h6" />
<path d="M10 9h4" />

Before

Width:  |  Height:  |  Size: 515 B

After

Width:  |  Height:  |  Size: 514 B

View File

@ -15,7 +15,7 @@ unicode: "facc"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M3 19v-14a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2z" />
<path d="M3 19v-14a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2" />
<path d="M11 17h2" />
<path d="M9 12h6" />
<path d="M10 7h4" />

Before

Width:  |  Height:  |  Size: 523 B

After

Width:  |  Height:  |  Size: 522 B

View File

@ -15,7 +15,7 @@ unicode: "facd"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M3 19v-14a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2z" />
<path d="M3 19v-14a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2" />
<path d="M11 13h2" />
<path d="M9 10h6" />
<path d="M10 7h4" />

Before

Width:  |  Height:  |  Size: 519 B

After

Width:  |  Height:  |  Size: 518 B

View File

@ -15,7 +15,7 @@ unicode: "f533"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M3 3m0 2a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2z" />
<path d="M3 5a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-14" />
<path d="M9 17h-2" />
<path d="M13 14h-6" />
<path d="M11 11h-4" />

Before

Width:  |  Height:  |  Size: 506 B

After

Width:  |  Height:  |  Size: 505 B

View File

@ -15,7 +15,7 @@ unicode: "f534"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M3 3m0 2a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2z" />
<path d="M3 5a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-14" />
<path d="M9 15h-2" />
<path d="M13 12h-6" />
<path d="M11 9h-4" />

Before

Width:  |  Height:  |  Size: 511 B

After

Width:  |  Height:  |  Size: 510 B

View File

@ -15,7 +15,7 @@ unicode: "face"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M3 5a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-14z" />
<path d="M3 5a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-14" />
<path d="M9 17h-2" />
<path d="M13 12h-6" />
<path d="M11 7h-4" />

Before

Width:  |  Height:  |  Size: 518 B

After

Width:  |  Height:  |  Size: 517 B

View File

@ -15,7 +15,7 @@ unicode: "f535"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M3 3m0 2a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2z" />
<path d="M3 5a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-14" />
<path d="M9 13h-2" />
<path d="M13 10h-6" />
<path d="M11 7h-4" />

Before

Width:  |  Height:  |  Size: 500 B

After

Width:  |  Height:  |  Size: 499 B

View File

@ -15,7 +15,7 @@ unicode: "f536"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M3 3m0 2a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2z" />
<path d="M3 5a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-14" />
<path d="M15 17h2" />
<path d="M11 14h6" />
<path d="M13 11h4" />

Before

Width:  |  Height:  |  Size: 505 B

After

Width:  |  Height:  |  Size: 504 B

View File

@ -16,7 +16,7 @@ unicode: "f537"
stroke-linejoin="round"
>
<path d="M15 15h2" />
<path d="M3 5a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-14z" />
<path d="M3 5a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-14" />
<path d="M11 12h6" />
<path d="M13 9h4" />
</svg>

Before

Width:  |  Height:  |  Size: 510 B

After

Width:  |  Height:  |  Size: 509 B

View File

@ -16,7 +16,7 @@ unicode: "facf"
stroke-linejoin="round"
>
<path d="M15 17h2" />
<path d="M3 5a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-14z" />
<path d="M3 5a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-14" />
<path d="M11 12h6" />
<path d="M13 7h4" />
</svg>

Before

Width:  |  Height:  |  Size: 516 B

After

Width:  |  Height:  |  Size: 515 B

View File

@ -15,7 +15,7 @@ unicode: "f538"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M3 3m0 2a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2z" />
<path d="M3 5a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-14" />
<path d="M15 13h2" />
<path d="M11 10h6" />
<path d="M13 7h4" />

Before

Width:  |  Height:  |  Size: 499 B

After

Width:  |  Height:  |  Size: 498 B

View File

@ -15,7 +15,7 @@ unicode: "f539"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M3 3m0 2a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2z" />
<path d="M3 5a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-14" />
<path d="M9 9v-2" />
<path d="M12 13v-6" />
<path d="M15 11v-4" />

Before

Width:  |  Height:  |  Size: 509 B

After

Width:  |  Height:  |  Size: 508 B

View File

@ -15,7 +15,7 @@ unicode: "f53a"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M3 3m0 2a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2z" />
<path d="M3 5a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-14" />
<path d="M7 9v-2" />
<path d="M10 13v-6" />
<path d="M13 11v-4" />

Before

Width:  |  Height:  |  Size: 500 B

After

Width:  |  Height:  |  Size: 499 B

View File

@ -15,7 +15,7 @@ unicode: "f53b"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M3 3m0 2a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2z" />
<path d="M3 5a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-14" />
<path d="M11 9v-2" />
<path d="M14 13v-6" />
<path d="M17 11v-4" />

Before

Width:  |  Height:  |  Size: 502 B

After

Width:  |  Height:  |  Size: 501 B

View File

@ -16,6 +16,6 @@ unicode: "f1e0"
stroke-linejoin="round"
>
<path d="M10 10v7" />
<path d="M5 10m0 2a2 2 0 0 1 2 -2h1a2 2 0 0 1 2 2v3a2 2 0 0 1 -2 2h-1a2 2 0 0 1 -2 -2z" />
<path d="M5 12a2 2 0 0 1 2 -2h1a2 2 0 0 1 2 2v3a2 2 0 0 1 -2 2h-1a2 2 0 0 1 -2 -2l0 -3" />
<path d="M14 20v-11a2 2 0 0 1 2 -2h1a2 2 0 0 1 2 2v1a2 2 0 0 1 -2 2a2 2 0 0 1 2 2v1a2 2 0 0 1 -2 2" />
</svg>

Before

Width:  |  Height:  |  Size: 580 B

After

Width:  |  Height:  |  Size: 580 B

View File

@ -16,6 +16,6 @@ unicode: "ff2c"
stroke-linejoin="round"
>
<path d="M7 7h6c0 2.5 -1.593 8.474 -6 10" />
<path d="M16 5v14z" />
<path d="M16 5v14l0 -14" />
<path d="M16 12h2" />
</svg>

Before

Width:  |  Height:  |  Size: 459 B

After

Width:  |  Height:  |  Size: 464 B

View File

@ -17,5 +17,5 @@ unicode: "f1e1"
>
<path d="M6 10h2a2 2 0 0 1 2 2v5h-3a2 2 0 1 1 0 -4h3" />
<path d="M14 7v10" />
<path d="M14 10m0 2a2 2 0 0 1 2 -2h1a2 2 0 0 1 2 2v3a2 2 0 0 1 -2 2h-1a2 2 0 0 1 -2 -2z" />
<path d="M14 12a2 2 0 0 1 2 -2h1a2 2 0 0 1 2 2v3a2 2 0 0 1 -2 2h-1a2 2 0 0 1 -2 -2l0 -3" />
</svg>

Before

Width:  |  Height:  |  Size: 534 B

After

Width:  |  Height:  |  Size: 534 B

Some files were not shown because too many files have changed in this diff Show More