Published on

Upadate on huetiful-js v1.5

  • avatar
    Dean Tarisai

The way software evolves is a matter worth pondering. Over the past few weeks I've seen my package evolve and its API morph over time. I have witnessed the number of downloads of the npm rise and fall like waves in the sea. What I fail to understand so far is why my project has not gathered much attraction on GitHub so far (6 stars so far, not bad for a first project but I was expecting more for the coding hours spent lol).

Today I released minor version 1.5 of the project and I'm hoping to see changes since I have addressed a lot of hidden bugs, some of which were so critical that they compromised the actual functionality of autility.

Added features

Well, for starters, I added a 2 new factors for the sortBy and filterBy module.

  • sortByContrast
  • sortByDistance
  • filterByDistance
  • filterByContrast

These utilities apply the respective base functionality based on contrast and Euclidean distance. Of course, the functions make use of Culori under the hood to perform the computations necessary needed for the functionalities to work.

The minor version also comes along with utilities for fetching data of statistical importance such as the smallest hue in a collection of colors.

Bugs addressed

Open source software is always a work in progress and sometimes the lack of an active user base makes it take longer to address certain issues in a project.

The filterByTemp and sortByTemp utilities were not working as intended because of a bug that was caused by precision loss when I had refactored the rgb2temp and temp2rgb modules to use lodash utilities under the hood for arithmetic operations. The functions responsible for determining the factors needed to sort/filter the colors from collections were throwing only a single value which caused the utilities to hang and not return a value. I addressed the issue by using the simple arithmetic operators on the values necessary for generating the filtering/sorting values. I've learned that over engineering can cause the total opposite of what a developer intended.

I also extended expression parsing to other core utilities which can mutate colors such as alpha , darken/brighten

I'm grateful for the support that is coming from the open source community as we work towards making color science in code accessible and easy to use with as low a learning curve as possible.


For more information on the changes you can visit the project repository on GitHub or download the package on NPM . Contributions of any kind are welcome!

May the FOSS be with you👽🛸!