TinyColor has several color combination functions for getting various pallets from a base color, with:
analogous, monochromatic, splitcomplement, triad, tetrad, and complement
The getters and setters in tiny color use the "get", "set", or "to" naming convention, whereas the more common javascript convention is to get when no parameters are provided, and set when a parameter is provided.
The scale API of Chroma is particularly robust and makes Chroma stand out in regards to creating color pallets and visualizations. With the scale API you define a custom scale to match your data set, and define stop points to create hard points when you want the color to change on a threshold. It also supports non linear scales like log, k-means, and quantiles.
Chroma is unique in its support for more advanced color spaces like LAB and HCL which can create more natural looking color spaces than the standard RGB and HSL variant.
Chroma has a relatively limited set of color manipulation methods, containing: 'alpha', 'darken', 'brighten', 'saturate', 'desaturate', and 'luminance', but missing important methods like hue manipulation, whiteness, greyscale, and negation.
Color.js has one of the most complete sets of color manipulation methods, with methods for directly setting each value in all its supported color spaces of rgb, hsl, hsv, hwb, and cmyk, so you can set the following directly:
alpha, red, green, blue, hue, saturation (hsl), saturationv (hsv), lightness, whiteness, blackness, cyan, magenta, yellow, black
It also has many relative manipulation methods with:
blacken, clearer, darken, desaturate, greyscale, lighten, negate, opaquer, rotate, saturate, and whiten.
Color.js has CMYK support which most other color libraries don't have. While not necessary for everyone, CMYK can come in handy if you are doing any kinds of color manipulations that need to take print into account.