{
	"name": "khroma",
	"versions": {
		"1.0.0": {
			"name": "khroma",
			"description": "A collection of functions for manipulating CSS colors, inspired by SASS.",
			"version": "1.0.0",
			"main": "dist/index.js",
			"types": "dist/index.d.ts",
			"scripts": {
				"benchmark": "node tasks/benchmark.js",
				"clean:dist": "rimraf dist",
				"clean:coverage": "rimraf coverage .nyc_output",
				"clean": "npm run clean:dist && npm run clean:coverage",
				"compile": "tsc --skipLibCheck && tstei",
				"compile:watch": "tsc --skipLibCheck --watch",
				"test": "ava",
				"test:watch": "ava --watch",
				"coverage": "nyc --reporter=html ava",
				"report": "nyc report",
				"report:html": "open coverage/index.html",
				"prepublishOnly": "npm run clean && npm run compile && npm run coverage",
				"dev": "concurrently -i -n compile,test npm:compile:watch npm:test:watch"
			},
			"ava": {
				"files": [
					"test/**/*.js"
				]
			},
			"bugs": {
				"url": "https://github.com/fabiospampinato/khroma/issues"
			},
			"license": "MIT",
			"author": {
				"name": "Fabio Spampinato",
				"email": "spampinabio@gmail.com"
			},
			"repository": {
				"type": "git",
				"url": "git+https://github.com/fabiospampinato/khroma.git"
			},
			"keywords": [
				"sass",
				"color",
				"manipulation",
				"manipulate",
				"css",
				"hex",
				"rgb",
				"hsl"
			],
			"dependencies": {},
			"devDependencies": {
				"@types/node": "^13.5.3",
				"ava": "^2.4.0",
				"ava-spec": "^1.1.1",
				"benchloop": "^1.3.1",
				"concurrently": "^5.1.0",
				"nyc": "^15.0.0",
				"rimraf": "^3.0.1",
				"typescript": "^3.7.5",
				"typescript-transform-export-interop": "^1.0.2"
			},
			"gitHead": "f8edab05ba59b4d6a3a7b9b5c88d8b554d02c8b9",
			"homepage": "https://github.com/fabiospampinato/khroma#readme",
			"_id": "khroma@1.0.0",
			"_npmVersion": "6.4.1",
			"_nodeVersion": "8.4.0",
			"_npmUser": {
				"name": "fabiospampinato",
				"email": "spampinabio@gmail.com"
			},
			"dist": {
				"integrity": "sha512-zCTOR3wyeww+ti+EbAAG8kL5ft9hKiPdFdpvc6iG7aQga9a02cjZIv0UrxG4ZMaFVk6KxqhZGAZ8b4L4jiC/Og==",
				"shasum": "5b1decf060e0e13e9417da6a4daa7a1d3f2612c8",
				"tarball": "https://registry.npmjs.org/khroma/-/khroma-1.0.0.tgz",
				"fileCount": 170,
				"unpackedSize": 142809,
				"npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeOG0BCRA9TVsSAnZWagAANXcP/0YOI4uDCho76Zpkat2r\nY4Zxuy6mCGibSnaPpDH3jPvv1u24kJQCeH0iIiRjHKUuEc2mnS907uDAMtFM\nTQD2EdotNAAz1nzSALAo0iAD7NrI4Smqin1iYl1/9A1DXJcjoSIvN/DU1Csn\ntFSPYl7uSlLEWhUm3388cy1RtldNL0xojrraNihC0WiAducn9TCjBwL1gwRr\nEhv2cSt7HIdd8kD4EFScDaMGi5XwlCrRE1yGlFghc20tyZKeTPCgomXG1ASm\nj2qepp1oARtTpkq71QfazN8UpBQ59CB0cwGWA/pYt+7nvXNDkPK7wzhqbYs5\nbeLcUG1Ui0SqB3iahHS3bwYBC1l5R7YO9BhG6RTonMmRlWQ/1TVKa0GcW8Cm\n4/+9F+cbwF0jFZF6oaWk0qHsZ5vH3/g7eOTczPuUzh6ZqXjtpZJNNZj04TM9\n/QAlyjRRkkVQHLDT62Y9LUKQihX0K0O29QF+3TV0vzYdRrAKyvHuh2KWPii/\nqn3RlHZZLVeYkGhBHSQmioCG8AoZlpeFa8sA5mJlSG2bPoli45QZtlYnFN0U\n2WqWu4kSBZWtB74y+haMUfYAAoVBhSRcneL08SKMx8Mr20VMYLCRteELGDUZ\n/M+ZMhkTQQ+GvLE9H8fqWp1z899akkCZol9jPOub//b7oL2N4zpEtiXNyIEu\nvIUN\r\n=xIwB\r\n-----END PGP SIGNATURE-----\r\n"
			},
			"maintainers": [
				{
					"name": "fabiospampinato",
					"email": "spampinabio@gmail.com"
				}
			],
			"directories": {},
			"_npmOperationalInternal": {
				"host": "s3://npm-registry-packages",
				"tmp": "tmp/khroma_1.0.0_1580756225303_0.4035620657785999"
			},
			"_hasShrinkwrap": false,
			"contributors": []
		},
		"1.0.1": {
			"name": "khroma",
			"description": "A collection of functions for manipulating CSS colors, inspired by SASS.",
			"version": "1.0.1",
			"main": "dist/index.js",
			"types": "dist/index.d.ts",
			"scripts": {
				"benchmark": "node tasks/benchmark.js",
				"clean:dist": "rimraf dist",
				"clean:coverage": "rimraf coverage .nyc_output",
				"clean": "npm run clean:dist && npm run clean:coverage",
				"compile": "tsc --skipLibCheck && tstei",
				"compile:watch": "tsc --skipLibCheck --watch",
				"test": "ava",
				"test:watch": "ava --watch",
				"coverage": "nyc --reporter=html ava",
				"report": "nyc report",
				"report:html": "open coverage/index.html",
				"prepublishOnly": "npm run clean && npm run compile && npm run coverage",
				"dev": "concurrently -i -n compile,test npm:compile:watch npm:test:watch"
			},
			"ava": {
				"files": [
					"test/**/*.js"
				]
			},
			"bugs": {
				"url": "https://github.com/fabiospampinato/khroma/issues"
			},
			"license": "MIT",
			"author": {
				"name": "Fabio Spampinato",
				"email": "spampinabio@gmail.com"
			},
			"repository": {
				"type": "git",
				"url": "git+https://github.com/fabiospampinato/khroma.git"
			},
			"keywords": [
				"sass",
				"color",
				"manipulation",
				"manipulate",
				"css",
				"hex",
				"rgb",
				"hsl"
			],
			"dependencies": {},
			"devDependencies": {
				"@types/node": "^13.5.3",
				"ava": "^2.4.0",
				"ava-spec": "^1.1.1",
				"benchloop": "^1.3.1",
				"concurrently": "^5.1.0",
				"nyc": "^15.0.0",
				"rimraf": "^3.0.1",
				"typescript": "^3.7.5",
				"typescript-transform-export-interop": "^1.0.2"
			},
			"gitHead": "089d7f7c453fc182eff5a809815af7b55cca9adc",
			"homepage": "https://github.com/fabiospampinato/khroma#readme",
			"_id": "khroma@1.0.1",
			"_npmVersion": "6.4.1",
			"_nodeVersion": "8.4.0",
			"_npmUser": {
				"name": "fabiospampinato",
				"email": "spampinabio@gmail.com"
			},
			"dist": {
				"integrity": "sha512-Z7lrLmgy5yUu8I15kFKiyAOGs8fOf9N9+FCeR2ig/vIeX5AYYKuNmfAKhM4ToupYXwUp3M352N8jjkUt52Ze5A==",
				"shasum": "b682ea74cffe6947921c8e4ac3a797e3e12cf96c",
				"tarball": "https://registry.npmjs.org/khroma/-/khroma-1.0.1.tgz",
				"fileCount": 167,
				"unpackedSize": 141024,
				"npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJecDfKCRA9TVsSAnZWagAAxwEP/0zHUZkoEaXejfbANuCp\ndjbjYETQSRbL9FHLDb4R0yppf3QpUTKP8xcdtphy96y41MInGG5hVX2MaoSY\n3WajugrSaVh1JcLVKY8qxl4A6XjGBn1rvqpuMaWS7/ctPAOiQBGDX9ctnRl7\nWAPbnAKYZYrQ77wGIW9yg0zC0iQavorRe6NihaSC6ohzi5isXlBhnC3eEqma\n+Wfy3xl4Yuc0QBXnw2PbEMOgNKjcsiovDCwanQAdxTbitq0HvrItPYwoaFK6\nCGi/JSfFpJcloVCEBnuWlOs9hcimYiL8iJCAjSw/Vr3J51IsMxW5PbdKJrOx\niQgJzNF7fpivv6bTBlfXxLhQ2D4XUN0qjg4GZC5yLnRnz2J6T/FTgLhZep6r\nT2v6SQ8/6zd3brh4eC5IM3yDO6T7aFfVQq6X+lF3AA2faKe6N3/LBzJZvLoG\npdsH78RPDRcYgz6Pg6zpQ8lGAIUqcmBwivQxCZoollCewOJ151aCrrCiF6LR\nowFeGLzPdVl4VVDu3pkC3gchZAXXzJWYuap5vf7qbQ8cc3Udi4xj4iS9vB+Q\n5PKcuEoJ+5qJMLu155BNSP1tTvp4I6LkKNWrcxALaeYeDoRvzB8pbBLou3xd\n+tEtV9uaQUKiNYgz06oNeHrt//aBkYLwtKzDaRV7rNpyFJcB5r2SkSKJ5yTa\naACu\r\n=pvd5\r\n-----END PGP SIGNATURE-----\r\n"
			},
			"maintainers": [
				{
					"name": "fabiospampinato",
					"email": "spampinabio@gmail.com"
				}
			],
			"directories": {},
			"_npmOperationalInternal": {
				"host": "s3://npm-registry-packages",
				"tmp": "tmp/khroma_1.0.1_1584412618069_0.3862649948494623"
			},
			"_hasShrinkwrap": false,
			"contributors": []
		},
		"1.1.0": {
			"name": "khroma",
			"description": "A collection of functions for manipulating CSS colors, inspired by SASS.",
			"version": "1.1.0",
			"main": "dist/index.js",
			"types": "dist/index.d.ts",
			"scripts": {
				"benchmark": "node tasks/benchmark.js",
				"clean:dist": "rimraf dist",
				"clean:coverage": "rimraf coverage .nyc_output",
				"clean": "npm run clean:dist && npm run clean:coverage",
				"compile": "tsc --skipLibCheck && tstei",
				"compile:watch": "tsc --skipLibCheck --watch",
				"test": "ava",
				"test:watch": "ava --watch",
				"coverage": "nyc --reporter=html ava",
				"report": "nyc report",
				"report:html": "open coverage/index.html",
				"prepublishOnly": "npm run clean && npm run compile && npm run coverage",
				"dev": "concurrently -i -n compile,test npm:compile:watch npm:test:watch"
			},
			"ava": {
				"files": [
					"test/**/*.js"
				]
			},
			"bugs": {
				"url": "https://github.com/fabiospampinato/khroma/issues"
			},
			"license": "MIT",
			"author": {
				"name": "Fabio Spampinato",
				"email": "spampinabio@gmail.com"
			},
			"repository": {
				"type": "git",
				"url": "git+https://github.com/fabiospampinato/khroma.git"
			},
			"keywords": [
				"sass",
				"color",
				"manipulation",
				"manipulate",
				"css",
				"hex",
				"rgb",
				"hsl"
			],
			"dependencies": {},
			"devDependencies": {
				"@types/node": "^13.5.3",
				"ava": "^2.4.0",
				"ava-spec": "^1.1.1",
				"benchloop": "^1.3.1",
				"concurrently": "^5.1.0",
				"nyc": "^15.0.0",
				"rimraf": "^3.0.1",
				"typescript": "^3.7.5",
				"typescript-transform-export-interop": "^1.0.2"
			},
			"gitHead": "3f0111183590eab8d258fb9e59e62c6baa38f1bb",
			"homepage": "https://github.com/fabiospampinato/khroma#readme",
			"_id": "khroma@1.1.0",
			"_npmVersion": "6.4.1",
			"_nodeVersion": "8.4.0",
			"_npmUser": {
				"name": "fabiospampinato",
				"email": "spampinabio@gmail.com"
			},
			"dist": {
				"integrity": "sha512-aTO+YX22tYOLEQJYFiatAj1lc5QZ+H5sHWFRBWNCiKwc5NWNUJZyeSeiHEPeURJ2a1GEVYcmyMUwGjjLe5ec5A==",
				"shasum": "cc17723eb719c5245ea66d23dd577d5695452db5",
				"tarball": "https://registry.npmjs.org/khroma/-/khroma-1.1.0.tgz",
				"fileCount": 171,
				"unpackedSize": 142556,
				"npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJemxV2CRA9TVsSAnZWagAAI8gP/jjXqOayLq3HmF9Ts2gb\nKYG1RI9wp+33YDCR2OuAs1QwCTfuONUm4LJIRqVbWjjKFupGJ31IEm8zfKS2\n9pNc02mWzMquzDeWMLYod2Od7DItIcDK01wCXb9lNmSDOqhay53F+e3WBdDl\nG7WekDUtwIYxaYgWo6c/eaiIj3b3ODD9LmgzgEHSD+cb6fsdjdek7IVxdBl1\nqc8UyTn/AS0F3YeqHl9BN1LKn2uoSYwzDnE7oNmi8u8KQbrLcbh9Yi4OQ68p\nDKe/4NWPKXHQ6WqIhdJKZ7utT50MAxM4WwcNHAPfWeMuv+H/PAUgDo9ZFnwD\n+cGgtFWp2XDFJRFrWDksbBggSWVR2ExjdZ054v/DuGet45CqSf+IQFON7XQt\nCp9JY6UMwDbIKvOlUImDKvLP1EnsDvzg1CsDOZwW68jRpg07aI/5rpM7X0BD\nmphGNlQkFvMCg34cPfdhTB0YWXQKWBj6hCy0LHp4W0PU31G9G9sUV+WPxVeG\nXdt4sOYajaiuTsdQrXkr9sKFQO0HYbAAKTbokcDDO2XAx1uw3FUffw0U6moB\nHQBUVMVJia0OrlmVEezbZcSmgvqqFfN2ghtqHkofkHy5LObAfOhKyBPDB7M5\nGQCv5OCY26lSjymB/voIUmHFFnFsew+cy8E1rSxo9EziOV3Dq1CTy13phDul\nTQrc\r\n=ga2i\r\n-----END PGP SIGNATURE-----\r\n"
			},
			"maintainers": [
				{
					"name": "fabiospampinato",
					"email": "spampinabio@gmail.com"
				}
			],
			"directories": {},
			"_npmOperationalInternal": {
				"host": "s3://npm-registry-packages",
				"tmp": "tmp/khroma_1.1.0_1587221878188_0.5809469686139415"
			},
			"_hasShrinkwrap": false,
			"contributors": []
		}
	},
	"time": {
		"created": "2020-02-03T18:57:05.302Z",
		"1.0.0": "2020-02-03T18:57:05.419Z",
		"modified": "2020-04-18T14:58:01.528Z",
		"1.0.1": "2020-03-17T02:36:58.230Z",
		"1.1.0": "2020-04-18T14:57:58.276Z"
	},
	"users": {},
	"dist-tags": {
		"latest": "1.1.0"
	},
	"_uplinks": {
		"npmjs": {
			"etag": "W/\"e1214ba22a4ba618a58c41e0ce635b11\"",
			"fetched": 1600679284113
		}
	},
	"_distfiles": {
		"khroma-1.0.0.tgz": {
			"url": "https://registry.npmjs.org/khroma/-/khroma-1.0.0.tgz",
			"sha": "5b1decf060e0e13e9417da6a4daa7a1d3f2612c8",
			"registry": "npmjs"
		},
		"khroma-1.0.1.tgz": {
			"url": "https://registry.npmjs.org/khroma/-/khroma-1.0.1.tgz",
			"sha": "b682ea74cffe6947921c8e4ac3a797e3e12cf96c",
			"registry": "npmjs"
		},
		"khroma-1.1.0.tgz": {
			"url": "https://registry.npmjs.org/khroma/-/khroma-1.1.0.tgz",
			"sha": "cc17723eb719c5245ea66d23dd577d5695452db5",
			"registry": "npmjs"
		}
	},
	"_attachments": {
		"khroma-1.1.0.tgz": {
			"shasum": "cc17723eb719c5245ea66d23dd577d5695452db5"
		}
	},
	"_rev": "2-db2862fd123739b4",
	"_id": "khroma",
	"readme": "# [Khrôma](https://en.wiktionary.org/wiki/%CF%87%CF%81%E1%BF%B6%CE%BC%CE%B1#Noun)\n\nA collection of functions for manipulating CSS colors, inspired by SASS.\n\n## Features\n\n- **Small**: the entire library weighs ~5kb (min + gzip) and has no dependencies.\n- **Fast**: in our benchmark suite functions are executed at ~0.0025ms per call on a mid-2014 MBP.\n- **Flexible**: All valid CSS colors are supported.\n- **SASS-like**: if you're familiar with SASS you should feel right at home.\n\n## Install\n\n```sh\nnpm install --save khroma\n```\n\n## Usage\n\n```ts\nimport {red, isDark, darken, change} from 'khroma';\n\nred ( '#ffffff' ); // => 255\nisDark ( 'white' ); // => false\ndarken ( 'hsl(0, 5%, 100%)', 50 ); // => 'hsl(0, 5%, 50%)'\nchange ( 'rgb(255, 255, 255)', { a: 0.5 } ); // => 'rgba(255, 255, 255, 0.5)'\n```\n\n## Functions\n\nThese are all the provided functions, for each of them below you can find a short description, its interface and examples.\n\n| Create        | Get <sub>channel</sub>    | Get <sub>more</sub>     | Edit <sub>channel</sub>           | Edit <sub>more</sub> |\n| ------------- | ------------------------- | ----------------------- | --------------------------------- | -------------------- |\n| [hex](#hex)   | [channel](#channel)       | [luminance](#luminance) | [saturate](#saturate)             | [adjust](#adjust)    |\n| [rgb](#rgb)   | [red](#red)               | [isDark](#isdark)       | [desaturate](#desaturate)         | [change](#change)    |\n| [rgba](#rgba) | [green](#green)           | [isLight](#islight)     | [lighten](#lighten)               | [invert](#invert)    |\n| [hsl](#hsl)   | [blue](#blue)             | [isValid](#isvalid)     | [darken](#darken)                 | [mix](#mix)          |\n| [hsla](#hsla) | [hue](#hue)               |                         | [opacify](#opacify)               | [scale](#scale)      |\n|               | [saturation](#saturation) |                         | [fadeIn](#fadein)                 |                      |\n|               | [lightness](#lightness)   |                         | [transparentize](#transparentize) |                      |\n|               | [alpha](#alpha)           |                         | [fadeOut](#fadeout)               |                      |\n|               | [opacity](#opacity)       |                         | [rgba](#rgba-alt) (alt)           |                      |\n|               |                           |                         | [complement](#complement)         |                      |\n|               |                           |                         | [grayscale](#grayscale)           |                      |\n\n### Create\n\nThese functions create a new color given the provided channels.\n\n#### `hex`\n\nAlias for [`rgba`](#rgba).\n\n#### `rgb`\n\nAlias for [`rgba`](#rgba).\n\n#### `rgba`\n\nCreates a new color given its rgba channels, the alpha channel is optional.\n\n```ts\nfunction rgba ( r: string, g: number, b: number, a: number = 1 ): string;\n```\n\n```ts\nrgba ( 255, 204, 0 ); // => '#ffcc00'\nrgba ( 255, 204, 0, 0.5 ); // => 'rgba(255, 204, 0, 0.5)'\n```\n\n#### `hsl`\n\nAlias for [`hsla`](#hsla).\n\n#### `hsla`\n\nCreates a new color given its hsla channels, the alpha channel is optional.\n\n```ts\nfunction hsla ( h: number, s: number, l: number, a: number = 1 ): string;\n```\n\n```ts\nhsla ( 0, 50, 100 ); // => 'hsl(0, 50%, 100%)'\nhsla ( 10, 50, 100, 0.5 ); // => 'hsla(10, 50%, 100%, 0.5)'\n```\n\n### Get <sub>channel</sub>\n\nThese functions get a single channel from the provided color.\n\n#### `channel`\n\nGets any single channel of the color.\n\n```ts\nfunction channel ( color: string, channel: 'r' | 'g' | 'b' | 'h' | 's' | 'l' | 'a' ): number;\n```\n\n```ts\nchannel ( '#ffcc00', 'r' ); // => 255\nchannel ( '#ffcc00', 'h' ); // => 48\nchannel ( '#ffcc00', 'a' ); // => 1\n```\n\n#### `red`\n\nGets the red channel of the color.\n\n```ts\nfunction red ( color: string ): number;\n```\n\n```ts\nred ( '#ffcc00' ); // => 255\n```\n\n#### `green`\n\nGets the green channel of the color.\n\n```ts\nfunction green ( color: string ): number;\n```\n\n```ts\ngreen ( '#ffcc00' ); // => 204\n```\n\n#### `blue`\n\nGets the blue channel of the color.\n\n```ts\nfunction blue ( color: string ): number;\n```\n\n```ts\nblue ( '#ffcc00' ); // => 0\n```\n\n#### `hue`\n\nGets the hue channel of the color.\n\n```ts\nfunction hue ( color: string ): number;\n```\n\n```ts\nhue ( 'hsl(0, 50%, 100%)' ); // => 0\n```\n\n#### `saturation`\n\nGets the saturation channel of the color.\n\n```ts\nfunction saturation ( color: string ): number;\n```\n\n```ts\nsaturation ( 'hsl(0, 50%, 100%)' ); // => 50\n```\n\n#### `lightness`\n\nGets the lightness channel of the color.\n\n```ts\nfunction lightness ( color: string ): number;\n```\n\n```ts\nlightness ( 'hsl(0, 50%, 100%)' ); // => 100\n```\n\n#### `alpha`\n\nGets the alpha channel of the color.\n\n```ts\nfunction alpha ( color: string ): number;\n```\n\n```ts\nalpha ( '#ffcc00' ); // => 1\nalpha ( 'rgba(255, 205, 0, 0.5)' ); // => 0.5\n```\n\n#### `opacity`\n\nAlias for [`alpha`](#alpha).\n\n### Get <sub>more</sub>\n\nThese functions get some other information from the provided color.\n\n#### `luminance`\n\nGets the [relative luminance](https://en.wikipedia.org/wiki/Relative_luminance) of the color.\n\n```ts\nfunction luminance ( color: string ): number;\n```\n\n```ts\nluminance ( 'black' ); // => 0\nluminance ( 'white' ); // => 1\nluminance ( '#ffcc00' ); // => 0.6444573127\n```\n\n#### `isDark`\n\nChecks if the provided color is a dark color.\n\n```ts\nfunction isDark ( color: string ): number;\n```\n\n```ts\nisDark ( 'black' ); // => true\nisDark ( 'white' ); // => false\nisDark ( '#ffcc00' ); // => false\n```\n\n#### `isLight`\n\nChecks if the provided color is a light color.\n\n```ts\nfunction isLight ( color: string ): number;\n```\n\n```ts\nisLight ( 'black' ); // => false\nisLight ( 'white' ); // => true\nisLight ( '#ffcc00' ); // => true\n```\n\n#### `isValid`\n\nChecks if the provided color is a valid color.\n\n```ts\nfunction isLight ( color: string ): boolean;\n```\n\n```ts\nisValid ( 'black' ); // => true\nisLight ( '#ffcc00' ); // => true\nisValid ( '#wtf' ); // => false\n```\n\n### Edit <sub>channel</sub>\n\nThese functions change a single channel of the provided color.\n\n#### `saturate`\n\nIncreases the saturation channel of the color.\n\n```ts\nfunction saturate ( color: string, amount: number ): string;\n```\n\n```ts\nsaturate ( 'hsl(0, 50%, 50%)', 25 ); // => 'hsl(0, 75%, 50%)'\n```\n\n#### `desaturate`\n\nDecreases the saturation channel of the color.\n\n```ts\nfunction desaturate ( color: string, amount: number ): string;\n```\n\n```ts\ndesaturate ( 'hsl(0, 50%, 50%)', 25 ); // => 'hsl(0, 25%, 50%)'\n```\n\n#### `lighten`\n\nIncreases the lightness channel of the color.\n\n```ts\nfunction lighten ( color: string, amount: number ): string;\n```\n\n```ts\nlighten ( 'hsl(0, 50%, 50%)', 25 ); // => 'hsl(0, 50%, 75%)'\n```\n\n#### `darken`\n\nDecreases the lightness channel of the color.\n\n```ts\nfunction darken ( color: string, amount: number ): string;\n```\n\n```ts\ndarken ( 'hsl(0, 50%, 50%)', 25 ); // => 'hsl(0, 50%, 25%)'\n```\n\n#### `opacify`\n\nIncreases the opacity channel of the color.\n\n```ts\nfunction opacify ( color: string, amount: number ): string;\n```\n\n```ts\nopacify ( 'rgba(255, 204, 0, 0.5)', 0.25 ); // => 'rgba(255, 204, 0, 0.75)'\n```\n\n#### `fadeIn`\n\nAlias for [`opacify`](#opacify).\n\n#### `transparentize`\n\nDecreases the opacity channel of the color.\n\n```ts\nfunction transparentize ( color: string, amount: number ): string;\n```\n\n```ts\ntransparentize ( 'rgba(255, 204, 0, 0.5)', 0.25 ); // => 'rgba(255, 204, 0, 0.25)'\n```\n\n#### `fadeOut`\n\nAlias for [`transparentize`](#transparentize).\n\n#### `rgba` (alt)\n\nSets a new value for the opacity channel.\n\n```ts\nfunction rgba ( color: string, amount: number ): string;\n```\n\n```ts\nrgba ( 'rgba(255, 204, 0, 0.5)', 0.1 ); // => 'rgba(255, 204, 0, 0.1)'\n```\n\n#### `complement`\n\nGets the complement of the color, rotating its hue channel by 180 degrees.\n\n```ts\nfunction complement ( color: string ): string;\n```\n\n```ts\ncomplement ( '#ffcc00' ); // => 'hsl(228, 100%, 50%)'\n```\n\n#### `grayscale`\n\nGets the grayscale version of the color, setting its saturation to 0.\n\n```ts\nfunction grayscale ( color: string ): string;\n```\n\n```ts\ngrayscale ( '#ffcc00' ); // => 'hsl(48, 0%, 50%)'\n```\n\n### Edit <sub>more</sub>\n\nThese functions can/will change more than a single channel at once of the provided color.\n\n#### `adjust`\n\nIncreases or decreases the value of any channel of the color.\n\n```ts\nfunction adjust ( color: string, channels: Record<'r' | 'g' | 'b' | 'h' | 's' | 'l' | 'a', number> ): string;\n```\n\n```ts\nadjust ( '#ffcc00', { r: -10, g: 200 } ); // => '#f5ff00'\nadjust ( '#ffcc00', { a: -0.5 } ); // => 'rgba(255, 204, 0, 0.5)'\nadjust ( '#ffcc00', { h: 50, l: -30 } ); // => 'hsl(98, 100%, 20%)'\n```\n\n#### `change`\n\nSets a new value for any channel of the color.\n\n```ts\nfunction change ( color: string, channels: Record<'r' | 'g' | 'b' | 'h' | 's' | 'l' | 'a', number> ): string;\n```\n\n```ts\nchange ( '#ffcc00', { r: 10, g: 200 } ); // => '#0ac800'\nchange ( '#ffcc00', { a: 0.5 } ); // => 'rgba(255, 204, 0, 0.5)'\nchange ( '#ffcc00', { h: 50, l: 30 } ); // => 'hsl(50, 100%, 30%)'\n```\n\n#### `invert`\n\nGets the inverse of the color.\n\n```ts\nfunction invert ( color: string, weight: number = 100 ): string;\n```\n\n```ts\ninvert ( '#ffcc00' ); // => '#0033ff'\ninvert ( '#ffcc00', 50 ); // => '#808080'\n```\n\n#### `mix`\n\nMixes two colors together.\n\n```ts\nfunction mix ( color1: string, color2: string, weight: number = 50 ): string;\n```\n\n```ts\nmix ( 'red', 'blue' ); // => '#800080'\nmix ( 'red', 'blue', 15 ); // => '#2600d9'\n```\n\n#### `scale`\n\nScales any channel of the color.\n\n```ts\nfunction scale ( color: string, channels: Record<'r' | 'g' | 'b' | 'h' | 's' | 'l' | 'a', number> ): string;\n```\n\n```ts\nscale ( '#ffcc00', { r: -50, b: 10 } ); // => '#80cc1a'\n```\n\n## License\n\nMIT © Fabio Spampinato, Andrew Maney"
}