Project roadmap

Last updated: 01-11-2020

Halfmoon is a project under continuous development, with improvements and new features being pushed out in every new update. This page talks about the features, components, and changes coming in the short-term future, and also discusses some of the long-term plans for the project.

Coming in v1.2.0

Expected delivery date: TBA

The next major update is v1.2.0. This section lists the things you can expect from this update. Please note, nothing is set in stone, but these are usually pretty good estimations.

Forms, forms, and more forms

This update will focus heavily on forms. Forms on the web are messy, and boring to deal with. Consistency is also a huge pain due to browser differences. Our goal here is make form processing easy and painless.

Form validator

Upcoming form validator

Client-side validation is one of the biggest pain-points when it comes to web forms. The upcoming form validator aims to address this issue. Some of the planned features are as follows:

  • Pure JavaScript, with no dependencies. Just import halfmoon.js and you are ready to go.
  • Custom error messages, and custom feedback styling.
  • Custom validation functions.
  • Form submit handler, for instance, post data to an API using AJAX, etc.

Moreover, we want to leverage native HTML attributes for validation, ie, min, maxlength, pattern, etc. This has the added benefit of minimizing the amount of custom JS one has to write. Build a simple HTML form, add an attribute to it, and watch as Halfmoon handles client-side validation automatically. This is enough to deal with ~98% of use cases.

Number input, range input, and password toggle

Upcoming form components - number input, range input, and password toggle

Number input, range input, and password toggle - these form components were missing, so they are planned to be added in the upcoming update.

New components (such as tabs, list group, etc.) and utilities

Apart from the focus on forms, there are also new components and utilities being planned for the upcoming update. This includes tabs, list group, spinners (and loaders), and utilities missing in the current version, such as transitions. With these changes, Halfmoon is expected to reach maturity, thanks to the availability of the all the common components and utilities expected from front-end libraries these days.

Accessibility improvements

Another area where changes are planned is in accessibility. These changes include (but is not limited to) the following:

  • Improving the accessibility of the examples in the documentation.
  • High contrast mode, which can be turned on or off depending on the user's needs.
  • Scaling options for users. Some people prefer bigger elements and text, often due to age or damaged eyesight. The ability to set the preferred scale (especially the font size) can be a great help to those users. This is different from the browser zoom because the preferred scale can be saved in a cookie (like dark mode preference), and set on page load.

General improvements and bug fixes

And finally, it goes without saying that the upcoming version will make general improvements to the code, and also solve a few bugs and issues that people have brought up. This includes aggressive transitions, scroll issues on virtual DOMs, and so on.

More importantly, we also want to produce high quality documentation sections for integrating Halfmoon with popular JavaScript frameworks, ie, React, Vue, Angular, Svelte, etc. Halfmoon is already usable with these frameworks, but there are some weird issues (with weird fixes) that need to be ironed out.

Future plans

There are many more things planned for the framework after v1.2.0. Again, nothing is set in stone, but this document should, at the very least, give a sense of direction as to where the framework is headed. The following things are planned:

  • Modularized code
  • Themes and templates
  • Multi-select component (think Select2 without jQuery)
  • Datetime picker
  • Data-table component
  • GUI based form builder
  • JSX docs
  • Libraries for popular web frameworks like Rails, Django, Laravel, etc.

and more. Of course, everything is set to be written in vanilla JS, without any external dependencies. That much should be expected at this point. Going forward into the future, we want to make Halfmoon the go-to framework for building dashboards and tools on the web.

Please consider supporting us through Patreon.