Qix- / color

:rainbow: Javascript color conversion and manipulation library
MIT License
4.79k stars 267 forks source link

[Feature request] Accessibility functions #187

Closed Dallas62 closed 3 years ago

Dallas62 commented 3 years ago

Hi,

I'm currently using this library to define color variations of the design system, and I was looking at some color palette tool such as Coolors which provide some accessibility tools. For exemple:

Capture d’écran 2020-11-23 à 14 36 58

It would be great to get an API to generate this color, such as:

Color('#FFAA00').filter('protanopia').hex(); // #DAD929

And It would be cool to get a global configuration, such as:

Color.global.filter = 'protanopia';

Color('#FFAA00').hex(); // #DAD929

This would help to switch the interface into blindness colors and test close to their perceptions.

Regards,

Qix- commented 3 years ago

It would be great to get an API to generate this color, such as:

This is a wonderful case for releasing your own package based on color :)

const Color = require('color'); // this package
const { protanopia } = require('color-a11y'); // your own package, perhaps

const filteredColor = protanopia(Color('#FFAA00')).hex(); // #DAD929

And It would be cool to get a global configuration, such as:

Global filters would be an anti-pattern here as it would affect all users of the package, so it's something I won't expressly support.


color-a11y is free as of writing on NPM, so feel free to create a package for it :) I would personally use it!

However, I don't see it being useful for the 80% of users that use this package, whereas a dedicated package would make a lot of sense here.

Good idea though :)