Icons
Every glyph is a string of SVG. No runtime, no component, no framework — assign it and you are done.
import { searchIcon } from '@aparte/core/icons';
const button = document.createElement('button');button.innerHTML = searchIcon;Each one carries class="aparte-icon", so --aparte-icon-size sizes it wherever it
lands. Set that variable on any ancestor and every glyph below follows:
.my-toolbar { --aparte-icon-size: 18px; }The built-in set — 31 glyphs
Section titled “The built-in set — 31 glyphs”These are the ones aparté draws itself, so each is also a provider key: give
setIconProvider a function under that name and yours is used instead.
import { aparteGlobalConfig } from '@aparte/core';import { historyIcon } from '@aparte/core/icons';
aparteGlobalConfig.setIconProvider({ retry: () => historyIcon });| Export | Provider key | Meaning | |
|---|---|---|---|
copyIcon | copy | Copy button icon — two sheets, the front one over the back one’s corner. | |
checkIcon | check | Success/check icon | |
sendIcon | send | Send message icon — a paper plane with its fold line. | |
loadingIcon | loading | Loading/spinner indicator | |
errorIcon | error | Error indicator — a ring with an exclamation. | |
expandIcon | expand | Expand/show more icon | |
collapseIcon | collapse | Collapse/show less icon | |
terminalIcon | terminal | Terminal/command prompt icon — a prompt chevron and a cursor line. | |
paperclipIcon | paperclip | File attachment / paperclip icon | |
imageIcon | image | Image file icon — a frame, a sun, a hill. | |
fileIcon | file | Generic file icon — a sheet with a folded corner. | |
scrollDownIcon | scrollDown | Scroll to bottom button icon | |
retryIcon | retry | Retry / regenerate icon — an arc back onto itself. | |
editIcon | edit | Edit / pencil icon | |
thumbUpIcon | thumbUp | Thumbs up / positive feedback icon | |
thumbDownIcon | thumbDown | Thumbs down / negative feedback icon | |
prevBranchIcon | prevBranch | Previous branch arrow | |
nextBranchIcon | nextBranch | Next branch arrow | |
toolIcon | tool | Tool call indicator (wrench) | |
closeIcon | close | Close / failed / rejected / remove (✕) | |
stopIcon | stop | Stop / halt streaming (■) | |
pauseIcon | pause | Paused — two bars, filled like the stop square it sits beside in the tool row’s vocabulary | |
infoIcon | info | Informational notice (ⓘ) | |
archiveIcon | archive | Archive a conversation | |
unarchiveIcon | unarchive | Restore an archived conversation | |
downloadIcon | download | Download / save to disk | |
moreIcon | more | Overflow menu of a row (⋯) — the conversation list’s actions button. | |
pinIcon | pin | Pin a conversation to the top of the list — a pushpin: head, body, needle. | |
trashIcon | trash | Delete — a bin with its lid and two slats. | |
menuIcon | menu | Open a navigation drawer (☰) | |
alertTriangleIcon | alertTriangle | A warning (triangle) |
The extended set — 38 glyphs
Section titled “The extended set — 38 glyphs”Glyphs aparté never draws, for the toolbar, drawer or settings panel around your chat.
They live behind their own entry point on purpose. The built-in set above is read by a computed key, so a bundler has to keep all of it; anything added there would ship to every consumer, used or not. These are individual exports instead — import three, pay for three, and pay nothing at all if you never open the module.
plusIconminusIconsearchIconfilterIconmoreHorizontalIconmoreVerticalIconchevronLeftIconchevronRightIconarrowUpIconarrowRightIconexternalLinkIconlinkIconfolderIconcodeIconclipboardIconsaveIconuploadIconsettingsIconuserIconbotIconsparklesIconcpuIcondatabaseIconglobeIconkeyIconmicIconmicOffIconeyeIconeyeOffIconclockIconhistoryIconstarIconshareIconcheckCircleIconxCircleIconmessageSquareIconsunIconmoonIconBringing your own
Section titled “Bringing your own”Nothing here is required. An icon provider takes any HTML string, so a font-icon set or another library works just as well:
import { aparteGlobalConfig } from '@aparte/core';
aparteGlobalConfig.setIconProvider({ copy: () => '<i class="fas fa-copy"></i>', check: () => '✓',});Every key is optional — anything you leave out falls back to the built-in drawing.
The shapes are drawn on the grid most icon sets share (24×24, currentColor, round
caps, a 2-unit stroke), and the names are the plain words for what each one shows —
so swapping in a set of your own changes the import and nothing else. Nothing is
imported from anywhere: @aparte/core has zero third-party dependencies, and the
drawings are its own.