Skip to content

Variable: cssDocSchema

ts
const cssDocSchema: object;

Defined in: packages/config/src/schema.ts:10

The JSON Schema (draft-07) describing a valid cssdoc.json.

Type Declaration

$id

ts
readonly $id: "https://cssdoc.dev/cssdoc.schema.json" = "https://cssdoc.dev/cssdoc.schema.json";

$schema

ts
readonly $schema: "http://json-schema.org/draft-07/schema#" = "http://json-schema.org/draft-07/schema#";

additionalProperties

ts
readonly additionalProperties: false = false;

description

ts
readonly description: "Configuration for cssdoc: custom tags, lint rules, and markdown render options." = "Configuration for cssdoc: custom tags, lint rules, and markdown render options.";

properties

ts
readonly properties: object;

properties.$schema

ts
readonly $schema: object;

properties.$schema.type

ts
readonly type: "string" = "string";

properties.extends

ts
readonly extends: object;

properties.extends.description

ts
readonly description: "Paths to other cssdoc.json files (or packages) to inherit tag definitions from." = "Paths to other cssdoc.json files (or packages) to inherit tag definitions from.";

properties.extends.items

ts
readonly items: object;

properties.extends.items.type

ts
readonly type: "string" = "string";

properties.extends.type

ts
readonly type: "array" = "array";

properties.globalPrecedence

ts
readonly globalPrecedence: object;

properties.globalPrecedence.description

ts
readonly description: "Precedence model when multiple records define the same modifier, with at least one marked @global: \"base\" (explicit modifiers override global; default) or \"global\" (global overrides explicit)." = 'Precedence model when multiple records define the same modifier, with at least one marked @global: "base" (explicit modifiers override global; default) or "global" (global overrides explicit).';

properties.globalPrecedence.enum

ts
readonly enum: readonly ["base", "global"];

properties.inlineComments

ts
readonly inlineComments: object;

properties.inlineComments.description

ts
readonly description: "How a /* … */ comment on a member's rule combines with its tag prose: append (default), prepend, replace, or ignore." = "How a /* … */ comment on a member's rule combines with its tag prose: append (default), prepend, replace, or ignore.";

properties.inlineComments.enum

ts
readonly enum: readonly ["append", "prepend", "replace", "ignore"];

properties.modifierConvention

ts
readonly modifierConvention: object;

properties.modifierConvention.description

ts
readonly description: "How modifier classes are spelled: a preset name (bem, rscss, bare) or a custom convention." = "How modifier classes are spelled: a preset name (bem, rscss, bare) or a custom convention.";

properties.modifierConvention.oneOf

ts
readonly oneOf: readonly [{
  enum: readonly ["bem", "rscss", "bare"];
}, {
  additionalProperties: false;
  properties: {
     elementSeparator: {
        description: "BEM-style element delimiter (e.g. \"__\"); matched classes become parts.";
        oneOf: readonly [{
           type: "string";
         }, {
           items: {
              type: "string";
           };
           type: "array";
        }];
     };
     propValue: {
        type: "boolean";
     };
     propValueSeparator: {
        type: "string";
     };
     pseudoElements: {
        description: "Native pseudo-elements (without the ::) to document, e.g. [\"before\",\"after\"]. Overrides the built-in default set.";
        items: {
           type: "string";
        };
        type: "array";
     };
     separator: {
        oneOf: readonly [{
           type: "string";
         }, {
           items: {
              type: "string";
           };
           type: "array";
        }];
     };
     statePrefixes: {
        description: "Class prefixes that mark a state (e.g. [\"is-\",\"has-\"]).";
        items: {
           type: "string";
        };
        type: "array";
     };
     statePseudoClasses: {
        description: "Native pseudo-classes (without the colon) recognized as states, e.g. [\"disabled\",\"checked\"]. Overrides the built-in default set.";
        items: {
           type: "string";
        };
        type: "array";
     };
     structure: {
        enum: readonly ["chained", "suffix", "attribute"];
     };
  };
  required: readonly ["structure", "separator"];
  type: "object";
}];

properties.naming

ts
readonly naming: object;

properties.naming.additionalProperties

ts
readonly additionalProperties: false = false;

properties.naming.description

ts
readonly description: "Enforce a name case on class names: a preset (pascalCase, camelCase, lowercase) or a custom regex." = "Enforce a name case on class names: a preset (pascalCase, camelCase, lowercase) or a custom regex.";

properties.naming.properties

ts
readonly properties: object;

properties.naming.properties.component

ts
readonly component: object;

properties.naming.properties.component.type

ts
readonly type: "string" = "string";

properties.naming.properties.part

ts
readonly part: object;

properties.naming.properties.part.type

ts
readonly type: "string" = "string";

properties.naming.type

ts
readonly type: "object" = "object";

properties.noStandardTags

ts
readonly noStandardTags: object;

properties.noStandardTags.description

ts
readonly description: "Disable every built-in standard tag; only tagDefinitions remain supported." = "Disable every built-in standard tag; only tagDefinitions remain supported.";

properties.noStandardTags.type

ts
readonly type: "boolean" = "boolean";

properties.providers

ts
readonly providers: object;

properties.providers.description

ts
readonly description: "Upstream cssdoc providers this config consumes, so their components resolve in this scope's lint/hover/docs. Each points at a provider's model.json or a source stylesheet." = "Upstream cssdoc providers this config consumes, so their components resolve in this scope's lint/hover/docs. Each points at a provider's model.json or a source stylesheet.";

properties.providers.items

ts
readonly items: object;

properties.providers.items.additionalProperties

ts
readonly additionalProperties: false = false;

properties.providers.items.properties

ts
readonly properties: object;

properties.providers.items.properties.baseHref

ts
readonly baseHref: object;

properties.providers.items.properties.baseHref.description

ts
readonly description: "URL prefix for links to the provider's rendered doc pages." = "URL prefix for links to the provider's rendered doc pages.";

properties.providers.items.properties.baseHref.type

ts
readonly type: "string" = "string";

properties.providers.items.properties.path

ts
readonly path: object;

properties.providers.items.properties.path.description

ts
readonly description: "Path to the provider's model.json or a source stylesheet — relative (starts with .) or a package specifier." = "Path to the provider's model.json or a source stylesheet — relative (starts with .) or a package specifier.";

properties.providers.items.properties.path.type

ts
readonly type: "string" = "string";

properties.providers.items.required

ts
readonly required: readonly ["path"];

properties.providers.items.type

ts
readonly type: "object" = "object";

properties.providers.type

ts
readonly type: "array" = "array";

properties.render

ts
readonly render: object;

properties.render.additionalProperties

ts
readonly additionalProperties: false = false;

properties.render.description

ts
readonly description: "Markdown render options for the CSS API pages (used by @cssdoc/markdown and @cssdoc/typedoc). Explicit emitter options still override these." = "Markdown render options for the CSS API pages (used by @cssdoc/markdown and @cssdoc/typedoc). Explicit emitter options still override these.";

properties.render.properties

ts
readonly properties: object;

properties.render.properties.baseHref

ts
readonly baseHref: object;

properties.render.properties.baseHref.description

ts
readonly description: "Base href for @related cross-links and the sidebar/index links." = "Base href for @related cross-links and the sidebar/index links.";

properties.render.properties.baseHref.type

ts
readonly type: "string" = "string";

properties.render.properties.groups

ts
readonly groups: object;

properties.render.properties.groups.description

ts
readonly description: "Explicit sidebar/index group order. Listed group labels come first, in this order; unlisted groups follow the default order (record kinds, then custom @group groups)." = "Explicit sidebar/index group order. Listed group labels come first, in this order; unlisted groups follow the default order (record kinds, then custom @group groups).";

properties.render.properties.groups.items

ts
readonly items: object;

properties.render.properties.groups.items.type

ts
readonly type: "string" = "string";

properties.render.properties.groups.type

ts
readonly type: "array" = "array";

properties.render.properties.headingPrefix

ts
readonly headingPrefix: object;

properties.render.properties.headingPrefix.description

ts
readonly description: "Prefix for each record page title, e.g. \"CSS:\"." = 'Prefix for each record page title, e.g. "CSS:".';

properties.render.properties.headingPrefix.type

ts
readonly type: "string" = "string";

properties.render.properties.sectionOrder

ts
readonly sectionOrder: object;

properties.render.properties.sectionOrder.description

ts
readonly description: "Order (and inclusion) of the reorderable ## sections on a record page; omitted keys are dropped." = "Order (and inclusion) of the reorderable ## sections on a record page; omitted keys are dropped.";

properties.render.properties.sectionOrder.items

ts
readonly items: object;

properties.render.properties.sectionOrder.items.enum

ts
readonly enum: readonly ["demo", "examples", "usage", "annotations", "modifiers", "parts", "shadowParts", "pseudoElements", "states", "slots", "structure", "subcomponents", "cssProperties", "functions", "animations", "layers", "conditions", "tokensConsumed", "compat", "accessibility", "related", "see"];

properties.render.properties.sectionOrder.type

ts
readonly type: "array" = "array";

properties.render.properties.structureVariantView

ts
readonly structureVariantView: object;

properties.render.properties.structureVariantView.description

ts
readonly description: "How alternative DOM shapes (from top-level @variant blocks in @structure) render: \"diagram\" (default) emits one combined flowchart with a labelled subgraph per variant; \"sections\" emits a \"### Variant: <name>\" subsection per variant." = 'How alternative DOM shapes (from top-level @variant blocks in @structure) render: "diagram" (default) emits one combined flowchart with a labelled subgraph per variant; "sections" emits a "### Variant: <name>" subsection per variant.';

properties.render.properties.structureVariantView.enum

ts
readonly enum: readonly ["diagram", "sections"];

properties.render.properties.structureView

ts
readonly structureView: object;

properties.render.properties.structureView.description

ts
readonly description: "Which Structure representation(s) to emit: \"text\" tree, \"diagram\" flowchart, or \"both\" (default)." = 'Which Structure representation(s) to emit: "text" tree, "diagram" flowchart, or "both" (default).';

properties.render.properties.structureView.enum

ts
readonly enum: readonly ["text", "diagram", "both"];

properties.render.type

ts
readonly type: "object" = "object";

properties.ruleOptions

ts
readonly ruleOptions: object;

properties.ruleOptions.additionalProperties

ts
readonly additionalProperties: false = false;

properties.ruleOptions.description

ts
readonly description: "Policy options for rule behavior families." = "Policy options for rule behavior families.";

properties.ruleOptions.properties

ts
readonly properties: object;

properties.ruleOptions.properties.sealed

ts
readonly sealed: object;

properties.ruleOptions.properties.sealed.additionalProperties

ts
readonly additionalProperties: false = false;

properties.ruleOptions.properties.sealed.properties

ts
readonly properties: object;

properties.ruleOptions.properties.sealed.properties.mode

ts
readonly mode: object;

properties.ruleOptions.properties.sealed.properties.mode.description

ts
readonly description: "strict flags full reset-keyword set; compat limits to unset/initial." = "strict flags full reset-keyword set; compat limits to unset/initial.";

properties.ruleOptions.properties.sealed.properties.mode.enum

ts
readonly enum: readonly ["strict", "compat"];

properties.ruleOptions.properties.sealed.type

ts
readonly type: "object" = "object";

properties.ruleOptions.properties.values

ts
readonly values: object;

properties.ruleOptions.properties.values.additionalProperties

ts
readonly additionalProperties: false = false;

properties.ruleOptions.properties.values.properties

ts
readonly properties: object;

properties.ruleOptions.properties.values.properties.allowInherit

ts
readonly allowInherit: object;

properties.ruleOptions.properties.values.properties.allowInherit.description

ts
readonly description: "Allow `inherit` in sealed/frozen value checks (default false)." = "Allow `inherit` in sealed/frozen value checks (default false).";

properties.ruleOptions.properties.values.properties.allowInherit.type

ts
readonly type: "boolean" = "boolean";

properties.ruleOptions.properties.values.type

ts
readonly type: "object" = "object";

properties.ruleOptions.type

ts
readonly type: "object" = "object";

properties.rules

ts
readonly rules: object;

properties.rules.additionalProperties

ts
readonly additionalProperties: false = false;

properties.rules.description

ts
readonly description: "Per-rule severity overrides (off/warn/error)." = "Per-rule severity overrides (off/warn/error).";

properties.rules.properties

ts
readonly properties: object;

properties.rules.properties.alias-requires-canonical

ts
readonly alias-requires-canonical: object;

properties.rules.properties.alias-requires-canonical.enum

ts
readonly enum: readonly ["off", "warn", "error"];

properties.rules.properties.component-name-case

ts
readonly component-name-case: object;

properties.rules.properties.component-name-case.enum

ts
readonly enum: readonly ["off", "warn", "error"];

properties.rules.properties.conflicting-global-modifier

ts
readonly conflicting-global-modifier: object;

properties.rules.properties.conflicting-global-modifier.enum

ts
readonly enum: readonly ["off", "warn", "error"];

properties.rules.properties.cssdoc-directive

ts
readonly cssdoc-directive: object;

properties.rules.properties.cssdoc-directive.enum

ts
readonly enum: readonly ["off", "warn", "error"];

properties.rules.properties.deprecated-modifier

ts
readonly deprecated-modifier: object;

properties.rules.properties.deprecated-modifier.enum

ts
readonly enum: readonly ["off", "warn", "error"];

properties.rules.properties.deprecated-requires-canonical

ts
readonly deprecated-requires-canonical: object;

properties.rules.properties.deprecated-requires-canonical.enum

ts
readonly enum: readonly ["off", "warn", "error"];

properties.rules.properties.disallowed-element

ts
readonly disallowed-element: object;

properties.rules.properties.disallowed-element.enum

ts
readonly enum: readonly ["off", "warn", "error"];

properties.rules.properties.duplicate-record-id

ts
readonly duplicate-record-id: object;

properties.rules.properties.duplicate-record-id.enum

ts
readonly enum: readonly ["off", "warn", "error"];

properties.rules.properties.duplicate-record-id-cross-kind

ts
readonly duplicate-record-id-cross-kind: object;

properties.rules.properties.duplicate-record-id-cross-kind.enum

ts
readonly enum: readonly ["off", "warn", "error"];

properties.rules.properties.invalid-default-value

ts
readonly invalid-default-value: object;

properties.rules.properties.invalid-default-value.enum

ts
readonly enum: readonly ["off", "warn", "error"];

properties.rules.properties.invalid-fallback-value

ts
readonly invalid-fallback-value: object;

properties.rules.properties.invalid-fallback-value.enum

ts
readonly enum: readonly ["off", "warn", "error"];

properties.rules.properties.invalid-property-value

ts
readonly invalid-property-value: object;

properties.rules.properties.invalid-property-value.enum

ts
readonly enum: readonly ["off", "warn", "error"];

properties.rules.properties.missing-summary

ts
readonly missing-summary: object;

properties.rules.properties.missing-summary.enum

ts
readonly enum: readonly ["off", "warn", "error"];

properties.rules.properties.name-not-in-css

ts
readonly name-not-in-css: object;

properties.rules.properties.name-not-in-css.enum

ts
readonly enum: readonly ["off", "warn", "error"];

properties.rules.properties.part-name-case

ts
readonly part-name-case: object;

properties.rules.properties.part-name-case.enum

ts
readonly enum: readonly ["off", "warn", "error"];

properties.rules.properties.readonly-redefinition

ts
readonly readonly-redefinition: object;

properties.rules.properties.readonly-redefinition.enum

ts
readonly enum: readonly ["off", "warn", "error"];

properties.rules.properties.sealed-reset-value

ts
readonly sealed-reset-value: object;

properties.rules.properties.sealed-reset-value.enum

ts
readonly enum: readonly ["off", "warn", "error"];

properties.rules.properties.structure-ambiguous-record

ts
readonly structure-ambiguous-record: object;

properties.rules.properties.structure-ambiguous-record.enum

ts
readonly enum: readonly ["off", "warn", "error"];

properties.rules.properties.structure-unknown-record

ts
readonly structure-unknown-record: object;

properties.rules.properties.structure-unknown-record.enum

ts
readonly enum: readonly ["off", "warn", "error"];

properties.rules.properties.structure-unknown-selector

ts
readonly structure-unknown-selector: object;

properties.rules.properties.structure-unknown-selector.enum

ts
readonly enum: readonly ["off", "warn", "error"];

properties.rules.properties.undocumented-css-part

ts
readonly undocumented-css-part: object;

properties.rules.properties.undocumented-css-part.enum

ts
readonly enum: readonly ["off", "warn", "error"];

properties.rules.properties.undocumented-modifier

ts
readonly undocumented-modifier: object;

properties.rules.properties.undocumented-modifier.enum

ts
readonly enum: readonly ["off", "warn", "error"];

properties.rules.properties.undocumented-part

ts
readonly undocumented-part: object;

properties.rules.properties.undocumented-part.enum

ts
readonly enum: readonly ["off", "warn", "error"];

properties.rules.properties.unknown-annotation-ref

ts
readonly unknown-annotation-ref: object;

properties.rules.properties.unknown-annotation-ref.enum

ts
readonly enum: readonly ["off", "warn", "error"];

properties.rules.properties.unknown-custom-property

ts
readonly unknown-custom-property: object;

properties.rules.properties.unknown-custom-property.enum

ts
readonly enum: readonly ["off", "warn", "error"];

properties.rules.properties.unknown-modifier

ts
readonly unknown-modifier: object;

properties.rules.properties.unknown-modifier.enum

ts
readonly enum: readonly ["off", "warn", "error"];

properties.rules.properties.unknown-part

ts
readonly unknown-part: object;

properties.rules.properties.unknown-part.enum

ts
readonly enum: readonly ["off", "warn", "error"];

properties.rules.properties.unknown-state

ts
readonly unknown-state: object;

properties.rules.properties.unknown-state.enum

ts
readonly enum: readonly ["off", "warn", "error"];

properties.rules.type

ts
readonly type: "object" = "object";

properties.structureIgnore

ts
readonly structureIgnore: object;

properties.structureIgnore.description

ts
readonly description: "Class names to exempt from the structure-unknown-selector rule — legitimately-external classes (utilities, cross-component refs) referenced in @structure. Literal names or simple globs where * matches any run of characters (e.g. util-*)." = "Class names to exempt from the structure-unknown-selector rule — legitimately-external classes (utilities, cross-component refs) referenced in @structure. Literal names or simple globs where * matches any run of characters (e.g. util-*).";

properties.structureIgnore.items

ts
readonly items: object;

properties.structureIgnore.items.type

ts
readonly type: "string" = "string";

properties.structureIgnore.type

ts
readonly type: "array" = "array";

properties.supportForTags

ts
readonly supportForTags: object;

properties.supportForTags.additionalProperties

ts
readonly additionalProperties: object;

properties.supportForTags.additionalProperties.type

ts
readonly type: "boolean" = "boolean";

properties.supportForTags.description

ts
readonly description: "Enable or disable specific tags by name." = "Enable or disable specific tags by name.";

properties.supportForTags.type

ts
readonly type: "object" = "object";

properties.tagDefinitions

ts
readonly tagDefinitions: object;

properties.tagDefinitions.description

ts
readonly description: "Custom tags to register." = "Custom tags to register.";

properties.tagDefinitions.items

ts
readonly items: object;

properties.tagDefinitions.items.additionalProperties

ts
readonly additionalProperties: false = false;

properties.tagDefinitions.items.properties

ts
readonly properties: object;

properties.tagDefinitions.items.properties.aliasFor

ts
readonly aliasFor: object;

properties.tagDefinitions.items.properties.aliasFor.type

ts
readonly type: "string" = "string";

properties.tagDefinitions.items.properties.allowMultiple

ts
readonly allowMultiple: object;

properties.tagDefinitions.items.properties.allowMultiple.type

ts
readonly type: "boolean" = "boolean";

properties.tagDefinitions.items.properties.recordKind

ts
readonly recordKind: object;

properties.tagDefinitions.items.properties.recordKind.enum

ts
readonly enum: readonly ["component", "utility", "rule", "declaration", "layout"];

properties.tagDefinitions.items.properties.syntaxKind

ts
readonly syntaxKind: object;

properties.tagDefinitions.items.properties.syntaxKind.enum

ts
readonly enum: readonly ["record", "block", "modifier", "inline"];

properties.tagDefinitions.items.properties.tagName

ts
readonly tagName: object;

properties.tagDefinitions.items.properties.tagName.pattern

ts
readonly pattern: "^@?[a-zA-Z][a-zA-Z0-9-]*$" = "^@?[a-zA-Z][a-zA-Z0-9-]*$";

properties.tagDefinitions.items.properties.tagName.type

ts
readonly type: "string" = "string";

properties.tagDefinitions.items.required

ts
readonly required: readonly ["tagName", "syntaxKind"];

properties.tagDefinitions.items.type

ts
readonly type: "object" = "object";

properties.tagDefinitions.type

ts
readonly type: "array" = "array";

title

ts
readonly title: "cssdoc.json" = "cssdoc.json";

type

ts
readonly type: "object" = "object";

Released under the MIT License