---
url: /reference/@cssdoc/core.md
---
# @cssdoc/core

`@cssdoc/core` — a generic, framework-agnostic documentation extractor for CSS, in the shape of
TSDoc/TypeDoc: parse a small doc-comment grammar plus the CSS AST into a serializable model, then let
an emitter turn that model into whatever output you need (markdown, JSON, a component gallery).

The core makes no assumptions about any project, class prefix, or framework. It:

* reads `/** … */` doc comments in the [grammar](functions/parseDocComment.md) (`@component`, `@summary`,
  `@modifier`, `@part`, `@cssproperty`/`@csspart`/`@cssstate`, `@example`, `@demo`, `@see`, and a
  `deprecated` tag), adopting the Custom Elements Manifest tag names where they exist;
* AST-extracts the machine facts (base class, `-modifier` families, sub-element parts, consumed and
  declared custom properties, deprecated-alias links) from the actual selectors — so they can't drift;
* returns a [CssDocEntry](interfaces/CssDocEntry.md)\[] model (one record per `@component`), plus a [toJson](functions/toJson.md) helper.

Build a project-specific emitter on top  — the way `typedoc-plugin-markdown` builds on TypeDoc's reflections.

## Example

```ts
import { parseCssDocs, toJson } from "@cssdoc/core";

const model = parseCssDocs(cssWithDocComments);
writeFileSync("css-docs.json", toJson(model));
```

## Classes

* [CssDocConfiguration](classes/CssDocConfiguration.md)
* [CssDocTagDefinition](classes/CssDocTagDefinition.md)
* [ModifierMatcher](classes/ModifierMatcher.md)

## Interfaces

* [BuildCustomMediaOptions](interfaces/BuildCustomMediaOptions.md)
* [CompileCustomMediaOptions](interfaces/CompileCustomMediaOptions.md)
* [CssAnimation](interfaces/CssAnimation.md)
* [CssCondition](interfaces/CssCondition.md)
* [CssDocEntry](interfaces/CssDocEntry.md)
* [CssDocTagDefinitionOptions](interfaces/CssDocTagDefinitionOptions.md)
* [CssFunction](interfaces/CssFunction.md)
* [CssLayer](interfaces/CssLayer.md)
* [CssModifier](interfaces/CssModifier.md)
* [CssPart](interfaces/CssPart.md)
* [CssPropertyDeclared](interfaces/CssPropertyDeclared.md)
* [CssRelated](interfaces/CssRelated.md)
* [CssSlot](interfaces/CssSlot.md)
* [CssSource](interfaces/CssSource.md)
* [CssState](interfaces/CssState.md)
* [CssTokenConsumed](interfaces/CssTokenConsumed.md)
* [DocCondition](interfaces/DocCondition.md)
* [DocCssProperty](interfaces/DocCssProperty.md)
* [DocModifier](interfaces/DocModifier.md)
* [MermaidOptions](interfaces/MermaidOptions.md)
* [ModifierConvention](interfaces/ModifierConvention.md)
* [ModifierHit](interfaces/ModifierHit.md)
* [ParsedDoc](interfaces/ParsedDoc.md)
* [ParseOptions](interfaces/ParseOptions.md)
* [StructureCustomMediaRef](interfaces/StructureCustomMediaRef.md)
* [StructureNode](interfaces/StructureNode.md)
* [StructureVariant](interfaces/StructureVariant.md)

## Type Aliases

* [CssDocSyntaxKind](type-aliases/CssDocSyntaxKind.md)
* [CssParse](type-aliases/CssParse.md)
* [CssRecordKind](type-aliases/CssRecordKind.md)
* [CssReleaseStage](type-aliases/CssReleaseStage.md)
* [InlineCommentMode](type-aliases/InlineCommentMode.md)
* [ModifierConventionInput](type-aliases/ModifierConventionInput.md)

## Variables

* [DEFAULT\_MODIFIER\_CONVENTION](variables/DEFAULT_MODIFIER_CONVENTION.md)
* [DEFAULT\_PSEUDO\_ELEMENTS](variables/DEFAULT_PSEUDO_ELEMENTS.md)
* [DEFAULT\_STATE\_PSEUDO\_CLASSES](variables/DEFAULT_STATE_PSEUDO_CLASSES.md)
* [MODIFIER\_PRESETS](variables/MODIFIER_PRESETS.md)
* [RECORD\_TAGS](variables/RECORD_TAGS.md)

## Functions

* [ampStaysAtScope](functions/ampStaysAtScope.md)
* [buildCustomMediaDeclarations](functions/buildCustomMediaDeclarations.md)
* [cardinalityIsDashed](functions/cardinalityIsDashed.md)
* [cardinalityToken](functions/cardinalityToken.md)
* [compileCustomMediaDeclarations](functions/compileCustomMediaDeclarations.md)
* [parseCssDocs](functions/parseCssDocs.md)
* [parseDocComment](functions/parseDocComment.md)
* [parseStructure](functions/parseStructure.md)
* [parseStructureVariants](functions/parseStructureVariants.md)
* [recordNameOf](functions/recordNameOf.md)
* [resolveModifierConvention](functions/resolveModifierConvention.md)
* [scopeMatchesBase](functions/scopeMatchesBase.md)
* [scopePreludeBase](functions/scopePreludeBase.md)
* [splitModifierArg](functions/splitModifierArg.md)
* [splitPartArg](functions/splitPartArg.md)
* [stripCommentFraming](functions/stripCommentFraming.md)
* [structureCustomMediaRefs](functions/structureCustomMediaRefs.md)
* [toJson](functions/toJson.md)
* [toMermaid](functions/toMermaid.md)
* [toMermaidVariants](functions/toMermaidVariants.md)
