All notable changes to the ColorMaster module will be documented in this file.
- JSDoc of interfaces/class methods for better intellisense experience
LUV
,UVW
,RYB
parsers & plugins with associated testing- Added typeGuards for new color spaces & adjusted RGB/HEX type guards
RYBtoRGB
&RGBtoRYB
conversions- Parsing RegExp in all color spaces to be more robust with spaces before/after commas
- Allow mixing in different color spaces
- Links to JSDoc of parsers
stringCMYK()
&stringXYZ()
and respective parsing- Alpha channel value parsing
- ColorMaster logo
- README color space plugins section and
stringRGB()
,stringHSL()
,stringHEX()
- Simplified logic of CM constructor
LAB[A]
HSV[A]
,HWB[A]
,XYZ[A]
,LCH[A]
,CMYK[A]
parsers - along with respective plugins - and fully tested them- Community documents such as CONTRIBUTING.md
- Issue & PR templates
- README to include more plugin information
typeGuard
logic to be more specific in scope- Logic in parsers for object clamping
- Webpack to not give sourcemaps
- Produce ES and CommonJS modules during bundling
- Test CI GitHub Action to use a matrix build - test common NodeJS version in parallel
- Exports field in
package.json
to show in bundlephobia - Adjusted Jest config to reduce CLI command
- Ability to extend plugins
- Tree Shaking with Webpack
- Bundle size analyzer (webpack plugin) ← only runs in production build
- Harmony plugin
- Mix in LCHA space (needs work to be more accurate)
isValid()
function & format getter is more robust- Conversion helper functions to different color spaces
- Option to
hexa()
for rounding - Tests for conversions
- Ability to extend parsers → allows to extend ColorMaster instantiation by CSS name
- LABA, LCHA, XYZA, HSVA conversion logic to and from RGBA
static Parsers
property to simplify logic- Community related files & templates for issues/PRs
- Mixing (plugin) & tests
- Parsing tests
- Types to color Records so that they give intellisense
- Negative hue parsing
- Closest color logic by adding helper functions. Added
random()
outside of ColorMaster class. Start ofmix()
- working on RGBtoLAB & RGBtoLCH - Improved parsers (RegExp)
- Fixed Jest config & adjusted coverage thresholds to be at least 95%
- README to reflect the refactor
- Refactor to only use RGB behind the scene
- Parser functionality to be more general (better RegExp)
- All accessibility functions are now more general (independent of input format)
ColorMaster
class to make it default export a function that returns an instance- Opts to be alpha for some method
- Separated parsers from conversion logic
- Redundant typing on class method opts objects
-
Functionality and tests for:
rotation
format
name
random
brightness
luminance
isDark
isLight
contrast
readableOn
equalTo
harmony
(color harmonies)isWarm
isCool
isTinted
isShaded
isToned
isPureHue
closestPureHue
closestWebSafe
(web safe)closestWarm
closestCool
-
README documentation for API
-
Support for 3/4-digit HEX
-
Size check GitHub action
- Tests to provide more coverage (100% coverage)
random()
andfromName()
to generate RGB color instance which user can convert usinghsl()
orhex()
- Edge cases in
colormaster
class when generating color instances - GitHub actions scripts
- Getter & Setter function names to be more general
name()
function to search by name exactly or approximatelyHSLAFrom()
to allow user to use CSS Name instead of number for hue channel
- Benchmark tests as they are not meaningful enough
- Packages related to benchmark script
- HSLA and HEXA color-spaces (with tests)
- Implementation interfaces to reduce complexity of implementation scripts (less comments)
- Getter and Setter functions for arrays of object instances
- Webpack to create a production build
npm dedupe
to the pre-commit hook and post-commit/pre-push hooks- Functionality such as invert, saturate/desaturate, lightness/darkness, grayscale
- Full testing of saturation/de-saturation, lighter/darker, grayscale in all color-spaces
- NPM scripts for releasing a publication of the module - patch, minor, major
- Logic in HEXA & HSLA color-spaces that produced invalid conversions
- Logic in class methods to use getter and setter functions rather than accessing private variables
- Type file extensions to
.d.ts
- adjusted npm scripts accordingly - Release script to have pre and post
- Default options from
false
totrue
as returning alpha in string is more common - Updated README & documentation
- Throw statements (errors) by using simple validation/setting to default values
- NPM scripts to handle the module publication in a smoother and more proper manner
- Wrapper overloads to RGBColors class to let user instantiate RGB(A) objects in 4 different ways
- Continuous Integration
- Testing
- Linting and format checking scripts
- Github workflows
- README (with logo)
- Pre-commit hook to lint and format
- Pre-push hook to test
- Benchmark testing
- Documentation with Typedoc
- np for automated publishing
- Class method names to better reflect functionality