Changelog
Cornerstone follows Semantic Versioning, and each release on this page follows the Keep a Changelog convention. Additionally, both components and features carry a status badge that tells you what to expect from their API.
| Status | What to Expect |
|---|---|
| A settled API you can build on. Breaking changes land only in major releases, and anything deprecated stays available through the next major version. Safe for production. | |
| Still taking shape. The API can change in any minor release, so it's ideal for prototyping — but risky for production code you can't easily update. |
0.11.0
Added
-
ssr-labeloncs-dialogandcs-drawer, the SSR hint for a slotted label, besidessr-footer.#298 -
agent-review's review config, with the review standards brought up to date. Repository tooling only; nothing that ships changes.
#330 -
A Go guide under Frameworks, and the
cornerstoneskill now ships it asreferences/frameworks/go.md.#323 -
Connections to the documentation site's Inspiration library glossary. Docs only; nothing that ships changes.
#303 -
The docs site's Inspiration page shell, with three draft entries. Docs site only; nothing that ships changes.
#305 -
Reasoning and Rule to the documentation site's Inspiration library glossary. Docs only; nothing that ships changes.
#301
Changed
-
Dependabot and lockfile-only pull requests need no changeset unless they move a published package's dependency range. Repository process only; nothing that ships changes.
#331 -
CI decides which jobs a change needs in one tested module, runs the token checks as one job only when a change can reach them, and checks each pull request's changeset against the changeset rules, read with the parser the release uses. Repository tooling only; nothing that ships changes.
#344 -
CI's documentation job caches Chromium by Playwright version, so a lockfile change no longer downloads it again. Repository tooling only; nothing that ships changes.
#343 -
CLAUDE.md lists the manual steps for releasing. Repository process only; nothing that ships changes.
#335 -
agent-review never approves the release pull request; a maintainer does. Repository tooling only; nothing that ships changes.
#336 -
CI deals the browser tests to six shards by each file's measured duration, so the shards finish together. Repository tooling only; nothing that ships changes.
#343 -
The root
CLAUDE.mdsays who approves and merges each kind of pull request. Repository process only; nothing that ships changes.#338
Removed
- The docs site's unused nginx image files. Docs tooling only; nothing that ships changes.
#333
Fixed
-
The docs site's Inspiration Screens axe check sets aside
cs-page's skip link underregion, an axe-core shadow DOM bug now in the accessibility gap register. Docs tooling only; nothing that ships changes.#304 -
A component's show or hide animation, and the
cs-after-showorcs-after-hidethat follows it, no longer ends early when an animation on content inside the component ends or is cancelled.#324 -
A changelog entry starts with a capital letter once the version step removes its category prefix.
#332 -
The docs site's page check skips code, so a
:::directive,::roadmapor Starlight aside markup shown in a code span or block no longer fails it. Docs tooling only; nothing that ships changes.#296 -
A
cs-dropdown-itemsubmenu reopened during its close animation stays on screen instead of being hidden when the animation ends.#342 -
A
cs-dropdownreopened during its hide animation listens for Escape and clicks outside again, and firescs-after-showrather thancs-after-hide.#341 -
cs-optionno longer waits on acs-comboboxelement that is never registered, a promise that held a callback per option for the life of the page. Its parent lookups now namecs-selectalone.#340 -
A loading
cs-buttonkeeps its label in the accessibility tree and setsaria-busy; the label is hidden withopacityrather thanvisibility, so slotted content is no longer hidden from assistive technology.#288 -
cs-input's password toggle is reachable from the keyboard and shows its own focus ring; the field's ring now appears only when the text input itself has focus, not when its inner buttons do. The clear and password-toggle buttons are square, with a pointer target the full height of the field.#289 -
cs-select's clear button spans the full height of the field, so a click near the top or bottom edge clears it; the glyph stays on the same trailing axis.#292 -
cs-switch's focus ring is drawn around the track instead of the thumb.#291 -
Every enabled
cs-accordion-itemheader is in the page's tab sequence instead of a roving tabindex that exposed only one. Arrow keys, Home and End still move between headers.#293 -
Visually hidden content inside a component's shadow root, such as a live region, is anchored at the top-left of its containing block.
#297 -
cs-dialogandcs-drawertake their accessible name from thelabelattribute or slot only when one is present, and from the attribute througharia-labelwhenwithout-headerhides the heading.#298 -
cs-dropdownno longer pulls focus back to its first item when its opening animation ends. Arrow keys pressed while it opens, a focused input inside the menu, nativeautofocus, and focus moved elsewhere by acs-showhandler are all kept, and Enter selects the item that actually has focus.cs-after-showis no longer emitted when the dropdown closes before it finishes opening.#299 -
<cs-time-input>no longer deactivates its popup when reopened during the close animation, and no longer emitscs-after-showor moves focus into the columns when closed during the open animation.#337 -
cs-tooltipstays open when itscs-hideevent is cancelled, soopenmatches what is on screen and the nexthide()works, and moving an open tooltip in the DOM no longer replays itscs-hideandcs-showevents.#328
0.10.0
Breaking
-
Every component custom property is renamed to
--cs-<component>-<property>or one of seven shared names (--spacingon<cs-card>is now--cs-card-spacing), and none is set on the host, so each can be set on the page, a section or one element. The layout utilities'--min-column-size,--flank-sizeand--content-percentagebecome--cs-grid-min-column-size,--cs-flank-sizeand--cs-flank-content-percentage, and the themes no longer set--cs-tooltip-*, so your own CSS that reads one outside a<cs-tooltip>gets nothing.#262 -
Components no longer set unprefixed custom properties on their host for app CSS to inherit.
<cs-page>drops--scroll-margin-top(anchors still clear the header) and stops writing a footer height, and<cs-qr-code>'s--corner-coloris now the documented--cs-qr-code-corner-color.#262
Added
-
cs-buttontakesorientation="vertical"to stack itsstartslot above the label andendbelow it, spaced by--cs-button-stacked-gap,--cs-button-stacked-padding-blockand--cs-button-stacked-padding-inline. It reads--cs-button-justify-contentto align a one-row button's content. Buttons in a horizontalcs-button-groupshare one height. The Button page gains Stacked, Navigation Bar and Content Alignment examples.#261 -
The docs site now runs axe on every Inspiration Screen state file in light and dark mode after it builds, and fails on any violation, missing file or page error. Docs tooling and an unshipped page only; nothing that ships changes.
#257 -
glossary terms for component properties and shared properties.
#228
Changed
-
the test suite runs on Playwright 1.55.1 (Chromium 140, Firefox 141, WebKit 26.0) instead of the pinned 1.52.0, which closes GHSA-7mvr-c777-76hp. No package output changes.
#282 -
The roadmap lists a fourth 1.0.0 entry criterion, that the known defects in what ships are fixed. Docs site only; the package's output is unchanged.
#278
Fixed
-
The tooltip placement example gives each button visible text, so none relies on its tooltip for a name. The accessibility and browser support pages now claim only what the test record shows, and a docs check fails the build when a contrast ratio or colour the accessibility page prints stops matching the shipped themes.
#260 -
The Accessibility page scopes its reduced-motion claim to show and hide animations, corrects its focus-indicator contrast, and lists the remaining contrast and motion gaps.
#262 -
A failed agent-file step now fails the build. An error while writing the agent skills or
llms.txtexits non-zero instead of 0.#277 -
cs-buttonwithwith-caretkeeps acs-badgein itsendslot, so it shows and its text joins the button's accessible name; the caret still hides anything else there.#261 -
the Accessibility page drops the closed
cs-calloutSSR gap; docs site only, the package's output is unchanged.#276 -
cs-callout's variant accessibility check is one test per variant instead of all seven in one.#280 -
CI runs the component tests in Playwright's container image instead of installing browser libraries on each shard, so a slow Ubuntu mirror no longer stalls them. No package output changes.
#264 -
The badge, button, callout, tag, toast item and toast tests now cover the
highlightandinformationvariants. No package output changes.#275 -
the docs and the shipped agent skills now show the
highlightandinformationvariants. The Badge, Button, Callout, Tag, Toast and Toast Item examples include both, and the Theming, Color Variants and Native Styles pages list all seven roles.#274 -
the docs home page and the shipped skill's installation reference no longer say the site is being ported.
#279 -
the
<cs-qr-code>image examples in the docs and agent skill pointed at logos that don't exist, so they drew no image. They now use the Cornerstone mark.#262 -
Every animation that reads
--cs-show-durationor--cs-hide-durationnow finishes at once when the user prefers reduced motion, including<cs-time-input>'s popup. Anchors in a<cs-page>clear a sticky banner as well as the header, and<cs-skeleton>stays visible in forced colors mode.#262 -
:::note,:::tip,:::cautionand:::dangerrender as styled callouts on the docs site; in the shipped skill, four suggestions now read Tip instead of Info.#279 -
Calling
openSubmenu()orcloseSubmenu()on<cs-dropdown-item>runs the transition once, so a submenu closed that way animates instead of vanishing.#262 -
Components no longer read unprefixed custom properties a page happens to define, such as
--colorin<cs-color-picker>and--box-shadowin<cs-input>. A one-row<cs-textarea>is now as tall as an input, and a dropdown submenu closes over--cs-hide-durationinstead of the show duration.#262
0.9.0
Added
-
cs-text-truncate-2throughcs-text-truncate-5cut text to that many lines with an ellipsis, andcs-text-truncate-1does the same ascs-text-truncate.#256 -
The docs site's component check now also reads the HTML examples under
public/assets/examples/, so an unknowncs-*tag in a screen fails the build. Docs tooling only; nothing that ships changes.#237
Changed
<cs-badge>no longer announces its text as a live region, so its text now joins the accessible name of the button, link or other control it is in. Apps that need a change announced keep their own live region outside the control. The Badge and Button pages, and so the shippedcornerstoneskill, say so.#223
Fixed
-
The accessibility page's Known gaps table now records that
cs-callout's variant axe test is skipped under SSR. Docs only; nothing that ships changes.#234 -
The agent skill's
SKILL.mdnow lists the themes and palettes that ship (Cru, FamilyLife and Default) and says the loaded stylesheet picks the theme, not a class.#251 -
cs-zoomable-frame'swith-theme-syncdocs no longer call the classes it copies theme selectors, and say the iframe must load the host page's theme stylesheet.#254
0.8.1
Added
-
Cru and FamilyLife choices in the docs site's header menu, which the palette and color token pages follow. The shipped skill's Theming and Color tokens pages change to match.
#253 -
a FamilyLife theme preview on the Built-in Themes page, under Cru's. Docs site only; the package's output is unchanged.
#250
0.8.0
Added
- a FamilyLife theme,
styles/themes/fl.css. Load it aftercornerstone.cssto switch a site to FamilyLife; Cru stays the default.#239
Fixed
-
The FamilyLife theme now asks for the
Akkuratfamily that FamilyLife's sites load, and sets semibold and bold to 700 so buttons, actions and form labels render in Bold. The theming docs also say which cuts a site supplies.#246 -
Component tests no longer wait a fixed time for an animation or a frame. They finish the animation, or step a faked frame clock, so a busy CI runner can't fail them, and check each animation's configured length against its duration token instead of timing it. Tests only; the published package is unchanged.
#235 -
The Cornerstone agents and review standards now say the loaded stylesheet picks the theme, not a
cs-theme-*class.#249 -
The shipped theming, color and typography docs and the themes reference now say the loaded stylesheet picks the theme, not a
cs-theme-*class, and cover FamilyLife's theme.#247 -
The design skill's theming reference no longer says a
cs-theme-*orcs-palette-*class switches or scopes a theme, and it lists FamilyLife's 10 hues.#245
0.7.1
Added
- a glossary for the documentation site's Inspiration library. Docs only; nothing that ships changes.
#214
Changed
- each release in
CHANGELOG.mdgroups its entries under a heading per category (Added, Fixed, ...) instead of by bump level.#232
0.7.0
Added
-
restart()on<cs-animation>, which rewinds the animation to the start and plays it again, whether it has finished, is paused or is still running.#199 -
<cs-color-picker>swatches acceptvar(--cs-*)design tokens, with an optional fallback, resolved against the picker each time it opens.#204 -
<cs-page>documents itsdesktop-navigation-*,mobile-navigation-*andskip-to-content-targetslots. The Page docs also cover when each navigation slot shows, presetting--header-heightto stop a layout shift, and that there is no rule between regions yet.#198 -
the Button page, and so the shipped
cornerstoneskill, shows an icon button with a badge in theendslot, the count in the icon's label, and how to announce a count the user changed.#192 -
the installation guide, and so the shipped
cornerstoneskill'sinstallation.md, shows the.claude/settings.jsonthat installs the Cornerstone plugin for Claude Code.#172 -
a "Porting an existing app from another framework" section to the
cornerstone-designagent skill, right after its design-system-first ladder.#190 -
the Details page, and so the shipped
cornerstoneskill, now notes thatopenalready holds the new state inside aclickhandler, and shows how to track open and close withcs-showandcs-hideinstead.#188 -
a Tailwind CSS guide under Frameworks, for running Cornerstone Components and Tailwind v4 on the same page, and the
cornerstoneskill now ships it asreferences/frameworks/tailwind.md.#196 -
the Reducing FOUCE page now warns that
cs-cloakon<html>or<body>re-hides the page whenever an undefined custom element appears later, and the Rails page points to it. Thecornerstoneskill's copies of both pages change too.#187 -
the Page docs now list the layout
<cs-page>gives each slot wrapper. They and thecornerstone-designskill's page-layout reference show a rail beside a sidebar inslot="navigation"built from layout utilities.#195 -
the Rails guide and the
cornerstoneskill'sreferences/frameworks/rails.mdnow warn that a Stimulus action on acs-*element must name its event (click->modal#open, notmodal#open), with a before/after example.#186 -
code review standards in
docs/standards/, and ast-grep rules in the component library'snpm run lint. Tooling only; nothing that ships changes.#205
Removed
- leftover upstream "moved over from Pro" callouts on the Page, Toast and Toast Item pages, and the Pro tier line in the Accordion example.
#171
Fixed
-
the button page's Customizing example now builds its pink shadow from the shadow geometry longhands. It appended a colour to
--cs-shadow-m, which already ends in one, so the declaration held two colours, was invalid, and the shadow never rendered.#169 -
the
<cs-color-picker>labeldocs no longer say the label is hidden; it is displayed.#204 -
generated brand themes now define
--cs-color-shadow, so--cs-shadow-s/-m/-lresolve again. Dialogs, drawers, dropdowns, popovers, selects, cards and toasts had been rendering with no shadow under the Cru theme.#167 -
the
cornerstone-designagent skill's links to the documentation site. Fourteen of them pointed under a/docs/path the site does not have, so each one was a 404.verify:skillsnow checks absolute docs links as well as relative ones.#185 -
cs-detailsand the native<details>styles now make the summaryborder-box, so an icon-onlycs-buttoninside it stays square.#202 -
the divider page and the
--spacingdescription now say that as a direct child of a layout utility such ascs-stackorcs-cluster,--spacinghas no effect and the container'scs-gap-*sets the space around the divider. The page's vertical divider example no longer draws its lines with no space around them.#194 -
the documentation site now builds inside a checkout nested in another one, such as a worktree under
.claude/worktrees/, and no longer drops ratios like "3:1" from its pages. Docs site only; the package's output is unchanged.#201 -
the agent and design skill maintainer READMEs now say the skills are generated by
npm run build, not an Eleventy build, and the rootCLAUDE.mdand the docs standard no longer saycheck-docs-url.jscatches every literal address.#191 -
check-docs-url.js --fixnow re-points today's docs address after a move, and a second run no longer doubles the path.KNOWN_ROOTSlists the currenthomepage, and the check fails when it is missing.#189 -
<cs-drawer>'s summary and docs now say it slides in from an edge of the viewport, not of a container.#193 -
packages/components/CLAUDE.mdnames event classesCs<Name>Event, as the code does, and says to add a changeset instead of editing the changelog page. Contributor guidance only; nothing that ships changes.#222 -
<cs-page>now puts back its measured slot heights, such as--header-height, when a DOM morph (Turbo 8, idiomorph, Alpine) resets itsstyleattribute.#200 -
the
cornerstoneskill's list of valid<cs-page>slots now includes every slot the page renders, read from the manifest.#198 -
<cs-select>,<cs-tooltip>and<cs-popover>no longer hide their content when reopened during the close animation, and no longer emitcs-after-showwhen closed during the open animation. Cancellingcs-hideon<cs-select>now keeps it open.#197
0.6.2
Fixed
- the Support page's "Open an issue" button now links to the template chooser at
/issues/new/chooserather than the bare/issues/new.#165
0.6.1
Added
-
A public roadmap at
/resources/roadmap, generated from the repository's GitHub milestones.#162 - One card per planned release, with curated copy and a count of open questions — no percentage, since a release with nothing open has not been scoped rather than finished
- Only issues carrying the
roadmaplabel render a title; the tracker's decisions stay off the page - the Support page claimed the packages are published privately. Both are public on npm; the support model is what is internal
Changed
- both packages now share a single version number.
@cruglobal/cornerstone-componentsmoves from0.1.3to align with the design-system package —0.2through0.5never existed, so no published version is affected.#163
0.1.3
Added
-
A "Why Web Components?" section on the Frameworks page.
#137 - A table of the six platforms Cru builds on, and how far Cornerstone reaches each
- The three layers: tokens reach everything, components are the web layer, platform-native implementations are a possible third
- The trade-offs accepted, and the principles the library was specified against
- Rails and WordPress badges corrected from "Tested" to "Testing"
Fixed
-
Every component's
@sincenow reads0.1, the version it actually shipped in.#130 The tag carried Web Awesome's numbers —
1.0through3.11across the 70 components — which reached the Custom Elements Manifest, and from there the Since badge on every reference page. -
The changelog page lists released versions instead of one
## Unreleasedblock.#138 0.1.1and0.1.2are generated fromCHANGELOG.md;0.1.0stays hand-written as the fork- Each entry's category renders as its bullet icon, with a legend
- Issue and pull request references render as badges
- Duplicate category blocks merged, and version anchors fixed to
#v0-1-2
0.1.2
Changed
- Tooling only — nothing that ships changes. The component test suite is sharded across four CI runners and Playwright's browsers are cached, cutting the gate from ~29 minutes to ~10.
#114
Fixed
- Stop
waitForEventwaiting forever. It now takes a timeout, defaulting to five seconds, and resolves on it rather than rejecting — reaching 14 call sites across eight components.#113
0.1.1
Added
- Publish the component library to npm as
@cruglobal/cornerstone-components— public, with provenance — and document how to install it.prepublishOnlyisnpm run buildrather thannpm run verify, because the release runner installs no browsers.#110
Fixed
- Delete the root
.npmrc, whoseprovenance=truemade every first publish in this workspace impossible.#112
0.1.0
Breaking
- The default icon library is now Material Symbols, not Font Awesome. Every icon name changes, and Material Symbols names are snake_case:
xmarkisclose,chevron-downiskeyboard_arrow_down,gearissettings,ellipsisismore_horiz. A name that does not exist renders nothing rather than a fallback glyph, so audit names rather than assuming they carried overfamilynow selects the style —sharp(the default),outlinedorrounded— in place of Font Awesome’sclassic/brands/duotone/sharp-duotonevariantnow selects the cut —regular(the default) orfill— in place ofthin/light/regular/solid. The stroke weight moved to the newweightproperty- Brand logos moved from
family="brands"tolibrary="brands"
- Font Awesome kit codes are gone.
setKitCode(),getKitCode()and thedata-fa-kit-codeattribute are removed, along with the Pro and Pro+ icon families they unlocked. Material Symbols has no paid tier - Duotone support is gone.
<cs-icon>’sswap-opacityattribute and its--primary-color,--primary-opacity,--secondary-colorand--secondary-opacitycustom properties are removed. Material Symbols draws a single path, so there is no second layer to colour getIconFolder()is replaced bygetIconStyle(),getIconWeight()andgetIconFileName(), which map a family to its style folder, snap a weight to a published one, and apply the-fillsuffix. Custom resolvers now also receive the weight as a fifth argumentsetIconPath()expects a different layout. Self-hosted icons are now read from{path}/{weight}/{style}/{name}.svg, mirroring the@material-symbols/svg-{weight}packages, rather than Font Awesome’s{path}/{folder}/{name}.svg- Import specifiers no longer contain
dist.@cruglobal/cornerstone-components/dist/components/button/button.jsis now@cruglobal/cornerstone-components/components/button/button.js.distis a build directory, not public API - The two builds moved and were renamed for what they are.
dist/is nowdist/unbundled/anddist-cdn/is nowdist/bundled/;distis only a container. A CDN is one way to fetch the bundled build, not a property of it - The version resets to
0.1.0.3.11.0was Web Awesome’s number, inherited rather than chosen.0.xstates plainly that the cross-cutting API policies still to land can change anything - Node 22 or newer is now required, up from
>=14.17.0. Node 14, 18 and 20 have all reached end of life - The long-form
sizevalues are gone.size="small","medium"and"large"no longer work — uses,mandl. Upstream had already deprecated them with a runtime warning for Shoelace and Web Awesome 2.x users; this package has never been published, so there was nobody left to migrate. Thesizeaxis is now closed toxs s m l xlon all 21 components that expose it <cs-dropdown-item>spells its neutral variantneutral.variant="default"is nowvariant="neutral", matching the five other components with avariant<cs-accordion>’s four events are renamed tocs-accordion-expand,cs-accordion-after-expand,cs-accordion-collapseandcs-accordion-after-collapse. They previously sharedcs-collapseandcs-expandwith<cs-tree-item>under incompatible contracts — cancelable and carryingdetail: { item }on the accordion, neither on the tree item — and only the tree item’s shape was registered, soevent.detail.itemwas typed as non-existent<cs-pagination>’s events follow theafterconvention used by every other paired event in the library. The cancelable veto is nowcs-page-change(wascs-before-page-change) and the completion event iscs-after-page-change(wascs-page-change)
Added
- Added
--icon-scaleto<cs-icon>, which scales the artwork inside the canvas without moving the canvas. It defaults to1.2— Material Symbols pads each icon into a 24dp box with a 20dp live area, and 24 ÷ 20 cancels that, so icons keep the optical size Font Awesome’s ink-cropped artwork had. It inherits, so an ancestor can retune every icon beneath it; set it to1for the native size - Added a
brandsicon library for the logos Material Symbols does not draw —github,discord,bluesky,mastodon,threads,x-twitter,angular,react,svelte,vuejsandfont-awesome. The SVGs come from Simple Icons (CC0-1.0) and are inlined, so they resolve with no network request - Added a
weightproperty to<cs-icon>, exposing Material Symbols’ 100–700 stroke-weight axis. It defaults to400, the weight Cru’s brand guidelines specify; values in between snap to the nearest published weight. The inlinedsystemlibrary is baked at the same weight so component chrome matches - Added
sideEffects: truetopackage.json, recording that component registration, translations and stylesheets are all side-effectful and must never be tree-shaken - Added a
bundled/export subpath, so the bundled build is reachable rather than shipped-but-unimportable - Added
LICENSE.mdandNOTICEto the published package - Published to npm as
@cruglobal/cornerstone-components— public, with build provenance, released by changesets alongside@cruglobal/cornerstone-design-system
Changed
authoris nowCru Global, naming the organisation rather than one of its peer brands<cs-slider>now replaces a non-numericvaluewith the midpoint ofminandmax, matching<input type="range">; it previously becameNaNprepublishOnlynow runsnpm run buildrather thannpm run verify. The release runner installs no browsers, so the three-engine Playwright run that endsverifywould have failed every publish — and CI has already run that gate on the commit being releasedcs-intersectnow bubbles. It wasbubbles: falsewithcomposed: true, which cannot do anything —composedonly matters for an event that propagates- Cornerstone Components now states a conformance target of WCAG 2.2 Level AA, with the floor it meets, how each claim is verified, and a table of seven named gaps. The accessibility page previously named no standard at all
- Every component with an interactive surface now runs axe in its test suite, across all three engines and both render modes — 59 of 70 components, up from 46. The 11 exempt are utilities that render nothing interactive
- WebKit now runs in CI. It was excluded whenever
CI === 'true', so CI reported green on a suite that was red locally - Improved accessibility of
<cs-dropdown>by addingaria-posinsetandaria-setsizeso supportive screen readers can correctly announce the number of dropdown items
Removed
- Removed 17 event classes that no component dispatched — every one an orphan of a Pro component, left registered in
GlobalEventHandlersEventMapand exported as public API.<cs-data-grid>’s thirteen (cs-cell-click,cs-cell-contextmenu,cs-column-move,cs-column-pin,cs-column-resize,cs-column-visibility-change,cs-data-error,cs-data-request,cs-filter-change,cs-row-collapse,cs-row-expand,cs-row-select,cs-sort-change), pluscs-focus-dayandcs-view-change,cs-video-change, andcs-create- The real event surface is 41 classes, not 58
- Removed the Pro tier throughout: the
free/prosplit in the skill verifier and agent-file generator, the Pro components, themes and palettes named in the shipped skills, and the purchase and support links to channels Cru does not run- The skills had claimed
<cs-toast>and<cs-toast-item>were Pro-only, telling agents not to use two components this library ships
- The skills had claimed
- Removed dead scripts and files:
VERSIONS.txt,scripts/update-root-version.js,vercel.sh, thepublish-alpha-cdnandstart:alphascripts, and the unused__WEBAWESOME_VERSION__build token - Removed the
Fonticons, Inc.copyright banner from every built file, replacing it with a Cornerstone notice pointing atLICENSE.mdandNOTICE - Removed the deprecated
baseCSS part and thelabelalias, finishing the migration to component-named partsbaseis gone from the 29 components that still rendered it — style the part named after the component instead (button,details,input-wrapper)<cs-button-group>and<cs-tab-panel>carriedbaseon a<slot>, which parts don’t belong on, and now expose none — style the host element- Renamed the 15 forwarded names that embedded it:
close-button__base→close-button__button,base__popup→tooltip__popup, and so on - Dropped three forwards pointing at parts their child never exposed:
<cs-select>’stag__base, and<cs-page>’sdrawer__overlayanddrawer__panel - The
labelalias is gone from the six form controls that also exposedform-control-label
Fixed
- Fixed
<cs-dialog>and<cs-drawer>nudging their siblings when opened. The host stayed in normal flow while open, so wherever it sat in a flex or grid container it counted as an item and contributed a gap — in the docs’ header that shifted the search button 12px to the left for as long as the dialog was open. The host is now out of flow, which it can be because the visible panel is a native<dialog>in the top layer. It keeps a full-viewport width rather than collapsing, sinceRenderedWatcherand the panel’s ownmax-widthboth resolve against that box - Fixed a long navigation losing its bottom padding in
<cs-page>.[part~='navigation']washeight: 100%, which pinned it to the scroll container’s visible height, so a navigation taller than the viewport overflowed that box rather than growing it — and padding on a box that does not grow renders at the box edge, mid-scroll. The top padding showed and the bottom one did not, leaving the last link flush against the bottom of the scroller. It is nowmin-height: 100%, so a short navigation still fills the column and a long one grows - Fixed slotted-content spacing collapsing under a page’s universal margin reset. A slotted element belongs to the outer tree, so a normal document declaration beats the component’s own
::slotted()rule whatever the specificity — any* { margin: 0 }, such as Starlight’s or Tailwind’s Preflight, silently removed the gap. 22 declarations across<cs-badge>,<cs-breadcrumb-item>,<cs-button>,<cs-dialog>,<cs-drawer>,<cs-input>,<cs-option>,<cs-select>,<cs-tab>,<cs-tab-group>and<cs-tree-item>now defend themselves the way<cs-callout>already did - Fixed
jsdelivrpointing at the unbundled build, which cannot load in a browser because its dependencies stay as bare specifiers - Fixed
npm run create, whose template imported a base class module that does not exist — every scaffolded component was broken - Fixed
verify:skills, which had been failing since the monorepo was collapsed - Fixed
.prettierignore, whose every pattern waspackages/**/*/…and so matched nothing —dist,_siteand the tsconfigs were silently unignored, and 60 source files had gone unformatted since the rename - Removed duplicate
markedand@lit/reactentries fromdevDependencies, wheremarkedalso disagreed with thedependenciesrange - Fixed five custom properties that named tokens no theme defines, so every style depending on them silently did nothing
<cs-input>,<cs-known-date>and native file inputs, textareas and selects now size their value text with the control rather than at the browser’s default<cs-page>’s skip link is rounded again<cs-dialog>and<cs-drawer>space their footer buttons again
- Fixed a
<cs-dropdown>submenu closing while the pointer was still inside it. The 100 ms grace period that lets the pointer travel diagonally from the parent item into the submenu re-checked hover state from values captured before the delay, and entering that branch already proved both were false — so the re-check always passed and the submenu closed regardless. Hover is now read inside the timeout - Fixed the icon-button accessibility warning never firing.
<cs-button>asked whether the slotted<cs-icon>’slabelwasundefined, butlabeldefaults to''and so never is; it now asks for a non-empty string, so an icon-only button with no accessible name warns as intended- The three the warning found are fixed: the page-layout example in the design skill, and the search and theme-picker buttons in the documentation site’s header, which carried an
aria-labelon<cs-button>that never reached the inner<button>and so left both with no accessible name
- The three the warning found are fixed: the page-layout example in the design skill, and the search and theme-picker buttons in the documentation site’s header, which carried an
- Fixed
<cs-toast>hanging off the side of narrow viewports attop-centerandbottom-centerplacements. The host was a fixed28remwith nomax-width, and centered placements offset it by half its own width, so on a 390px viewport 29px of the stack sat off-screen - Fixed
<cs-carousel>’s loop test,<cs-toast>’s stack-visibility test and<cs-copy-button>’s hover test, which were the inherited failures that turned out to be a coalescedscrollend, a race against teardown, and a too-short wait budget respectively - Fixed native table row headers (
<th scope="row">) rendering at a smaller font size than the cells beside them, which knocked their text out of vertical alignment. The smaller type is now scoped to column headers - Fixed the focus ring on
<cs-otp-input>animating its width and offset, which re-ran the animation on every keystroke as the active segment advanced. It now fades in at a fixed size, matching<cs-input>and the other form controls

