Type object
File match web-types.json *.web-types.json
Schema URL https://catalog.lintel.tools/schemas/schemastore/web-types/latest.json
Source https://www.schemastore.org/web-types.json

Validate with Lintel

npx @lintel/lintel check
Type: object

Properties

name string required

Name of the library.

version string required

Version of the library, for which Web-Types are provided.

$schema string
framework string

Framework, for which the components are provided by the library. If the library is not enabled in a particular context, all symbols from this file will not be available as well. If you want symbols to be always available do not specify framework.

required-context object | object | object | object
context object | object | object | object
js-types-syntax string

Language in which JavaScript objects types are specified.

Values: "typescript"
description-markup string

Markup language in which descriptions are formatted.

Default: "none"
Values: "html" "markdown" "none"
framework-config object

Provide configuration for the specified web framework. This is an advanced feature, which is used to provide support for templating frameworks like Angular, Vue, Svelte, etc.

5 nested properties
enable-when Record<string, string[]>

Specify rules for enabling web framework support. Only one framework can be enabled in a particular file. If you need your contributions to be enabled in all files, regardless of the context, do not specify the framework.

6 nested properties
node-packages string[]

Node.js package names, which enable framework support within the folder containing the package.json.

ruby-gems string[]

Since 2024.2. Ruby gem names, which enable framework support within the particular Ruby module.

file-extensions string[]

Extensions of files, which should have the framework support enabled. Use this to support custom file extensions like '.vue' or '.svelte'. Never specify generic extensions like '.html', '.js' or '.ts'. If you need your contributions to be present in every file don't specify the framework at all

file-name-patterns pattern[]

RegExp patterns to match file names, which should have the framework support enabled. Use carefully as broken pattern may even freeze IDE.

ide-libraries string[]

Global JavaScript libraries names enabled within the IDE, which enable framework support in the whole project

project-tool-executables string[]

List of tool executables (without extension), which presence should be checked in the project. In case of Node projects, such tools will be searched in node_modules/.bin/

disable-when object

Specify rules for disabling web framework support. These rules take precedence over enable-when rules. They allow to turn off framework support in case of some conflicts between frameworks priority.

2 nested properties
file-extensions string[]

Extensions of files, which should have the framework support disabled

file-name-patterns pattern[]

RegExp patterns to match file names, which should have the framework support disabled

canonical-names object
match-names object
name-variants object
contexts-config Record<string, object>

Provide configuration for Web Types contexts. This allows to contribute additional Web Types for example if a particular library is present in the project.

default-icon string

Relative path to the icon representing the symbol or actual SVG of the icon.

contributions object

Symbol can be contributed to one of the 3 namespaces - HTML, CSS and JS. Within a particular namespace there can be different kinds of symbols. In each of the namespaces, there are several predefined kinds, which integrate directly with IDE, but providers are free to define their own.

3 nested properties
html object

Contains contributions to HTML namespace. It's property names represent symbol kinds, its property values contain list of contributions of particular kind. There are 2 predefined kinds, which integrate directly with IDE - HTML elements and HTML attributes. There are also 2 deprecated kinds: tags (which is equivalent to 'elements') and 'events' (which was moved to JS namespace)

All of: html-contributions-host object
3 nested properties
types-syntax js-types-syntax

Deprecated, use top-level js-types-syntax property.

description-markup description-markup

Deprecated, use top-level property.

Deprecated, use elements property.

css object

Contains contributions to CSS namespace. It's property names represent symbol kinds, its property values contain list of contributions of particular kind. There are predefined kinds, which integrate directly with IDE - properties, classes, functions, pseudo-elements, pseudo-classes and parts.

All of: css-contributions-host object
js object

Contains contributions to JS namespace. It's property names represent symbol kinds, its property values contain list of contributions of particular kind. There are 2 predefined kinds, which integrate directly with IDE - properties and events, but only events can be contributed globally.

2 nested properties

DOM events

symbols js-symbol[]

Globally available symbols for JavaScript resolve. TypeScript resolve is not supported. Please note that these symbols will override any normally available global JavaScript symbols.

Definitions

js-types-syntax string

Language in which JavaScript objects types are specified.

description-markup string

Markup language in which descriptions are formatted.

required-context object | object | object | object
framework-config object

Provide configuration for the specified web framework. This is an advanced feature, which is used to provide support for templating frameworks like Angular, Vue, Svelte, etc.

enable-when Record<string, string[]>

Specify rules for enabling web framework support. Only one framework can be enabled in a particular file. If you need your contributions to be enabled in all files, regardless of the context, do not specify the framework.

6 nested properties
node-packages string[]

Node.js package names, which enable framework support within the folder containing the package.json.

ruby-gems string[]

Since 2024.2. Ruby gem names, which enable framework support within the particular Ruby module.

file-extensions string[]

Extensions of files, which should have the framework support enabled. Use this to support custom file extensions like '.vue' or '.svelte'. Never specify generic extensions like '.html', '.js' or '.ts'. If you need your contributions to be present in every file don't specify the framework at all

file-name-patterns pattern[]

RegExp patterns to match file names, which should have the framework support enabled. Use carefully as broken pattern may even freeze IDE.

ide-libraries string[]

Global JavaScript libraries names enabled within the IDE, which enable framework support in the whole project

project-tool-executables string[]

List of tool executables (without extension), which presence should be checked in the project. In case of Node projects, such tools will be searched in node_modules/.bin/

disable-when object

Specify rules for disabling web framework support. These rules take precedence over enable-when rules. They allow to turn off framework support in case of some conflicts between frameworks priority.

2 nested properties
file-extensions string[]

Extensions of files, which should have the framework support disabled

file-name-patterns pattern[]

RegExp patterns to match file names, which should have the framework support disabled

canonical-names object
match-names object
name-variants object
contexts-config Record<string, object>

Provide configuration for Web Types contexts. This allows to contribute additional Web Types for example if a particular library is present in the project.

context-kind-config Record<string, object>
kind string

Context kind. Only a single context of the particular kind will be enabled. An example of context kind is framework, which has dedicated support in Web Types.

enable-when Record<string, string[]>

Specify rules for enabling web framework support. Only one framework can be enabled in a particular file. If you need your contributions to be enabled in all files, regardless of the context, do not specify the framework.

6 nested properties
node-packages string[]

Node.js package names, which enable framework support within the folder containing the package.json.

ruby-gems string[]

Since 2024.2. Ruby gem names, which enable framework support within the particular Ruby module.

file-extensions string[]

Extensions of files, which should have the framework support enabled. Use this to support custom file extensions like '.vue' or '.svelte'. Never specify generic extensions like '.html', '.js' or '.ts'. If you need your contributions to be present in every file don't specify the framework at all

file-name-patterns pattern[]

RegExp patterns to match file names, which should have the framework support enabled. Use carefully as broken pattern may even freeze IDE.

ide-libraries string[]

Global JavaScript libraries names enabled within the IDE, which enable framework support in the whole project

project-tool-executables string[]

List of tool executables (without extension), which presence should be checked in the project. In case of Node projects, such tools will be searched in node_modules/.bin/

disable-when object

Specify rules for disabling web framework support. These rules take precedence over enable-when rules. They allow to turn off framework support in case of some conflicts between frameworks priority.

2 nested properties
file-extensions string[]

Extensions of files, which should have the framework support disabled

file-name-patterns pattern[]

RegExp patterns to match file names, which should have the framework support disabled

context-config object

Since 2024.2. Provide rules for setting a particular name for particular context kind. This allows to contribute additional Web Types for example if a particular library is present in the project.

enable-when Record<string, string[]>

Specify rules for enabling web framework support. Only one framework can be enabled in a particular file. If you need your contributions to be enabled in all files, regardless of the context, do not specify the framework.

6 nested properties
node-packages string[]

Node.js package names, which enable framework support within the folder containing the package.json.

ruby-gems string[]

Since 2024.2. Ruby gem names, which enable framework support within the particular Ruby module.

file-extensions string[]

Extensions of files, which should have the framework support enabled. Use this to support custom file extensions like '.vue' or '.svelte'. Never specify generic extensions like '.html', '.js' or '.ts'. If you need your contributions to be present in every file don't specify the framework at all

file-name-patterns pattern[]

RegExp patterns to match file names, which should have the framework support enabled. Use carefully as broken pattern may even freeze IDE.

ide-libraries string[]

Global JavaScript libraries names enabled within the IDE, which enable framework support in the whole project

project-tool-executables string[]

List of tool executables (without extension), which presence should be checked in the project. In case of Node projects, such tools will be searched in node_modules/.bin/

disable-when object

Specify rules for disabling web framework support. These rules take precedence over enable-when rules. They allow to turn off framework support in case of some conflicts between frameworks priority.

2 nested properties
file-extensions string[]

Extensions of files, which should have the framework support disabled

file-name-patterns pattern[]

RegExp patterns to match file names, which should have the framework support disabled

enablement-rules Record<string, string[]>

Specify rules for enabling web framework support. Only one framework can be enabled in a particular file. If you need your contributions to be enabled in all files, regardless of the context, do not specify the framework.

node-packages string[]

Node.js package names, which enable framework support within the folder containing the package.json.

ruby-gems string[]

Since 2024.2. Ruby gem names, which enable framework support within the particular Ruby module.

file-extensions string[]

Extensions of files, which should have the framework support enabled. Use this to support custom file extensions like '.vue' or '.svelte'. Never specify generic extensions like '.html', '.js' or '.ts'. If you need your contributions to be present in every file don't specify the framework at all

file-name-patterns pattern[]

RegExp patterns to match file names, which should have the framework support enabled. Use carefully as broken pattern may even freeze IDE.

ide-libraries string[]

Global JavaScript libraries names enabled within the IDE, which enable framework support in the whole project

project-tool-executables string[]

List of tool executables (without extension), which presence should be checked in the project. In case of Node projects, such tools will be searched in node_modules/.bin/

custom-enablement-rules string[]

Since 2024.2. Custom package manager dependencies, which would enable context according to the rules of custom provider.

disablement-rules object

Specify rules for disabling web framework support. These rules take precedence over enable-when rules. They allow to turn off framework support in case of some conflicts between frameworks priority.

file-extensions string[]

Extensions of files, which should have the framework support disabled

file-name-patterns pattern[]

RegExp patterns to match file names, which should have the framework support disabled

name-conversion-rules-single object
name-conversion-rules-multiple object
name-converters name-converter[]
name-converter string
icon string

Relative path to the icon representing the symbol or actual SVG of the icon.

base-contribution object

The base for any contributions.

name string
description string

Short description to be rendered in documentation popup. It will be rendered according to description-markup setting.

description-sections Record<string, string>

Custom sections to be shown below description in the documentation popup.

required-context object | object | object | object
doc-url string

Link to online documentation.

icon string

Relative path to the icon representing the symbol or actual SVG of the icon.

source object

Allows to specify the source of the entity. For Vue.js component this may be for instance a class.

One of: object object, object object
since string

Version since this symbol is available.

deprecated boolean | string

Specifies whether the symbol is deprecated. Deprecated symbol usage is discouraged, but still supported. Value can be a boolean or a string message with explanation and migration information.

Default: false
deprecated-since string

Version in which this symbol was first deprecated.

obsolete boolean | string

Specifies whether the symbol is obsolete. Obsolete symbols are no longer supported. Value can be a boolean or a string message with explanation and migration information.

Default: false
obsolete-since string

Version in which this symbol was first made obsolete.

experimental boolean | string

Specifies whether the symbol is experimental. Value can be a boolean or a string message with explanation. Experimental symbols should be used with caution as the API might change.

Default: false
priority string
Values: "lowest" "low" "normal" "high" "highest"
proximity integer
virtual boolean

Mark contribution as virtual. Virtual contributions can be filtered out if needed in references. A virtual contribution meaning may differ by framework or kind contexts, but usually means something synthetic or something, which gets erased in the runtime by the framework. E.g. Vue or Angular attribute bindings are virtual.

abstract boolean

Mark contribution as abstract. Such contributions serve only as super contributions for other contributions.

extension boolean

Mark contribution as an extension. Such contributions do not define a new contribution on their own, but can provide additional properties or contributions to existing contributions.

extends reference
pattern name-pattern | string
html object

Contains contributions to HTML namespace. It's property names represent symbol kinds, its property values contain list of contributions of particular kind. There are 2 predefined kinds, which integrate directly with IDE - HTML elements and HTML attributes. There are also 2 deprecated kinds: tags (which is equivalent to 'elements') and 'events' (which was moved to JS namespace)

All of: html-contributions-host object
3 nested properties
types-syntax js-types-syntax

Deprecated, use top-level js-types-syntax property.

description-markup description-markup

Deprecated, use top-level property.

Deprecated, use elements property.

css object

Contains contributions to CSS namespace. It's property names represent symbol kinds, its property values contain list of contributions of particular kind. There are predefined kinds, which integrate directly with IDE - properties, classes, functions, pseudo-elements, pseudo-classes and parts.

All of: css-contributions-host object
js object

Contains contributions to JS namespace. It's property names represent symbol kinds, its property values contain list of contributions of particular kind. There are 2 predefined kinds, which integrate directly with IDE - properties and events.

All of: js-contributions-host object
exclusive-contributions string[]

Specify list of contribution kinds qualified with a namespace, for which during reference resolution this will be the final contribution host. E.g. if a special HTML element does not accept standard attributes, add: "exclusive-contributions": ["/html/attributes"].

typed-contribution object

The base for any contribution, which can possibly have a JS type.

type type | type[]

Specify type according to selected language for type syntax. The type can be specified by a string expression, an object with list of imports and an expression, or an array of possible types.

generic-contribution object

A generic contribution. All contributions are of this type, except for HTML attributes and elements, as well as predefined CSS contribution kinds.

default string
required boolean
attribute-value object
4 nested properties
kind string
Values: "no-value" "plain" "expression"
type string | type-reference | type[]
required boolean
default string
type-list type | type[]

Specify type according to selected language for type syntax. The type can be specified by a string expression, an object with list of imports and an expression, or an array of possible types.

type type-reference | string
type-reference object
name string required

Name of the symbol to import

module string

Name of module, which exports the type. May be omitted, in which case it's assumed to be the name of the library.

html-value-type string | type-reference | type[]
source object

Allows to specify the source of the entity. For Vue.js component this may be for instance a class.

name string
description string

Short description to be rendered in documentation popup. It will be rendered according to description-markup setting.

description-sections Record<string, string>

Custom sections to be shown below description in the documentation popup.

doc-url string

Link to online documentation.

virtual boolean

Mark contribution as virtual. Virtual contributions can be filtered out if needed in references. A virtual contribution meaning may differ by framework or kind contexts, but usually means something synthetic or something, which gets erased in the runtime by the framework. E.g. Vue or Angular attribute bindings are virtual.

abstract boolean

Mark contribution as abstract. Such contributions serve only as super contributions for other contributions.

extension boolean

Mark contribution as an extension. Such contributions do not define a new contribution on their own, but can provide additional properties or contributions to existing contributions.

priority string
proximity integer
name-pattern-root name-pattern | string
exclusive-contributions string[]

Specify list of contribution kinds qualified with a namespace, for which during reference resolution this will be the final contribution host. E.g. if a special HTML element does not accept standard attributes, add: "exclusive-contributions": ["/html/attributes"].

name-pattern object
name-pattern-template string | name-pattern-template | name-pattern[]
list-reference reference | reference[]

A reference to an element in Web-Types model.

reference reference-with-props | string

A reference to an element in Web-Types model.

reference-with-props object
path string required
includeVirtual boolean
Default: true
includeAbstract boolean
filter string
name-conversion object

Override global name conversion rules for matching symbols under the path.

3 nested properties

Override global canonical name conversion rule against which comparisons are made for the referenced symbols. When only rule name is specified, it applies to the symbols of the same kind as the last segment of the referenced path. Otherwise format of the property names is '{namespace}/{symbol kind}'. Supported by JetBrains IDEs since 2022.1.

Override global rules, by which referenced symbols should be matched against their canonical names. When only rule names are specified, they applies to the symbols of the same kind as the last segment of the referenced path. Otherwise format of the property names is '{namespace}/{symbol kind}'. Supported by JetBrains IDEs since 2022.1.

Override global rules, by which referenced symbol names should be proposed in auto completion. When only rule names are specified, they applies to the symbols of the same kind as the last segment of the referenced path. Otherwise format of the property names is '{namespace}/{symbol kind}'. Supported by JetBrains IDEs since 2022.1.

reference-name-conversion object

Override global name conversion rules for matching symbols under the path.

Override global canonical name conversion rule against which comparisons are made for the referenced symbols. When only rule name is specified, it applies to the symbols of the same kind as the last segment of the referenced path. Otherwise format of the property names is '{namespace}/{symbol kind}'. Supported by JetBrains IDEs since 2022.1.

Override global rules, by which referenced symbols should be matched against their canonical names. When only rule names are specified, they applies to the symbols of the same kind as the last segment of the referenced path. Otherwise format of the property names is '{namespace}/{symbol kind}'. Supported by JetBrains IDEs since 2022.1.

Override global rules, by which referenced symbol names should be proposed in auto completion. When only rule names are specified, they applies to the symbols of the same kind as the last segment of the referenced path. Otherwise format of the property names is '{namespace}/{symbol kind}'. Supported by JetBrains IDEs since 2022.1.

extends reference-with-props | string

A reference to an element in Web-Types model.

default string
required boolean
since string

Version since this symbol is available.

deprecated boolean | string

Specifies whether the symbol is deprecated. Deprecated symbol usage is discouraged, but still supported. Value can be a boolean or a string message with explanation and migration information.

deprecated-since string

Version in which this symbol was first deprecated.

obsolete boolean | string

Specifies whether the symbol is obsolete. Obsolete symbols are no longer supported. Value can be a boolean or a string message with explanation and migration information.

obsolete-since string

Version in which this symbol was first made obsolete.

experimental boolean | string

Specifies whether the symbol is experimental. Value can be a boolean or a string message with explanation. Experimental symbols should be used with caution as the API might change.

pattern string | object

A RegEx pattern to match whole content. Syntax should work with at least ECMA, Java and Python implementations.

html-contributions-host object
elements html-element[]

HTML elements.

attributes html-attribute[]

HTML attributes.

DOM events are deprecated in HTML namespace. Contribute events to JS namespace: /js/events

generic-html-contributions generic-html-contribution-or-property | generic-html-contribution-or-property[]
generic-html-contribution-or-property generic-html-contribution | string | number | boolean
generic-html-contribution object
html object

Contains contributions to HTML namespace. It's property names represent symbol kinds, its property values contain list of contributions of particular kind. There are 2 predefined kinds, which integrate directly with IDE - HTML elements and HTML attributes. There are also 2 deprecated kinds: tags (which is equivalent to 'elements') and 'events' (which was moved to JS namespace)

types-syntax js-types-syntax

Deprecated, use top-level js-types-syntax property.

description-markup description-markup

Deprecated, use top-level property.

Deprecated, use elements property.

html-element object
html-attribute object
value object
4 nested properties
kind string
Values: "no-value" "plain" "expression"
type string | type-reference | type[]
required boolean
default string
default string
required boolean
vue-argument object

Deprecated vue-specific property - contribute Vue directives to /contributions/html/vue-directives

4 nested properties
pattern name-pattern | string
description string

Short description to be rendered in documentation popup. It will be rendered according to description-markup setting.

doc-url string

Link to online documentation.

required boolean

Whether directive requires an argument

Default: false

Deprecated vue-specific property - contribute Vue directives to /contributions/html/vue-directives

html-attribute-value object
kind string
Values: "no-value" "plain" "expression"
type string | type-reference | type[]
required boolean
default string
css-contributions-host object
properties css-property[]

CSS properties

pseudo-elements css-pseudo-element[]

CSS pseudo-elements

pseudo-classes css-pseudo-class[]

CSS pseudo-classes

functions css-generic-item[]

CSS functions

CSS classes

CSS parts

generic-css-contributions generic-css-contribution-or-property | generic-css-contribution-or-property[]
generic-css-contribution-or-property string | number | boolean | generic-css-contribution
generic-css-contribution object
css object

Contains contributions to CSS namespace. It's property names represent symbol kinds, its property values contain list of contributions of particular kind. There are predefined kinds, which integrate directly with IDE - properties, classes, functions, pseudo-elements, pseudo-classes and parts.

css-property object
values string[]
css-generic-item object
css-pseudo-element object
arguments boolean

Specify whether the pseudo-element requires arguments.

css-pseudo-class object
arguments boolean

Specify whether the pseudo-class requires arguments.

js-contributions-host object

DOM events

properties js-property[]

JavaScript properties of an object, HTML tag, framework component, etc.

symbols js-symbol[]

Symbols available for JavaScript resolve. TypeScript resolve is not supported.

generic-js-contributions generic-js-contribution-or-property | generic-js-contribution-or-property[]
generic-js-contribution-or-property string | number | boolean | generic-js-contribution
generic-js-contribution object
js-global object

Contains contributions to JS namespace. It's property names represent symbol kinds, its property values contain list of contributions of particular kind. There are 2 predefined kinds, which integrate directly with IDE - properties and events, but only events can be contributed globally.

DOM events

symbols js-symbol[]

Globally available symbols for JavaScript resolve. TypeScript resolve is not supported. Please note that these symbols will override any normally available global JavaScript symbols.

js object

Contains contributions to JS namespace. It's property names represent symbol kinds, its property values contain list of contributions of particular kind. There are 2 predefined kinds, which integrate directly with IDE - properties and events.

js-property object
read-only boolean

Specifies whether the property is read only.

js-symbol object
kind string

Kind of the symbol. Default is variable.

Values: "Variable" "Function" "Namespace" "Class" "Interface" "Enum" "Alias" "Module"
deprecated-types-syntax js-types-syntax

Deprecated, use top-level js-types-syntax property.

deprecated-description-markup description-markup

Deprecated, use top-level property.

deprecated-html-attribute-vue-argument object

Deprecated vue-specific property - contribute Vue directives to /contributions/html/vue-directives

pattern name-pattern | string
description string

Short description to be rendered in documentation popup. It will be rendered according to description-markup setting.

doc-url string

Link to online documentation.

required boolean

Whether directive requires an argument

Default: false
deprecated-html-attribute-vue-modifier object
name string required
pattern name-pattern | string
description string

Short description to be rendered in documentation popup. It will be rendered according to description-markup setting.

doc-url string

Link to online documentation.