# Buefy Changelog ## [3.0.11](https://github.com/buefy/buefy/compare/v3.0.10...v3.0.11) ### Enhancements - [#4361](https://github.com/buefy/buefy/pull/4361) Prevent overlapping stacked sticky `BTable` columns by computing cumulative `left` offsets, and add a `$table-checkbox-cell-width` SCSS variable (exposed as `--bulma-table-checkbox-cell-width`) instead of a hardcoded 40px checkbox column width. - [#4295](https://github.com/buefy/buefy/issues/4295) Add ARIA `listbox`/`option` support to `BDropdown`/`BDropdownItem` via `aria-role="listbox"` and `aria-role="option"`, so a dropdown can act as an accessible select replacement, with `aria-selected` exposed on active items. ### Fixes - [#4264](https://github.com/buefy/buefy/issues/4264) Fix `BDatepicker` range boundary detection to compare dates without time components, so boundaries with time no longer incorrectly count as "within" the range. - [#4106](https://github.com/buefy/buefy/issues/4106) [#3170](https://github.com/buefy/buefy/issues/3170) Fix `BNumberinput` stripping the minus sign while typing a negative decimal (e.g. `-0.5`) by preserving the raw `-0` input state. - [#2850](https://github.com/buefy/buefy/issues/2850) Fix `BTable` sortable columns hiding the sort icon when using a custom header slot. - [#4039](https://github.com/buefy/buefy/issues/4039) Fix `BDatetimepicker` not forwarding native attributes (e.g. `id`, `name`) to the underlying input. - [#4345](https://github.com/buefy/buefy/issues/4345) Fix `BTable` treating integer cell values as exact-match only regardless of the column's `numeric` flag, which blocked substring/regex filtering on non-numeric integer columns. ### Refactors - Convert `FormElementMixin` into a generic factory (`useFormElementMixin()`) built on a shared singleton, so host components (`Autocomplete`, `Datepicker`, `Input`, `Numberinput`, `Select`, `Taginput`, `Upload`) can narrow `getElement()`/`focus()` element types without breaking mixin/component identity relied on by tests. No runtime behavior change intended. ### Chores & Dependency Updates (docs) - Add a full-page layout example combining `BContainer`, `BHero`, `BSection`, `BFooter`, `BLevel`, `BMedia`, `BGrid`/`BColumn`, `BBox`, `BContent`, `BCard`, `BImage`, `BPanel`, and `BTitle` to the Layout docs page. - Add `BTree` to the homepage components list. - Migrate installation usage examples to Vue 3 `createApp`/`app.use` and update the CDN snippet to use `ConfigProgrammatic` on the global `Buefy` object. - Clarify in the Sass docs that Buefy-specific variables (`$speed-slow`, `$speed-slower`) are set via the `buefy/src/scss/buefy` `@use`, not `bulma/sass`. - Add a Copy button and clipboard support to the theme preview's generated CSS output. - Refactor the docs' code-highlighting directive into a reusable function and fix stale highlighting after reactive text updates. ### Chores & Dependency Updates - Bump the `npm_deploy` workflow to Node 22.x and sync lockfile version entries. ## [3.0.10](https://github.com/buefy/buefy/compare/v3.0.9...v3.0.10) ### Refactors - Major refactor of `BTable` to remove the "god component" pattern: table responsibilities were extracted from `Table.vue` into focused mixins (`TableCheckableMixin`, `TableDetailMixin`, `TableDragMixin`, `TableFilterMixin`, `TableSortMixin`) and shared `tableColumnHelpers`, with comprehensive unit tests added for each. Behavior is intended to be unchanged, but given the scope of this refactor please report any regressions. ### Fixes - [#4130](https://github.com/buefy/buefy/issues/4130) [#4129](https://github.com/buefy/buefy/issues/4129) Fix `BTooltip` `appendToBody` lifecycle handling — listeners and observers are now set up/torn down safely, preventing errors when toggling `appendToBody` and opening the tooltip. - [#4264](https://github.com/buefy/buefy/issues/4264) Fix `BTag` close button ignoring `close-type` color modifiers. ### Chores & Dependency Updates - Add TypeScript types to `BTable` example handlers in the documentation. - Flag the `BTable` documentation page as recently refactored, with a warning notice and a link to report regressions. ## [3.0.9](https://github.com/buefy/buefy/compare/v3.0.8...v3.0.9) ### Features - Add new `BTree` component for rendering hierarchical data with checkbox selection support. ### Fixes - Fix `BTabs`, `BSteps`, and `BCarousel` tab ordering when items are inserted dynamically (e.g. via `v-for` splice after mount). Tabs now sort by DOM position instead of registration order. - [#4299](https://github.com/buefy/buefy/issues/4299) Fix `BField` `hasAddons` not detecting multiple slot children when they are rendered via `v-for` (Vue wraps them in a Fragment VNode). - Fix `BSteps` mobile breakpoint to use the SCSS variable instead of a hardcoded pixel value. - Fix form element `iconSize` not returning a value for `is-medium` fields, causing icons to be incorrectly sized. ### Chores & Dependency Updates - Resolve security vulnerabilities in dependencies. - Bump `rimraf` to v6 to fix a build crash caused by `brace-expansion`'s missing default export. ## [3.0.8](https://github.com/buefy/buefy/compare/v3.0.7...v3.0.8) ### Fixes - [#4307](https://github.com/buefy/buefy/pull/4307) Fix programmatic Modal unmounting before leave transition completes by using the `after-leave` hook instead of `setTimeout`. ## [3.0.7](https://github.com/buefy/buefy/compare/v3.0.6...v3.0.7) ### Chores & Dependency Updates - Resolve 15 Dependabot security alerts by updating `axios` (^1.15.2), `@babel/preset-env` (^7.29.5), and adding overrides for `fast-uri` (^3.1.2), `follow-redirects` (^1.16.0), and `postcss` (^8.5.10). - Add `workflow_dispatch` trigger to npm publish workflow. ## [3.0.6](https://github.com/buefy/buefy/compare/v3.0.5...v3.0.6) ### Features - [#4329](https://github.com/buefy/buefy/pull/4329) Add icon alias system and inline SVG checkmarks for Checkbox component. ### Fixes (docs) - [#4324](https://github.com/buefy/buefy/pull/4324) Adjust links and spacings on the homepage. ## [3.0.5](https://github.com/buefy/buefy/compare/v3.0.4...v3.0.5) ### Fixes - [#4315](https://github.com/buefy/buefy/pull/4315) Fixed desktop scrolling issues on mobile-sized viewports. - [#4314](https://github.com/buefy/buefy/pull/4314) Checkbox SVG now uses concrete colors for consistent rendering. - [#4313](https://github.com/buefy/buefy/pull/4313) Ensure Carousel list includes the `.carousel` class. ### Enhancements - [#4308](https://github.com/buefy/buefy/pull/4308) Modernize docs sidebar, pager, and icons. - [#4317](https://github.com/buefy/buefy/pull/4317) Update CDN links and usage examples in the documentation. ### Chores & Dependency Updates - [#4318](https://github.com/buefy/buefy/pull/4318) Add documentation impact assessment rules to contribution guidance. - [#4319](https://github.com/buefy/buefy/pull/4319) Address npm audit vulnerabilities. - [#4316](https://github.com/buefy/buefy/pull/4316) Bump dependencies: `lodash`, `flatted`, `picomatch`, `rollup`, `immutable`, `minimatch`. ### New Contributors - @EduardFoch made their first contribution in [#4313](https://github.com/buefy/buefy/pull/4313) ## [3.0.4](https://github.com/buefy/buefy/pull/4290) ### Fixes - [#4277](https://github.com/buefy/buefy/pull/4277) Fixed dropdown style for link-based items. - [#4280](https://github.com/buefy/buefy/pull/4280) Fixed missing background color in Datepicker. - [#4283](https://github.com/buefy/buefy/pull/4283) Added missing reference to Table component. ### Enhancements - [#4261](https://github.com/buefy/buefy/pull/4261) Updated and expanded documentation as part of the revamp. - [#4287](https://github.com/buefy/buefy/pull/4287) Enhanced RTL support for Checkbox, Radio, Switch, and Form Field components. - [#4267](https://github.com/buefy/buefy/pull/4267) Added support for custom class props across components. ### Chores & Dependency Updates - [#4268](https://github.com/buefy/buefy/pull/4268) Bumped Vite from 6.3.6 to 6.4.1. - [#4273](https://github.com/buefy/buefy/pull/4273) Bumped js-yaml from 4.1.0 to 4.1.1. - [#4279](https://github.com/buefy/buefy/pull/4279) Upgraded various project dependencies. - [#4281](https://github.com/buefy/buefy/pull/4281) Bumped shelljs and pre-commit versions. ## [3.0.3](https://github.com/buefy/buefy/pull/4256) ### Fixes - [#4228](https://github.com/buefy/buefy/pull/4228) Fixed dropdown style inconsistencies. - [#4253](https://github.com/buefy/buefy/pull/4253) Added `use[Component]()` functions and improved documentation (@ElteHupkes). - [#4254](https://github.com/buefy/buefy/pull/4254) Updated ad components to match Buefy theme. ### Fixes (docs) - [#4254](https://github.com/buefy/buefy/pull/4254) Fixed CarbonAds code and themed it around buefy's theme. - [#4255](https://github.com/buefy/buefy/pull/4255) Fixed broken dev script in documentation - `npm run dev` stopped working. ### Chores (docs) - [#4249](https://github.com/buefy/buefy/pull/4249) Bumped `vite` from 6.3.5 to 6.3.6. ## [3.0.2](https://github.com/buefy/buefy/pull/4243) ### Fixes - [#4238](https://github.com/buefy/buefy/pull/4238) Updated navbar icon colors and fixed NavBurger rendering. - [#4229](https://github.com/buefy/buefy/pull/4229) Bubble up mouse events from `b-table` rows for better interactivity (@kikuomax). - [#4236](https://github.com/buefy/buefy/pull/4236) Augmented `Using Vue` docs and examples for clarity (@ElteHupkes). - [#4235](https://github.com/buefy/buefy/pull/4235) Extended Buefy CSS output to include built versions for CDN and static use. - [#4237](https://github.com/buefy/buefy/pull/4237) Updated internal CSS path references for consistency. ### Fixes (docs) - [#4227](https://github.com/buefy/buefy/pull/4227) Updated StackBlitz integration to reflect latest component usage and styling. ## [3.0.1](https://github.com/buefy/buefy/pull/4224) ### Fixes - [#4211](https://github.com/buefy/buefy/pull/4211) Restored autocomplete arrow key hover styles. - [#4205](https://github.com/buefy/buefy/pull/4205) Removed old modal style for closing "x" (now fixed in Bulma v1). - [#4204](https://github.com/buefy/buefy/pull/4204) Added missing span to NavBurger. - [#4210](https://github.com/buefy/buefy/pull/4210) chore(lib): use `@forward` in Buefy main Sass file to allow custom Sass variables. ### Fixes (docs) - [#4202](https://github.com/buefy/buefy/pull/4202) Updated the Buefy footer. ## [3.0.0](https://github.com/buefy/buefy/pull/4199) ### Breaking Changes - Migrated entire codebase to **Bulma v1.0.3** for modernized styling and layout. - Deprecated Sass global built-in functions; replaced with modern equivalents. - Removed legacy `bulmacssvars` and outdated style references. - Replaced all `value` props with `modelValue` across components to align with Vue 3 standards. - Programmatically mounted components (e.g., `Modal`, `Dialog`, `Snackbar`) now require standalone Vue apps and cannot use plugins. - `StepItem`, `CarouselItem`, and `TabItem` now require explicit `order` props to maintain consistent rendering order. ### New Features - Introduced a **new color system** for Buefy v3 documentation and component theming. - Added support for **Cleave.js** as a directive for input formatting. - Updated all style variables and documentation to reflect Bulma v1 conventions. ### Fixes - Resolved SCSS issues in `Dropdown`, `Navbar`, and `Input` loading states. - Fixed deprecated Sass usage and lint/type check errors across the codebase. - Updated unit tests to reflect new architecture and styling. ### Fixes (docs) - Updated documentation for Sass and CSS variable usage. - Refreshed component style variable references and examples. - Migrated interactive examples to StackBlitz and updated Netlify deploy previews. ### Others - Merged 28 commits for Bulma v1 migration and v3 release. - Bumped version to `v3.0.0` and updated changelog accordingly. - Cleaned up dev dependencies and workflows for modern build tools. ## [1.0.2](https://github.com/buefy/buefy/pull/4174) ### Fixes - [#4139](https://github.com/buefy/buefy/pull/4139) Fixed various bugs in the `Autocomplete` component. - [#4189](https://github.com/buefy/buefy/pull/4189) Fixed `Clockpicker` not closing properly and removed the `autoSwitch` prop. - [#4156](https://github.com/buefy/buefy/pull/4156) Exported `SnackbarOpenParams` type for better TypeScript support. - [#4176](https://github.com/buefy/buefy/pull/4176) Fixed issues in the `ImproveThis` component. - Removed deprecated high contrast styles and references. - Removed accidental dependencies and cleaned up unused references to `buefy-next`. ### Fixes (docs) - [#4142](https://github.com/buefy/buefy/pull/4142) Updated documentation for Vue 3 components. - [#4193](https://github.com/buefy/buefy/pull/4193) Cleaned up README content and formatting. - Updated social and Discord links across documentation. - Migrated interactive examples from CodePen to StackBlitz. ### Others - [#4173](https://github.com/buefy/buefy/pull/4173) Version bump: package.json version set to 1.0.2 - [#4197](https://github.com/buefy/buefy/pull/4197) Update Changelog for version 1.0.2 - [#4184](https://github.com/buefy/buefy/pull/4184) Added `bulma` as a direct dependency of Buefy. - [#4192](https://github.com/buefy/buefy/pull/4192) Cleaned up StackBlitz integration and dev dependencies. - [#4196](https://github.com/buefy/buefy/pull/4196) Implemented Carbon Ads integration. - Updated workflows and access levels for dev packages. - Added reference to `ClockpickerFace` component. - Added Buefy Collective metadata for community support. ## [1.0.1](https://github.com/buefy/buefy/pull/4077) ### Breaking changes - [#4135](https://github.com/buefy/buefy/pull/4135) `Tooltip` introduced a new variant `is-auto` for the `position` prop and made it the new default. ### Fixes - Updated workflows and scripts to reference the package as "buefy" instead of "@ntohq/buefy-next". - Updated main repo references: - package.json now points to the new repository and issues URLs. - Linting, type check, and unit test scripts reference "buefy" workspace. - All configuration and ignore files renamed/moved from buefy-next to buefy. ### Fixes (docs) - README installation and usage instructions updated to use buefy as the npm package. - Documentation now references buefy instead of @ntohq/buefy-next everywhere. - Clarified developer release installation instructions and naming conventions in the README. ### Others - Version bump: package.json version set to 1.0.1. - jsconfig updated to reference new source directory. - Large updates to package-lock.json and workflow YAML files to match new structure. ## [1.0.0](https://www.npmjs.com/package/buefy/v/1.0.0) depricated This version was published more than 8 years before the intended release of Buefy 1.0 and does **not** represent the official, stable `v1`. It was released prematurely and lacks the features, structure, and design decisions that define the true `Buefy v1.0.0` Please upgrade to `v1.0.1` or newer to access the latest architecture, complete documentation, and active support. ## Buefy-next 0.2.1 unreleased Buefy-next 0.2.1 is now compiled with Vue 3.4.13, so the recommended Vue version is 3.4.13 or higher. ### Fixes - [#274](https://github.com/ntohq/buefy-next/issues/274) `Table`, and `Tabs` caused memory leaks on Vue 3.5. `SlotComponent` which is internally used by `Table`, and `Tabs` ceased adding the update hook to the component specified to the `component` prop, and dropped the `event` prop. - [#429](https://github.com/ntohq/buefy-next/issues/429) `Numberinput` may have accepted an invalid number as valid with Vue 3.4.28 or higher. - [#434](https://github.com/ntohq/buefy-next/issues/434) The multi column sorting feature of `Table` did not work since Buefy-next v0.2.0. - [#460](https://github.com/ntohq/buefy-next/issues/460) The `editable` prop of `Clockpicker` did not work (thanks @Moritz-Schmidt) - [#461](https://github.com/ntohq/buefy-next/pull/461) The initial value of `Clockpicker` was not rendered (thanks @Moritz-Schmidt) - [#461](https://github.com/ntohq/buefy-next/pull/461) `Clockpicker` did not work on a mobile device ### Others - [#191](https://github.com/ntohq/buefy-next/issues/191) A warning message was added to the `Table` documentation to inform that specifying an inline arrow function to the `td-attrs` prop will cause infinite updates. - [#435](https://github.com/ntohq/buefy-next/pull/435) The issue that an example of `Cleave.js` in the documentation for extensions did not work was fixed. ## Buefy-next 0.2.0 ### New features - [#151](https://github.com/ntohq/buefy-next/issues/151) Buefy-next was completely rewritten in TypeScript. The migration to TypeScript itself is not a breaking change as you can continue to use it in plain JavaScript projects. It just enhances the type checking capability which was partially provided in the past versions. ### Fixes - [#17](https://github.com/ntohq/buefy-next/issues/17) `Dropdown` and `DropdownItem` got an unnecessary `tabindex` attribute. - [#271](https://github.com/ntohq/buefy-next/issues/271) `Select` did not run HTML5 validation after emitting a "blur" event. - [#357](https://github.com/ntohq/buefy-next/pull/357) `MenuItem` emitted "update:expanded" events with a wrong value. - [#372](https://github.com/ntohq/buefy-next/pull/372) `TimepickerMixin` was using the obsolete `value` prop instead of `modelValue`. ### Others - [#266](https://github.com/ntohq/buefy-next/pull/266) Update buefy.org links in README.md (thanks @uturnr) - [#279](https://github.com/ntohq/buefy-next/pull/279) update installation for nuxt 3 (thanks @zhaolinlau) ## Buefy-next 0.1.4 ### Breaking changes - [#19](https://github.com/ntohq/buefy-next/issues/19) `MenuItem`'s `active` prop was renamed to `modelValue` so that Vue 3's `v-model` works. And an `update:modelValue` event is emitted instead of an `update:active` event when the `modelValue` prop is changed. ### Fixes - [#256](https://github.com/ntohq/buefy-next/issues/256) `MenuList` warned missing `` - [#257](https://github.com/ntohq/buefy-next/pull/257) The root index file had a meaningless `use(Buefy)` call - [#34](https://github.com/ntohq/buefy-next/issues/34) `Colorpicker` accessed the undefined `mobileNative` property causing console warning - [#35](https://github.com/ntohq/buefy-next/issues/35) `Colorpicker` warned missing `` - [#40](https://github.com/ntohq/buefy-next/issues/40) `Tag` warned missing `` - [#23](https://github.com/ntohq/buefy-next/issues/23) `Datetimepicker` warned missing `` - [#24](https://github.com/ntohq/buefy-next/issues/24) `Message` warned missing `` - [#241](https://github.com/ntohq/buefy-next/pull/241) `Clockpicker` lacked the `.vue` extension in the import path of `ClockpickerFace.vue`, and `NotificationNotice` also lacked the `.vue` extension in the import path of `Notification.vue` (thanks [@cwilby](https://github.com/cwilby)) - [#182](https://github.com/ntohq/buefy-next/issues/182) A console warning appeared when a `Modal` was programmatically opened with a custom component - [#177](https://github.com/ntohq/buefy-next/issues/177) All the components had meaningless `use(...)` calls ### Fixes (docs) - [#178](https://github.com/ntohq/buefy-next/issues/178) `CodepenEdit` caused console warning due to invalid `this.style` access - [#171](https://github.com/ntohq/buefy-next/issues/171) `bluebird` required a workarouond to work with Vite ## Buefy-next 0.1.3 Buefy-next 0.1.3 includes all the relevant changes until Buefy 0.9.29. ### Breaking changes - You can no longer install `@ntohq/buefy-next` directly from the GitHub repository. You can try developer releases instead. See ### New features - The following components introduce a new prop `compat-fallthrough`, which determines whether the `class`, `style`, and `id` attributes are applied to the root element or the underlying element. If `compat-fallthrough` is `true`, they are applied to the root element, which is compatible with Buefy for Vue 2. The default value can be controlled by the `defaultCompatFallthrough` config option (`true` by default). [#16](https://github.com/ntohq/buefy-next/issues/16) - `BAutocomplete`: If `compat-fallthrough` is `true`, the attributes fall through to the root `
` element, otherwise to the underlying `BInput`. - `BBreadcrumbItem`: If `compat-fallthrough` is `true`, the attributes fall through to the root `
  • ` element, otherwise to the underlying tag. - `BClockpicker`: If `compat-fallthrough` is `true`, the attributes fall through to the root `
    ` element, otherwise to the underlying `BInput`. - `BDatepicker`: If `compat-fallthrough` is `true`, the attributes fall through to the root `
    ` element, otherwise to the underlying `BInput`. - `BInput`: If `compat-fallthrough` is `true`, the attributes fall through to the root `
    ` element, otherwise to either of `` or `