# ClassicEditorKit

Assembles generic content and Classic formatting, clipboard, search and history controls without Word or DOCX.

Assembles generic content and Classic formatting, clipboard, search and history controls without Word or DOCX.

`@quirekit/classic-editor` · **AGPL-3.0-only**

## Editor compatibility
Layer：**Classic product integration**
| Editor | Status | Assembly and boundaries |
| --- | --- | --- |
| Classic | Supported | [classicEditorPreset](/en/plugins/reference/classic-editor-preset) — Use the product-neutral classicEditorPreset without duplicating installed capabilities. The Word preset replaces paragraphs, headings and container lists; do not stack generic structures onto that model. |
| Block | Unsupported | Block does not consume Classic product contributions, plugins or paginated assembly. Use shared capabilities and Block adapters instead of copying this entry's Classic configuration. |

“Supported” means the product assembly above exists; interaction, host services and file formats retain their own conditions. See [status and integration rules](/en/plugins/compatibility). Licensing is shown separately.

## Installation

```sh
pnpm add @quirekit/classic-editor@alpha
```

Use the [Classic kit](/en/plugins/reference/classic-editor-kit). Individual adapters support custom assembly or replacement without duplicate names.

```ts
import { ClassicEditorKit } from '@quirekit/classic-editor'
```

Use compatible versions available from your distribution source. This site uses the Alpha workspace. License labels come from package metadata; see [support and licensing](/en/support).

## Integration by editor

These snippets use an existing host element named element. The host owns container sizing and persistence; call instance.destroy() on teardown. Avoid duplicating preset capabilities and supply required host ports before installation.

### Classic

Use the product-neutral classicEditorPreset without duplicating installed capabilities. The Word preset replaces paragraphs, headings and container lists; do not stack generic structures onto that model.

[classicEditorPreset](/en/plugins/reference/classic-editor-preset)

```ts
import { createClassicEditor } from '@quirekit/classic-editor'
import '@quirekit/classic-editor/styles.css'

const instance = createClassicEditor({ element })
```

### Block

Block does not consume Classic product contributions, plugins or paginated assembly. Use shared capabilities and Block adapters instead of copying this entry's Classic configuration.

## Configuration

These are extension-level defaults. Presets can override them; they are distinct from current document attributes. See [configuration](/en/plugins/configuration).

### historyExtension

Configured undo/redo provider replacing PM history while retaining standard Classic controls.

Type：`QuireAnyExtension`

Default：`undefined`

### blockInteraction

Structural block interaction options, or false for a feature-owned variant.

Type：`false | Partial<BlockInteractionOptions>`

Default：`undefined`

See [BlockInteraction](/en/plugins/reference/block-interaction) for child settings. Only pass false when this field's type permits it.

### formatting

Formatting-tools options, or false to omit format painter and clear formatting.

Type：`false | Partial<FormattingOptions>`

Default：`undefined`

See [Formatting](/en/plugins/reference/formatting) for child settings. Only pass false when this field's type permits it.

### search

Find and replace options, or false to omit the search panel.

Type：`false | Partial<SearchExtensionOptions>`

Default：`undefined`

See [Search](/en/plugins/reference/search) for child settings. Only pass false when this field's type permits it.

### textCase

Change Case options, or false to omit the Home "Aa" menu and its commands.

Type：`false | Partial<TextCaseOptions>`

Default：`undefined`

See [TextCase](/en/plugins/reference/text-case) for child settings. Only pass false when this field's type permits it.

### clipboard

Context-menu clipboard options, or false to omit cut/copy/paste rows.

Type：`false | Partial<ClassicEditorClipboardOptions>`

Default：`undefined`

See [ClassicEditorClipboard](/en/plugins/reference/classic-editor-clipboard) for child settings. Only pass false when this field's type permits it.

### doubleStrike

Double-strike options, or false to omit the Word-compatible mark.

Type：`false | Partial<DoubleStrikeOptions>`

Default：`undefined`

See [DoubleStrike](/en/plugins/reference/double-strike) for child settings. Only pass false when this field's type permits it.

### superscript

Superscript options, or false to omit the semantic mark.

Type：`false | Partial<ScriptPositionOptions>`

Default：`undefined`

See [Superscript](/en/plugins/reference/superscript) for child settings. Only pass false when this field's type permits it.

### subscript

Subscript options, or false to omit the semantic mark.

Type：`false | Partial<ScriptPositionOptions>`

Default：`undefined`

See [Subscript](/en/plugins/reference/subscript) for child settings. Only pass false when this field's type permits it.

### textStyle

TextStyle Mark options, or false to omit the text-style capability closure.

Type：`false | Partial<TextStyleOptions>`

Default：`undefined`

See [TextStyle](/en/plugins/reference/text-style) for child settings. Only pass false when this field's type permits it.

### highlight

Semantic Highlight options, or false to omit OOXML-compatible highlighting.

Type：`false | Partial<HighlightOptions>`

Default：`undefined`

See [Highlight](/en/plugins/reference/highlight) for child settings. Only pass false when this field's type permits it.

### fontFamily

FontFamily options, or false to omit direct family commands and picker.

Type：`false | Partial<TextStyleAttributeExtensionOptions>`

Default：`undefined`

See [FontFamily](/en/plugins/reference/font-family) for child settings. Only pass false when this field's type permits it.

### fontSize

FontSize options, or false to omit size commands and controls.

Type：`false | Partial<TextStyleAttributeExtensionOptions>`

Default：`undefined`

See [FontSize](/en/plugins/reference/font-size) for child settings. Only pass false when this field's type permits it.

### letterSpacing

LetterSpacing options, or false to omit Word-compatible tracking commands.

Type：`false | Partial<TextStyleAttributeExtensionOptions>`

Default：`undefined`

See [LetterSpacing](/en/plugins/reference/letter-spacing) for child settings. Only pass false when this field's type permits it.

### language

Run-language options, or false to omit Word-compatible language commands.

Type：`false | Partial<TextStyleAttributeExtensionOptions>`

Default：`undefined`

See [Language](/en/plugins/reference/language) for child settings. Only pass false when this field's type permits it.

### color

Text Color options, or false to omit foreground color commands and controls.

Type：`false | Partial<TextStyleAttributeExtensionOptions>`

Default：`undefined`

See [Color](/en/plugins/reference/color) for child settings. Only pass false when this field's type permits it.

### backgroundColor

BackgroundColor options, or false to omit character shading controls.

Type：`false | Partial<TextStyleAttributeExtensionOptions>`

Default：`undefined`

See [BackgroundColor](/en/plugins/reference/background-color) for child settings. Only pass false when this field's type permits it.

### document

Document extension options, or false to omit the extension.

Type：`StarterKitExtensionOption<object>`

Default：`undefined`

See [Document](/en/plugins/reference/document) for child settings. Only pass false when this field's type permits it.

### paragraph

Paragraph extension options, or false to omit the extension.

Type：`StarterKitExtensionOption<ParagraphOptions>`

Default：`undefined`

See [Paragraph](/en/plugins/reference/paragraph) for child settings. Only pass false when this field's type permits it.

### text

Text extension options, or false to omit the extension.

Type：`StarterKitExtensionOption<object>`

Default：`undefined`

See [Text](/en/plugins/reference/text) for child settings. Only pass false when this field's type permits it.

### blockquote

Blockquote extension options, or false to omit the extension.

Type：`StarterKitExtensionOption<BlockquoteOptions>`

Default：`undefined`

See [Blockquote](/en/plugins/reference/blockquote) for child settings. Only pass false when this field's type permits it.

### hardBreak

Hard break extension options, or false to omit the extension.

Type：`StarterKitExtensionOption<HardBreakOptions>`

Default：`undefined`

See [HardBreak](/en/plugins/reference/hard-break) for child settings. Only pass false when this field's type permits it.

### heading

Heading extension options, or false to omit the extension.

Type：`StarterKitExtensionOption<HeadingOptions>`

Default：`undefined`

See [Heading](/en/plugins/reference/heading) for child settings. Only pass false when this field's type permits it.

### horizontalRule

Horizontal rule extension options, or false to omit the extension.

Type：`StarterKitExtensionOption<HorizontalRuleOptions>`

Default：`undefined`

See [HorizontalRule](/en/plugins/reference/horizontal-rule) for child settings. Only pass false when this field's type permits it.

### bold

Bold mark extension options, or false to omit the extension.

Type：`StarterKitExtensionOption<BoldOptions>`

Default：`undefined`

See [Bold](/en/plugins/reference/bold) for child settings. Only pass false when this field's type permits it.

### code

Code mark extension options, or false to omit the extension.

Type：`StarterKitExtensionOption<CodeOptions>`

Default：`undefined`

See [Code](/en/plugins/reference/code) for child settings. Only pass false when this field's type permits it.

### codeBlock

Code block node extension options, or false to omit the extension.

Type：`StarterKitExtensionOption<CodeBlockOptions>`

Default：`undefined`

See [CodeBlock](/en/plugins/reference/code-block) for child settings. Only pass false when this field's type permits it.

### bulletList

Bullet list node extension options, or false to omit the extension.

Type：`StarterKitExtensionOption<BulletListOptions>`

Default：`undefined`

See [BulletList](/en/plugins/reference/bullet-list) for child settings. Only pass false when this field's type permits it.

### listItem

List item node extension options, or false to omit the extension.

Type：`StarterKitExtensionOption<ListItemOptions>`

Default：`undefined`

See [ListItem](/en/plugins/reference/list-item) for child settings. Only pass false when this field's type permits it.

### listKeymap

List keymap extension options, or false to omit the extension.

Type：`StarterKitExtensionOption<ListKeymapOptions>`

Default：`undefined`

See [ListKeymap](/en/plugins/reference/list-keymap) for child settings. Only pass false when this field's type permits it.

### orderedList

Ordered list node extension options, or false to omit the extension.

Type：`StarterKitExtensionOption<OrderedListOptions>`

Default：`undefined`

See [OrderedList](/en/plugins/reference/ordered-list) for child settings. Only pass false when this field's type permits it.

### italic

Italic mark extension options, or false to omit the extension.

Type：`StarterKitExtensionOption<ItalicOptions>`

Default：`undefined`

See [Italic](/en/plugins/reference/italic) for child settings. Only pass false when this field's type permits it.

### strike

Strike mark extension options, or false to omit the extension.

Type：`StarterKitExtensionOption<StrikeOptions>`

Default：`undefined`

See [Strike](/en/plugins/reference/strike) for child settings. Only pass false when this field's type permits it.

### underline

Underline mark extension options, or false to omit the extension.

Type：`StarterKitExtensionOption<UnderlineOptions>`

Default：`undefined`

See [Underline](/en/plugins/reference/underline) for child settings. Only pass false when this field's type permits it.

### gapcursor

Gap cursor extension options, or false to omit the extension.

Type：`StarterKitExtensionOption<object>`

Default：`undefined`

See [Gapcursor](/en/plugins/reference/gapcursor) for child settings. Only pass false when this field's type permits it.

### trailingNode

Trailing node extension options, or false to omit the extension.

Type：`StarterKitExtensionOption<TrailingNodeOptions>`

Default：`undefined`

See [TrailingNode](/en/plugins/reference/trailing-node) for child settings. Only pass false when this field's type permits it.

### baseKeymap

Whether to include the base keymap extension.

Type：`boolean`

Default：`undefined`

See [BaseKeymap](/en/plugins/reference/base-keymap) for child settings. Only pass false when this field's type permits it.

### undoRedo

Undo-redo extension options, or false to omit the extension.

Type：`StarterKitExtensionOption<UndoRedoOptions>`

Default：`undefined`

See [UndoRedo](/en/plugins/reference/undo-redo) for child settings. Only pass false when this field's type permits it.

## Commands and runtime

This entry declares no directly enumerable commands. Children supply bundle commands; product plugins use contributions or document services.

## Next steps

Return to [all plugins](/en/plugins), or read [configuration](/en/plugins/configuration) to distinguish options, attributes and commands.

Continue with [Classic quick start](/en/classic/quick-start) and [configuration/lifetime](/en/classic/configuration). See [product plugin development](/en/build/product-plugin) for your own UI and services.
