In VS Code, there are two ways of loading custom CSS datasets:
- With setting
css.customData
"css.customData": [
"./foo.css-data.json"
]- With an extension that contributes
contributes.css.customData
Both setting point to a list of JSON files. This document describes the shape of the JSON files.
You can read more about custom data at: https://github.com/microsoft/vscode-custom-data.
The JSON have one required property, version, and 4 other top level properties:
Version denotes the schema version you are using. The latest schema version is V1.1.
You can find other properties' shapes at cssLanguageTypes.ts or the JSON Schema.
You should suffix your custom data file with .css-data.json, so VS Code will load the most recent schema for the JSON file to offer auto completion and error checking.
All top-level properties share two basic properties, name and description. For example:
{
"version": 1.1,
"properties": [
{ "name": "foo", "description": "Foo property" }
],
"atDirectives": [
{ "name": "@foo", "description": "Foo at directive" }
],
"pseudoClasses": [
{ "name": ":foo", "description": "Foo pseudo class" }
],
"pseudoElements": [
{ "name": "::foo", "description": "Foo pseudo elements" }
]
}You can also specify 5 additional properties for them:
{
"properties": [
{
"name": "foo",
"description": "Foo property",
"browsers": [
"E12",
"S10",
"C50",
"IE10",
"O37"
],
"baseline": {
"status": "high",
"baseline_low_date": "2015-09-30",
"baseline_high_date": "2018-03-30"
},
"status": "standard",
"references": [
{
"name": "My foo property reference",
"url": "https://www.foo.com/property/foo"
}
],
"relevance": 25
}
]
}-
browsers: A list of supported browsers. The format isbrowserName + version. For example:['E10', 'C30', 'FF20']. Here are all browser names:export let browserNames = { E: 'Edge', FF: 'Firefox', FFA: 'Firefox on Android', S: 'Safari', SM: 'Safari on iOS', C: 'Chrome', CA: 'Chrome on Android', IE: 'IE', O: 'Opera' };The browser compatibility will be rendered at completion and hover. Items that is supported in only one browser are dropped from completion.
-
baseline: An object containing Baseline information about the feature's browser compatibility, as defined by the WebDX Community Group.-
status: The Baseline status is either"false"(limited availability across major browsers),"low"(newly available across major browsers), or"high"(widely available across major browsers). -
baseline_low_date: A date in the formatYYYY-MM-DDrepresenting when the feature became newly available, or undefined if it hasn't yet reached that status. -
baseline_high_date: A date in the formatYYYY-MM-DDrepresenting when the feature became widely available, or undefined if it hasn't yet reached that status. The widely available date is always 30 months after the newly available date.
-
-
status: The status of the item. The format is:export type EntryStatus = 'standard' | 'experimental' | 'nonstandard' | 'obsolete';The status will be rendered at the top of completion and hover. For example,
nonstandarditems are prefixed with the message🚨️ Property is nonstandard. Avoid using it.. -
references: A list of references. They will be displayed in Markdown form in completion and hover as[Ref1 Name](Ref1 URL) | [Ref2 Name](Ref2 URL) | .... -
relevance: A number in the range [0, 100] used for sorting. Bigger number means more relevant and will be sorted first. Entries that do not specify a relevance will get 50 as default value.
{ "version": 1.1, "properties": [], "atDirectives": [], "pseudoClasses": [], "pseudoElements": [] }