Skip to content

What will not change under you

The names aparté does not rename without a release of notice first — its elements and attributes, events, exported functions and classes, locale keys and CSS tokens — listed from the code itself.

On this page
FrozenNot frozen
element tags and the attributes they documentthe methods of an element or of an exported class
event namesthe fields of an interface, an event’s detail included
the functions, classes and constants a package’s main entry exports, and each card’s entry of @aparte/plugin-cards (/weather, /stock…), which is that package’s APItype names, and what any other subpath entry exports (/icons, /core, /react…)
the keys of AparteLocalethe keys a plugin adds to the locale
--aparte-* token namesa token’s default value; class names, the kit’s included; default colours, spacing and English labels; the docs, the example apps, @aparte/docs-mcp

The promise holds since 0.17.0, and a name added since is frozen from the release that added it. A frozen name leaves in two steps:

  1. A notice release: the old name still works, and the changelog and its JSDoc mark it deprecated — your editor strikes it through — with the release it disappears in and its replacement.
  2. A removal release, at least one minor later.

One name has left without a notice release: 0.27.0 removed the package @aparte/locale-fr and its fr in one step. The same fr is now @aparte/locales/fr; the changelog says so.

Adding is always allowed: a new optional attribute, a new optional field on an event’s detail, a new export. What is not frozen can change in a minor, and the changelog says so: read it before you implement an exported type yourself, or build on a class name.

28 elements across 4 packages, with 104 documented attributes between them; a property that mirrors an attribute freezes with it.

@aparte/plugin-approval — 1 element: aparte-approval-mode (0 attributes)

@aparte/plugin-ask-user — 1 element: aparte-ask-user (0 attributes)

@aparte/core — 25 elements: aparte-chat (9 attributes), aparte-chat-bubble (8 attributes), aparte-chat-status (2 attributes), aparte-chat-viewport (5 attributes), aparte-composer (7 attributes), aparte-composer-action (4 attributes), aparte-composer-add-attachment (3 attributes), aparte-composer-attachments (0 attributes), aparte-composer-cancel (0 attributes), aparte-composer-input (4 attributes), aparte-composer-send (0 attributes), aparte-composer-toolbar (1 attribute), aparte-context (10 attributes), aparte-conversation-list (5 attributes), aparte-elicitation (0 attributes), aparte-icon (1 attribute), aparte-launcher (4 attributes), aparte-optgroup (4 attributes), aparte-option (4 attributes), aparte-progress-spinner (1 attribute), aparte-scroll-rail (3 attributes), aparte-select (5 attributes), aparte-sidebar (3 attributes), aparte-split (10 attributes), aparte-suggestions (5 attributes)

@aparte/plugin-model-selector — 1 element: aparte-model-selector (6 attributes)

The components are documented page by page from the same source.

45 typed events, each with a detail the events reference types:

aparte-abort, aparte-action, aparte-action-click, aparte-approval-mode-change, aparte-attachment-preview, aparte-branch-navigate, aparte-compact, aparte-compact-done, aparte-compact-error, aparte-compact-start, aparte-composer-change, aparte-config-change, aparte-context-threshold, aparte-conversation-archive, aparte-conversation-delete, aparte-conversation-loaded, aparte-conversation-pin, aparte-conversation-rename, aparte-conversation-select, aparte-conversation-status, aparte-conversation-unarchive, aparte-conversation-unpin, aparte-edit, aparte-feedback, aparte-launcher-toggle, aparte-link-click, aparte-message-aborted, aparte-message-done, aparte-message-error, aparte-message-info, aparte-message-paused, aparte-message-resumed, aparte-message-start, aparte-model-change, aparte-optgroup-toggle, aparte-path-changed, aparte-retry, aparte-scroll-rail-jump, aparte-segment-update, aparte-select-change, aparte-send, aparte-sidebar-toggle, aparte-split-resize, aparte-suggestion, aparte-tool-approval-request

and 6 that carry no detail — aparte-cancel, aparte-composer-submit, aparte-reset, aparte-reset-done, aparte-select-close, aparte-select-open — which is 51 event names in all.

354 names across 38 packages:

@aparte/angular — 36

APARTE_CLIENT_OPTIONS, APARTE_CONFIG_TOKEN, APARTE_ELEMENT_DIRECTIVES, AparteAiService, AparteBubbleDirective, AparteChatBubbleDirective, AparteChatComponent, AparteChatStatusDirective, AparteChatViewportDirective, AparteComposerActionDirective, AparteComposerAddAttachmentDirective, AparteComposerAttachmentsDirective, AparteComposerCancelDirective, AparteComposerDirective, AparteComposerInputDirective, AparteComposerSendDirective, AparteComposerToolbarDirective, AparteContextDirective, AparteConversationListDirective, AparteElicitationDirective, AparteIconDirective, AparteLauncherDirective, AparteOptgroupDirective, AparteOptionDirective, AparteProgressSpinnerDirective, AparteScrollRailDirective, AparteSegmentUIDirective, AparteSelectDirective, AparteSidebarDirective, AparteSplitDirective, AparteSuggestionsDirective, AparteToolUIDirective, AparteUiComponent, ConversationManagerService, aparteGlobalConfig, provideAparte

@aparte/core — 102

APARTE_CONFIG_CHANGE, APARTE_CONVERSATION_SCHEMA_VERSION, APARTE_DEFAULT_BUBBLE_ACTIONS, APARTE_DEFAULT_HOST_HANDLERS, APARTE_DEFAULT_ICON_FALLBACKS, APARTE_DEFAULT_LOCALE, APARTE_DEFAULT_UI_EVENTS, APARTE_HOST_ATTR, AparteBackendTransport, AparteChat, AparteChatBubble, AparteChatHost, AparteChatStatus, AparteChatViewport, AparteClient, AparteComposer, AparteComposerAction, AparteComposerAddAttachment, AparteComposerAttachments, AparteComposerCancel, AparteComposerInput, AparteComposerSend, AparteComposerToolbar, AparteConfig, AparteContext, AparteConversationController, AparteConversationList, AparteConversationManager, AparteDirectTransport, AparteElicitation, AparteElicitationAbortError, AparteError, AparteErrorCode, AparteIcon, AparteLauncher, AparteMessageRepository, AparteOptgroup, AparteOption, AparteProgressSpinner, AparteScrollRail, AparteSelect, AparteSidebar, AparteSplit, AparteStreamParser, AparteSuggestions, aparteGlobalConfig, applyElementProps, attachConfig, buildApprovalPanel, buildElicitationPanel, collectRendererStyles, contentToText, contextConfig, copyText, createAgentStreamRunner, createAparteAgentHandler, createAparteChatHandler, createStreamAdapter, cssEscape, declineDefaultRenderers, defaultSanitizer, deferHydrationOf, defineMountedSegmentRenderer, defineMountedToolRenderer, detachConfig, escapeAttr, escapeHtml, estimateTokens, estimateWireTokens, filesToAttachments, getAllRenderers, getSegmentRenderer, historyFromCheckpoint, installDefaultRenderersOnce, installDialogTriggersOnce, isAwaitingReply, isFormatAdapter, isSafeUrl, isSegmentSettled, measureContext, overrideSegmentRenderer, parseAparteEventStream, parseMarkdownToSegments, populateBubbleFromMessage, readableToAsyncIterable, registerAllComponents, registerDefaultRenderers, registerSegmentRenderer, releaseDeferredHydration, renderCitations, renderCodeLanguages, requestUserInput, resolveConfig, revokeAttachmentUrls, runWithConfig, segmentDuration, segmentTiming, subscribeConfigChange, toToolCallView, toolRefusal, unregisterSegmentRenderer, uuid

@aparte/engine — 3

runStreamAgent, toolRefusal, unansweredTail

@aparte/locales — 9

de, es, fr, it, ja, ko, ptBR, ru, zhCN

@aparte/plugin-approval — 7

APPROVAL_MODES, AparteApprovalMode, classifyTool, createApprovalPolicy, getApprovalController, rulingFor, setupApproval

@aparte/plugin-artifacts — 13

ARTIFACT_SEGMENT_TYPE, ARTIFACT_SYSTEM_PROMPT, ARTIFACT_TAG, PREVIEW_CSP, artifactBlock, artifactFromToolCall, artifactHandler, artifactRenderer, artifactSegment, buildSafePreviewDocument, createArtifactTool, deriveArtifactKind, setupArtifacts

@aparte/plugin-ask-user — 8

ASK_USER_DECLINED, AparteAskUser, askUserHandler, buildReceipt, createAskUserTool, questionReceiptRenderer, receiptRows, setupAskUser

@aparte/plugin-cards — 29

CARD_FENCE_PREFIX, CARD_SEGMENT_TYPE, carousel, currencyCode, defineCard, el, formatDay, formatHour, formatNumber, formatPercent, formatPrice, formatUnit, formatWhen, glyph, intlTag, languageOf, num, rating, safeUrl, segmented, setupCardFences, slider, sparkline, sparklinePath, str, toDate, toggle, webUrl, word

@aparte/plugin-cards/weather — 8

WEATHER_CONDITIONS, conditionFromOpenWeather, conditionFromText, conditionFromWmo, fromOpenMeteo, readWeather, setupWeatherCard, weatherCard

@aparte/plugin-cards/items — 4

ITEMS_MAX, itemsCard, readItems, setupItemsCard

@aparte/plugin-cards/product — 4

discountOf, productCard, readProducts, setupProductCard

@aparte/plugin-cards/place — 9

directionsUrl, isOpenAt, phoneUrl, placeCard, placeStatus, readHours, readPlaces, readTime, setupPlaceCard

@aparte/plugin-cards/stats — 6

humanizeKey, readStats, setupStatsCard, statChange, statValue, statsCard

@aparte/plugin-cards/order — 5

nightsOf, orderCard, readOrder, readWhen, setupOrderCard

@aparte/plugin-cards/stock — 6

baselineOf, digitsOf, directionOf, readQuotes, setupStockCard, stockCard

@aparte/plugin-cards/plan — 7

PLAN_STEPS_SHOWN, durationText, planCard, planProgress, readPlan, readStatus, setupPlanCard

@aparte/plugin-cards/score — 6

inkOn, monogram, readMatches, scoreCard, setupScoreCard, teamColor

@aparte/plugin-cards/media — 5

formatDuration, mediaCard, readDuration, readMedia, setupMediaCard

@aparte/plugin-cards/link — 3

linkCard, readLinks, setupLinkCard

@aparte/plugin-chartjs — 7

CHARTJS_LANGUAGES, SERIES_HUES, readChartConfig, seriesPalette, setupChartjs, setupChartjsWith, themeChartjsConfig

@aparte/plugin-compaction — 10

DEFAULT_COMPACTION_CONFIG, DEFAULT_COMPACTION_PROMPT, computeHistoryBudget, createCompactionSelector, estimateTokens, estimateTokensJson, messageText, setupCompaction, splitHistoryBudget, transcriptForSummary

@aparte/plugin-echarts — 6

ECHARTS_SERIES_HUES, echartsPalette, echartsTheme, sanitizeEChartsOption, setupECharts, setupEChartsWith

@aparte/plugin-katex — 2

setupKatex, setupKatexWith

@aparte/plugin-marked — 1

setupMarkedProvider

@aparte/plugin-mermaid — 2

setupMermaid, setupMermaidWith

@aparte/plugin-model-selector — 1

AparteModelSelector

@aparte/plugin-shiki — 2

setupShikiProvider, setupShikiProviderFromHighlighter

@aparte/plugin-streaming-markdown — 1

setupStreamingMarkdownProvider

@aparte/plugin-titler — 2

createTitleProvider, setupTitler

@aparte/provider-ai-sdk — 5

createAiSdkProvider, fullStreamToAparteEvents, toModelMessages, toToolChoice, toToolSet

@aparte/provider-openai-compat — 3

createOpenAICompatProvider, parseOpenAICompatStream, presets

@aparte/provider-scenario — 3

createScenarioProvider, defaultMatch, playTurn

@aparte/provider-transformers — 13

TransformersProvider, deleteCachedModel, detectHardware, getComputeDevice, getLoadedModelId, getMaxCachedModels, listCachedModels, registerModel, runnerCommand, setComputeDevice, setHardwareTierModels, setMaxCachedModels, terminateWorker

@aparte/react — 7

AparteChat, AparteSegmentUI, AparteToolUI, AparteUi, useAparteChat, useAparteClient, useConversationManager

@aparte/runner-ag-ui — 1

createAgUiRunner

@aparte/runner-n8n — 5

N8N_BUTTONS_TOOL, createN8nRunner, loadN8nHistory, n8nHistoryToMessages, setupN8nButtons

@aparte/svelte — 5

AparteChat, AparteUi, createAparteChat, createAparteClient, createConversationManager

@aparte/vue — 8

AparteChat, AparteSegmentUI, AparteToolUI, AparteUi, isAparteElement, useAparteChat, useAparteClient, useConversationManager

148 keys on AparteLocale, which a translation and every t('…') call are written against; the English strings behind them can be reworded in a patch (Translation).

The keys

actionUpload, approvalArgsLabel, approvalAsk, approvalInstructionPlaceholder, approvalModeLabel, approvalOptionsLabel, approvalWaiting, approveTool, archiveConversation, artifactNotCreated, assistantResponse, cancel, checkpointCount, checkpointCountOne, checkpointFailed, checkpointGroup, checkpointHide, checkpointLegacy, checkpointPending, checkpointRestore, checkpointRestoreConfirm, checkpointShow, code, compactionSummaryTitle, contextCompactNow, contextFree, contextLabel, contextMessages, contextOther, contextReclaim, contextSummary, contextSystem, contextTools, contextTotal, conversationActions, conversationGroupMonth, conversationGroupPinned, conversationGroupToday, conversationGroupWeek, conversationGroupYesterday, conversationList, conversationRunning, conversationSearchEmpty, conversationTitle, conversationWaiting, copied, copy, deleteConversation, deleteConversationConfirm, direction, download, edit, editCancel, editConfirm, elicitationAnswerLabel, elicitationHide, elicitationNo, elicitationOther, elicitationOtherLabel, elicitationOtherPlaceholder, elicitationRecommended, elicitationSkip, elicitationWaiting, elicitationYes, error, errorFailed, errorNoAnswer, errorRateLimited, errorRefused, errorTimeout, errorTooLong, errorUnreachable, feedbackNegative, feedbackPositive, file, generating, inputPlaceholder, launcherClose, launcherOpen, loading, loadingConversation, loadingConversations, maxTurnsReached, messageActions, messageFrom, messageInfo, modelContextWindow, modelSelectorPlaceholder, newChat, nextResponse, openArtifact, opensInNewTab, pinConversation, preview, previewPending, previousResponse, questionDeclined, rebuildingPreview, rejectTool, removeAttachment, renameConversation, responseCutOff, retry, roleNameAssistant, roleNameUser, run, running, sandboxError, sandboxErrorHint, scrollRailLabel, scrollToBottom, selectSearchLabel, selectSearchPlaceholder, sendButton, sidebarLabel, sourceNext, sourcePosition, sourcePrevious, sourcesCard, sourcesCount, sourcesOne, splitHandleLabel, stopButton, submitButton, suggestionsLabel, tag, thinking, thought, thoughtFor, toolCompleted, toolFailed, toolInput, toolNoApprover, toolNotRunAfterRefusal, toolOutput, toolRefusedByPolicy, toolRejected, toolRejectedSaid, toolRunning, toolStopped, toolTimedOut, toolTurnLimit, toolUnavailable, transcript, typing, unarchiveConversation, unpinConversation, yourMessage

478 --aparte-* custom properties, every one on the CSS variables reference. A token’s default value can change in any minor; its name stays.

The tokens

--aparte-accent, --aparte-action-bar-btn-color, --aparte-action-bar-btn-hover-bg, --aparte-action-bar-btn-hover-color, --aparte-action-bar-btn-size, --aparte-action-bar-gap, --aparte-alert-dismiss-size, --aparte-alert-gap, --aparte-alert-icon-size, --aparte-alert-intent, --aparte-alert-message-font-size, --aparte-alert-padding, --aparte-alert-radius, --aparte-alert-rail-width, --aparte-alert-title-font-size, --aparte-app-header-height, --aparte-approval-args-max-height, --aparte-approval-args-size, --aparte-approval-gap, --aparte-approval-option-padding, --aparte-approval-option-radius, --aparte-approval-option-size, --aparte-attachment-chip-bg, --aparte-attachment-chip-border, --aparte-attachment-chip-color, --aparte-attachment-chip-radius, --aparte-attachment-image-size, --aparte-attachments-max-height, --aparte-avatar-bg-assistant, --aparte-avatar-bg-user, --aparte-avatar-error-ring, --aparte-avatar-fallback-bg, --aparte-avatar-fallback-color, --aparte-avatar-group-ring-color, --aparte-avatar-group-ring-width, --aparte-avatar-image-assistant, --aparte-avatar-image-size, --aparte-avatar-image-user, --aparte-avatar-initials-ratio, --aparte-avatar-overlap-ratio, --aparte-avatar-radius-ratio, --aparte-avatar-size, --aparte-avatar-size-lg, --aparte-avatar-size-sm, --aparte-avatar-size-xl, --aparte-avatar-size-xs, --aparte-avatar-text-assistant, --aparte-avatar-text-user, --aparte-badge-dot-size, --aparte-badge-font-size, --aparte-badge-gap, --aparte-badge-intent, --aparte-badge-intent-ink, --aparte-badge-min-width, --aparte-badge-on-intent, --aparte-badge-padding, --aparte-badge-radius, --aparte-bg, --aparte-border, --aparte-border-control, --aparte-border-focus, --aparte-border-width, --aparte-branch-picker-btn-color, --aparte-branch-picker-btn-hover-color, --aparte-branch-picker-gap, --aparte-branch-picker-label-color, --aparte-branch-picker-label-min-width, --aparte-branch-picker-label-size, --aparte-btn-bg-active, --aparte-btn-bg-hover, --aparte-btn-bg-toggled, --aparte-btn-color-toggled, --aparte-btn-font-size, --aparte-btn-gap, --aparte-btn-icon-size, --aparte-btn-ink, --aparte-btn-intent, --aparte-btn-intent-ink, --aparte-btn-on-intent, --aparte-btn-padding, --aparte-btn-padding-lg, --aparte-btn-padding-sm, --aparte-btn-radius, --aparte-btn-size, --aparte-btn-size-lg, --aparte-btn-size-md, --aparte-btn-size-sm, --aparte-btn-size-xl, --aparte-card-body-padding, --aparte-card-footer-padding, --aparte-card-header-font-size, --aparte-card-header-padding, --aparte-card-radius, --aparte-chat-bottom-gap, --aparte-checkbox-intent, --aparte-checkbox-on-intent, --aparte-checkbox-size, --aparte-code-bg, --aparte-code-block-font-size, --aparte-code-block-line-height, --aparte-code-border, --aparte-code-copy-hover-bg, --aparte-code-copy-icon-size, --aparte-code-font-family, --aparte-code-header-bg, --aparte-code-header-text, --aparte-code-inline-font-size, --aparte-color-size, --aparte-composer-control-size, --aparte-composer-overlay-shadow, --aparte-composer-row-control-size, --aparte-content-color, --aparte-content-font-size, --aparte-content-line-height, --aparte-context-ring-size, --aparte-conv-action-btn-size, --aparte-conv-item-bg-active, --aparte-conv-item-bg-hover, --aparte-conv-item-color, --aparte-conv-item-color-active, --aparte-conv-item-font-size, --aparte-conv-item-font-weight-active, --aparte-conv-item-gap, --aparte-conv-item-padding, --aparte-conv-item-radius, --aparte-conv-list-gap, --aparte-cursor-color, --aparte-datetime-indicator-opacity, --aparte-datetime-min-width, --aparte-derived-ink, --aparte-dialog-width, --aparte-disabled-opacity, --aparte-divider-label-font-size, --aparte-divider-label-gap, --aparte-divider-margin, --aparte-duration-base, --aparte-duration-fast, --aparte-duration-pulse, --aparte-duration-shimmer, --aparte-duration-slow, --aparte-duration-slower, --aparte-duration-spin, --aparte-ease, --aparte-elic-control-size, --aparte-elic-desc-size, --aparte-elic-dismiss-room, --aparte-elic-field-gap, --aparte-elic-gap, --aparte-elic-input-radius, --aparte-elic-input-size, --aparte-elic-max-height, --aparte-elic-message-size, --aparte-elic-option-desc-size, --aparte-elic-option-padding, --aparte-elic-option-radius, --aparte-elic-option-title-size, --aparte-elic-padding, --aparte-elic-ring-room, --aparte-elic-skip-size, --aparte-elic-step-gap, --aparte-elic-step-padding, --aparte-elic-step-size, --aparte-elic-step-underline, --aparte-elic-textarea-min-height, --aparte-elic-title-size, --aparte-error, --aparte-error-bg, --aparte-error-border, --aparte-error-border-soft, --aparte-error-ink, --aparte-error-rail-width, --aparte-error-solid, --aparte-error-surface, --aparte-error-text, --aparte-field-choice-gap, --aparte-field-choice-padding, --aparte-field-choice-radius, --aparte-field-padding, --aparte-field-padding-lg, --aparte-field-padding-sm, --aparte-field-radius, --aparte-field-size, --aparte-field-size-lg, --aparte-field-size-sm, --aparte-field-textarea-min-height, --aparte-focus-outline-offset, --aparte-focus-outline-width, --aparte-font-family, --aparte-font-scale, --aparte-font-size-2xl, --aparte-font-size-2xs, --aparte-font-size-base, --aparte-font-size-lg, --aparte-font-size-md, --aparte-font-size-sm, --aparte-font-size-xl, --aparte-font-size-xs, --aparte-font-weight-bold, --aparte-font-weight-medium, --aparte-font-weight-normal, --aparte-font-weight-semibold, --aparte-icon-size, --aparte-icon-size-lg, --aparte-icon-size-sm, --aparte-icon-size-xl, --aparte-info, --aparte-info-ink, --aparte-ink-dark, --aparte-ink-flip, --aparte-ink-l, --aparte-input-action-btn-icon-size, --aparte-input-action-btn-size, --aparte-input-bg, --aparte-input-border, --aparte-input-focus-border, --aparte-input-font-size, --aparte-input-line-height, --aparte-input-padding-x, --aparte-input-padding-y, --aparte-input-placeholder, --aparte-kbd-bg, --aparte-kbd-border-bottom-width, --aparte-kbd-font-size, --aparte-kbd-min-width, --aparte-kbd-padding, --aparte-kbd-radius, --aparte-launcher-gap, --aparte-launcher-height, --aparte-launcher-offset, --aparte-launcher-radius, --aparte-launcher-width, --aparte-line-height-loose, --aparte-line-height-none, --aparte-line-height-normal, --aparte-line-height-relaxed, --aparte-line-height-snug, --aparte-line-height-tight, --aparte-link-color, --aparte-link-color-hover, --aparte-link-underline-offset, --aparte-link-underline-thickness, --aparte-mark-bar, --aparte-mark-intent, --aparte-mark-intent-ink, --aparte-mark-tint, --aparte-menu-max-width, --aparte-menu-min-width, --aparte-menu-shadow, --aparte-message-content-bg-assistant, --aparte-message-content-bg-user, --aparte-message-content-padding, --aparte-message-content-padding-assistant, --aparte-message-content-radius, --aparte-message-content-text-assistant, --aparte-message-content-text-user, --aparte-message-gap, --aparte-message-ink, --aparte-message-link, --aparte-message-max-width, --aparte-message-padding-block, --aparte-message-padding-inline, --aparte-meter-height, --aparte-meter-optimum, --aparte-meter-poor, --aparte-meter-suboptimum, --aparte-meter-track, --aparte-name-color, --aparte-name-font-size, --aparte-neutral, --aparte-neutral-ink, --aparte-on-error, --aparte-on-info, --aparte-on-intent, --aparte-on-neutral, --aparte-on-primary, --aparte-on-secondary, --aparte-on-success, --aparte-on-warning, --aparte-output-bg, --aparte-output-padding, --aparte-popover-max-width, --aparte-popover-shadow, --aparte-primary, --aparte-primary-hover, --aparte-primary-ink, --aparte-progress-fill, --aparte-progress-height, --aparte-progress-indeterminate-width, --aparte-prose-blockquote-border, --aparte-prose-blockquote-border-width, --aparte-prose-blockquote-indent, --aparte-prose-blockquote-margin, --aparte-prose-code-bg, --aparte-prose-code-padding, --aparte-prose-h1-margin, --aparte-prose-h1-size, --aparte-prose-h2-margin, --aparte-prose-h2-size, --aparte-prose-h3-margin, --aparte-prose-h3-size, --aparte-prose-h4-margin, --aparte-prose-hr-margin, --aparte-prose-li-margin, --aparte-prose-list-indent, --aparte-prose-list-margin, --aparte-prose-p-margin, --aparte-pulse-floor, --aparte-radio-dot-size, --aparte-radio-intent, --aparte-radio-size, --aparte-radius-action-btn, --aparte-radius-bubble, --aparte-radius-code, --aparte-radius-dialog, --aparte-radius-error, --aparte-radius-full, --aparte-radius-input, --aparte-radius-input-footer, --aparte-radius-lg, --aparte-radius-md, --aparte-radius-menu, --aparte-radius-popover, --aparte-radius-select, --aparte-radius-send-btn, --aparte-radius-sm, --aparte-radius-thinking, --aparte-radius-tooltip, --aparte-radius-unit, --aparte-radius-xl, --aparte-radius-xs, --aparte-range-intent, --aparte-range-thumb-shadow, --aparte-range-thumb-size, --aparte-range-track-height, --aparte-scrim, --aparte-scroll-btn-shadow, --aparte-scroll-btn-size, --aparte-scroll-rail-bar, --aparte-scroll-rail-block-end, --aparte-scroll-rail-block-start, --aparte-scroll-rail-gap, --aparte-scroll-rail-hit-size, --aparte-scroll-rail-room, --aparte-scroll-rail-share, --aparte-scroll-rail-tick-size, --aparte-scroll-rail-tick-thickness, --aparte-scroll-rail-width, --aparte-scrollbar-thumb, --aparte-scrollbar-track, --aparte-scrollbar-width, --aparte-secondary, --aparte-secondary-ink, --aparte-select-bg, --aparte-select-border, --aparte-select-border-hover, --aparte-select-chevron, --aparte-select-dropdown-bg, --aparte-select-dropdown-max-height, --aparte-select-min-width, --aparte-select-option-hover, --aparte-select-option-selected, --aparte-select-option-selected-text, --aparte-select-shadow, --aparte-select-spinner-size, --aparte-select-status-dot-size, --aparte-select-text, --aparte-select-z, --aparte-send-btn-size, --aparte-send-disabled-bg, --aparte-shimmer-base, --aparte-shimmer-shine, --aparte-sidebar-bg, --aparte-sidebar-inset, --aparte-sidebar-width, --aparte-skeleton-base, --aparte-skeleton-circle-size, --aparte-skeleton-rect-height, --aparte-skeleton-shine, --aparte-skeleton-text-gap, --aparte-skeleton-text-height, --aparte-skeleton-text-last-width, --aparte-slide-distance, --aparte-space-1, --aparte-space-2, --aparte-space-3, --aparte-space-4, --aparte-space-5, --aparte-space-6, --aparte-space-7, --aparte-space-8, --aparte-space-unit, --aparte-spinner-color, --aparte-spinner-size, --aparte-spinner-size-lg, --aparte-spinner-size-md, --aparte-spinner-size-sm, --aparte-spinner-thickness, --aparte-spinner-track, --aparte-split-handle-size, --aparte-split-hit-area, --aparte-split-max, --aparte-split-min, --aparte-split-position, --aparte-split-seam-width, --aparte-status-bg, --aparte-status-color, --aparte-status-dot-size, --aparte-status-font-size, --aparte-success, --aparte-success-border, --aparte-success-ink, --aparte-success-surface, --aparte-surface, --aparte-surface-1, --aparte-surface-2, --aparte-surface-3, --aparte-surface-hover, --aparte-switch-height, --aparte-switch-intent, --aparte-switch-thumb-inset, --aparte-switch-thumb-shadow, --aparte-switch-thumb-size, --aparte-switch-track, --aparte-switch-width, --aparte-tag-font-size, --aparte-tag-gap, --aparte-tag-padding, --aparte-tag-radius, --aparte-tag-remove-icon-size, --aparte-tag-remove-size, --aparte-text, --aparte-text-inverse, --aparte-text-muted, --aparte-text-secondary, --aparte-thinking-bg, --aparte-thinking-border, --aparte-thinking-content, --aparte-thinking-content-bg, --aparte-thinking-content-line-height, --aparte-thinking-content-max-height, --aparte-thinking-rail-width, --aparte-thinking-text, --aparte-thumb-name-color, --aparte-thumb-name-padding, --aparte-thumb-name-scrim, --aparte-thumb-radius, --aparte-thumb-remove-bg, --aparte-thumb-remove-bg-hover, --aparte-thumb-remove-color, --aparte-thumb-remove-inset, --aparte-thumb-remove-size, --aparte-thumbnail-bg, --aparte-thumbnail-border, --aparte-thumbnail-radius, --aparte-thumbnail-size, --aparte-thumbnail-size-lg, --aparte-thumbnail-size-sm, --aparte-timestamp-color, --aparte-timestamp-font-size, --aparte-tool-part-max-height, --aparte-tool-row-radius, --aparte-tool-spinner-size, --aparte-tooltip-bg, --aparte-tooltip-color, --aparte-tooltip-gap, --aparte-tooltip-max-width, --aparte-tooltip-shadow, --aparte-top-inset, --aparte-touch-target-size, --aparte-track, --aparte-viewport-padding, --aparte-waiting-dot-gap, --aparte-waiting-height, --aparte-warning, --aparte-warning-ink, --aparte-z-dropdown, --aparte-z-floating, --aparte-z-raised

Every class core emits carries the aparte- prefix — except language-* on a code block, the name highlighters read — so none collides with a class of yours.