Mevrael Bunny Versions Save

BunnyJS - Lightweight native (vanilla) JavaScript (JS) and ECMAScript 6 (ES6) browser library, package of small stand-alone components without dependencies: FormData, upload, image preview, HTML5 validation, Autocomplete, Dropdown, Calendar, Datepicker, Ajax, Datatable, Pagination, URL, Template engine, Element positioning, smooth scrolling, routing, inversion of control and more. Simple syntax and architecture. Next generation jQuery and front-end framework. Documentation and examples available.

v0.12.0-beta

7 years ago

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 -> use src/Dropdown
  • src/bunny.autocomplete -> use src/Autocomplete based on refactored src/Dropdown instead
  • src/utils/DOM/ready.js -> use src/utils/DOM
  • 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 in src/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

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.

And other minor changes and bug fixes, thanks to first contributors