aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gulpfile.js1186
-rw-r--r--src/_icons/abacus.svg1
-rw-r--r--src/_icons/access-point.svg2
-rw-r--r--src/_icons/adjustments-off.svg1
-rw-r--r--src/_icons/anchor-off.svg1
-rw-r--r--src/_icons/archive-off.svg1
-rw-r--r--src/_icons/archive.svg1
-rw-r--r--src/_icons/artboard-off.svg1
-rw-r--r--src/_icons/artboard.svg1
-rw-r--r--src/_icons/aspect-ratio.svg2
-rw-r--r--src/_icons/ball-football.svg2
-rw-r--r--src/_icons/baseline.svg1
-rw-r--r--src/_icons/bike.svg2
-rw-r--r--src/_icons/biohazard.svg2
-rw-r--r--src/_icons/bold.svg2
-rw-r--r--src/_icons/book-2.svg1
-rw-r--r--src/_icons/book-download.svg1
-rw-r--r--src/_icons/book-off.svg1
-rw-r--r--src/_icons/book-upload.svg1
-rw-r--r--src/_icons/bookmarks-off.svg1
-rw-r--r--src/_icons/bookmarks.svg2
-rw-r--r--src/_icons/books-off.svg1
-rw-r--r--src/_icons/books.svg1
-rw-r--r--src/_icons/braces-off.svg1
-rw-r--r--src/_icons/braces.svg2
-rw-r--r--src/_icons/brackets-off.svg1
-rw-r--r--src/_icons/brackets.svg2
-rw-r--r--src/_icons/brand-lastfm.svg1
-rw-r--r--src/_icons/browser-off.svg1
-rw-r--r--src/_icons/browser.svg2
-rw-r--r--src/_icons/capture.svg2
-rw-r--r--src/_icons/car.svg2
-rw-r--r--src/_icons/cardboards-off.svg1
-rw-r--r--src/_icons/cardboards.svg1
-rw-r--r--src/_icons/ce.svg2
-rw-r--r--src/_icons/certificate.svg2
-rw-r--r--src/_icons/circuit-ground.svg1
-rw-r--r--src/_icons/clock-2.svg1
-rw-r--r--src/_icons/clock-off.svg1
-rw-r--r--src/_icons/clock.svg1
-rw-r--r--src/_icons/cloud.svg2
-rw-r--r--src/_icons/coffee-off.svg1
-rw-r--r--src/_icons/color-picker.svg2
-rw-r--r--src/_icons/columns.svg2
-rw-r--r--src/_icons/components-off.svg1
-rw-r--r--src/_icons/container.svg2
-rw-r--r--src/_icons/copyleft.svg2
-rw-r--r--src/_icons/copyright.svg2
-rw-r--r--src/_icons/cross.svg2
-rw-r--r--src/_icons/current-location.svg2
-rw-r--r--src/_icons/dental.svg2
-rw-r--r--src/_icons/device-computer-camera.svg2
-rw-r--r--src/_icons/device-desktop.svg2
-rw-r--r--src/_icons/device-heart-monitor.svg1
-rw-r--r--src/_icons/device-laptop.svg2
-rw-r--r--src/_icons/device-mobile.svg2
-rw-r--r--src/_icons/device-nintendo-off.svg1
-rw-r--r--src/_icons/device-speaker-off.svg1
-rw-r--r--src/_icons/device-speaker.svg2
-rw-r--r--src/_icons/device-tablet.svg2
-rw-r--r--src/_icons/device-tv.svg2
-rw-r--r--src/_icons/device-watch.svg2
-rw-r--r--src/_icons/devices-off.svg1
-rw-r--r--src/_icons/devices-pc.svg2
-rw-r--r--src/_icons/devices.svg2
-rw-r--r--src/_icons/disabled.svg2
-rw-r--r--src/_icons/dna.svg2
-rw-r--r--src/_icons/drone.svg2
-rw-r--r--src/_icons/eraser.svg2
-rw-r--r--src/_icons/face-mask.svg2
-rw-r--r--src/_icons/feather.svg2
-rw-r--r--src/_icons/file.svg2
-rw-r--r--src/_icons/files.svg2
-rw-r--r--src/_icons/flag-2.svg2
-rw-r--r--src/_icons/flag.svg2
-rw-r--r--src/_icons/flask.svg2
-rw-r--r--src/_icons/folder.svg2
-rw-r--r--src/_icons/folders.svg2
-rw-r--r--src/_icons/fountain-off.svg1
-rw-r--r--src/_icons/fountain.svg1
-rw-r--r--src/_icons/function.svg1
-rw-r--r--src/_icons/gas-station.svg2
-rw-r--r--src/_icons/golf.svg2
-rw-r--r--src/_icons/hand-finger.svg2
-rw-r--r--src/_icons/heading.svg2
-rw-r--r--src/_icons/heart-off.svg1
-rw-r--r--src/_icons/hexagon.svg2
-rw-r--r--src/_icons/hourglass-empty.svg1
-rw-r--r--src/_icons/hourglass-high.svg1
-rw-r--r--src/_icons/hourglass-low.svg1
-rw-r--r--src/_icons/hourglass-off.svg1
-rw-r--r--src/_icons/hourglass.svg1
-rw-r--r--src/_icons/ice-cream.svg2
-rw-r--r--src/_icons/keyboard.svg2
-rw-r--r--src/_icons/leaf-off.svg1
-rw-r--r--src/_icons/leaf.svg2
-rw-r--r--src/_icons/mail-fast.svg1
-rw-r--r--src/_icons/mail-off.svg1
-rw-r--r--src/_icons/mask.svg2
-rw-r--r--src/_icons/math-function.svg2
-rw-r--r--src/_icons/medical-cross-off.svg1
-rw-r--r--src/_icons/medical-cross.svg2
-rw-r--r--src/_icons/message-code.svg1
-rw-r--r--src/_icons/message-language.svg1
-rw-r--r--src/_icons/moon.svg2
-rw-r--r--src/_icons/mouse.svg2
-rw-r--r--src/_icons/notification-off.svg1
-rw-r--r--src/_icons/notification.svg1
-rw-r--r--src/_icons/octagon.svg2
-rw-r--r--src/_icons/parachute.svg2
-rw-r--r--src/_icons/pennant-2.svg1
-rw-r--r--src/_icons/pennant-off.svg1
-rw-r--r--src/_icons/picture-in-picture.svg2
-rw-r--r--src/_icons/pig-off.svg1
-rw-r--r--src/_icons/pig.svg1
-rw-r--r--src/_icons/pill.svg2
-rw-r--r--src/_icons/pinned.svg2
-rw-r--r--src/_icons/pizza.svg2
-rw-r--r--src/_icons/plane.svg2
-rw-r--r--src/_icons/planet.svg2
-rw-r--r--src/_icons/plant-2-off.svg1
-rw-r--r--src/_icons/plant-2.svg2
-rw-r--r--src/_icons/plant-off.svg1
-rw-r--r--src/_icons/plant.svg2
-rw-r--r--src/_icons/playlist.svg2
-rw-r--r--src/_icons/plug-connected-x.svg1
-rw-r--r--src/_icons/plug-connected.svg1
-rw-r--r--src/_icons/plug-off.svg1
-rw-r--r--src/_icons/plug-x.svg1
-rw-r--r--src/_icons/plug.svg1
-rw-r--r--src/_icons/pointer.svg1
-rw-r--r--src/_icons/polygon-off.svg1
-rw-r--r--src/_icons/polygon.svg1
-rw-r--r--src/_icons/presentation.svg2
-rw-r--r--src/_icons/radar-2.svg1
-rw-r--r--src/_icons/radar.svg1
-rw-r--r--src/_icons/radioactive.svg2
-rw-r--r--src/_icons/rainbow.svg2
-rw-r--r--src/_icons/rating-12-plus.svg1
-rw-r--r--src/_icons/rating-14-plus.svg1
-rw-r--r--src/_icons/rating-16-plus.svg1
-rw-r--r--src/_icons/rating-18-plus.svg1
-rw-r--r--src/_icons/rating-21-plus.svg1
-rw-r--r--src/_icons/receipt.svg2
-rw-r--r--src/_icons/recycle.svg2
-rw-r--r--src/_icons/refresh.svg2
-rw-r--r--src/_icons/report.svg2
-rw-r--r--src/_icons/road.svg2
-rw-r--r--src/_icons/rocket.svg2
-rw-r--r--src/_icons/satellite.svg2
-rw-r--r--src/_icons/schema.svg1
-rw-r--r--src/_icons/screen-share.svg2
-rw-r--r--src/_icons/seeding.svg2
-rw-r--r--src/_icons/shadow.svg2
-rw-r--r--src/_icons/signature.svg2
-rw-r--r--src/_icons/smart-home.svg2
-rw-r--r--src/_icons/snowflake.svg2
-rw-r--r--src/_icons/space-off.svg1
-rw-r--r--src/_icons/space.svg2
-rw-r--r--src/_icons/sun.svg2
-rw-r--r--src/_icons/tag-off.svg1
-rw-r--r--src/_icons/tag.svg1
-rw-r--r--src/_icons/tags-off.svg1
-rw-r--r--src/_icons/tags.svg1
-rw-r--r--src/_icons/temperature.svg2
-rw-r--r--src/_icons/tent.svg1
-rw-r--r--src/_icons/tilt-shift.svg2
-rw-r--r--src/_icons/tool.svg1
-rw-r--r--src/_icons/tools-kitchen-2.svg2
-rw-r--r--src/_icons/tools-kitchen.svg2
-rw-r--r--src/_icons/traffic-cone.svg2
-rw-r--r--src/_icons/traffic-lights.svg2
-rw-r--r--src/_icons/truck.svg2
-rw-r--r--src/_icons/typography.svg2
-rw-r--r--src/_icons/vaccine.svg2
-rw-r--r--src/_icons/variable.svg2
-rw-r--r--src/_icons/vector-triangle.svg2
-rw-r--r--src/_icons/vector.svg2
-rw-r--r--src/_icons/video.svg2
-rw-r--r--src/_icons/virus.svg2
-rw-r--r--src/_icons/wind.svg2
-rw-r--r--src/_icons/world-download.svg1
-rw-r--r--src/_icons/world-off.svg1
-rw-r--r--src/_icons/world-upload.svg1
-rw-r--r--src/_icons/writing-off.svg1
-rw-r--r--src/_icons/writing-sign-off.svg1
-rw-r--r--src/_icons/writing-sign.svg2
-rw-r--r--src/_icons/writing.svg2
-rw-r--r--src/_icons/zoom-check.svg1
-rw-r--r--src/_icons/zoom-code.svg1
-rw-r--r--src/_icons/zoom-exclamation.svg1
-rw-r--r--src/_icons/zoom-in-area.svg1
-rw-r--r--src/_icons/zoom-money.svg1
-rw-r--r--src/_icons/zoom-out-area.svg1
-rw-r--r--src/_icons/zoom-pan.svg1
-rw-r--r--src/_icons/zoom-reset.svg1
-rw-r--r--src/editor.html2
-rw-r--r--src/style.scss4
198 files changed, 798 insertions, 694 deletions
diff --git a/gulpfile.js b/gulpfile.js
index af3a29e7..cd94823e 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -1,785 +1,795 @@
const gulp = require('gulp'),
- cp = require('child_process'),
- glob = require('glob'),
- fs = require('fs'),
- path = require('path'),
- p = require('./package.json'),
- csv = require('csv-parser'),
- zip = require('gulp-zip'),
- svgo = require('gulp-svgo'),
- outlineStroke = require('svg-outline-stroke'),
- iconfont = require('gulp-iconfont'),
- template = require('lodash.template'),
- sass = require('node-sass'),
- cleanCSS = require('clean-css'),
- argv = require('minimist')(process.argv.slice(2)),
- svgParse = require('parse-svg-path'),
- svgpath = require('svgpath'),
- svgr = require('@svgr/core').default
+ cp = require('child_process'),
+ glob = require('glob'),
+ fs = require('fs'),
+ path = require('path'),
+ p = require('./package.json'),
+ csv = require('csv-parser'),
+ zip = require('gulp-zip'),
+ svgo = require('gulp-svgo'),
+ outlineStroke = require('svg-outline-stroke'),
+ iconfont = require('gulp-iconfont'),
+ template = require('lodash.template'),
+ sass = require('node-sass'),
+ cleanCSS = require('clean-css'),
+ argv = require('minimist')(process.argv.slice(2)),
+ svgParse = require('parse-svg-path'),
+ svgpath = require('svgpath'),
+ svgr = require('@svgr/core').default
const compileOptions = {
- includeIcons: [],
- strokeWidth: null,
- fontForge: "fontforge"
+ includeIcons: [],
+ strokeWidth: null,
+ fontForge: 'fontforge'
}
if (fs.existsSync('./compile-options.json')) {
- try {
- const tempOptions = require('./compile-options.json')
- if (typeof tempOptions !== "object") {
- throw "Compile options file does not contain an json object"
- }
-
- if (typeof tempOptions.includeIcons !== "undefined") {
- if (!Array.isArray(tempOptions.includeIcons)) {
- throw "property inludeIcons is not an array"
- }
- compileOptions.includeIcons = tempOptions.includeIcons
- }
-
- if (typeof tempOptions.includeCategories !== "undefined") {
- if (typeof tempOptions.includeCategories === "string") {
- tempOptions.includeCategories = tempOptions.includeCategories.split(' ')
- }
- if (!Array.isArray(tempOptions.includeCategories)) {
- throw "property includeCategories is not an array or string"
- }
- const tags = Object.entries(require('./tags.json'))
- tempOptions.includeCategories.forEach(function (category) {
- category = category.charAt(0).toUpperCase() + category.slice(1)
- for (const [icon, data] of tags) {
- if (data.category === category && compileOptions.includeIcons.indexOf(icon) === -1) {
- compileOptions.includeIcons.push(icon)
- }
- }
- })
- }
-
- if (typeof tempOptions.excludeIcons !== "undefined") {
- if (!Array.isArray(tempOptions.excludeIcons)) {
- throw "property excludeIcons is not an array"
- }
- compileOptions.includeIcons = compileOptions.includeIcons.filter(function (icon) {
- return tempOptions.excludeIcons.indexOf(icon) === -1
- })
- }
-
- if (typeof tempOptions.excludeOffIcons !== "undefined" && tempOptions.excludeOffIcons) {
- // Exclude `*-off` icons
- compileOptions.includeIcons = compileOptions.includeIcons.filter(function (icon) {
- return !icon.endsWith('-off');
- })
- }
-
- if (typeof tempOptions.strokeWidth !== "undefined") {
- if (typeof tempOptions.strokeWidth !== "string" && typeof tempOptions.strokeWidth !== "number") {
- throw "property strokeWidth is not a string or number"
- }
- compileOptions.strokeWidth = tempOptions.strokeWidth.toString()
- }
-
- if (typeof tempOptions.fontForge !== "undefined") {
- if (typeof tempOptions.fontForge !== "string") {
- throw "property fontForge is not a string"
- }
- compileOptions.fontForge = tempOptions.fontForge
- }
-
- } catch (error) {
- throw `Error reading compile-options.json: ${error}`
- }
+ try {
+ const tempOptions = require('./compile-options.json')
+ if (typeof tempOptions !== 'object') {
+ throw 'Compile options file does not contain an json object'
+ }
+
+ if (typeof tempOptions.includeIcons !== 'undefined') {
+ if (!Array.isArray(tempOptions.includeIcons)) {
+ throw 'property inludeIcons is not an array'
+ }
+ compileOptions.includeIcons = tempOptions.includeIcons
+ }
+
+ if (typeof tempOptions.includeCategories !== 'undefined') {
+ if (typeof tempOptions.includeCategories === 'string') {
+ tempOptions.includeCategories = tempOptions.includeCategories.split(' ')
+ }
+ if (!Array.isArray(tempOptions.includeCategories)) {
+ throw 'property includeCategories is not an array or string'
+ }
+ const tags = Object.entries(require('./tags.json'))
+ tempOptions.includeCategories.forEach(function(category) {
+ category = category.charAt(0).toUpperCase() + category.slice(1)
+ for (const [icon, data] of tags) {
+ if (data.category === category && compileOptions.includeIcons.indexOf(icon) === -1) {
+ compileOptions.includeIcons.push(icon)
+ }
+ }
+ })
+ }
+
+ if (typeof tempOptions.excludeIcons !== 'undefined') {
+ if (!Array.isArray(tempOptions.excludeIcons)) {
+ throw 'property excludeIcons is not an array'
+ }
+ compileOptions.includeIcons = compileOptions.includeIcons.filter(function(icon) {
+ return tempOptions.excludeIcons.indexOf(icon) === -1
+ })
+ }
+
+ if (typeof tempOptions.excludeOffIcons !== 'undefined' && tempOptions.excludeOffIcons) {
+ // Exclude `*-off` icons
+ compileOptions.includeIcons = compileOptions.includeIcons.filter(function(icon) {
+ return !icon.endsWith('-off')
+ })
+ }
+
+ if (typeof tempOptions.strokeWidth !== 'undefined') {
+ if (typeof tempOptions.strokeWidth !== 'string' && typeof tempOptions.strokeWidth !== 'number') {
+ throw 'property strokeWidth is not a string or number'
+ }
+ compileOptions.strokeWidth = tempOptions.strokeWidth.toString()
+ }
+
+ if (typeof tempOptions.fontForge !== 'undefined') {
+ if (typeof tempOptions.fontForge !== 'string') {
+ throw 'property fontForge is not a string'
+ }
+ compileOptions.fontForge = tempOptions.fontForge
+ }
+
+ } catch (error) {
+ throw `Error reading compile-options.json: ${error}`
+ }
}
-async function asyncForEach (array, callback) {
- for (let index = 0; index < array.length; index++) {
- await callback(array[index], index, array)
- }
+async function asyncForEach(array, callback) {
+ for (let index = 0; index < array.length; index++) {
+ await callback(array[index], index, array)
+ }
}
const svgToPng = async (filePath, destination) => {
- filePath = path.join(__dirname, filePath)
+ filePath = path.join(__dirname, filePath)
- await cp.exec(`rsvg-convert -h 240 ${filePath} > ${destination}`)
+ await cp.exec(`rsvg-convert -h 240 ${filePath} > ${destination}`)
}
const createScreenshot = async (filePath) => {
- await cp.exec(`rsvg-convert -x 2 -y 2 ${filePath} > ${filePath.replace('.svg', '.png')}`)
- await cp.exec(`rsvg-convert -x 4 -y 4 ${filePath} > ${filePath.replace('.svg', '@2x.png')}`)
+ await cp.exec(`rsvg-convert -x 2 -y 2 ${filePath} > ${filePath.replace('.svg', '.png')}`)
+ await cp.exec(`rsvg-convert -x 4 -y 4 ${filePath} > ${filePath.replace('.svg', '@2x.png')}`)
}
-const printChangelog = function (newIcons, modifiedIcons, renamedIcons, pretty = false) {
- if (newIcons.length > 0) {
- if (pretty) {
- console.log(`### ${newIcons.length} new icons:`)
+const printChangelog = function(newIcons, modifiedIcons, renamedIcons, pretty = false) {
+ if (newIcons.length > 0) {
+ if (pretty) {
+ console.log(`### ${newIcons.length} new icons:`)
- newIcons.forEach(function (icon, i) {
- console.log(`- \`${icon}\``)
- })
- } else {
- let str = ''
- str += `${newIcons.length} new icons: `
+ newIcons.forEach(function(icon, i) {
+ console.log(`- \`${icon}\``)
+ })
+ } else {
+ let str = ''
+ str += `${newIcons.length} new icons: `
- newIcons.forEach(function (icon, i) {
- str += `\`${icon}\``
+ newIcons.forEach(function(icon, i) {
+ str += `\`${icon}\``
- if ((i + 1) <= newIcons.length - 1) {
- str += ', '
- }
- })
+ if ((i + 1) <= newIcons.length - 1) {
+ str += ', '
+ }
+ })
- console.log(str)
- }
+ console.log(str)
+ }
- console.log('')
- }
+ console.log('')
+ }
- if (modifiedIcons.length > 0) {
- let str = ''
- str += `Fixed icons: `
+ if (modifiedIcons.length > 0) {
+ let str = ''
+ str += `Fixed icons: `
- modifiedIcons.forEach(function (icon, i) {
- str += `\`${icon}\``
+ modifiedIcons.forEach(function(icon, i) {
+ str += `\`${icon}\``
- if ((i + 1) <= modifiedIcons.length - 1) {
- str += ', '
- }
- })
+ if ((i + 1) <= modifiedIcons.length - 1) {
+ str += ', '
+ }
+ })
- console.log(str)
- console.log('')
- }
+ console.log(str)
+ console.log('')
+ }
- if (renamedIcons.length > 0) {
- console.log(`Renamed icons: `)
+ if (renamedIcons.length > 0) {
+ console.log(`Renamed icons: `)
- renamedIcons.forEach(function (icon, i) {
- console.log(`- \`${icon[0]}\` renamed to \`${icon[1]}\``)
- })
- }
+ renamedIcons.forEach(function(icon, i) {
+ console.log(`- \`${icon[0]}\` renamed to \`${icon[1]}\``)
+ })
+ }
}
-const generateIconsPreview = function (files, destFile, cb, columnsCount = 19, paddingOuter = 7) {
+const generateIconsPreview = function(files, destFile, cb, columnsCount = 19, paddingOuter = 7) {
- const padding = 20,
- iconSize = 24
+ const padding = 20,
+ iconSize = 24
- const iconsCount = files.length,
- rowsCount = Math.ceil(iconsCount / columnsCount),
- width = columnsCount * (iconSize + padding) + 2 * paddingOuter - padding,
- height = rowsCount * (iconSize + padding) + 2 * paddingOuter - padding
+ const iconsCount = files.length,
+ rowsCount = Math.ceil(iconsCount / columnsCount),
+ width = columnsCount * (iconSize + padding) + 2 * paddingOuter - padding,
+ height = rowsCount * (iconSize + padding) + 2 * paddingOuter - padding
- let svgContentSymbols = '',
- svgContentIcons = '',
- x = paddingOuter,
- y = paddingOuter
+ let svgContentSymbols = '',
+ svgContentIcons = '',
+ x = paddingOuter,
+ y = paddingOuter
- files.forEach(function (file, i) {
- let name = path.basename(file, '.svg')
+ files.forEach(function(file, i) {
+ let name = path.basename(file, '.svg')
- let svgFile = fs.readFileSync(file),
- svgFileContent = svgFile.toString()
+ let svgFile = fs.readFileSync(file),
+ svgFileContent = svgFile.toString()
- svgFileContent = svgFileContent
- .replace('<svg xmlns="http://www.w3.org/2000/svg"', `<symbol id="${name}"`)
- .replace(' width="24" height="24"', '')
- .replace('</svg>', '</symbol>')
- .replace(/\n\s+/g, '')
+ svgFileContent = svgFileContent.replace('<svg xmlns="http://www.w3.org/2000/svg"', `<symbol id="${name}"`).
+ replace(' width="24" height="24"', '').
+ replace('</svg>', '</symbol>').
+ replace(/\n\s+/g, '')
- svgContentSymbols += `\t${svgFileContent}\n`
- svgContentIcons += `\t<use xlink:href="#${name}" x="${x}" y="${y}" width="${iconSize}" height="${iconSize}" />\n`
+ svgContentSymbols += `\t${svgFileContent}\n`
+ svgContentIcons += `\t<use xlink:href="#${name}" x="${x}" y="${y}" width="${iconSize}" height="${iconSize}" />\n`
- x += padding + iconSize
+ x += padding + iconSize
- if (i % columnsCount === columnsCount - 1) {
- x = paddingOuter
- y += padding + iconSize
- }
- })
+ if (i % columnsCount === columnsCount - 1) {
+ x = paddingOuter
+ y += padding + iconSize
+ }
+ })
- const svgContent = `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 ${width} ${height}" width="${width}" height="${height}" style="color: #354052"><rect x="0" y="0" width="${width}" height="${height}" fill="#fff"></rect>\n${svgContentSymbols}\n${svgContentIcons}\n</svg>`
+ const svgContent = `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 ${width} ${height}" width="${width}" height="${height}" style="color: #354052"><rect x="0" y="0" width="${width}" height="${height}" fill="#fff"></rect>\n${svgContentSymbols}\n${svgContentIcons}\n</svg>`
- fs.writeFileSync(destFile, svgContent)
- createScreenshot(destFile)
+ fs.writeFileSync(destFile, svgContent)
+ createScreenshot(destFile)
- cb()
+ cb()
}
//*********************************************************************************************
-gulp.task('iconfont-prepare', function (cb) {
- cp.exec('mkdir -p icons-outlined/ && rm -fd ./icons-outlined/* && mkdir -p && rm -fd ./iconfont/*', function () {
- cb()
- })
+gulp.task('iconfont-prepare', function(cb) {
+ cp.exec('mkdir -p icons-outlined/ && rm -fd ./icons-outlined/* && mkdir -p && rm -fd ./iconfont/*', function() {
+ cb()
+ })
})
-gulp.task('iconfont-clean', function (cb) {
- cp.exec('rm -rf ./icons-outlined', function () {
- cb()
- })
+gulp.task('iconfont-clean', function(cb) {
+ cp.exec('rm -rf ./icons-outlined', function() {
+ cb()
+ })
})
-gulp.task('iconfont-svg-outline', function (cb) {
+gulp.task('iconfont-svg-outline', function(cb) {
- cp.exec('mkdir -p icons-outlined/ && rm -fd ./icons-outlined/*', async () => {
- let files = glob.sync("./icons/*.svg")
+ cp.exec('mkdir -p icons-outlined/ && rm -fd ./icons-outlined/*', async () => {
+ let files = glob.sync('./icons/*.svg')
- let iconfontUnicode = {}
+ let iconfontUnicode = {}
- if (fs.existsSync('./.build/iconfont-unicode.json')) {
- iconfontUnicode = require('./.build/iconfont-unicode')
- }
+ if (fs.existsSync('./.build/iconfont-unicode.json')) {
+ iconfontUnicode = require('./.build/iconfont-unicode')
+ }
- await asyncForEach(files, async function (file) {
+ await asyncForEach(files, async function(file) {
- const name = path.basename(file, '.svg')
+ const name = path.basename(file, '.svg')
- if (compileOptions.includeIcons.length === 0 || compileOptions.includeIcons.indexOf(name) >= 0) {
+ if (compileOptions.includeIcons.length === 0 || compileOptions.includeIcons.indexOf(name) >= 0) {
- unicode = iconfontUnicode[name]
+ unicode = iconfontUnicode[name]
- await console.log('Stroke for:', file, unicode)
+ await console.log('Stroke for:', file, unicode)
- let strokedSVG = fs.readFileSync(file).toString()
+ let strokedSVG = fs.readFileSync(file).toString()
- strokedSVG = strokedSVG
- .replace('width="24"', 'width="1000"')
- .replace('height="24"', 'height="1000"')
+ strokedSVG = strokedSVG.replace('width="24"', 'width="1000"').replace('height="24"', 'height="1000"')
- if (compileOptions.strokeWidth) {
- strokedSVG = strokedSVG.replace('stroke-width="2"', `stroke-width="${compileOptions.strokeWidth}"`)
- }
+ if (compileOptions.strokeWidth) {
+ strokedSVG = strokedSVG.replace('stroke-width="2"', `stroke-width="${compileOptions.strokeWidth}"`)
+ }
- await outlineStroke(strokedSVG, {
- optCurve: false,
- steps: 4,
- round: 0,
- centerHorizontally: true,
- fixedWidth: true,
- color: 'black'
- }).then(outlined => {
- if (unicode) {
- fs.writeFileSync(`icons-outlined/u${unicode.toUpperCase()}-${name}.svg`, outlined)
- } else {
- fs.writeFileSync(`icons-outlined/${name}.svg`, outlined)
- }
- }).catch(error => console.log(error))
- }
+ await outlineStroke(strokedSVG, {
+ optCurve: false,
+ steps: 4,
+ round: 0,
+ centerHorizontally: true,
+ fixedWidth: true,
+ color: 'black'
+ }).then(outlined => {
+ if (unicode) {
+ fs.writeFileSync(`icons-outlined/u${unicode.toUpperCase()}-${name}.svg`, outlined)
+ } else {
+ fs.writeFileSync(`icons-outlined/${name}.svg`, outlined)
+ }
+ }).catch(error => console.log(error))
+ }
- })
+ })
- cb()
- })
+ cb()
+ })
})
-gulp.task('iconfont-optimize', function () {
- return gulp.src('icons-outlined/*')
- .pipe(svgo())
- .pipe(gulp.dest('icons-outlined'))
+gulp.task('iconfont-optimize', function() {
+ return gulp.src('icons-outlined/*').pipe(svgo()).pipe(gulp.dest('icons-outlined'))
})
-gulp.task('iconfont-fix-outline', function (cb) {
- var fontForge = compileOptions.fontForge
-
- // correct svg outline directions in a child process using fontforge
- const generate = cp.spawn(fontForge, ["-lang=py", "-script", "./fix-outline.py"], { stdio: 'inherit' })
- generate.on("close", function (code) {
- console.log(`Correcting svg outline directions exited with code ${code}`)
- if (!code) {
- cb()
- }
- })
+gulp.task('iconfont-fix-outline', function(cb) {
+ var fontForge = compileOptions.fontForge
+
+ // correct svg outline directions in a child process using fontforge
+ const generate = cp.spawn(fontForge, ['-lang=py', '-script', './fix-outline.py'], { stdio: 'inherit' })
+ generate.on('close', function(code) {
+ console.log(`Correcting svg outline directions exited with code ${code}`)
+ if (!code) {
+ cb()
+ }
+ })
})
-gulp.task('iconfont', function () {
- let maxUnicode = 59905
+gulp.task('iconfont', function() {
+ let maxUnicode = 59905
- if (fs.existsSync('./.build/iconfont-unicode.json')) {
- const iconfontUnicode = require('./.build/iconfont-unicode')
+ if (fs.existsSync('./.build/iconfont-unicode.json')) {
+ const iconfontUnicode = require('./.build/iconfont-unicode')
- for (const name in iconfontUnicode) {
- const unicode = parseInt(iconfontUnicode[name], 16)
+ for (const name in iconfontUnicode) {
+ const unicode = parseInt(iconfontUnicode[name], 16)
- maxUnicode = Math.max(maxUnicode, unicode)
- }
- }
+ maxUnicode = Math.max(maxUnicode, unicode)
+ }
+ }
- maxUnicode = maxUnicode + 1
+ maxUnicode = maxUnicode + 1
- return gulp.src(['icons-outlined/*.svg'])
- .pipe(iconfont({
- fontName: 'tabler-icons',
- prependUnicode: true,
- formats: ['ttf', 'eot', 'woff', 'woff2', 'svg'],
- normalize: true,
- startUnicode: maxUnicode,
- fontHeight: 1000,
- descent: 100,
- ascent: 986.5
- }))
- .on('glyphs', function (glyphs, options) {
- //glyphs json
- let glyphsObject = {}
+ return gulp.src(['icons-outlined/*.svg']).pipe(iconfont({
+ fontName: 'tabler-icons',
+ prependUnicode: true,
+ formats: ['ttf', 'eot', 'woff', 'woff2', 'svg'],
+ normalize: true,
+ startUnicode: maxUnicode,
+ fontHeight: 1000,
+ descent: 100,
+ ascent: 986.5
+ })).on('glyphs', function(glyphs, options) {
+ //glyphs json
+ let glyphsObject = {}
- //sort glypht
- glyphs = glyphs.sort(function (a, b) {
- return ('' + a.name).localeCompare(b.name)
- })
+ //sort glypht
+ glyphs = glyphs.sort(function(a, b) {
+ return ('' + a.name).localeCompare(b.name)
+ })
- glyphs.forEach(function (glyph) {
- glyphsObject[glyph.name] = glyph.unicode[0].codePointAt(0).toString(16)
- })
+ glyphs.forEach(function(glyph) {
+ glyphsObject[glyph.name] = glyph.unicode[0].codePointAt(0).toString(16)
+ })
- fs.writeFileSync(`./.build/iconfont-unicode.json`, JSON.stringify(glyphsObject))
+ fs.writeFileSync(`./.build/iconfont-unicode.json`, JSON.stringify(glyphsObject))
- //css
- options['glyphs'] = glyphs
- options['v'] = p.version
+ //css
+ options['glyphs'] = glyphs
+ options['v'] = p.version
- const compiled = template(fs.readFileSync('.build/iconfont.scss').toString())
- const result = compiled(options)
+ const compiled = template(fs.readFileSync('.build/iconfont.scss').toString())
+ const result = compiled(options)
- fs.writeFileSync('iconfont/tabler-icons.scss', result)
+ fs.writeFileSync('iconfont/tabler-icons.scss', result)
- //html
- const compiledHtml = template(fs.readFileSync('.build/iconfont.html').toString())
- const resultHtml = compiledHtml(options)
+ //html
+ const compiledHtml = template(fs.readFileSync('.build/iconfont.html').toString())
+ const resultHtml = compiledHtml(options)
- fs.writeFileSync('iconfont/tabler-icons.html', resultHtml)
- })
- .pipe(gulp.dest('iconfont/fonts'))
+ fs.writeFileSync('iconfont/tabler-icons.html', resultHtml)
+ }).pipe(gulp.dest('iconfont/fonts'))
})
-gulp.task('iconfont-css', function (cb) {
- sass.render({
- file: 'iconfont/tabler-icons.scss',
- outputStyle: 'expanded'
- }, function (err, result) {
- fs.writeFileSync('iconfont/tabler-icons.css', result.css)
+gulp.task('iconfont-css', function(cb) {
+ sass.render({
+ file: 'iconfont/tabler-icons.scss',
+ outputStyle: 'expanded'
+ }, function(err, result) {
+ fs.writeFileSync('iconfont/tabler-icons.css', result.css)
- const cleanOutput = new cleanCSS({}).minify(result.css)
- fs.writeFileSync('iconfont/tabler-icons.min.css', cleanOutput.styles)
+ const cleanOutput = new cleanCSS({}).minify(result.css)
+ fs.writeFileSync('iconfont/tabler-icons.min.css', cleanOutput.styles)
- cb()
- })
+ cb()
+ })
})
-gulp.task('update-tags-unicode', function (cb) {
- let tags = require('./tags.json'),
- unicodes = require('./.build/iconfont-unicode.json')
+gulp.task('update-tags-unicode', function(cb) {
+ let tags = require('./tags.json'),
+ unicodes = require('./.build/iconfont-unicode.json')
- for (let i in tags) {
- tags[i] = {
- ...tags[i],
- unicode: unicodes[i],
- }
- }
+ for (let i in tags) {
+ tags[i] = {
+ ...tags[i],
+ unicode: unicodes[i]
+ }
+ }
- console.log('tags', tags)
+ console.log('tags', tags)
- fs.writeFileSync(`tags.json`, JSON.stringify(tags, null, 2))
+ fs.writeFileSync(`tags.json`, JSON.stringify(tags, null, 2))
- cb()
+ cb()
})
-gulp.task('build-iconfont', gulp.series('iconfont-prepare', 'iconfont-svg-outline', 'iconfont-fix-outline', 'iconfont-optimize', 'iconfont', 'iconfont-css', 'iconfont-clean', 'update-tags-unicode'))
+gulp.task('build-iconfont',
+ gulp.series('iconfont-prepare', 'iconfont-svg-outline', 'iconfont-fix-outline', 'iconfont-optimize', 'iconfont', 'iconfont-css', 'iconfont-clean',
+ 'update-tags-unicode'))
-gulp.task('build-zip', function () {
- const version = p.version
+gulp.task('build-zip', function() {
+ const version = p.version
- return gulp.src('{icons/**/*,icons-png/**/*,icons-react/**/*,iconfont/**/*,tabler-sprite.svg,tabler-sprite-nostroke.svg}')
- .pipe(zip(`tabler-icons-${version}.zip`))
- .pipe(gulp.dest('packages-zip'))
+ return gulp.src('{icons/**/*,icons-png/**/*,icons-react/**/*,iconfont/**/*,tabler-sprite.svg,tabler-sprite-nostroke.svg}').
+ pipe(zip(`tabler-icons-${version}.zip`)).
+ pipe(gulp.dest('packages-zip'))
})
-gulp.task('build-jekyll', function (cb) {
- const jekyll = cp.spawn("bundle", ["exec", "jekyll", "build"], { stdio: 'inherit' })
- jekyll.on("close", function (code) {
- console.log(`Jekyll build exited with code ${code}`)
- if (!code) {
- cb()
- }
- })
+gulp.task('build-jekyll', function(cb) {
+ const jekyll = cp.spawn('bundle', ['exec', 'jekyll', 'build'], { stdio: 'inherit' })
+ jekyll.on('close', function(code) {
+ console.log(`Jekyll build exited with code ${code}`)
+ if (!code) {
+ cb()
+ }
+ })
})
-gulp.task('build-copy', function (cb) {
- cp.exec('mkdir -p icons/ && rm -fd ./icons/* && cp ./_site/icons/* ./icons && cp ./_site/tags.json .', function () {
- cb()
- })
+gulp.task('build-copy', function(cb) {
+ cp.exec('mkdir -p icons/ && rm -fd ./icons/* && cp ./_site/icons/* ./icons && cp ./_site/tags.json .', function() {
+ cb()
+ })
})
-gulp.task('clean-png', function (cb) {
- cp.exec('rm -fd ./icons-png/*', function () {
- cb()
- })
+gulp.task('clean-png', function(cb) {
+ cp.exec('rm -fd ./icons-png/*', function() {
+ cb()
+ })
})
-gulp.task('icons-sprite', function (cb) {
- glob("_site/icons/*.svg", {}, function (er, files) {
+gulp.task('icons-sprite', function(cb) {
+ glob('_site/icons/*.svg', {}, function(er, files) {
- let svgContent = ''
+ let svgContent = ''
- files.forEach(function (file, i) {
- let name = path.basename(file, '.svg'),
- svgFile = fs.readFileSync(file),
- svgFileContent = svgFile.toString()
+ files.forEach(function(file, i) {
+ let name = path.basename(file, '.svg'),
+ svgFile = fs.readFileSync(file),
+ svgFileContent = svgFile.toString()
- svgFileContent = svgFileContent
- .replace(/<svg[^>]+>/g, '')
- .replace(/<\/svg>/g, '')
- .replace(/\n+/g, '')
- .replace(/>\s+</g, '><')
- .trim()
+ svgFileContent = svgFileContent.replace(/<svg[^>]+>/g, '').replace(/<\/svg>/g, '').replace(/\n+/g, '').replace(/>\s+</g, '><').trim()
- svgContent += `<symbol id="tabler-${name}" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">${svgFileContent}</symbol>`
- })
+ svgContent += `<symbol id="tabler-${name}" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">${svgFileContent}</symbol>`
+ })
- let svg = `<svg xmlns="http://www.w3.org/2000/svg"><defs>${svgContent}</defs></svg>`
+ let svg = `<svg xmlns="http://www.w3.org/2000/svg"><defs>${svgContent}</defs></svg>`
- fs.writeFileSync('tabler-sprite.svg', svg)
- fs.writeFileSync('tabler-sprite-nostroke.svg', svg.replace(/stroke-width="2"\s/g, ''))
- cb()
- })
+ fs.writeFileSync('tabler-sprite.svg', svg)
+ fs.writeFileSync('tabler-sprite-nostroke.svg', svg.replace(/stroke-width="2"\s/g, ''))
+ cb()
+ })
})
-gulp.task('icons-preview', function (cb) {
- glob("icons/*.svg", {}, function (er, files) {
- generateIconsPreview(files, '.github/icons.svg', cb)
- })
+gulp.task('icons-preview', function(cb) {
+ glob('icons/*.svg', {}, function(er, files) {
+ generateIconsPreview(files, '.github/icons.svg', cb)
+ })
})
-gulp.task('icons-stroke', gulp.series('build-jekyll', function (cb) {
+gulp.task('icons-stroke', gulp.series('build-jekyll', function(cb) {
- const icon = "disabled",
- strokes = ['.5', '1', '1.5', '2', '2.75'],
- svgFileContent = fs.readFileSync(`icons/${icon}.svg`).toString(),
- padding = 16,
- paddingOuter = 3,
- iconSize = 32,
- width = 914,
- height = iconSize + paddingOuter * 2
+ const icon = 'disabled',
+ strokes = ['.5', '1', '1.5', '2', '2.75'],
+ svgFileContent = fs.readFileSync(`icons/${icon}.svg`).toString(),
+ padding = 16,
+ paddingOuter = 3,
+ iconSize = 32,
+ width = 914,
+ height = iconSize + paddingOuter * 2
- let svgContentSymbols = '',
- svgContentIcons = '',
- x = paddingOuter
+ let svgContentSymbols = '',
+ svgContentIcons = '',
+ x = paddingOuter
- strokes.forEach(function (stroke) {
- let svgFileContentStroked = svgFileContent
- .replace('<svg xmlns="http://www.w3.org/2000/svg"', `<symbol id="icon-${stroke}"`)
- .replace(' width="24" height="24"', '')
- .replace(' stroke-width="2"', ` stroke-width="${stroke}"`)
- .replace('</svg>', '</symbol>')
- .replace(/\n\s+/g, '')
+ strokes.forEach(function(stroke) {
+ let svgFileContentStroked = svgFileContent.replace('<svg xmlns="http://www.w3.org/2000/svg"', `<symbol id="icon-${stroke}"`).
+ replace(' width="24" height="24"', '').
+ replace(' stroke-width="2"', ` stroke-width="${stroke}"`).
+ replace('</svg>', '</symbol>').
+ replace(/\n\s+/g, '')
- svgContentSymbols += `\t${svgFileContentStroked}\n`
- svgContentIcons += `\t<use xlink:href="#icon-${stroke}" x="${x}" y="${paddingOuter}" width="${iconSize}" height="${iconSize}" />\n`
+ svgContentSymbols += `\t${svgFileContentStroked}\n`
+ svgContentIcons += `\t<use xlink:href="#icon-${stroke}" x="${x}" y="${paddingOuter}" width="${iconSize}" height="${iconSize}" />\n`
- x += padding + iconSize
- })
+ x += padding + iconSize
+ })
- const svgContent = `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 ${width} ${height}" width="${width}" height="${height}" style="color: #354052"><rect x="0" y="0" width="${width}" height="${height}" fill="#fff"></rect>\n${svgContentSymbols}\n${svgContentIcons}\n</svg>`
+ const svgContent = `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 ${width} ${height}" width="${width}" height="${height}" style="color: #354052"><rect x="0" y="0" width="${width}" height="${height}" fill="#fff"></rect>\n${svgContentSymbols}\n${svgContentIcons}\n</svg>`
- fs.writeFileSync('.github/icons-stroke.svg', svgContent)
- createScreenshot('.github/icons-stroke.svg')
- cb()
+ fs.writeFileSync('.github/icons-stroke.svg', svgContent)
+ createScreenshot('.github/icons-stroke.svg')
+ cb()
}))
-gulp.task('optimize', function (cb) {
- const addFloats = function (n1, n2) {
- return Math.round((parseFloat(n1) + parseFloat(n2)) * 1000) / 1000
- }
-
- const optimizePath = function (path) {
- let transformed = svgpath(path)
- .rel()
- .round(3)
- .toString()
-
- return svgParse(transformed).map(function (a) {
- return a.join(' ')
- }).join(' ')
- }
-
- glob("src/_icons/*.svg", {}, function (er, files) {
-
- files.forEach(function (file, i) {
- let svgFile = fs.readFileSync(file),
- svgFileContent = svgFile.toString()
-
- svgFileContent = svgFileContent
- .replace(/><\/(polyline|line|rect|circle|path)>/g, '/>')
- .replace(/rx="([^"]+)"\s+ry="\1"/g, 'rx="$1"')
- .replace(/<path stroke="red" stroke-width="\.1"([^>]+)?\/>/g, '')
- .replace(/\s?\/>/g, ' />')
- .replace(/\n\s*<(line|circle|path|polyline|rect)/g, "\n <$1")
- .replace(/polyline points="([0-9.]+)\s([0-9.]+)\s([0-9.]+)\s([0-9.]+)"/g, 'line x1="$1" y1="$2" x2="$3" y2="$4"')
- .replace(/<path d="([^"]+)"/g, function (f, r1) {
- r1 = optimizePath(r1)
-
- return `<path d="${r1}"`
- })
- .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(/\n\s+\n+/g, "\n")
-
- .replace(/<path d="M([0-9.]*) ([0-9.]*)l\s?([-0-9.]*) ([-0-9.]*)"/g, function (f, r1, r2, r3, r4) {
- return `<line x1="${r1}" y1="${r2}" x2="${addFloats(r1, r3)}" y2="${addFloats(r2, r4)}"`
- })
- .replace(/<path d="M([0-9.]*) ([0-9.]*)v\s?([-0-9.]*)"/g, function (f, r1, r2, r3) {
- return `<line x1="${r1}" y1="${r2}" x2="${r1}" y2="${addFloats(r2, r3)}"`
- })
- .replace(/<path d="M([0-9.]*) ([0-9.]*)h\s?([-0-9.]*)"/g, function (f, r1, r2, r3) {
- return `<line x1="${r1}" y1="${r2}" x2="${addFloats(r1, r3)}" y2="${r2}"`
- })
- .replace(/<path d="([^"]+)"/g, function (f, r1) {
- r1 = r1
- .replace(/ -0\./g, " -.")
- .replace(/ 0\./g, " .")
- .replace(/\s([a-z])/gi, "$1")
- .replace(/([a-z])\s/gi, "$1")
- return `<path d="${r1}"`
- })
-
- if (svgFile.toString() !== svgFileContent) {
- fs.writeFileSync(file, svgFileContent)
- }
- })
-
- cb()
- })
+gulp.task('optimize', function(cb) {
+ const addFloats = function(n1, n2) {
+ return Math.round((parseFloat(n1) + parseFloat(n2)) * 1000) / 1000
+ }
+
+ const optimizePath = function(path) {
+ let transformed = svgpath(path).rel().round(3).toString()
+
+ return svgParse(transformed).map(function(a) {
+ return a.join(' ')
+ }).join(' ')
+ }
+
+ glob('src/_icons/*.svg', {}, function(er, files) {
+
+ files.forEach(function(file, i) {
+ let svgFile = fs.readFileSync(file),
+ svgFileContent = svgFile.toString()
+
+ svgFileContent = svgFileContent.replace(/><\/(polyline|line|rect|circle|path)>/g, '/>').
+ replace(/rx="([^"]+)"\s+ry="\1"/g, 'rx="$1"').
+ replace(/<path stroke="red" stroke-width="\.1"([^>]+)?\/>/g, '').
+ replace(/\s?\/>/g, ' />').
+ replace(/\n\s*<(line|circle|path|polyline|rect)/g, '\n <$1').
+ replace(/polyline points="([0-9.]+)\s([0-9.]+)\s([0-9.]+)\s([0-9.]+)"/g, 'line x1="$1" y1="$2" x2="$3" y2="$4"').
+ replace(/<path d="([^"]+)"/g, function(f, r1) {
+ r1 = optimizePath(r1)
+
+ return `<path d="${r1}"`
+ }).
+ 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(/\n\s+\n+/g, '\n').
+ replace(/<path d="M([0-9.]*) ([0-9.]*)l\s?([-0-9.]*) ([-0-9.]*)"/g, function(f, r1, r2, r3, r4) {
+ return `<line x1="${r1}" y1="${r2}" x2="${addFloats(r1, r3)}" y2="${addFloats(r2, r4)}"`
+ }).
+ replace(/<path d="M([0-9.]*) ([0-9.]*)v\s?([-0-9.]*)"/g, function(f, r1, r2, r3) {
+ return `<line x1="${r1}" y1="${r2}" x2="${r1}" y2="${addFloats(r2, r3)}"`
+ }).
+ replace(/<path d="M([0-9.]*) ([0-9.]*)h\s?([-0-9.]*)"/g, function(f, r1, r2, r3) {
+ return `<line x1="${r1}" y1="${r2}" x2="${addFloats(r1, r3)}" y2="${r2}"`
+ }).
+ replace(/<path d="([^"]+)"/g, function(f, r1) {
+ r1 = r1.replace(/ -0\./g, ' -.').replace(/ 0\./g, ' .').replace(/\s([a-z])/gi, '$1').replace(/([a-z])\s/gi, '$1')
+ return `<path d="${r1}"`
+ })
+
+ if (svgFile.toString() !== svgFileContent) {
+ fs.writeFileSync(file, svgFileContent)
+ }
+ })
+
+ cb()
+ })
})
-gulp.task('changelog-commit', function (cb) {
- cp.exec('git status', function (err, ret) {
- let newIcons = [], modifiedIcons = [], renamedIcons = []
+gulp.task('changelog-commit', function(cb) {
+ cp.exec('git status', function(err, ret) {
+ let newIcons = [], modifiedIcons = [], renamedIcons = []
- ret.replace(/new file:\s+src\/_icons\/([a-z0-9-]+)\.svg/g, function (m, fileName) {
- newIcons.push(fileName)
- })
+ ret.replace(/new file:\s+src\/_icons\/([a-z0-9-]+)\.svg/g, function(m, fileName) {
+ newIcons.push(fileName)
+ })
- ret.replace(/modified:\s+src\/_icons\/([a-z0-9-]+)\.svg/g, function (m, fileName) {
- modifiedIcons.push(fileName)
- })
+ ret.replace(/modified:\s+src\/_icons\/([a-z0-9-]+)\.svg/g, function(m, fileName) {
+ modifiedIcons.push(fileName)
+ })
- ret.replace(/renamed:\s+src\/_icons\/([a-z0-9-]+).svg -> src\/_icons\/([a-z0-9-]+).svg/g, function (m, fileNameBefore, fileNameAfter) {
- renamedIcons.push([fileNameBefore, fileNameAfter])
- })
+ ret.replace(/renamed:\s+src\/_icons\/([a-z0-9-]+).svg -> src\/_icons\/([a-z0-9-]+).svg/g, function(m, fileNameBefore, fileNameAfter) {
+ renamedIcons.push([fileNameBefore, fileNameAfter])
+ })
- modifiedIcons = modifiedIcons.filter(function (el) {
- return newIcons.indexOf(el) < 0
- })
+ modifiedIcons = modifiedIcons.filter(function(el) {
+ return newIcons.indexOf(el) < 0
+ })
- printChangelog(newIcons, modifiedIcons, renamedIcons)
+ printChangelog(newIcons, modifiedIcons, renamedIcons)
- cb()
- })
+ cb()
+ })
})
-gulp.task('changelog', function (cb) {
- const version = argv['latest-tag'] || `v${p.version}`
+gulp.task('changelog', function(cb) {
+ const version = argv['latest-tag'] || `v${p.version}`
- if (version) {
- cp.exec(`git diff ${version} HEAD --name-status`, function (err, ret) {
+ if (version) {
+ cp.exec(`git diff ${version} HEAD --name-status`, function(err, ret) {
- let newIcons = [], modifiedIcons = [], renamedIcons = []
+ let newIcons = [], modifiedIcons = [], renamedIcons = []
- ret.replace(/A\s+src\/_icons\/([a-z0-9-]+)\.svg/g, function (m, fileName) {
- newIcons.push(fileName)
- })
+ ret.replace(/A\s+src\/_icons\/([a-z0-9-]+)\.svg/g, function(m, fileName) {
+ newIcons.push(fileName)
+ })
- ret.replace(/M\s+src\/_icons\/([a-z0-9-]+)\.svg/g, function (m, fileName) {
- modifiedIcons.push(fileName)
- })
+ ret.replace(/M\s+src\/_icons\/([a-z0-9-]+)\.svg/g, function(m, fileName) {
+ modifiedIcons.push(fileName)
+ })
- ret.replace(/R[0-9]+\s+src\/_icons\/([a-z0-9-]+)\.svg\s+src\/_icons\/([a-z0-9-]+).svg/g, function (m, fileNameBefore, fileNameAfter) {
- renamedIcons.push([fileNameBefore, fileNameAfter])
- })
+ ret.replace(/R[0-9]+\s+src\/_icons\/([a-z0-9-]+)\.svg\s+src\/_icons\/([a-z0-9-]+).svg/g, function(m, fileNameBefore, fileNameAfter) {
+ renamedIcons.push([fileNameBefore, fileNameAfter])
+ })
- modifiedIcons = modifiedIcons.filter(function (el) {
- return newIcons.indexOf(el) < 0
- })
+ modifiedIcons = modifiedIcons.filter(function(el) {
+ return newIcons.indexOf(el) < 0
+ })
- printChangelog(newIcons, modifiedIcons, renamedIcons, true)
+ printChangelog(newIcons, modifiedIcons, renamedIcons, true)
- cb()
- })
- }
+ cb()
+ })
+ }
})
-gulp.task('changelog-image', function (cb) {
- const version = argv['latest-version'] || `${p.version}`,
- newVersion = argv['new-version'] || `${p.version}`
+gulp.task('changelog-image', function(cb) {
+ const version = argv['latest-version'] || `${p.version}`,
+ newVersion = argv['new-version'] || `${p.version}`
- if (version) {
- cp.exec(`git diff v${version} HEAD --name-status`, function (err, ret) {
+ if (version) {
+ cp.exec(`git diff v${version} HEAD --name-status`, function(err, ret) {
- let newIcons = []
+ let newIcons = []
- ret.replace(/[A]\s+src\/_icons\/([a-z0-9-]+)\.svg/g, function (m, fileName) {
- newIcons.push(fileName)
- })
+ ret.replace(/[A]\s+src\/_icons\/([a-z0-9-]+)\.svg/g, function(m, fileName) {
+ newIcons.push(fileName)
+ })
- newIcons = newIcons.map(function (icon) {
- return `./icons/${icon}.svg`
- })
+ newIcons = newIcons.map(function(icon) {
+ return `./icons/${icon}.svg`
+ })
- if (newIcons.length > 0) {
- generateIconsPreview(newIcons, `.github/tabler-icons-${newVersion}.svg`, cb, 6, 24)
- } else {
- cb()
- }
- })
- } else {
- cb()
- }
+ if (newIcons.length > 0) {
+ generateIconsPreview(newIcons, `.github/tabler-icons-${newVersion}.svg`, cb, 6, 24)
+ } else {
+ cb()
+ }
+ })
+ } else {
+ cb()
+ }
})
gulp.task('svg-to-png', gulp.series('build-jekyll', 'clean-png', async (cb) => {
- let files = glob.sync("./icons/*.svg")
+ let files = glob.sync('./icons/*.svg')
- await asyncForEach(files, async function (file, i) {
- let name = path.basename(file, '.svg')
+ await asyncForEach(files, async function(file, i) {
+ let name = path.basename(file, '.svg')
- console.log('name', name)
+ console.log('name', name)
- await svgToPng(file, `icons-png/${name}.png`)
- })
+ await svgToPng(file, `icons-png/${name}.png`)
+ })
- cb()
+ cb()
}))
-gulp.task('clean-react', function (cb) {
- cp.exec('rm -fd ./icons-react/* && mkdir icons-react/icons-js', function () {
- cb()
- })
+gulp.task('clean-react', function(cb) {
+ cp.exec('rm -fd ./icons-react/* && mkdir icons-react/icons-js', function() {
+ cb()
+ })
})
-gulp.task('svg-to-react', gulp.series('clean-react', async function (cb) {
- let files = glob.sync("./icons/*.svg")
+gulp.task('svg-to-react', gulp.series('clean-react', async function(cb) {
+ let files = glob.sync('./icons/*.svg')
- const camelize = function (str) {
- str = str.replace(/-/g, ' ')
+ const camelize = function(str) {
+ str = str.replace(/-/g, ' ')
- return str.replace(/(?:^\w|[A-Z]|\b\w)/g, function (word, index) {
- return word.toUpperCase()
- }).replace(/\s+/g, '')
- }
+ return str.replace(/(?:^\w|[A-Z]|\b\w)/g, function(word, index) {
+ return word.toUpperCase()
+ }).replace(/\s+/g, '')
+ }
- const componentName = function (file) {
- file = path.basename(file, '.svg')
- file = camelize(`Icon ${file}`)
+ const componentName = function(file) {
+ file = path.basename(file, '.svg')
+ file = camelize(`Icon ${file}`)
- return file
- }
+ return file
+ }
- const optimizeSvgCode = function (svgCode) {
- return svgCode.replace('<path stroke="none" d="M0 0h24v24H0z"/>', '')
- }
+ const optimizeSvgCode = function(svgCode) {
+ return svgCode.replace('<path stroke="none" d="M0 0h24v24H0z"/>', '')
+ }
- let indexCode = '',
- indexDCode = `import { FC, SVGAttributes } from 'react';\n\ninterface TablerIconProps extends SVGAttributes<SVGElement> { color?: string; size?: string | number; stroke?: string | number; }\n\ntype TablerIcon = FC<TablerIconProps>;\n\n`
+ let indexCode = '',
+ indexDCode = `import { FC, SVGAttributes } from 'react';\n\ninterface TablerIconProps extends SVGAttributes<SVGElement> { color?: string; size?: string | number; stroke?: string | number; }\n\ntype TablerIcon = FC<TablerIconProps>;\n\n`
- await asyncForEach(files, async function (file) {
- const svgCode = optimizeSvgCode(fs.readFileSync(file).toString()),
- fileName = path.basename(file, '.svg') + '.js',
- iconComponentName = componentName(file)
+ await asyncForEach(files, async function(file) {
+ const svgCode = optimizeSvgCode(fs.readFileSync(file).toString()),
+ fileName = path.basename(file, '.svg') + '.js',
+ iconComponentName = componentName(file)
- await svgr(svgCode, {
- icon: false,
- svgProps: { width: '{size}', height: '{size}', strokeWidth: '{stroke}', stroke: '{color}' },
- template: require('./.build/svgr-template')
- }, { componentName: iconComponentName }).then(jsCode => {
- fs.writeFileSync('icons-react/icons-js/' + fileName, jsCode)
- indexCode += `export { default as ${iconComponentName} } from './icons-js/${fileName}';\n`
- indexDCode += `export const ${iconComponentName}: TablerIcon;\n`
- })
+ await svgr(svgCode, {
+ icon: false,
+ svgProps: { width: '{size}', height: '{size}', strokeWidth: '{stroke}', stroke: '{color}' },
+ template: require('./.build/svgr-template')
+ }, { componentName: iconComponentName }).then(jsCode => {
+ fs.writeFileSync('icons-react/icons-js/' + fileName, jsCode)
+ indexCode += `export { default as ${iconComponentName} } from './icons-js/${fileName}';\n`
+ indexDCode += `export const ${iconComponentName}: TablerIcon;\n`
+ })
- fs.writeFileSync('icons-react/index.js', indexCode)
- fs.writeFileSync('icons-react/index.d.ts', indexDCode)
- })
+ fs.writeFileSync('icons-react/index.js', indexCode)
+ fs.writeFileSync('icons-react/index.d.ts', indexDCode)
+ })
- cb()
+ cb()
}))
-const setVersions = function (version, files) {
- for (const i in files) {
- const file = files[i]
+const setVersions = function(version, files) {
+ for (const i in files) {
+ const file = files[i]
- if (fs.existsSync(`src/_icons/${file}.svg`)) {
- let svgFile = fs.readFileSync(`src/_icons/${file}.svg`).toString()
+ if (fs.existsSync(`src/_icons/${file}.svg`)) {
+ let svgFile = fs.readFileSync(`src/_icons/${file}.svg`).toString()
- if (!svgFile.match(/version: ([0-9.]+)/i)) {
- svgFile = svgFile.replace(/---\n<svg>/i, function (m) {
- return `version: "${version}"\n${m}`
- })
+ if (!svgFile.match(/version: ([0-9.]+)/i)) {
+ svgFile = svgFile.replace(/---\n<svg>/i, function(m) {
+ return `version: "${version}"\n${m}`
+ })
- fs.writeFileSync(`src/_icons/${file}.svg`, svgFile)
- } else {
- console.log(`File ${file} already has version`)
- }
+ fs.writeFileSync(`src/_icons/${file}.svg`, svgFile)
+ } else {
+ console.log(`File ${file} already has version`)
+ }
- } else {
- console.log(`File ${file} doesn't exists`)
- }
- }
+ } else {
+ console.log(`File ${file} doesn't exists`)
+ }
+ }
}
-gulp.task('update-icons-version', function (cb) {
+gulp.task('update-icons-version', function(cb) {
- const version = argv['latest-version'] || `${p.version}`,
- newVersion = argv['new-version'] || `${p.version}`
+ const version = argv['latest-version'] || `${p.version}`,
+ newVersion = argv['new-version'] || `${p.version}`
- if (version) {
- cp.exec(`grep -RiL "version: " ./src/_icons/*.svg`, function (err, ret) {
+ if (version) {
+ cp.exec(`grep -RiL "version: " ./src/_icons/*.svg`, function(err, ret) {
- let newIcons = []
+ let newIcons = []
- ret.replace(/src\/_icons\/([a-z0-9-]+)\.svg/g, function (m, fileName) {
- newIcons.push(fileName)
- })
+ ret.replace(/src\/_icons\/([a-z0-9-]+)\.svg/g, function(m, fileName) {
+ newIcons.push(fileName)
+ })
- if (newIcons.length) {
- setVersions(newVersion.replace(/\.0$/, ''), newIcons)
- }
- })
- }
+ if (newIcons.length) {
+ setVersions(newVersion.replace(/\.0$/, ''), newIcons)
+ }
+ })
+ }
- cb()
+ cb()
})
-gulp.task('import-tags', function (cb) {
- fs.createReadStream('./_import.csv')
- .pipe(csv({
- headers: false,
- separator: "\t"
- }))
- .on('data', (row) => {
- console.log(row[0], row[1])
+gulp.task('import-categories', function(cb) {
+ let files = glob.sync('./src/_icons/*-off.svg')
- const filename = `src/_icons/${row[0]}.svg`
+ files.forEach(function(file, i) {
+ const fileOriginal = file.replace(/\-off.svg$/, '.svg')
- let data = fs.readFileSync(filename).toString()
- data = data.replace(/(---[\s\S]+?---)/, function (m, headerContent) {
+ if (fs.existsSync(fileOriginal)) {
+ const dataOriginal = fs.readFileSync(fileOriginal).toString()
- headerContent = headerContent.replace(/tags: .*\n/, '')
- headerContent = headerContent.replace(/---/, `---\ntags: [${row[1]}]`)
+ const categoryOriginal = dataOriginal.match(/category: ([a-zA-Z-]+)/)
- return headerContent
- })
+ if(categoryOriginal) {
+ console.log('categoryOriginal', categoryOriginal[1])
- fs.writeFileSync(filename, data)
- })
- .on('end', () => {
- console.log('CSV file successfully processed')
- })
- cb()
+ let data = fs.readFileSync(fileOriginal).toString()
+ data = data.replace(/(---[\s\S]+?---)/, function(m, headerContent) {
+
+ headerContent = headerContent.replace(/category: .*\n/, '')
+ headerContent = headerContent.replace(/---/, `---\ncategory: ${categoryOriginal[1]}`)
+
+ return headerContent
+ })
+
+ fs.writeFileSync(fileOriginal, data)
+ }
+ }
+ })
+
+ cb()
+})
+
+gulp.task('import-tags', function(cb) {
+ fs.createReadStream('./_import.csv').pipe(csv({
+ headers: false,
+ separator: '\t'
+ })).on('data', (row) => {
+ console.log(row[0], row[1])
+
+ const filename = `src/_icons/${row[0]}.svg`
+
+ let data = fs.readFileSync(filename).toString()
+ data = data.replace(/(---[\s\S]+?---)/, function(m, headerContent) {
+
+ headerContent = headerContent.replace(/tags: .*\n/, '')
+ headerContent = headerContent.replace(/---/, `---\ntags: [${row[1]}]`)
+
+ return headerContent
+ })
+
+ fs.writeFileSync(filename, data)
+
+ }).on('end', () => {
+ console.log('CSV file successfully processed')
+ })
+ cb()
})
-gulp.task("build-react", function (cb) {
- cp.exec("npm run build-react", function () {
- cb()
- })
+gulp.task('build-react', function(cb) {
+ cp.exec('npm run build-react', function() {
+ cb()
+ })
})
-gulp.task('build', gulp.series('optimize', 'update-icons-version', 'build-jekyll', 'build-copy', 'icons-sprite', 'svg-to-react', 'build-react', 'icons-preview', 'svg-to-png', 'build-iconfont', 'changelog-image', 'build-zip'))
+gulp.task('build',
+ gulp.series('optimize', 'update-icons-version', 'build-jekyll', 'build-copy', 'icons-sprite', 'svg-to-react', 'build-react', 'icons-preview', 'svg-to-png',
+ 'build-iconfont', 'changelog-image', 'build-zip'))
diff --git a/src/_icons/abacus.svg b/src/_icons/abacus.svg
index 6ab34339..27b05bd3 100644
--- a/src/_icons/abacus.svg
+++ b/src/_icons/abacus.svg
@@ -1,5 +1,6 @@
---
version: "1.58"
+category: Math
---
<svg>
<path d="M5 3v18" />
diff --git a/src/_icons/access-point.svg b/src/_icons/access-point.svg
index a67d4a2e..15fd0007 100644
--- a/src/_icons/access-point.svg
+++ b/src/_icons/access-point.svg
@@ -1,6 +1,6 @@
---
-tags: [device, hosts, airwaves, wireless, network]
category: Devices
+tags: [device, hosts, airwaves, wireless, network]
version: "1.25"
---
<svg>
diff --git a/src/_icons/adjustments-off.svg b/src/_icons/adjustments-off.svg
index 7a32424b..b026be9d 100644
--- a/src/_icons/adjustments-off.svg
+++ b/src/_icons/adjustments-off.svg
@@ -1,4 +1,5 @@
---
+category: System
version: "1.62"
---
<svg>
diff --git a/src/_icons/anchor-off.svg b/src/_icons/anchor-off.svg
index a30f7bd7..7448bf7d 100644
--- a/src/_icons/anchor-off.svg
+++ b/src/_icons/anchor-off.svg
@@ -1,5 +1,6 @@
---
version: "1.65"
+category: Map
---
<svg>
<path d="M12 12v9" />
diff --git a/src/_icons/archive-off.svg b/src/_icons/archive-off.svg
index 35f5c103..4b5d1445 100644
--- a/src/_icons/archive-off.svg
+++ b/src/_icons/archive-off.svg
@@ -1,5 +1,6 @@
---
version: "1.62"
+category: Document
---
<svg>
<path d="M8 4h11a2 2 0 1 1 0 4h-7m-4 0h-3a2 2 0 0 1 -.826 -3.822" />
diff --git a/src/_icons/archive.svg b/src/_icons/archive.svg
index 3782d876..51769ccc 100644
--- a/src/_icons/archive.svg
+++ b/src/_icons/archive.svg
@@ -1,4 +1,5 @@
---
+category: Document
tags: [box, index, records, old, collect]
version: "1.0"
---
diff --git a/src/_icons/artboard-off.svg b/src/_icons/artboard-off.svg
index 6a64e331..9aefc306 100644
--- a/src/_icons/artboard-off.svg
+++ b/src/_icons/artboard-off.svg
@@ -1,4 +1,5 @@
---
+category: Design
version: "1.62"
---
<svg>
diff --git a/src/_icons/artboard.svg b/src/_icons/artboard.svg
index e922770e..9a6aceff 100644
--- a/src/_icons/artboard.svg
+++ b/src/_icons/artboard.svg
@@ -1,4 +1,5 @@
---
+category: Design
tags: [graphics, drawing, design, art, canvas]
version: "1.1"
---
diff --git a/src/_icons/aspect-ratio.svg b/src/_icons/aspect-ratio.svg
index f89e24d3..65f6e11a 100644
--- a/src/_icons/aspect-ratio.svg
+++ b/src/_icons/aspect-ratio.svg
@@ -1,6 +1,6 @@
---
-tags: [size, dimension, width, height, orientation]
category: Media
+tags: [size, dimension, width, height, orientation]
version: "1.27"
---
<svg>
diff --git a/src/_icons/ball-football.svg b/src/_icons/ball-football.svg
index 3a3df238..b221e05d 100644
--- a/src/_icons/ball-football.svg
+++ b/src/_icons/ball-football.svg
@@ -1,6 +1,6 @@
---
-tags: [sport, game, sportsman, play, match, pitch]
category: Sport
+tags: [sport, game, sportsman, play, match, pitch]
version: "1.39"
---
<svg>
diff --git a/src/_icons/baseline.svg b/src/_icons/baseline.svg
index 5d67a618..119f5cf5 100644
--- a/src/_icons/baseline.svg
+++ b/src/_icons/baseline.svg
@@ -1,5 +1,6 @@
---
version: "1.55"
+category: Text
---
<svg>
<path d="M4 20h16" />
diff --git a/src/_icons/bike.svg b/src/_icons/bike.svg
index 255d9bae..5fc8ae0a 100644
--- a/src/_icons/bike.svg
+++ b/src/_icons/bike.svg
@@ -1,6 +1,6 @@
---
-tags: [cycling, bicycle, sport, wheel]
category: Vehicles
+tags: [cycling, bicycle, sport, wheel]
version: "1.0"
---
<svg>
diff --git a/src/_icons/biohazard.svg b/src/_icons/biohazard.svg
index 775892f6..037452f2 100644
--- a/src/_icons/biohazard.svg
+++ b/src/_icons/biohazard.svg
@@ -1,6 +1,6 @@
---
-tags: [danger, radioactive, toxic, microbe, virus, biotoxin]
category: Symbols
+tags: [danger, radioactive, toxic, microbe, virus, biotoxin]
version: "1.18"
---
<svg>
diff --git a/src/_icons/bold.svg b/src/_icons/bold.svg
index 4774ee36..e7bcb0d8 100644
--- a/src/_icons/bold.svg
+++ b/src/_icons/bold.svg
@@ -1,6 +1,6 @@
---
-tags: [font, style, boldface]
category: Text
+tags: [font, style, boldface]
version: "1.3"
---
<svg>
diff --git a/src/_icons/book-2.svg b/src/_icons/book-2.svg
index d9134f19..3f5949da 100644
--- a/src/_icons/book-2.svg
+++ b/src/_icons/book-2.svg
@@ -1,5 +1,6 @@
---
version: "1.50"
+category: Document
---
<svg>
<path d="M19 4v16h-12a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h12z" />
diff --git a/src/_icons/book-download.svg b/src/_icons/book-download.svg
index b27d2e55..a25dbb86 100644
--- a/src/_icons/book-download.svg
+++ b/src/_icons/book-download.svg
@@ -1,5 +1,6 @@
---
version: "1.59"
+category: Document
---
<svg>
<path d="M12 20h-6a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h12v5" />
diff --git a/src/_icons/book-off.svg b/src/_icons/book-off.svg
index 7fda13ac..7994442e 100644
--- a/src/_icons/book-off.svg
+++ b/src/_icons/book-off.svg
@@ -1,5 +1,6 @@
---
version: "1.63"
+category: Document
---
<svg>
<path d="M3 19a9 9 0 0 1 9 0a8.999 8.999 0 0 1 5.899 -1.096" />
diff --git a/src/_icons/book-upload.svg b/src/_icons/book-upload.svg
index 2f7a3900..702ad296 100644
--- a/src/_icons/book-upload.svg
+++ b/src/_icons/book-upload.svg
@@ -1,5 +1,6 @@
---
version: "1.59"
+category: Document
---
<svg>
<path d="M14 20h-8a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h12v5" />
diff --git a/src/_icons/bookmarks-off.svg b/src/_icons/bookmarks-off.svg
index 3ff6ca6e..6fc30ab6 100644
--- a/src/_icons/bookmarks-off.svg
+++ b/src/_icons/bookmarks-off.svg
@@ -1,5 +1,6 @@
---
version: "1.63"
+category: Document
---
<svg>
<path d="M11 7h2a2 2 0 0 1 2 2v2m0 4v6l-5 -3l-5 3v-12a2 2 0 0 1 2 -2" />
diff --git a/src/_icons/bookmarks.svg b/src/_icons/bookmarks.svg
index b289527a..62589db8 100644
--- a/src/_icons/bookmarks.svg
+++ b/src/_icons/bookmarks.svg
@@ -1,6 +1,6 @@
---
-tags: [read, clip, marker, tag]
category: Document
+tags: [read, clip, marker, tag]
version: "1.24"
---
<svg>
diff --git a/src/_icons/books-off.svg b/src/_icons/books-off.svg
index a4dd3834..debe4d16 100644
--- a/src/_icons/books-off.svg
+++ b/src/_icons/books-off.svg
@@ -1,5 +1,6 @@
---
version: "1.63"
+category: Document
---
<svg>
<path d="M9 9v10a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1v-14" />
diff --git a/src/_icons/books.svg b/src/_icons/books.svg
index ecacfc74..1bf607df 100644
--- a/src/_icons/books.svg
+++ b/src/_icons/books.svg
@@ -1,4 +1,5 @@
---
+category: Document
version: "1.52"
---
<svg>
diff --git a/src/_icons/braces-off.svg b/src/_icons/braces-off.svg
index 438a2e8b..d3f03525 100644
--- a/src/_icons/braces-off.svg
+++ b/src/_icons/braces-off.svg
@@ -1,5 +1,6 @@
---
version: "1.63"
+category: Math
---
<svg>
<path d="M5.176 5.177c-.113 .251 -.176 .53 -.176 .823v3c0 1.657 -.895 3 -2 3c1.105 0 2 1.343 2 3v3a2 2 0 0 0 2 2" />
diff --git a/src/_icons/braces.svg b/src/_icons/braces.svg
index 7929ca8c..9439a767 100644
--- a/src/_icons/braces.svg
+++ b/src/_icons/braces.svg
@@ -1,7 +1,7 @@
---
+category: Math
tags: [punctuation, additional, information]
version: "1.6"
-category: Math
---
<svg>
<path d="M7 4a2 2 0 0 0 -2 2v3a2 3 0 0 1 -2 3a2 3 0 0 1 2 3v3a2 2 0 0 0 2 2" />
diff --git a/src/_icons/brackets-off.svg b/src/_icons/brackets-off.svg
index 807e6d40..46eff960 100644
--- a/src/_icons/brackets-off.svg
+++ b/src/_icons/brackets-off.svg
@@ -1,5 +1,6 @@
---
version: "1.63"
+category: Math
---
<svg>
<path d="M5 5v15h3" />
diff --git a/src/_icons/brackets.svg b/src/_icons/brackets.svg
index c3184f5f..ac6ea933 100644
--- a/src/_icons/brackets.svg
+++ b/src/_icons/brackets.svg
@@ -1,7 +1,7 @@
---
+category: Math
tags: [punctuation, additional, information]
version: "1.6"
-category: Math
---
<svg>
<path d="M8 4h-3v16h3" />
diff --git a/src/_icons/brand-lastfm.svg b/src/_icons/brand-lastfm.svg
index 887d6252..94c55da7 100644
--- a/src/_icons/brand-lastfm.svg
+++ b/src/_icons/brand-lastfm.svg
@@ -1,5 +1,6 @@
---
version: "1.53"
+category: Brand
---
<svg>
<path d="M20 8c-.83 -1 -1.388 -1 -2 -1c-.612 0 -2 .271 -2 2s1.384 2.233 3 3c1.616 .767 2.125 1.812 2 3s-1 2 -3 2s-3 -1 -3.5 -2s-1.585 -4.78 -2.497 -5.997a5 5 0 1 0 -1.003 6.997" />
diff --git a/src/_icons/browser-off.svg b/src/_icons/browser-off.svg
index a6bfcb24..11ba121d 100644
--- a/src/_icons/browser-off.svg
+++ b/src/_icons/browser-off.svg
@@ -1,5 +1,6 @@
---
version: "1.63"
+category: Devices
---
<svg>
<path d="M8 4h11a1 1 0 0 1 1 1v11m-.288 3.702a0.997 .997 0 0 1 -.712 .298h-14a1 1 0 0 1 -1 -1v-14c0 -.276 .112 -.526 .293 -.707" />
diff --git a/src/_icons/browser.svg b/src/_icons/browser.svg
index ec08b3d3..a290a311 100644
--- a/src/_icons/browser.svg
+++ b/src/_icons/browser.svg
@@ -1,7 +1,7 @@
---
+category: Devices
tags: [internet, web, display]
version: "1.5"
-category: Devices
---
<svg>
<rect x="4" y="4" width="16" height="16" rx="1" />
diff --git a/src/_icons/capture.svg b/src/_icons/capture.svg
index 36a1a72b..2117c462 100644
--- a/src/_icons/capture.svg
+++ b/src/_icons/capture.svg
@@ -1,6 +1,6 @@
---
-tags: [photo, photographer, sharpen]
category: Media
+tags: [photo, photographer, sharpen]
version: "1.11"
---
<svg>
diff --git a/src/_icons/car.svg b/src/_icons/car.svg
index 55645a49..fd44d348 100644
--- a/src/_icons/car.svg
+++ b/src/_icons/car.svg
@@ -1,6 +1,6 @@
---
-tags: [vehicle, drive, driver, engine, motor, journey, trip]
category: Vehicles
+tags: [vehicle, drive, driver, engine, motor, journey, trip]
version: "1.5"
---
<svg>
diff --git a/src/_icons/cardboards-off.svg b/src/_icons/cardboards-off.svg
index 8286e6a9..16141a57 100644
--- a/src/_icons/cardboards-off.svg
+++ b/src/_icons/cardboards-off.svg
@@ -1,5 +1,6 @@
---
version: "1.63"
+category: Devices
---
<svg>
<path d="M20.96 16.953c.026 -.147 .04 -.298 .04 -.453v-8.5a2 2 0 0 0 -2 -2h-9m-4 0h-1a2 2 0 0 0 -2 2v8.5a2.5 2.5 0 0 0 2.5 2.5h1.06a3 3 0 0 0 2.34 -1.13l1.54 -1.92a2 2 0 0 1 3.12 0l1.54 1.92a3 3 0 0 0 2.34 1.13h1.06c.155 0 .307 -.014 .454 -.041" />
diff --git a/src/_icons/cardboards.svg b/src/_icons/cardboards.svg
index ae56f3b4..470f8063 100644
--- a/src/_icons/cardboards.svg
+++ b/src/_icons/cardboards.svg
@@ -1,4 +1,5 @@
---
+category: Devices
tags: [vr, virtual reality, watch, viewer, technology]
version: "1.33"
---
diff --git a/src/_icons/ce.svg b/src/_icons/ce.svg
index 51c1a3a3..59a9b8d9 100644
--- a/src/_icons/ce.svg
+++ b/src/_icons/ce.svg
@@ -1,6 +1,6 @@
---
-tags: [sign, marking, administration, administrative, conformity, health, safety, environment, protection, standards, product, europe, eea, economic, area, manufacture]
category: Symbols
+tags: [sign, marking, administration, administrative, conformity, health, safety, environment, protection, standards, product, europe, eea, economic, area, manufacture]
version: "1.33"
---
<svg>
diff --git a/src/_icons/certificate.svg b/src/_icons/certificate.svg
index fd0c95b9..733b5ec3 100644
--- a/src/_icons/certificate.svg
+++ b/src/_icons/certificate.svg
@@ -1,7 +1,7 @@
---
+category: Document
tags: [document, official, attest, signature, birth, death, gift, authenticity, seal, course, complete, qualification]
version: "1.33"
-category: Document
---
<svg>
<circle cx="15" cy="15" r="3" />
diff --git a/src/_icons/circuit-ground.svg b/src/_icons/circuit-ground.svg
index 961c65c8..40b633fe 100644
--- a/src/_icons/circuit-ground.svg
+++ b/src/_icons/circuit-ground.svg
@@ -1,4 +1,5 @@
---
+category: Electrical
version: "1.74"
---
<svg>
diff --git a/src/_icons/clock-2.svg b/src/_icons/clock-2.svg
index 4e7f83d9..7c9c99d7 100644
--- a/src/_icons/clock-2.svg
+++ b/src/_icons/clock-2.svg
@@ -1,5 +1,6 @@
---
version: "1.61"
+category: System
---
<svg>
<rect x="4" y="4" width="16" height="16" rx="1" />
diff --git a/src/_icons/clock-off.svg b/src/_icons/clock-off.svg
index 84ca14ab..183c3c55 100644
--- a/src/_icons/clock-off.svg
+++ b/src/_icons/clock-off.svg
@@ -1,5 +1,6 @@
---
version: "1.63"
+category: System
---
<svg>
<path d="M12 7v1" />
diff --git a/src/_icons/clock.svg b/src/_icons/clock.svg
index 5c850f00..32205989 100644
--- a/src/_icons/clock.svg
+++ b/src/_icons/clock.svg
@@ -1,4 +1,5 @@
---
+category: System
tags: [time, watch, alarm]
version: "1.0"
---
diff --git a/src/_icons/cloud.svg b/src/_icons/cloud.svg
index a2c430da..4639a287 100644
--- a/src/_icons/cloud.svg
+++ b/src/_icons/cloud.svg
@@ -1,6 +1,6 @@
---
-tags: [weather, online]
category: Weather
+tags: [weather, online]
version: "1.0"
---
<svg>
diff --git a/src/_icons/coffee-off.svg b/src/_icons/coffee-off.svg
index 90bf9c9d..420c8888 100644
--- a/src/_icons/coffee-off.svg
+++ b/src/_icons/coffee-off.svg
@@ -1,5 +1,6 @@
---
version: "1.65"
+category: Food
---
<svg>
<path d="M3 14c.83 .642 2.077 1.017 3.5 1c1.423 .017 2.67 -.358 3.5 -1c.73 -.565 1.783 -.923 2.994 -.99" />
diff --git a/src/_icons/color-picker.svg b/src/_icons/color-picker.svg
index 18f6416a..d4911447 100644
--- a/src/_icons/color-picker.svg
+++ b/src/_icons/color-picker.svg
@@ -1,6 +1,6 @@
---
-tags: [timbre, saturation, paint, image, brush, choice, selection, sample]
category: Design
+tags: [timbre, saturation, paint, image, brush, choice, selection, sample]
version: "1.7"
---
<svg>
diff --git a/src/_icons/columns.svg b/src/_icons/columns.svg
index 61086ab9..8d2d0bd3 100644
--- a/src/_icons/columns.svg
+++ b/src/_icons/columns.svg
@@ -1,6 +1,6 @@
---
-tags: [text, gap, table]
category: Text
+tags: [text, gap, table]
version: "1.3"
---
<svg>
diff --git a/src/_icons/components-off.svg b/src/_icons/components-off.svg
index 36568387..b6072f3b 100644
--- a/src/_icons/components-off.svg
+++ b/src/_icons/components-off.svg
@@ -1,4 +1,5 @@
---
+category: Design
version: "1.63"
---
<svg>
diff --git a/src/_icons/container.svg b/src/_icons/container.svg
index 58f296de..581148ed 100644
--- a/src/_icons/container.svg
+++ b/src/_icons/container.svg
@@ -1,6 +1,6 @@
---
-tags: [element, html, block, store, inside]
category: Design
+tags: [element, html, block, store, inside]
version: "1.39"
---
<svg>
diff --git a/src/_icons/copyleft.svg b/src/_icons/copyleft.svg
index 01e1789e..ef41c674 100644
--- a/src/_icons/copyleft.svg
+++ b/src/_icons/copyleft.svg
@@ -1,7 +1,7 @@
---
+category: Symbols
tags: [licence, license]
version: "1.11"
-category: Symbols
---
<svg>
<circle cx="12" cy="12" r="9" />
diff --git a/src/_icons/copyright.svg b/src/_icons/copyright.svg
index 9cb4aa9e..56382976 100644
--- a/src/_icons/copyright.svg
+++ b/src/_icons/copyright.svg
@@ -1,7 +1,7 @@
---
+category: Symbols
tags: [licence, license]
version: "1.0"
-category: Symbols
---
<svg>
<circle cx="12" cy="12" r="9" />
diff --git a/src/_icons/cross.svg b/src/_icons/cross.svg
index 309f5639..8d93c35c 100644
--- a/src/_icons/cross.svg
+++ b/src/_icons/cross.svg
@@ -1,6 +1,6 @@
---
-version: "1.47"
category: Symbols
+version: "1.47"
---
<svg>
<path d="M10 21h4v-9h5v-4h-5v-5h-4v5h-5v4h5z" />
diff --git a/src/_icons/current-location.svg b/src/_icons/current-location.svg
index 48ff0e80..bd7975fc 100644
--- a/src/_icons/current-location.svg
+++ b/src/_icons/current-location.svg
@@ -1,6 +1,6 @@
---
-tags: [localization, maps, navigation, pin, target]
category: Map
+tags: [localization, maps, navigation, pin, target]
version: "1.22"
---
<svg>
diff --git a/src/_icons/dental.svg b/src/_icons/dental.svg
index 5386a9db..affcf545 100644
--- a/src/_icons/dental.svg
+++ b/src/_icons/dental.svg
@@ -1,6 +1,6 @@
---
-version: "1.55"
category: Health
+version: "1.55"
---
<svg>
<path d="M12 5.5c-1.074 -.586 -2.583 -1.5 -4 -1.5c-2.1 -.001 -4 1.247 -4 5c0 4.899 1.056 8.41 2.671 10.537c.573 .756 1.97 .521 2.567 -.236c.398 -.505 .819 -1.439 1.262 -2.801c.292 -.771 .892 -1.504 1.5 -1.5c.602 .004 1.21 .737 1.5 1.5c.443 1.362 .864 2.295 1.262 2.8c.597 .759 1.994 .993 2.567 .237c1.615 -2.127 2.671 -5.637 2.671 -10.537c0 -3.74 -1.908 -4.994 -4 -5c-1.423 -.004 -2.92 .911 -4 1.5z" />
diff --git a/src/_icons/device-computer-camera.svg b/src/_icons/device-computer-camera.svg
index 48fff36e..b0e1b342 100644
--- a/src/_icons/device-computer-camera.svg
+++ b/src/_icons/device-computer-camera.svg
@@ -1,6 +1,6 @@
---
-tags: [video, meeting, record, recording, webcam]
category: Devices
+tags: [video, meeting, record, recording, webcam]
version: "1.39"
---
<svg>
diff --git a/src/_icons/device-desktop.svg b/src/_icons/device-desktop.svg
index b93d87d4..23330eaf 100644
--- a/src/_icons/device-desktop.svg
+++ b/src/_icons/device-desktop.svg
@@ -1,6 +1,6 @@
---
-tags: [monitor, computer, imac]
category: Devices
+tags: [monitor, computer, imac]
version: "1.0"
---
<svg>
diff --git a/src/_icons/device-heart-monitor.svg b/src/_icons/device-heart-monitor.svg
index 760f8468..bff4628b 100644
--- a/src/_icons/device-heart-monitor.svg
+++ b/src/_icons/device-heart-monitor.svg
@@ -1,5 +1,6 @@
---
version: "1.58"
+category: Devices
---
<svg>
<rect x="4" y="4" width="16" height="16" rx="2" />
diff --git a/src/_icons/device-laptop.svg b/src/_icons/device-laptop.svg
index 373a7fd8..9aed7111 100644
--- a/src/_icons/device-laptop.svg
+++ b/src/_icons/device-laptop.svg
@@ -1,6 +1,6 @@
---
-tags: [workstation, mac, notebook, portable, screen, computer]
category: Devices
+tags: [workstation, mac, notebook, portable, screen, computer]
version: "1.2"
---
<svg>
diff --git a/src/_icons/device-mobile.svg b/src/_icons/device-mobile.svg
index 36ebe4bb..cfe6a05a 100644
--- a/src/_icons/device-mobile.svg
+++ b/src/_icons/device-mobile.svg
@@ -1,6 +1,6 @@
---
-tags: [iphone, phone, smartphone, cellphone]
category: Devices
+tags: [iphone, phone, smartphone, cellphone]
version: "1.0"
---
<svg>
diff --git a/src/_icons/device-nintendo-off.svg b/src/_icons/device-nintendo-off.svg
index 6f7293ee..7fecb0a5 100644
--- a/src/_icons/device-nintendo-off.svg
+++ b/src/_icons/device-nintendo-off.svg
@@ -1,4 +1,5 @@
---
+category: Devices
version: "1.65"
---
<svg>
diff --git a/src/_icons/device-speaker-off.svg b/src/_icons/device-speaker-off.svg
index 238ee108..a05a7e65 100644
--- a/src/_icons/device-speaker-off.svg
+++ b/src/_icons/device-speaker-off.svg
@@ -1,5 +1,6 @@
---
version: "1.65"
+category: Devices
---
<svg>
<path d="M7 3h10a2 2 0 0 1 2 2v10m0 4a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-14" />
diff --git a/src/_icons/device-speaker.svg b/src/_icons/device-speaker.svg
index 4b669401..2436aeb6 100644
--- a/src/_icons/device-speaker.svg
+++ b/src/_icons/device-speaker.svg
@@ -1,6 +1,6 @@
---
-tags: [sound, music, loud, audio, media]
category: Devices
+tags: [sound, music, loud, audio, media]
version: "1.1"
---
<svg>
diff --git a/src/_icons/device-tablet.svg b/src/_icons/device-tablet.svg
index f7ab29cb..512ed56d 100644
--- a/src/_icons/device-tablet.svg
+++ b/src/_icons/device-tablet.svg
@@ -1,6 +1,6 @@
---
-tags: [ipad, mobile, touchscreen, portable]
category: Devices
+tags: [ipad, mobile, touchscreen, portable]
version: "1.0"
---
<svg>
diff --git a/src/_icons/device-tv.svg b/src/_icons/device-tv.svg
index fff50cf0..9df84735 100644
--- a/src/_icons/device-tv.svg
+++ b/src/_icons/device-tv.svg
@@ -1,6 +1,6 @@
---
-tags: [screen, display, movie, film, watch, audio, video, media]
category: Devices
+tags: [screen, display, movie, film, watch, audio, video, media]
version: "1.0"
---
<svg>
diff --git a/src/_icons/device-watch.svg b/src/_icons/device-watch.svg
index 7d912694..3df91283 100644
--- a/src/_icons/device-watch.svg
+++ b/src/_icons/device-watch.svg
@@ -1,6 +1,6 @@
---
-tags: [arm, hour, date, minutes, sec., timer]
category: Devices
+tags: [arm, hour, date, minutes, sec., timer]
version: "1.8"
---
<svg>
diff --git a/src/_icons/devices-off.svg b/src/_icons/devices-off.svg
index 4d889fa9..52c427d8 100644
--- a/src/_icons/devices-off.svg
+++ b/src/_icons/devices-off.svg
@@ -1,5 +1,6 @@
---
version: "1.58"
+category: Devices
---
<svg>
<path d="M13 9a1 1 0 0 1 1 -1h6a1 1 0 0 1 1 1v8m-1 3h-6a1 1 0 0 1 -1 -1v-6" />
diff --git a/src/_icons/devices-pc.svg b/src/_icons/devices-pc.svg
index e41e01fd..879c4249 100644
--- a/src/_icons/devices-pc.svg
+++ b/src/_icons/devices-pc.svg
@@ -1,6 +1,6 @@
---
-tags: [computer, monitor, keyboard]
category: Devices
+tags: [computer, monitor, keyboard]
version: "1.39"
---
<svg>
diff --git a/src/_icons/devices.svg b/src/_icons/devices.svg
index 6491085e..8d2dd9a6 100644
--- a/src/_icons/devices.svg
+++ b/src/_icons/devices.svg
@@ -1,6 +1,6 @@
---
-tags: [computer, laptop, notebook, tablet, phone, mobile, mac, iphone]
category: Devices
+tags: [computer, laptop, notebook, tablet, phone, mobile, mac, iphone]
version: "1.3"
---
<svg>
diff --git a/src/_icons/disabled.svg b/src/_icons/disabled.svg
index 309aec56..67efed99 100644
--- a/src/_icons/disabled.svg
+++ b/src/_icons/disabled.svg
@@ -1,7 +1,7 @@
---
+category: Health
tags: [wheelchair, handicapped]
version: "1.0"
-category: Health
---
<svg>
<circle cx="11" cy="5" r="2" />
diff --git a/src/_icons/dna.svg b/src/_icons/dna.svg
index f1304dd9..e6ffa9a9 100644
--- a/src/_icons/dna.svg
+++ b/src/_icons/dna.svg
@@ -1,7 +1,7 @@
---
+category: Health
tags: [genetics, biology, chain, genetic, code, virus, organism]
version: "1.39"
-category: Health
---
<svg>
<circle transform="rotate(-45 12 12)" cx="12" cy="12" r="4" />
diff --git a/src/_icons/drone.svg b/src/_icons/drone.svg
index 179585ba..d9928596 100644
--- a/src/_icons/drone.svg
+++ b/src/_icons/drone.svg
@@ -1,6 +1,6 @@
---
-tags: [device, fly, aircraft, surveillance, control, autonomous]
category: Vehicles
+tags: [device, fly, aircraft, surveillance, control, autonomous]
version: "1.33"
---
<svg>
diff --git a/src/_icons/eraser.svg b/src/_icons/eraser.svg
index 90d46406..4b279635 100644
--- a/src/_icons/eraser.svg
+++ b/src/_icons/eraser.svg
@@ -1,6 +1,6 @@
---
-tags: [delete, remove, eliminate, wipe-out]
category: Text
+tags: [delete, remove, eliminate, wipe-out]
version: "1.3"
---
<svg>
diff --git a/src/_icons/face-mask.svg b/src/_icons/face-mask.svg
index 0f5381e4..da0f6419 100644
--- a/src/_icons/face-mask.svg
+++ b/src/_icons/face-mask.svg
@@ -1,6 +1,6 @@
---
-version: "1.49"
category: Health
+version: "1.49"
---
<svg>
<path d="M5.002 14.5h-.222c-1.535 0 -2.778 -1.12 -2.778 -2.5s1.243 -2.5 2.778 -2.5h.222" />
diff --git a/src/_icons/feather.svg b/src/_icons/feather.svg
index dd027821..ba493431 100644
--- a/src/_icons/feather.svg
+++ b/src/_icons/feather.svg
@@ -1,7 +1,7 @@
---
+category: Nature
tags: [bird, animal, nature]
version: "1.39"
-category: Nature
---
<svg>
<path d="M4 20l10 -10m0 -5v5h5m-9 -1v5h5m-9 -1v5h5m-5 -5l4 -4l4 -4" />
diff --git a/src/_icons/file.svg b/src/_icons/file.svg
index 203a9ef8..ca2cbb97 100644
--- a/src/_icons/file.svg
+++ b/src/_icons/file.svg
@@ -1,6 +1,6 @@
---
-tags: [paper, new]
category: Document
+tags: [paper, new]
version: "1.0"
---
<svg>
diff --git a/src/_icons/files.svg b/src/_icons/files.svg
index 707c6477..3b578768 100644
--- a/src/_icons/files.svg
+++ b/src/_icons/files.svg
@@ -1,6 +1,6 @@
---
-tags: [forms, documents, stack, letter]
category: Document
+tags: [forms, documents, stack, letter]
version: "1.38"
---
<svg>
diff --git a/src/_icons/flag-2.svg b/src/_icons/flag-2.svg
index 15c1169e..4796e9cb 100644
--- a/src/_icons/flag-2.svg
+++ b/src/_icons/flag-2.svg
@@ -1,6 +1,6 @@
---
-tags: [banner, pin, report, map, warning, alert]
category: Map
+tags: [banner, pin, report, map, warning, alert]
version: "1.39"
---
<svg>
diff --git a/src/_icons/flag.svg b/src/_icons/flag.svg
index ddee13a0..133a597a 100644
--- a/src/_icons/flag.svg
+++ b/src/_icons/flag.svg
@@ -1,6 +1,6 @@
---
-tags: [banner, pin, report, map, warning, alert]
category: Map
+tags: [banner, pin, report, map, warning, alert]
version: "1.0"
---
<svg>
diff --git a/src/_icons/flask.svg b/src/_icons/flask.svg
index 937771ac..ff111281 100644
--- a/src/_icons/flask.svg
+++ b/src/_icons/flask.svg
@@ -1,7 +1,7 @@
---
+category: Health
tags: [liquid, container, glass, chemistry]
version: "1.6"
-category: Health
---
<svg>
<line x1="9" y1="3" x2="15" y2="3" />
diff --git a/src/_icons/folder.svg b/src/_icons/folder.svg
index ef132566..b728cca5 100644
--- a/src/_icons/folder.svg
+++ b/src/_icons/folder.svg
@@ -1,6 +1,6 @@
---
-tags: [cancel, "no", directory, dir]
category: Document
+tags: [cancel, "no", directory, dir]
version: "1.0"
---
<svg>
diff --git a/src/_icons/folders.svg b/src/_icons/folders.svg
index 5819e6ce..8304912f 100644
--- a/src/_icons/folders.svg
+++ b/src/_icons/folders.svg
@@ -1,6 +1,6 @@
---
-tags: [directory, dir, clone, copy]
category: Document
+tags: [directory, dir, clone, copy]
version: "1.0"
---
<svg>
diff --git a/src/_icons/fountain-off.svg b/src/_icons/fountain-off.svg
index 9ebf6b12..fa0a4061 100644
--- a/src/_icons/fountain-off.svg
+++ b/src/_icons/fountain-off.svg
@@ -1,5 +1,6 @@
---
version: "1.66"
+category: Math
---
<svg>
<path d="M9 16v-5a2 2 0 1 0 -4 0" />
diff --git a/src/_icons/fountain.svg b/src/_icons/fountain.svg
index 25efd9e5..7492744a 100644
--- a/src/_icons/fountain.svg
+++ b/src/_icons/fountain.svg
@@ -1,4 +1,5 @@
---
+category: Math
version: "1.61"
---
<svg>
diff --git a/src/_icons/function.svg b/src/_icons/function.svg
index 51155552..5e84a77a 100644
--- a/src/_icons/function.svg
+++ b/src/_icons/function.svg
@@ -1,4 +1,5 @@
---
+category: Math
version: "1.72"
---
<svg>
diff --git a/src/_icons/gas-station.svg b/src/_icons/gas-station.svg
index 18522af1..781b5efe 100644
--- a/src/_icons/gas-station.svg
+++ b/src/_icons/gas-station.svg
@@ -1,6 +1,6 @@
---
-tags: [fuel, oil, cars, vehicles, shop, distributor]
category: Map
+tags: [fuel, oil, cars, vehicles, shop, distributor]
category: Vehicles
version: "1.14"
---
diff --git a/src/_icons/golf.svg b/src/_icons/golf.svg
index 6b4caa2b..5a2938e3 100644
--- a/src/_icons/golf.svg
+++ b/src/_icons/golf.svg
@@ -1,6 +1,6 @@
---
-tags: [game, ball, play, hole, club-and-ball, stroke, luxury, pitch]
category: Sport
+tags: [game, ball, play, hole, club-and-ball, stroke, luxury, pitch]
version: "1.34"
---
<svg>
diff --git a/src/_icons/hand-finger.svg b/src/_icons/hand-finger.svg
index 49601367..66f77b26 100644
--- a/src/_icons/hand-finger.svg
+++ b/src/_icons/hand-finger.svg
@@ -1,6 +1,6 @@
---
-tags: [point, show, index, forefinger, body, human, palm]
category: Gestures
+tags: [point, show, index, forefinger, body, human, palm]
version: "1.39"
---
<svg>
diff --git a/src/_icons/heading.svg b/src/_icons/heading.svg
index 6c39379d..f937529c 100644
--- a/src/_icons/heading.svg
+++ b/src/_icons/heading.svg
@@ -1,6 +1,6 @@
---
-tags: [main, text, headline, style, styling, html]
category: Text
+tags: [main, text, headline, style, styling, html]
version: "1.39"
---
<svg>
diff --git a/src/_icons/heart-off.svg b/src/_icons/heart-off.svg
index fc95429e..b10387fa 100644
--- a/src/_icons/heart-off.svg
+++ b/src/_icons/heart-off.svg
@@ -1,5 +1,6 @@
---
version: "1.66"
+category: Shapes
---
<svg>
<path d="M3 3l18 18" />
diff --git a/src/_icons/hexagon.svg b/src/_icons/hexagon.svg
index 98210b2e..6cfdfb5c 100644
--- a/src/_icons/hexagon.svg
+++ b/src/_icons/hexagon.svg
@@ -1,6 +1,6 @@
---
-tags: [shape, geometric, math, 2D]
category: Shapes
+tags: [shape, geometric, math, 2D]
version: "1.8"
---
<svg>
diff --git a/src/_icons/hourglass-empty.svg b/src/_icons/hourglass-empty.svg
index 79e69ef7..98efb9c1 100644
--- a/src/_icons/hourglass-empty.svg
+++ b/src/_icons/hourglass-empty.svg
@@ -1,5 +1,6 @@
---
version: "1.66"
+category: System
---
<svg>
<path d="M6 20v-2a6 6 0 1 1 12 0v2a1 1 0 0 1 -1 1h-10a1 1 0 0 1 -1 -1z" />
diff --git a/src/_icons/hourglass-high.svg b/src/_icons/hourglass-high.svg
index bc8498f3..7b5e3bae 100644
--- a/src/_icons/hourglass-high.svg
+++ b/src/_icons/hourglass-high.svg
@@ -1,5 +1,6 @@
---
version: "1.60"
+category: System
---
<svg>
<path d="M6.5 7h11" />
diff --git a/src/_icons/hourglass-low.svg b/src/_icons/hourglass-low.svg
index f7f14b37..4526a54c 100644
--- a/src/_icons/hourglass-low.svg
+++ b/src/_icons/hourglass-low.svg
@@ -1,5 +1,6 @@
---
version: "1.60"
+category: System
---
<svg>
<path d="M6.5 17h11" />
diff --git a/src/_icons/hourglass-off.svg b/src/_icons/hourglass-off.svg
index 958c9d6e..e6977535 100644
--- a/src/_icons/hourglass-off.svg
+++ b/src/_icons/hourglass-off.svg
@@ -1,5 +1,6 @@
---
version: "1.66"
+category: System
---
<svg>
<path d="M18 18v2a1 1 0 0 1 -1 1h-10a1 1 0 0 1 -1 -1v-2a6 6 0 0 1 6 -6" />
diff --git a/src/_icons/hourglass.svg b/src/_icons/hourglass.svg
index 8e124bd2..f384020a 100644
--- a/src/_icons/hourglass.svg
+++ b/src/_icons/hourglass.svg
@@ -1,4 +1,5 @@
---
+category: System
version: "1.47"
---
<svg>
diff --git a/src/_icons/ice-cream.svg b/src/_icons/ice-cream.svg
index b6667b58..66afeb28 100644
--- a/src/_icons/ice-cream.svg
+++ b/src/_icons/ice-cream.svg
@@ -1,7 +1,7 @@
---
+category: Food
tags: [candy, dessert, frozen, sweet]
version: "1.0"
-category: Food
---
<svg>
<path d="M12 21.5v-4.5" />
diff --git a/src/_icons/keyboard.svg b/src/_icons/keyboard.svg
index 8cead7b4..5e6dbeb2 100644
--- a/src/_icons/keyboard.svg
+++ b/src/_icons/keyboard.svg
@@ -1,6 +1,6 @@
---
-tags: [computer, laptop, device, type]
category: Devices
+tags: [computer, laptop, device, type]
version: "1.6"
---
<svg>
diff --git a/src/_icons/leaf-off.svg b/src/_icons/leaf-off.svg
index 94fe5b50..07a5db4e 100644
--- a/src/_icons/leaf-off.svg
+++ b/src/_icons/leaf-off.svg
@@ -1,5 +1,6 @@
---
version: "1.66"
+category: Nature
---
<svg>
<path d="M5 21c.474 -4.264 2.294 -7.63 6.313 -9.673" />
diff --git a/src/_icons/leaf.svg b/src/_icons/leaf.svg
index b7bff9fb..91fa778d 100644
--- a/src/_icons/leaf.svg
+++ b/src/_icons/leaf.svg
@@ -1,6 +1,6 @@
---
-tags: [nature, plant, tree, autumn, fall, greenery, flower, forest, garden]
category: Nature
+tags: [nature, plant, tree, autumn, fall, greenery, flower, forest, garden]
version: "1.29"
---
<svg>
diff --git a/src/_icons/mail-fast.svg b/src/_icons/mail-fast.svg
index f3dc2c87..1b748a53 100644
--- a/src/_icons/mail-fast.svg
+++ b/src/_icons/mail-fast.svg
@@ -1,5 +1,6 @@
---
version: "1.58"
+category: Communication
---
<svg>
<path d="M3 7h3" />
diff --git a/src/_icons/mail-off.svg b/src/_icons/mail-off.svg
index e0980f99..33e4dfb1 100644
--- a/src/_icons/mail-off.svg
+++ b/src/_icons/mail-off.svg
@@ -1,5 +1,6 @@
---
version: "1.66"
+category: Communication
---
<svg>
<path d="M9 5h10a2 2 0 0 1 2 2v10m-2 2h-14a2 2 0 0 1 -2 -2v-10a2 2 0 0 1 2 -2" />
diff --git a/src/_icons/mask.svg b/src/_icons/mask.svg
index d7c47c8d..830cfba2 100644
--- a/src/_icons/mask.svg
+++ b/src/_icons/mask.svg
@@ -1,6 +1,6 @@
---
-tags: [edit, layer, mask, tool, design]
category: Design
+tags: [edit, layer, mask, tool, design]
version: "1.39"
---
<svg>
diff --git a/src/_icons/math-function.svg b/src/_icons/math-function.svg
index 2954f0cb..5a4c181a 100644
--- a/src/_icons/math-function.svg
+++ b/src/_icons/math-function.svg
@@ -1,6 +1,6 @@
---
-tags: sdfsfg
category: Math
+tags: sdfsfg
version: "1.39"
---
<svg>
diff --git a/src/_icons/medical-cross-off.svg b/src/_icons/medical-cross-off.svg
index ee9ace2c..b7bac055 100644
--- a/src/_icons/medical-cross-off.svg
+++ b/src/_icons/medical-cross-off.svg
@@ -1,5 +1,6 @@
---
version: "1.66"
+category: Map
---
<svg>
<path d="M17.928 17.733l-.574 -.331l-3.354 -1.938v4.536a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1v-4.536l-3.928 2.268a1 1 0 0 1 -1.366 -.366l-1 -1.732a1 1 0 0 1 .366 -1.366l3.927 -2.268l-3.927 -2.268a1 1 0 0 1 -.366 -1.366l1 -1.732a1 1 0 0 1 1.366 -.366l.333 .192m3.595 -.46v-2a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v4.535l3.928 -2.267a1 1 0 0 1 1.366 .366l1 1.732a1 1 0 0 1 -.366 1.366l-3.927 2.268l3.927 2.269a1 1 0 0 1 .366 1.366l-.24 .416" />
diff --git a/src/_icons/medical-cross.svg b/src/_icons/medical-cross.svg
index 2e8837cc..5bd98a3c 100644
--- a/src/_icons/medical-cross.svg
+++ b/src/_icons/medical-cross.svg
@@ -1,6 +1,6 @@
---
-tags: [sign, hospital, help, indication]
category: Map
+tags: [sign, hospital, help, indication]
version: "1.10"
---
<svg>
diff --git a/src/_icons/message-code.svg b/src/_icons/message-code.svg
index c3875b8a..ce0a0e4a 100644
--- a/src/_icons/message-code.svg
+++ b/src/_icons/message-code.svg
@@ -1,5 +1,6 @@
---
version: "1.54"
+category: Communication
---
<svg>
<path d="M4 21v-13a3 3 0 0 1 3 -3h10a3 3 0 0 1 3 3v6a3 3 0 0 1 -3 3h-9l-4 4" />
diff --git a/src/_icons/message-language.svg b/src/_icons/message-language.svg
index 2b1ba95f..b1f00027 100644
--- a/src/_icons/message-language.svg
+++ b/src/_icons/message-language.svg
@@ -1,5 +1,6 @@
---
version: "1.48"
+category: Communication
---
<svg>
<path d="M4 21v-13a3 3 0 0 1 3 -3h10a3 3 0 0 1 3 3v6a3 3 0 0 1 -3 3h-9l-4 4" />
diff --git a/src/_icons/moon.svg b/src/_icons/moon.svg
index ac72dee8..58107937 100644
--- a/src/_icons/moon.svg
+++ b/src/_icons/moon.svg
@@ -1,6 +1,6 @@
---
-tags: [night, dark mode]
category: Weather
+tags: [night, dark mode]
version: "1.0"
---
<svg>
diff --git a/src/_icons/mouse.svg b/src/_icons/mouse.svg
index 9e849d19..f357fae3 100644
--- a/src/_icons/mouse.svg
+++ b/src/_icons/mouse.svg
@@ -1,7 +1,7 @@
---
+category: Devices
tags: [pointer, cursor, device]
version: "1.0"
-category: Devices
---
<svg>
<rect x="6" y="3" width="12" height="18" rx="4" />
diff --git a/src/_icons/notification-off.svg b/src/_icons/notification-off.svg
index e730d87b..b58bafe3 100644
--- a/src/_icons/notification-off.svg
+++ b/src/_icons/notification-off.svg
@@ -1,5 +1,6 @@
---
version: "1.66"
+category: System
---
<svg>
<path d="M6.154 6.187a2 2 0 0 0 -1.154 1.813v9a2 2 0 0 0 2 2h9a2 2 0 0 0 1.811 -1.151" />
diff --git a/src/_icons/notification.svg b/src/_icons/notification.svg
index 80970a64..2e6a3f01 100644
--- a/src/_icons/notification.svg
+++ b/src/_icons/notification.svg
@@ -1,4 +1,5 @@
---
+category: System
tags: [bell, alarm, reminder, important]
version: "1.0"
---
diff --git a/src/_icons/octagon.svg b/src/_icons/octagon.svg
index 9f60223a..d5c67aa2 100644
--- a/src/_icons/octagon.svg
+++ b/src/_icons/octagon.svg
@@ -1,6 +1,6 @@
---
-tags: [shape, geometric, math, 2D, building, government]
category: Shapes
+tags: [shape, geometric, math, 2D, building, government]
version: "1.18"
---
<svg>
diff --git a/src/_icons/parachute.svg b/src/_icons/parachute.svg
index dcd024ca..3d90dd45 100644
--- a/src/_icons/parachute.svg
+++ b/src/_icons/parachute.svg
@@ -1,6 +1,6 @@
---
-tags: [plane, aircraft, land, float, pilot]
category: Vehicles
+tags: [plane, aircraft, land, float, pilot]
version: "1.33"
---
<svg>
diff --git a/src/_icons/pennant-2.svg b/src/_icons/pennant-2.svg
index 20d752d6..07d15bc2 100644
--- a/src/_icons/pennant-2.svg
+++ b/src/_icons/pennant-2.svg
@@ -1,5 +1,6 @@
---
version: "1.58"
+category: Map
---
<svg>
<path d="M16 21h-4" />
diff --git a/src/_icons/pennant-off.svg b/src/_icons/pennant-off.svg
index a6b28d10..ab1859cf 100644
--- a/src/_icons/pennant-off.svg
+++ b/src/_icons/pennant-off.svg
@@ -1,5 +1,6 @@
---
version: "1.66"
+category: Map
---
<svg>
<path d="M8 21h4" />
diff --git a/src/_icons/picture-in-picture.svg b/src/_icons/picture-in-picture.svg
index cf096173..ba74b777 100644
--- a/src/_icons/picture-in-picture.svg
+++ b/src/_icons/picture-in-picture.svg
@@ -1,6 +1,6 @@
---
-tags: [size, photo, elements, adjust, image]
category: Media
+tags: [size, photo, elements, adjust, image]
version: "1.27"
---
<svg>
diff --git a/src/_icons/pig-off.svg b/src/_icons/pig-off.svg
index fd8b56e1..a72ec17f 100644
--- a/src/_icons/pig-off.svg
+++ b/src/_icons/pig-off.svg
@@ -1,5 +1,6 @@
---
version: "1.66"
+category: Animals
---
<svg>
<path d="M15 11v.01" />
diff --git a/src/_icons/pig.svg b/src/_icons/pig.svg
index 15cd4b21..ae872938 100644
--- a/src/_icons/pig.svg
+++ b/src/_icons/pig.svg
@@ -1,4 +1,5 @@
---
+category: Animals
version: "1.43"
---
<svg>
diff --git a/src/_icons/pill.svg b/src/_icons/pill.svg
index 2110d565..af47b21a 100644
--- a/src/_icons/pill.svg
+++ b/src/_icons/pill.svg
@@ -1,7 +1,7 @@
---
+category: Health
version: "1.1"
tags: [drug, medication, illness, sickness, doctor, prescription]
-category: Health
---
<svg>
<path d="M4.5 12.5l8 -8a4.94 4.94 0 0 1 7 7l-8 8a4.94 4.94 0 0 1 -7 -7" />
diff --git a/src/_icons/pinned.svg b/src/_icons/pinned.svg
index 7e32e5ce..e2c81cc5 100644
--- a/src/_icons/pinned.svg
+++ b/src/_icons/pinned.svg
@@ -1,6 +1,6 @@
---
-tags: [board, attach, nail, pointed, corkboard, favourite, noticeboard]
category: Map
+tags: [board, attach, nail, pointed, corkboard, favourite, noticeboard]
version: "1.31"
---
<svg>
diff --git a/src/_icons/pizza.svg b/src/_icons/pizza.svg
index fb740108..aee0c5bb 100644
--- a/src/_icons/pizza.svg
+++ b/src/_icons/pizza.svg
@@ -1,6 +1,6 @@
---
-version: "1.35"
category: Food
+version: "1.35"
---
<svg>
<path d="M12 21.5c-3.04 0 -5.952 -.714 -8.5 -1.983l8.5 -16.517l8.5 16.517a19.09 19.09 0 0 1 -8.5 1.983z" />
diff --git a/src/_icons/plane.svg b/src/_icons/plane.svg
index da2dc42a..50d0e514 100644
--- a/src/_icons/plane.svg
+++ b/src/_icons/plane.svg
@@ -1,6 +1,6 @@
---
-tags: [travel, journey, trip, airport, baggage, luggage]
category: Vehicles
+tags: [travel, journey, trip, airport, baggage, luggage]
version: "1.2"
---
<svg>
diff --git a/src/_icons/planet.svg b/src/_icons/planet.svg
index 9f1ab338..55caf9ec 100644
--- a/src/_icons/planet.svg
+++ b/src/_icons/planet.svg
@@ -1,6 +1,6 @@
---
-tags: [earth, uranus, universe, space, galaxy, orbit, atmosphere]
category: Map
+tags: [earth, uranus, universe, space, galaxy, orbit, atmosphere]
version: "1.8"
---
<svg>
diff --git a/src/_icons/plant-2-off.svg b/src/_icons/plant-2-off.svg
index c95d0af9..c896a82a 100644
--- a/src/_icons/plant-2-off.svg
+++ b/src/_icons/plant-2-off.svg
@@ -1,5 +1,6 @@
---
version: "1.66"
+category: Nature
---
<svg>
<path d="M2 9c0 5.523 4.477 10 10 10a9.953 9.953 0 0 0 5.418 -1.593m2.137 -1.855a9.961 9.961 0 0 0 2.445 -6.552" />
diff --git a/src/_icons/plant-2.svg b/src/_icons/plant-2.svg
index 67afe6f1..c00db006 100644
--- a/src/_icons/plant-2.svg
+++ b/src/_icons/plant-2.svg
@@ -1,6 +1,6 @@
---
-tags: [nature, green, flower, pot, tree, leaf, greenery, root, stem, seed]
category: Nature
+tags: [nature, green, flower, pot, tree, leaf, greenery, root, stem, seed]
version: "1.33"
---
<svg>
diff --git a/src/_icons/plant-off.svg b/src/_icons/plant-off.svg
index 06d63ff8..a9031b0e 100644
--- a/src/_icons/plant-off.svg
+++ b/src/_icons/plant-off.svg
@@ -1,5 +1,6 @@
---
version: "1.66"
+category: Nature
---
<svg>
<path d="M17 17v2a2 2 0 0 1 -2 2h-6a2 2 0 0 1 -2 -2v-4h8" />
diff --git a/src/_icons/plant.svg b/src/_icons/plant.svg
index f0791cf7..584ff11c 100644
--- a/src/_icons/plant.svg
+++ b/src/_icons/plant.svg
@@ -1,6 +1,6 @@
---
-tags: [nature, green, flower, pot, tree, leaf, greenery, root, stem, seed]
category: Nature
+tags: [nature, green, flower, pot, tree, leaf, greenery, root, stem, seed]
version: "1.29"
---
<svg>
diff --git a/src/_icons/playlist.svg b/src/_icons/playlist.svg
index 172cc1d2..06d83bf2 100644
--- a/src/_icons/playlist.svg
+++ b/src/_icons/playlist.svg
@@ -1,6 +1,6 @@
---
-tags: [music, song, artist, spotify, track, play, record]
category: Media
+tags: [music, song, artist, spotify, track, play, record]
version: "1.39"
---
<svg>
diff --git a/src/_icons/plug-connected-x.svg b/src/_icons/plug-connected-x.svg
index 6312fd8a..84c1ba7b 100644
--- a/src/_icons/plug-connected-x.svg
+++ b/src/_icons/plug-connected-x.svg
@@ -1,5 +1,6 @@
---
version: "1.61"
+category: Devices
---
<svg>
<path d="M20 16l-4 4" />
diff --git a/src/_icons/plug-connected.svg b/src/_icons/plug-connected.svg
index 198d0b5f..d71dfdc5 100644
--- a/src/_icons/plug-connected.svg
+++ b/src/_icons/plug-connected.svg
@@ -1,5 +1,6 @@
---
version: "1.53"
+category: Devices
---
<svg>
<path d="M7 12l5 5l-1.5 1.5a3.536 3.536 0 1 1 -5 -5l1.5 -1.5z" />
diff --git a/src/_icons/plug-off.svg b/src/_icons/plug-off.svg
index 1cd58568..ad599b94 100644
--- a/src/_icons/plug-off.svg
+++ b/src/_icons/plug-off.svg
@@ -1,5 +1,6 @@
---
version: "1.66"
+category: Devices
---
<svg>
<path d="M16.123 16.092l-.177 .177a5.81 5.81 0 1 1 -8.215 -8.215l.159 -.159" />
diff --git a/src/_icons/plug-x.svg b/src/_icons/plug-x.svg
index dbf3c9e9..d9ce2486 100644
--- a/src/_icons/plug-x.svg
+++ b/src/_icons/plug-x.svg
@@ -1,5 +1,6 @@
---
version: "1.61"
+category: Devices
---
<svg>
<path d="M13.55 17.733a5.806 5.806 0 0 1 -7.356 -4.052a5.81 5.81 0 0 1 1.537 -5.627l2.054 -2.054l7.165 7.165" />
diff --git a/src/_icons/plug.svg b/src/_icons/plug.svg
index 32349e75..4a8e6074 100644
--- a/src/_icons/plug.svg
+++ b/src/_icons/plug.svg
@@ -1,4 +1,5 @@
---
+category: Devices
tags: [electricity, charger, socket, connection]
version: "1.6"
---
diff --git a/src/_icons/pointer.svg b/src/_icons/pointer.svg
index 6483a526..d34e79e8 100644
--- a/src/_icons/pointer.svg
+++ b/src/_icons/pointer.svg
@@ -1,4 +1,5 @@
---
+category: System
version: "1.76"
---
<svg>
diff --git a/src/_icons/polygon-off.svg b/src/_icons/polygon-off.svg
index 1d5df3f0..35b8e259 100644
--- a/src/_icons/polygon-off.svg
+++ b/src/_icons/polygon-off.svg
@@ -1,5 +1,6 @@
---
version: "1.66"
+category: Design
---
<svg>
<circle cx="12" cy="5" r="2" />
diff --git a/src/_icons/polygon.svg b/src/_icons/polygon.svg
index 31191e26..3e145295 100644
--- a/src/_icons/polygon.svg
+++ b/src/_icons/polygon.svg
@@ -1,4 +1,5 @@
---
+category: Design
version: "1.50"
---
<svg>
diff --git a/src/_icons/presentation.svg b/src/_icons/presentation.svg
index ef631d82..a9139836 100644
--- a/src/_icons/presentation.svg
+++ b/src/_icons/presentation.svg
@@ -1,6 +1,6 @@
---
-tags: [slideshow, display, exhibition, speech, topic, conference]
category: Document
+tags: [slideshow, display, exhibition, speech, topic, conference]
version: "1.2"
---
<svg>
diff --git a/src/_icons/radar-2.svg b/src/_icons/radar-2.svg
index 2995cb76..cdedd44e 100644
--- a/src/_icons/radar-2.svg
+++ b/src/_icons/radar-2.svg
@@ -1,5 +1,6 @@
---
version: "1.54"
+category: Map
---
<svg>
<circle cx="12" cy="12" r="1" />
diff --git a/src/_icons/radar.svg b/src/_icons/radar.svg
index 92519584..1d71cab2 100644
--- a/src/_icons/radar.svg
+++ b/src/_icons/radar.svg
@@ -1,5 +1,6 @@
---
version: "1.54"
+category: Map
---
<svg>
<path d="M21 12h-8a1 1 0 1 0 -1 1v8a9 9 0 0 0 9 -9" />
diff --git a/src/_icons/radioactive.svg b/src/_icons/radioactive.svg
index 7e61667a..4402ad83 100644
--- a/src/_icons/radioactive.svg
+++ b/src/_icons/radioactive.svg
@@ -1,6 +1,6 @@
---
-tags: [dangerous, precarious, danger, sign, symbol, warning, caution, chernobyl, reactor, atomic, powerhouses, generator]
category: Symbols
+tags: [dangerous, precarious, danger, sign, symbol, warning, caution, chernobyl, reactor, atomic, powerhouses, generator]
version: "1.18"
---
<svg>
diff --git a/src/_icons/rainbow.svg b/src/_icons/rainbow.svg
index 1bf42dfe..c99e97ba 100644
--- a/src/_icons/rainbow.svg
+++ b/src/_icons/rainbow.svg
@@ -1,6 +1,6 @@
---
-version: "1.35"
category: Weather
+version: "1.35"
---
<svg>
<path d="M22 17c0 -5.523 -4.477 -10 -10 -10s-10 4.477 -10 10" />
diff --git a/src/_icons/rating-12-plus.svg b/src/_icons/rating-12-plus.svg
index 7fe1eab2..6811bd79 100644
--- a/src/_icons/rating-12-plus.svg
+++ b/src/_icons/rating-12-plus.svg
@@ -1,5 +1,6 @@
---
version: "1.76"
+category: Symbols
---
<svg>
<circle cx="12" cy="12" r="9" />
diff --git a/src/_icons/rating-14-plus.svg b/src/_icons/rating-14-plus.svg
index 5bf13f1a..19ad24f4 100644
--- a/src/_icons/rating-14-plus.svg
+++ b/src/_icons/rating-14-plus.svg
@@ -1,5 +1,6 @@
---
version: "1.76"
+category: Symbols
---
<svg>
<circle cx="12" cy="12" r="9" />
diff --git a/src/_icons/rating-16-plus.svg b/src/_icons/rating-16-plus.svg
index ae6db7e9..ca39e2d3 100644
--- a/src/_icons/rating-16-plus.svg
+++ b/src/_icons/rating-16-plus.svg
@@ -1,5 +1,6 @@
---
version: "1.76"
+category: Symbols
---
<svg>
<circle cx="12" cy="12" r="9" />
diff --git a/src/_icons/rating-18-plus.svg b/src/_icons/rating-18-plus.svg
index be724ace..2bf24f8e 100644
--- a/src/_icons/rating-18-plus.svg
+++ b/src/_icons/rating-18-plus.svg
@@ -1,5 +1,6 @@
---
version: "1.76"
+category: Symbols
---
<svg>
<circle cx="12" cy="12" r="9" />
diff --git a/src/_icons/rating-21-plus.svg b/src/_icons/rating-21-plus.svg
index ae158f56..5cb0d291 100644
--- a/src/_icons/rating-21-plus.svg
+++ b/src/_icons/rating-21-plus.svg
@@ -1,5 +1,6 @@
---
version: "1.76"
+category: Symbols
---
<svg>
<circle cx="12" cy="12" r="9" />
diff --git a/src/_icons/receipt.svg b/src/_icons/receipt.svg
index d5184e52..09efce00 100644
--- a/src/_icons/receipt.svg
+++ b/src/_icons/receipt.svg
@@ -1,6 +1,6 @@
---
-tags: [bill, restaurant, shop, price, pay, money, total, tax]
category: Document
+tags: [bill, restaurant, shop, price, pay, money, total, tax]
version: "1.38"
---
<svg>
diff --git a/src/_icons/recycle.svg b/src/_icons/recycle.svg
index 599ec82b..8a6afd6b 100644
--- a/src/_icons/recycle.svg
+++ b/src/_icons/recycle.svg
@@ -1,7 +1,7 @@
---
+category: Symbols
tags: [trash, rubbish, recyclable, reuse, waste]
version: "1.3"
-category: Symbols
---
<svg>
<path d="M12 17l-2 2l2 2m-2 -2h9a2 2 0 0 0 1.75 -2.75l-.55 -1" />
diff --git a/src/_icons/refresh.svg b/src/_icons/refresh.svg
index 50810ff6..58b5f8b6 100644
--- a/src/_icons/refresh.svg
+++ b/src/_icons/refresh.svg
@@ -1,7 +1,7 @@
---
+category: Arrows
tags: [synchronization, reload, restart, spinner, loader, ajax, update, arrows]
version: "1.0"
-category: Arrows
---
<svg>
<path d="M20 11a8.1 8.1 0 0 0 -15.5 -2m-.5 -4v4h4" />
diff --git a/src/_icons/report.svg b/src/_icons/report.svg
index 96e948fb..0dad4e80 100644
--- a/src/_icons/report.svg
+++ b/src/_icons/report.svg
@@ -1,6 +1,6 @@
---
-tags: [time, timesheet, analysis, analyse, results, business, company]
category: Document
+tags: [time, timesheet, analysis, analyse, results, business, company]
version: "1.39"
---
<svg>
diff --git a/src/_icons/road.svg b/src/_icons/road.svg
index 9ec731e8..04fbbccb 100644
--- a/src/_icons/road.svg
+++ b/src/_icons/road.svg
@@ -1,6 +1,6 @@
---
-version: "1.54"
category: Map
+version: "1.54"
---
<svg>
<path d="M4 19l4 -14" />
diff --git a/src/_icons/rocket.svg b/src/_icons/rocket.svg
index 36a8b6b8..46d456e9 100644
--- a/src/_icons/rocket.svg
+++ b/src/_icons/rocket.svg
@@ -1,6 +1,6 @@
---
-tags: [universe, galaxy, space, journey, discover, extraterrestrial, spaceship]
category: Map
+tags: [universe, galaxy, space, journey, discover, extraterrestrial, spaceship]
version: "1.11"
---
<svg>
diff --git a/src/_icons/satellite.svg b/src/_icons/satellite.svg
index 6f10f15d..4a575bb2 100644
--- a/src/_icons/satellite.svg
+++ b/src/_icons/satellite.svg
@@ -1,6 +1,6 @@
---
-tags: [orbit, space, moon, earth, planet, communication, information, celestial]
category: Map
+tags: [orbit, space, moon, earth, planet, communication, information, celestial]
version: "1.39"
---
<svg>
diff --git a/src/_icons/schema.svg b/src/_icons/schema.svg
index eccf88ea..737bcaad 100644
--- a/src/_icons/schema.svg
+++ b/src/_icons/schema.svg
@@ -1,5 +1,6 @@
---
version: "1.70"
+category: Database
---
<svg>
<path d="M5 2h5v4h-5z" />
diff --git a/src/_icons/screen-share.svg b/src/_icons/screen-share.svg
index e132a1fb..2ec7744a 100644
--- a/src/_icons/screen-share.svg
+++ b/src/_icons/screen-share.svg
@@ -1,6 +1,6 @@
---
-tags: [monitor, stream, tv, mirroring, cast, online]
category: Devices
+tags: [monitor, stream, tv, mirroring, cast, online]
version: "1.24"
---
<svg>
diff --git a/src/_icons/seeding.svg b/src/_icons/seeding.svg
index 0c04aff4..ede2c940 100644
--- a/src/_icons/seeding.svg
+++ b/src/_icons/seeding.svg
@@ -1,6 +1,6 @@
---
-tags: [nature, greenery, grow, soil, harvest, plant, flower, tree, leaf]
category: Nature
+tags: [nature, greenery, grow, soil, harvest, plant, flower, tree, leaf]
version: "1.29"
---
<svg>
diff --git a/src/_icons/shadow.svg b/src/_icons/shadow.svg
index 69a1efe2..1cceb1fd 100644
--- a/src/_icons/shadow.svg
+++ b/src/_icons/shadow.svg
@@ -1,6 +1,6 @@
---
-tags: [dark, sun, area, covered, dim, light, css, effect]
category: Photography
+tags: [dark, sun, area, covered, dim, light, css, effect]
version: "1.39"
---
<svg>
diff --git a/src/_icons/signature.svg b/src/_icons/signature.svg
index 78205648..ab3ea3a2 100644
--- a/src/_icons/signature.svg
+++ b/src/_icons/signature.svg
@@ -1,6 +1,6 @@
---
-tags: [name, certficate, sign, edit, write, document, writing]
category: Text
+tags: [name, certficate, sign, edit, write, document, writing]
version: "1.39"
---
<svg>
diff --git a/src/_icons/smart-home.svg b/src/_icons/smart-home.svg
index b5750f18..80378514 100644
--- a/src/_icons/smart-home.svg
+++ b/src/_icons/smart-home.svg
@@ -1,6 +1,6 @@
---
-tags: [apple, devices, connection, link, WiFi, bluetooth ]
category: Buildings
+tags: [apple, devices, connection, link, WiFi, bluetooth ]
version: "1.20"
---
<svg>
diff --git a/src/_icons/snowflake.svg b/src/_icons/snowflake.svg
index 33e828f7..f9e75469 100644
--- a/src/_icons/snowflake.svg
+++ b/src/_icons/snowflake.svg
@@ -1,6 +1,6 @@
---
-tags: [winter, weather, cold, frost]
category: Weather
+tags: [winter, weather, cold, frost]
version: "1.8"
---
<svg>
diff --git a/src/_icons/space-off.svg b/src/_icons/space-off.svg
index 46a9d234..92bd0cf9 100644
--- a/src/_icons/space-off.svg
+++ b/src/_icons/space-off.svg
@@ -1,4 +1,5 @@
---
+category: Text
version: "1.67"
---
<svg>
diff --git a/src/_icons/space.svg b/src/_icons/space.svg
index 819899ea..493b438f 100644
--- a/src/_icons/space.svg
+++ b/src/_icons/space.svg
@@ -1,6 +1,6 @@
---
-tags: [keyboard, type, gap]
category: Text
+tags: [keyboard, type, gap]
version: "1.8"
---
<svg>
diff --git a/src/_icons/sun.svg b/src/_icons/sun.svg
index c43c7526..785e68b4 100644
--- a/src/_icons/sun.svg
+++ b/src/_icons/sun.svg
@@ -1,6 +1,6 @@
---
-tags: [weather, light, mode, brightness]
category: Weather
+tags: [weather, light, mode, brightness]
version: "1.0"
---
<svg>
diff --git a/src/_icons/tag-off.svg b/src/_icons/tag-off.svg
index b137fc45..b9d0716c 100644
--- a/src/_icons/tag-off.svg
+++ b/src/_icons/tag-off.svg
@@ -1,5 +1,6 @@
---
version: "1.49"
+category: E-commerce
---
<svg>
<path d="M7.792 7.793a1 1 0 0 0 1.414 1.414" />
diff --git a/src/_icons/tag.svg b/src/_icons/tag.svg
index e056ecbe..c4ea9388 100644
--- a/src/_icons/tag.svg
+++ b/src/_icons/tag.svg
@@ -1,4 +1,5 @@
---
+category: E-commerce
tags: [label, price]
version: "1.0"
---
diff --git a/src/_icons/tags-off.svg b/src/_icons/tags-off.svg
index e58fdc79..5254dcec 100644
--- a/src/_icons/tags-off.svg
+++ b/src/_icons/tags-off.svg
@@ -1,5 +1,6 @@
---
version: "1.49"
+category: E-commerce
---
<svg>
<path d="M6 6h-.975a2.025 2.025 0 0 0 -2.025 2.025v2.834c0 .537 .213 1.052 .593 1.432l6.116 6.116a2.025 2.025 0 0 0 2.864 0l2.834 -2.834c.028 -.028 .055 -.056 .08 -.085" />
diff --git a/src/_icons/tags.svg b/src/_icons/tags.svg
index 9570ad1d..005a58e1 100644
--- a/src/_icons/tags.svg
+++ b/src/_icons/tags.svg
@@ -1,4 +1,5 @@
---
+category: E-commerce
version: "1.46"
---
<svg>
diff --git a/src/_icons/temperature.svg b/src/_icons/temperature.svg
index a087b229..db1042fd 100644
--- a/src/_icons/temperature.svg
+++ b/src/_icons/temperature.svg
@@ -1,6 +1,6 @@
---
-tags: [weather, celcius, fahrenheit, cold, hot]
category: Weather
+tags: [weather, celcius, fahrenheit, cold, hot]
version: "1.1"
---
<svg>
diff --git a/src/_icons/tent.svg b/src/_icons/tent.svg
index 08e17aca..18e6f4f8 100644
--- a/src/_icons/tent.svg
+++ b/src/_icons/tent.svg
@@ -1,6 +1,7 @@
---
tags: [camping, holiday, vacation, outdoor, survival, travel, adventure]
version: "1.39"
+category: Map
---
<svg>
<path d="M11 14l4 6h6l-9 -16l-9 16h6l4 -6" />
diff --git a/src/_icons/tilt-shift.svg b/src/_icons/tilt-shift.svg
index 7263f9b0..b267205a 100644
--- a/src/_icons/tilt-shift.svg
+++ b/src/_icons/tilt-shift.svg
@@ -1,6 +1,6 @@
---
-tags: [filter, shift, photography, photo]
category: Photography
+tags: [filter, shift, photography, photo]
version: "1.39"
---
<svg>
diff --git a/src/_icons/tool.svg b/src/_icons/tool.svg
index 0fac597e..3af1a664 100644
--- a/src/_icons/tool.svg
+++ b/src/_icons/tool.svg
@@ -1,6 +1,7 @@
---
tags: [preferences, edit, settings]
version: "1.0"
+category: System
---
<svg>
<path d="M7 10h3v-3l-3.5 -3.5a6 6 0 0 1 8 8l6 6a2 2 0 0 1 -3 3l-6 -6a6 6 0 0 1 -8 -8l3.5 3.5" />
diff --git a/src/_icons/tools-kitchen-2.svg b/src/_icons/tools-kitchen-2.svg
index 15a7e1d5..8078676c 100644
--- a/src/_icons/tools-kitchen-2.svg
+++ b/src/_icons/tools-kitchen-2.svg
@@ -1,6 +1,6 @@
---
-tags: [knife, fork, spoon, cutlery, eat, restaurant, menu, cafe, cook, cut, soup, dinner, breakfast, dining, plate, dish]
category: Map
+tags: [knife, fork, spoon, cutlery, eat, restaurant, menu, cafe, cook, cut, soup, dinner, breakfast, dining, plate, dish]
version: "1.39"
---
<svg>
diff --git a/src/_icons/tools-kitchen.svg b/src/_icons/tools-kitchen.svg
index e3d482ea..d5e2034c 100644
--- a/src/_icons/tools-kitchen.svg
+++ b/src/_icons/tools-kitchen.svg
@@ -1,6 +1,6 @@
---
-tags: [knife, fork, spoon, cutlery, eat, restaurant, menu, cafe, cook, cut, soup, dinner, breakfast, dining, plate, dish]
category: Map
+tags: [knife, fork, spoon, cutlery, eat, restaurant, menu, cafe, cook, cut, soup, dinner, breakfast, dining, plate, dish]
version: "1.31"
---
<svg>
diff --git a/src/_icons/traffic-cone.svg b/src/_icons/traffic-cone.svg
index 4e3c3ff0..7673083e 100644
--- a/src/_icons/traffic-cone.svg
+++ b/src/_icons/traffic-cone.svg
@@ -1,6 +1,6 @@
---
-tags: [street, road, vehicle, repair, warning, lane, drive]
category: Map
+tags: [street, road, vehicle, repair, warning, lane, drive]
version: "1.8"
---
<svg>
diff --git a/src/_icons/traffic-lights.svg b/src/_icons/traffic-lights.svg
index 5b219e97..d2844d35 100644
--- a/src/_icons/traffic-lights.svg
+++ b/src/_icons/traffic-lights.svg
@@ -1,6 +1,6 @@
---
-tags: [street, road, green, red, yellow, vehicle, stop, drive, crossing, pedestrian, crossroads, junction, intersection]
category: Map
+tags: [street, road, green, red, yellow, vehicle, stop, drive, crossing, pedestrian, crossroads, junction, intersection]
version: "1.27"
---
<svg>
diff --git a/src/_icons/truck.svg b/src/_icons/truck.svg
index 957372dd..ba5261dc 100644
--- a/src/_icons/truck.svg
+++ b/src/_icons/truck.svg
@@ -1,6 +1,6 @@
---
-tags: [transport, vahicle, van, lorry, cargo, delivery]
category: Vehicles
+tags: [transport, vahicle, van, lorry, cargo, delivery]
version: "1.5"
---
<svg>
diff --git a/src/_icons/typography.svg b/src/_icons/typography.svg
index b59eb283..4e205591 100644
--- a/src/_icons/typography.svg
+++ b/src/_icons/typography.svg
@@ -1,6 +1,6 @@
---
-tags: [type, display, typeface, point size, line length, line-spacing, letter-spacing, font]
category: Text
+tags: [type, display, typeface, point size, line length, line-spacing, letter-spacing, font]
version: "1.5"
---
<svg>
diff --git a/src/_icons/vaccine.svg b/src/_icons/vaccine.svg
index 09316e6d..d2f09847 100644
--- a/src/_icons/vaccine.svg
+++ b/src/_icons/vaccine.svg
@@ -1,7 +1,7 @@
---
+category: Health
tags: [illness, sickness, disease, injection, medicine, medical, doctor, nurse]
version: "1.39"
-category: Health
---
<svg>
<path d="M17 3l4 4" />
diff --git a/src/_icons/variable.svg b/src/_icons/variable.svg
index c7a792b7..ca0c8c7e 100644
--- a/src/_icons/variable.svg
+++ b/src/_icons/variable.svg
@@ -1,6 +1,6 @@
---
-tags: [maths, mathematics, science, calculate, function]
category: Math
+tags: [maths, mathematics, science, calculate, function]
version: "1.39"
---
<svg>
diff --git a/src/_icons/vector-triangle.svg b/src/_icons/vector-triangle.svg
index 2dcf9074..06afd208 100644
--- a/src/_icons/vector-triangle.svg
+++ b/src/_icons/vector-triangle.svg
@@ -1,6 +1,6 @@
---
-tags: [curve, parametric, design, vector graphics, placement ]
category: Design
+tags: [curve, parametric, design, vector graphics, placement ]
version: "1.17"
---
<svg>
diff --git a/src/_icons/vector.svg b/src/_icons/vector.svg
index e2662bcd..83c8f1ed 100644
--- a/src/_icons/vector.svg
+++ b/src/_icons/vector.svg
@@ -1,6 +1,6 @@
---
-tags: [curve, parametric, design, vector graphics, placement ]
category: Design
+tags: [curve, parametric, design, vector graphics, placement ]
version: "1.17"
---
<svg>
diff --git a/src/_icons/video.svg b/src/_icons/video.svg
index ba8e5e3c..fae20fe9 100644
--- a/src/_icons/video.svg
+++ b/src/_icons/video.svg
@@ -1,6 +1,6 @@
---
-tags: [film, shoot, recording, taping, camera]
category: Media
+tags: [film, shoot, recording, taping, camera]
version: "1.25"
---
<svg>
diff --git a/src/_icons/virus.svg b/src/_icons/virus.svg
index 5987474a..9860456f 100644
--- a/src/_icons/virus.svg
+++ b/src/_icons/virus.svg
@@ -1,7 +1,7 @@
---
+category: Health
tags: [infection, illness, cell, infectious, health]
version: "1.2"
-category: Health
---
<svg>
<circle cx="12" cy="12" r="5" />
diff --git a/src/_icons/wind.svg b/src/_icons/wind.svg
index c0107c34..6a0a2994 100644
--- a/src/_icons/wind.svg
+++ b/src/_icons/wind.svg
@@ -1,6 +1,6 @@
---
-tags: [weather, breeze, tornado, typhoon, cyclone, hurricane]
category: Weather
+tags: [weather, breeze, tornado, typhoon, cyclone, hurricane]
version: "1.10"
---
<svg>
diff --git a/src/_icons/world-download.svg b/src/_icons/world-download.svg
index 1d2b3b77..9b3dd0d0 100644
--- a/src/_icons/world-download.svg
+++ b/src/_icons/world-download.svg
@@ -1,4 +1,5 @@
---
+category: Map
version: "1.46"
---
<svg>
diff --git a/src/_icons/world-off.svg b/src/_icons/world-off.svg
index e4606f00..3471ce6e 100644
--- a/src/_icons/world-off.svg
+++ b/src/_icons/world-off.svg
@@ -1,4 +1,5 @@
---
+category: Map
version: "1.67"
---
<svg>
diff --git a/src/_icons/world-upload.svg b/src/_icons/world-upload.svg
index 6400f7b4..39902fb8 100644
--- a/src/_icons/world-upload.svg
+++ b/src/_icons/world-upload.svg
@@ -1,4 +1,5 @@
---
+category: Map
version: "1.46"
---
<svg>
diff --git a/src/_icons/writing-off.svg b/src/_icons/writing-off.svg
index 3340e325..508388ac 100644
--- a/src/_icons/writing-off.svg
+++ b/src/_icons/writing-off.svg
@@ -1,5 +1,6 @@
---
version: "1.67"
+category: Text
---
<svg>
<path d="M16 7h4" />
diff --git a/src/_icons/writing-sign-off.svg b/src/_icons/writing-sign-off.svg
index 4fc5c491..e045e248 100644
--- a/src/_icons/writing-sign-off.svg
+++ b/src/_icons/writing-sign-off.svg
@@ -1,5 +1,6 @@
---
version: "1.67"
+category: Text
---
<svg>
<path d="M3 19c3.333 -2 5 -4 5 -6c0 -3 -1 -3 -2 -3s-2.032 1.085 -2 3c.034 2.048 1.658 2.877 2.5 4c1.5 2 2.5 2.5 3.5 1c.667 -1 1.167 -1.833 1.5 -2.5c1 2.333 2.333 3.5 4 3.5h2.5" />
diff --git a/src/_icons/writing-sign.svg b/src/_icons/writing-sign.svg
index e6419b8f..a26dec27 100644
--- a/src/_icons/writing-sign.svg
+++ b/src/_icons/writing-sign.svg
@@ -1,6 +1,6 @@
---
-tags: [name, certficate, sign, edit, write, document, writing, pen]
category: Text
+tags: [name, certficate, sign, edit, write, document, writing, pen]
version: "1.39"
---
<svg>
diff --git a/src/_icons/writing.svg b/src/_icons/writing.svg
index 15e48f91..0570ffaf 100644
--- a/src/_icons/writing.svg
+++ b/src/_icons/writing.svg
@@ -1,6 +1,6 @@
---
-tags: [name, certficate, sign, edit, write, document, pen, drawing, contract, signature]
category: Text
+tags: [name, certficate, sign, edit, write, document, pen, drawing, contract, signature]
version: "1.39"
---
<svg>
diff --git a/src/_icons/zoom-check.svg b/src/_icons/zoom-check.svg
index fc6935e5..7e800e99 100644
--- a/src/_icons/zoom-check.svg
+++ b/src/_icons/zoom-check.svg
@@ -1,4 +1,5 @@
---
+category: Map
tags: [verify, magnifying, glass, magnifier, ok, done]
version: "1.39"
---
diff --git a/src/_icons/zoom-code.svg b/src/_icons/zoom-code.svg
index c0dabd28..70f6cc01 100644
--- a/src/_icons/zoom-code.svg
+++ b/src/_icons/zoom-code.svg
@@ -1,4 +1,5 @@
---
+category: Map
version: "1.59"
---
<svg>
diff --git a/src/_icons/zoom-exclamation.svg b/src/_icons/zoom-exclamation.svg
index 8cd66b0a..41f730c3 100644
--- a/src/_icons/zoom-exclamation.svg
+++ b/src/_icons/zoom-exclamation.svg
@@ -1,4 +1,5 @@
---
+category: Map
version: "1.59"
---
<svg>
diff --git a/src/_icons/zoom-in-area.svg b/src/_icons/zoom-in-area.svg
index 930ab897..aaed3b8d 100644
--- a/src/_icons/zoom-in-area.svg
+++ b/src/_icons/zoom-in-area.svg
@@ -1,4 +1,5 @@
---
+category: Map
version: "1.68"
---
<svg>
diff --git a/src/_icons/zoom-money.svg b/src/_icons/zoom-money.svg
index 45af29cf..1d731907 100644
--- a/src/_icons/zoom-money.svg
+++ b/src/_icons/zoom-money.svg
@@ -1,4 +1,5 @@
---
+category: Map
tags: [magnifying, glass, magnifier, earn, pay, sum, total, finance, financial]
version: "1.39"
---
diff --git a/src/_icons/zoom-out-area.svg b/src/_icons/zoom-out-area.svg
index 4ec8279c..a941dae8 100644
--- a/src/_icons/zoom-out-area.svg
+++ b/src/_icons/zoom-out-area.svg
@@ -1,4 +1,5 @@
---
+category: Map
version: "1.68"
---
<svg>
diff --git a/src/_icons/zoom-pan.svg b/src/_icons/zoom-pan.svg
index 5a585c6f..d5345eae 100644
--- a/src/_icons/zoom-pan.svg
+++ b/src/_icons/zoom-pan.svg
@@ -1,4 +1,5 @@
---
+category: Map
version: "1.68"
---
<svg>
diff --git a/src/_icons/zoom-reset.svg b/src/_icons/zoom-reset.svg
index 9ea0a268..ce0186a7 100644
--- a/src/_icons/zoom-reset.svg
+++ b/src/_icons/zoom-reset.svg
@@ -1,4 +1,5 @@
---
+category: Map
version: "1.78"
---
<svg>
diff --git a/src/editor.html b/src/editor.html
index faacf8d9..1cc1cc5a 100644
--- a/src/editor.html
+++ b/src/editor.html
@@ -105,7 +105,7 @@ layout: default
{% for category in icons %}
{% if category.name %}
- <h3 class="category-subtitle">{{ category.name }}</h3>
+ <h3 class="category-subtitle">{% if category.name != "" %}{{ category.name }}{% else %}Uncategorized{% endif %} <span class="text-muted">({{ category.items | size }})</span></h3>
{% endif %}
<div class="icons-list">
diff --git a/src/style.scss b/src/style.scss
index 36981d19..4886546d 100644
--- a/src/style.scss
+++ b/src/style.scss
@@ -454,3 +454,7 @@ $border-color: #e0e0e0;
height: 1.25rem;
}
}
+
+.text-muted {
+ color: $muted;
+}