Releases: Mevrael/bunny
Beta
BunnyJS v0.12.0-beta changelog
New license, coding style changes, ability to create plugins, new fully accessible components, utils, examples, all dists included and more.
License changed from GPL to MIT
This is first Beta release. BunnyJS Beta version is still a pre-release, however, BunnyJS already used on production. Beta release brings almost stable API, solid architecture and it won't change much anymore. There are still old components available for backward compatibility, however, all of them will be removed in 1.0.
Nevertheless, BunnyJS Beta is stable and reliable open source product and many developers now might use it in real business, production, change it and do whatever they want. It is now possible with the changed license from GPL to MIT.
Coding style changes
ESLint going to be used. Coding style based on airbnb-base. The most important change for now - 4 spaces replaced with 2.
Accessibility and new utils for DOM
Accessibility is very important in modern world, moreover, it is also legal requirement. Unfortunately many libraries doesn't have even basic keyboard navigation support. BunnyJS is going to make next generation web apps accessible out of the box.
Add basic accessibility feature to any list-type component or DOM element - keyboard navigation with the help of addEventKeyNavigation()
BunnyJS Architecture now brings component extensions (plugins)
Now everyone will be able easily write plugins (extensions) for BunnyJS components. Importing one additional plugin might add functionality to any component
- New folder
src/plugins
- First new official plugin for Autocomplete - AutocompleteIcons, which adds SVG search icon to all autocompletes and changes it to a rotating spinner while Autocomplete is awaiting for AJAX response.
import { Autocomplete } from 'bunnyjs/src/Autocomplete';
import 'bunnyjs/src/plugins/AutocompleteIcons'; // just add/remove this line to enable/disable plugin
Plugins are changes to the original object using Object.assign()
and containing init<PluginName>()
method.
BunnyJS plugins are Vanilla JS object extensions like Traits/Mixins/Extensions in other programming languages.
Deprecated and will be removed in 1.0:
src/bunny.dropdown
-> usesrc/Dropdown
src/bunny.autocomplete
-> usesrc/Autocomplete
based on refactored src/Dropdown insteadsrc/utils/DOM/ready.js
-> usesrc/utils/DOM
Dropdown and Autocomplete refactored, CustomSelect added
- All components are fully accessible.
- Dropdown now is a base component which can be easily extended and configured.
- New CustomSelect component which requires Dropdown to be included also.
- CustomSelect transforms any Dropdown into a custom form select input. Supports multiple selects. Just create your own custom UI and let the CustomSelect handle the JS side for you.
- Autocomplete refactored and based on new Dropdown
New single core helpers file to reduce code duplication
To reduce code duplication many components now also requires to use src/utils/core
;
New SVG utils and Spinner component
- To dynamically create
<svg><use...></svg>
elements developers should care more then just about createElement(), setAttribute(). Now there are couple of functions available insrc/utils/svg
to create SVG use elements and change the icon. - Spinner may easily toggle SVG icon of your choice on any DOM element like buttons or search inputs.
- Spinner may also fade whole page and create a spinner in the middle of the screen.
New Dropdown, CustomSelect and Autocomplete example
- New example
examples/dropdown
contains examples for all Dropdown-based components. - README updated, note added about the examples.
All components, utils and polyfills now available in dists
folder
- Already ES5 and minified
- README updated, section about local dev and dists generation added
- CDN link updated - https://unpkg.com/bunnyjs/dist/
New NPM package assets-builder
, custom node scripts instead of gulp
Generating assets is a painful work. All build process is going to be moved into separate NPM package assets-builder
which is currently not recommended for any usage. It will be a simple API which developers will be able to extend and configure easily. Transpiling and bundling all JavaScript might now take only one line of code in custom node build script.
Gulp won't be used anymore in the future.