---
meta:
title: Changelog
description: Changes to each version of the project are documented here.
---
# Changelog
Shoelace follows [Semantic Versioning](https://semver.org/). Breaking changes in components with the Stable badge will not be accepted until the next major version. As such, all contributions must consider the project's roadmap and take this into consideration. Features that are deemed no longer necessary will be deprecated but not removed.
Components with the Experimental badge should not be used in production. They are made available as release candidates for development and testing purposes. As such, changes to experimental components will not be subject to semantic versioning.
New versions of Shoelace are released as-needed and generally occur when a critical mass of changes have accumulated. At any time, you can see what's coming in the next release by visiting [next.shoelace.style](https://next.shoelace.style).
## Next
- Improved performance of `` when using a large number of options [#2318]
- Updated the Japanese translation [#2329]
- Adjust `` to create the toast stack when used only, making it usable in SSR environments. [#2359]
- Adjust `scrollend-polyfill` so it only runs on the client to make it usable in SSR environments. [#2359]
- Fixed a bug with radios in `` focus trapping.
## 2.19.1
- Fixed a bug in `` that prevented changing tabs by setting `active` on `` elements [#2298]
## 2.19.0
- Added Norwegian translations for Bokmål and Nynorsk [#2268]
- Added Ukrainian translation [#2270]
- Added community maintained docs for Svelte [#2262]
- Fixed a bug in `` when setting the value property before the element connected [#2255]
- Fixed a bug in `` where it was using the wrong tag name [#2287]
- Fixed a bug in `` that caused the navigation icons to be reversed
- Fixed a bug in `` that caused interactive elements to be activated when dragging [#2196]
- Fixed a bug in `` that caused out of order slides when used inside a resize observer [#2260]
- Fixed a bug in `` that allowed tabbing into the rating when readonly [#2271]
- Fixed a bug in `` where it was using the wrong tag name [#2287]
- Fixed a bug in `` that prevented label changes in `` from updating the controller [#1971]
- Fixed a bug in `` that caused the placeholder to display incorrectly when using `placeholder` and `multiple` [#2292]
- Fixed a bug in `` that caused a console warning in Firefox when typing [#2107]
- Improved accessibility of `` by adding support for Enter to align with ARIA APG's [window splitter pattern](https://www.w3.org/WAI/ARIA/apg/patterns/windowsplitter/) [#2234]
- Improved performance of `` by skipping positioning logic when tooltip isn't shown [#2064]
- Updated many dependencies to their latest versions
## 2.18.0
- Added Finnish translation [#2211]
- Added the `.focus` function to `` [#2192]
- Fixed a bug in `` that caused an error when removed from the DOM too quickly [#2218]
- Fixed a bug with `` not respecting its initial value [#2204]
- Fixed a bug with certain bundlers when using dynamic imports [#2210]
- Fixed a bug in `` causing scroll jumping when using `resize="auto"` [#2182]
- Fixed a bug in `` where the title attribute would show with redundant info [#2184]
- Fixed a bug in `` that caused multi-selects without placeholders to have the wrong padding [#2194]
- Fixed a bug in `` that caused a memory leak in disconnected elements [#2226]
- Fixed a bug in `` that caused an exception in an edge case using Edge + autofill [#2221]
- Improved the behavior of navigation dots in `` [#2220]
- Updated all checks for directionality to use `this.localize.dir()` instead of `el.matches(:dir(rtl))` so older browsers don't error out [#2188]
## 2.17.1
- Fixed a bug in `` not applying the mutator when loading multiple icons of the same name from a sprite sheet [#2178]
- Fixed a bug in `` that made the suffix slot collide with the clear button [#2145]
- Improved performance of `` by waiting for the active state before spinning up the positioning library [#2179]
## 2.17.0
- Added the `fixed-scroll-controls` attribute to `` [#2128]
- Added support for using `` in `` default slot [#2015]
- Added the `countdown` attribute to `` to show a visual indicator before the toast disappears [#1899]
- Fixed a bug with morphing and DOM diffing that would cause elements with reflected initial attributes to not reset [#2177]
- Fixed a bug that caused errors to show in the console when components disconnect before before `firstUpdated()` executes [#2127]
- Fixed a bug that made pagination work incorrectly in `` [#2155]
- Fixed a bug in `` that caused the active tab indicator to be the wrong size when the tab's content changes [#2164]
- Fixed a bug in `` that caused the prefix icon to have incorrect spacing [#2167]
- Fixed a bug in `` that prevented link buttons from being disabled [#2151]
## 2.16.0
- Added the Czech translation [#2084]
- Added the `base__popup` part to `` [#2078]
- Added the `suffix` slot and corresponding part to `` [#2063]
- `` `closable` property now reflects [#2041]
- `` now implements a proper "roving tabindex" and `` is no longer tabbable by default. This aligns closer to the APG pattern for tabs [#2041]
- Fixed a bug in `` that did not allow checkboxes to be checked that were in submenus [#2116]
- Fixed a bug in `` / `` that was accidentally detecting overflows and showing a scrollbar [#2121]
- Fixed a bug in the submenu controller that prevented submenus from rendering in RTL without explicitly setting `dir` on the parent menu item [#1992]
- Fixed a bug where `` would announce the full time instead of the relative time in screen readers
- When calling `customElements.define` we no longer register with anonymous classes by default [#2079]
- When avatar image load fails, send error event [#2122]
## 2.15.1
- Fixed a bug in `` where if a click did not contain a `` it would show a console error [#2009]
- Fixed a bug in `` that caused it not to recalculate it's position when going from being `display: none;` to its original display value [#1942]
- Fixed a bug in `