mirror of
https://github.com/lucide-icons/lucide.git
synced 2026-11-10 13:18:25 +00:00
239 lines
6.1 KiB
JSON
239 lines
6.1 KiB
JSON
{
|
|
"$id": "https://lucide.dev/icons.schema.json",
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$vocabulary": {
|
|
"https://json-schema.org/draft/2020-12/vocab/core": true,
|
|
"https://json-schema.org/draft/2020-12/vocab/applicator": true,
|
|
"https://json-schema.org/draft/2020-12/vocab/unevaluated": true,
|
|
"https://json-schema.org/draft/2020-12/vocab/validation": true,
|
|
"https://json-schema.org/draft/2020-12/vocab/meta-data": true,
|
|
"https://json-schema.org/draft/2020-12/vocab/format-annotation": true,
|
|
"https://json-schema.org/draft/2020-12/vocab/content": true
|
|
},
|
|
"title": "Lucide Icons icon schema",
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["$schema", "contributors", "categories", "tags", "use-cases"],
|
|
"properties": {
|
|
"$schema": {
|
|
"type": "string"
|
|
},
|
|
"aliases": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["name"],
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"deprecated": {
|
|
"const": true
|
|
},
|
|
"deprecationReason": {
|
|
"$ref": "#/$defs/aliasDeprecationReasons"
|
|
},
|
|
"toBeRemovedInVersion": {
|
|
"$ref": "#/$defs/versionNumber",
|
|
"description": "The version this icon will be removed in."
|
|
}
|
|
},
|
|
"dependentRequired": {
|
|
"deprecated": ["deprecationReason"],
|
|
"deprecationReason": ["deprecated"],
|
|
"toBeRemovedInVersion": ["deprecated"]
|
|
}
|
|
},
|
|
"uniqueItems": true
|
|
},
|
|
"categories": {
|
|
"type": "array",
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"accessibility",
|
|
"account",
|
|
"animals",
|
|
"arrows",
|
|
"buildings",
|
|
"charts",
|
|
"communication",
|
|
"connectivity",
|
|
"cursors",
|
|
"design",
|
|
"development",
|
|
"devices",
|
|
"emoji",
|
|
"files",
|
|
"finance",
|
|
"food-beverage",
|
|
"gaming",
|
|
"home",
|
|
"layout",
|
|
"letters-digits",
|
|
"mail",
|
|
"math",
|
|
"medical",
|
|
"multimedia",
|
|
"nature",
|
|
"navigation",
|
|
"notifications",
|
|
"people",
|
|
"photography",
|
|
"science",
|
|
"seasons",
|
|
"security",
|
|
"shapes",
|
|
"shopping",
|
|
"social",
|
|
"sports",
|
|
"sustainability",
|
|
"text",
|
|
"time",
|
|
"tools",
|
|
"transportation",
|
|
"travel",
|
|
"weather"
|
|
]
|
|
},
|
|
{
|
|
"type": "string",
|
|
"pattern": "^\\$extends:[a-z0-9]+(-[a-z0-9]+)*$"
|
|
}
|
|
]
|
|
},
|
|
"uniqueItems": true
|
|
},
|
|
"contributors": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"if": {
|
|
"pattern": "^\\$[a-zA-Z]"
|
|
},
|
|
"then": {
|
|
"pattern": "^\\$extends:[a-z0-9]+(-[a-z0-9]+)*$"
|
|
}
|
|
},
|
|
"minItems": 1,
|
|
"uniqueItems": true
|
|
},
|
|
"tags": {
|
|
"type": "array",
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"not": {
|
|
"pattern": "^\\$[a-zA-Z]"
|
|
}
|
|
},
|
|
{
|
|
"type": "string",
|
|
"pattern": "^\\$extends:[a-z0-9]+(-[a-z0-9]+)*$"
|
|
},
|
|
{
|
|
"$ref": "#/$defs/groupMarker"
|
|
}
|
|
]
|
|
},
|
|
"minItems": 1,
|
|
"uniqueItems": true
|
|
},
|
|
"use-cases": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"minItems": 0,
|
|
"uniqueItems": true
|
|
},
|
|
"deprecated": {
|
|
"const": true
|
|
},
|
|
"deprecationReason": {
|
|
"$ref": "#/$defs/iconDeprecationReasons"
|
|
},
|
|
"toBeRemovedInVersion": {
|
|
"$ref": "#/$defs/versionNumber",
|
|
"description": "The version this icon will be removed in."
|
|
}
|
|
},
|
|
"dependentRequired": {
|
|
"deprecated": ["deprecationReason"],
|
|
"deprecationReason": ["deprecated"],
|
|
"toBeRemovedInVersion": ["deprecated"]
|
|
},
|
|
"$defs": {
|
|
"iconDeprecationReasons": {
|
|
"type": "string",
|
|
"enum": ["icon.design", "icon.use-case"]
|
|
},
|
|
"aliasDeprecationReasons": {
|
|
"type": "string",
|
|
"enum": ["alias.typo", "alias.name", "alias.duplicate"]
|
|
},
|
|
"versionNumber": {
|
|
"type": "string",
|
|
"pattern": "v[0-9]+(\\.[0-9]+)+"
|
|
},
|
|
"groupMarker": {
|
|
"type": "string",
|
|
"description": "Pulls in the tags of groups/<name>.json.",
|
|
"enum": [
|
|
"$group:chart",
|
|
"$group:check",
|
|
"$group:clock",
|
|
"$group:code",
|
|
"$group:cog",
|
|
"$group:currency",
|
|
"$group:digit",
|
|
"$group:direction-down",
|
|
"$group:direction-down-left",
|
|
"$group:direction-down-right",
|
|
"$group:direction-left",
|
|
"$group:direction-right",
|
|
"$group:direction-up",
|
|
"$group:direction-up-left",
|
|
"$group:direction-up-right",
|
|
"$group:dot",
|
|
"$group:exclamation-mark",
|
|
"$group:graph",
|
|
"$group:heart",
|
|
"$group:key",
|
|
"$group:letter",
|
|
"$group:lock",
|
|
"$group:minus",
|
|
"$group:navigation-first",
|
|
"$group:navigation-last",
|
|
"$group:navigation-next",
|
|
"$group:navigation-previous",
|
|
"$group:off",
|
|
"$group:pause",
|
|
"$group:pen",
|
|
"$group:percent",
|
|
"$group:play",
|
|
"$group:plus",
|
|
"$group:position-bottom",
|
|
"$group:position-left",
|
|
"$group:position-right",
|
|
"$group:position-top",
|
|
"$group:question-mark",
|
|
"$group:search",
|
|
"$group:shield",
|
|
"$group:sort",
|
|
"$group:sparkles",
|
|
"$group:star",
|
|
"$group:stop",
|
|
"$group:sync",
|
|
"$group:user",
|
|
"$group:x"
|
|
]
|
|
}
|
|
},
|
|
"description": "A JSON Schema for icons defined by Lucide Icons."
|
|
}
|