├── .changeset ├── README.md └── config.json ├── .editorconfig ├── .github └── workflows │ ├── changesets.yaml │ └── tests.yaml ├── .gitignore ├── .vscode └── settings.json ├── CHANGELOG.md ├── LICENSE ├── README.md ├── cover.png ├── deno.json ├── deno.lock ├── lefthook.yaml ├── package.json ├── scripts ├── build.ts ├── builder.test.ts ├── builder.ts ├── targets │ ├── base │ │ ├── __snapshots__ │ │ │ └── base.test.ts.snap │ │ ├── base.config.ts │ │ ├── base.test.ts │ │ └── templates │ │ │ ├── index.cjs.template │ │ │ ├── index.d.ts.template │ │ │ └── index.js.template │ ├── css │ │ ├── __snapshots__ │ │ │ └── css.test.ts.snap │ │ ├── css.config.ts │ │ ├── css.test.ts │ │ └── templates │ │ │ ├── [color].css.template │ │ │ └── index.css.template │ └── tailwind │ │ ├── __snapshots__ │ │ └── tailwind.test.ts.snap │ │ ├── tailwind.config.ts │ │ ├── tailwind.test.ts │ │ └── templates │ │ ├── index.cjs.template │ │ ├── index.css.template │ │ ├── index.d.ts.template │ │ └── index.js.template └── types.ts ├── source.json └── tests └── utils.ts /.changeset/README.md: -------------------------------------------------------------------------------- 1 | # Changesets 2 | 3 | Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works 4 | with multi-package repos, or single-package repos to help you version and publish your code. You can 5 | find the full documentation for it [in our repository](https://github.com/changesets/changesets) 6 | 7 | We have a quick list of common questions to get you started engaging with this project in 8 | [our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md) 9 | -------------------------------------------------------------------------------- /.changeset/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://unpkg.com/@changesets/config@3.0.3/schema.json", 3 | "changelog": ["@changesets/changelog-github", { "repo": "evilmartians/harmony" }], 4 | "commit": false, 5 | "fixed": [], 6 | "linked": [], 7 | "access": "public", 8 | "baseBranch": "main", 9 | "updateInternalDependencies": "patch", 10 | "ignore": [] 11 | } 12 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | 3 | root = true 4 | 5 | [*] 6 | charset = utf-8 7 | end_of_line = lf 8 | insert_final_newline = true 9 | indent_style = tab 10 | indent_size = 2 11 | trim_trailing_whitespace = true 12 | max_line_length = 100 13 | 14 | [*.yaml] 15 | indent_style = space 16 | 17 | -------------------------------------------------------------------------------- /.github/workflows/changesets.yaml: -------------------------------------------------------------------------------- 1 | name: Changesets 2 | on: 3 | push: 4 | branches: 5 | - main 6 | paths: 7 | - '.changeset/**' 8 | - '.github/workflows/changesets.yaml' 9 | workflow_dispatch: 10 | 11 | env: 12 | CI: true 13 | jobs: 14 | Version: 15 | # prevents this action from running on forks 16 | if: github.repository == 'evilmartians/harmony' 17 | permissions: 18 | contents: write # to create release (changesets/action) 19 | pull-requests: write # to create pull request (changesets/action) 20 | id-token: write # OpenID Connect token needed for provenance 21 | timeout-minutes: 5 22 | runs-on: ubuntu-latest 23 | steps: 24 | - name: Checkout repository 25 | uses: actions/checkout@v4 26 | with: 27 | fetch-depth: 0 28 | 29 | - name: Install Deno 30 | uses: denoland/setup-deno@v2 31 | with: 32 | deno-version: v2.x 33 | 34 | - name: Install node dependencies 35 | run: 'deno install' 36 | 37 | - name: Create release PR or Publish to npm 38 | uses: changesets/action@v1 39 | with: 40 | version: deno task ci:changesets:version 41 | publish: deno task ci:changesets:publish 42 | commit: 'Changesets versioning & publication' 43 | title: 'Changesets: Versioning & Publication' 44 | createGithubReleases: true 45 | env: 46 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 47 | NPM_TOKEN: ${{ secrets.NPM_TOKEN }} 48 | 49 | -------------------------------------------------------------------------------- /.github/workflows/tests.yaml: -------------------------------------------------------------------------------- 1 | name: Tests 2 | on: 3 | push: 4 | branches: 5 | - main 6 | paths: 7 | - "scripts/**/*" 8 | - "tests/**/*" 9 | - ".github/workflows/tests.yaml" 10 | pull_request: 11 | branches: 12 | - main 13 | workflow_dispatch: 14 | 15 | env: 16 | CI: true 17 | jobs: 18 | Test: 19 | if: github.repository == 'evilmartians/harmony' # prevents this action from running on forks 20 | runs-on: ubuntu-latest 21 | timeout-minutes: 10 22 | steps: 23 | - name: Checkout repository 24 | uses: actions/checkout@v4 25 | with: 26 | fetch-depth: 0 27 | 28 | - name: Install Deno 29 | uses: denoland/setup-deno@v2 30 | with: 31 | deno-version: v2.x 32 | 33 | - name: Install dependencies 34 | run: "deno install" 35 | 36 | - name: Lint 37 | run: "deno lint" 38 | 39 | - name: Type-check 40 | run: "deno check **/*.ts" 41 | 42 | - name: Build 43 | run: "deno task build" 44 | 45 | - name: Publint 46 | run: "deno task publint" 47 | 48 | - name: Run unit tests 49 | run: "deno task ci:test" 50 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | node_modules 3 | coverage 4 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "deno.enable": true, 3 | "deno.lint": true, 4 | "deno.unstable": false 5 | } 6 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | ## 1.4.0 4 | 5 | ### Minor Changes 6 | 7 | - [#14](https://github.com/evilmartians/harmony/pull/14) [`d3f6327`](https://github.com/evilmartians/harmony/commit/d3f6327d0113be26d1c3cc0468987700784726fe) Thanks [@vnphanquang](https://github.com/vnphanquang)! - set pacakge as ESM-first, prioritize ESM exports as `.js`, update CommonJS exports as `.cjs`, fix [publint](https://publint.dev/@evilmartians/harmony@1.3.0) recommendations 8 | 9 | ## 1.3.0 (2024-11-25) 10 | 11 | - Add support for Tailwind v4 12 | 13 | ## 1.2.0 (2023-11-25) 14 | 15 | ### New features 16 | 17 | - Add `@evilmartians/harmony/css/index.css` file that imports all other css files. Closes [#4](https://github.com/evilmartians/harmony/issues/4). 18 | 19 | ### Bug fixes 20 | 21 | - Remove spaces between variable names and values in generated css for smaller minified css files. Closes [#7](https://github.com/evilmartians/harmony/issues/7). 22 | 23 | ### Improvements 24 | 25 | - Add CHANGELOG.md 26 | 27 | ## 1.1.0 (2023-10-23) 28 | 29 | ### New features 30 | 31 | - Add css-variables export target 32 | 33 | ## 1.0.0 (2023-10-05) 34 | 35 | - First stable release 36 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Evil Martians 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![Harmony](cover.png) 2 | 3 | [![github.actions.changesets.badge]][github.actions.changesets] [![MIT][license.badge]][license] [![npm.badge]][npm] 4 | 5 | # Harmony: Accessible UI Color Palette 6 | 7 | The 8 | [Harmony palette](https://www.figma.com/community/file/1287828769207775946/harmony-accessible-ui-color-palette) 9 | is designed to elevate control over color contrast in your design system. 10 | 11 | - Uses OKLCH and APCA for highly consistent color shades 12 | - Has P3 options for modern screens 13 | - Created to keep precise control over text and UI element contrast 14 | 15 |   Made 16 | by 17 | Evil 18 | Martians, product consulting for developer tools. 19 | 20 | Try out [Harmonizer](https://github.com/evilmartians/harmonizer) — the color palette generator used to create Harmony. Create your own color palettes with ease. 21 | 22 | ## Features 23 | 24 | - Equal contrast within lightness groups 25 | - Mirrored contrast pairs 26 | - Contrast levels for readability 27 | - Tailwind compatibility 28 | - P3 gamut for maximum color 29 | 30 | ## Installation 31 | 32 | ```shell 33 | npm install @evilmartians/harmony 34 | ``` 35 | 36 | ## Usage with Tailwind 37 | 38 | Harmony can work as drop-in replacement for the Tailwind color palette: 39 | 40 | ### Tailwind v4 41 | 42 | Simply import `@evilmartians/harmony/tailwind.css`: 43 | 44 | ```css 45 | /* app.css, or anywhere within Tailwind-aware context */ 46 | @import "tailwindcss"; 47 | @import "@evilmartians/harmony/tailwind.css"; 48 | ``` 49 | 50 | ### Tailwind v3 51 | 52 | ```js 53 | // tailwind.config.js 54 | 55 | import harmonyPalette from "@evilmartians/harmony/tailwind"; 56 | 57 | export default { 58 | theme: { 59 | colors: harmonyPalette, 60 | }, 61 | //... 62 | }; 63 | ``` 64 | 65 | > ⚠️ Harmony uses `oklch` colors and so requires a polyfill for old browsers 66 | 67 | 1. Install PostCSS plugin that polyfills oklch colors 68 | 69 | ```shell 70 | npm install -D @csstools/postcss-oklab-function 71 | ``` 72 | 73 | 2. Enable it in `postcss.config.js`: 74 | 75 | ```diff 76 | export default { 77 | plugins: { 78 | tailwindcss: {}, 79 | + '@csstools/postcss-oklab-function': { 'preserve': true }, 80 | autoprefixer: {}, 81 | }, 82 | } 83 | ``` 84 | 85 | ## Vanilla CSS 86 | 87 | Harmony palette provides a set of files with css variables. Each file contains all shades for one color in OKLCH with RGB fallbacks for old browsers. Just import colors you need and use them in css: 88 | 89 | ```css 90 | @import "@evilmartians/harmony/css/orange.css"; 91 | 92 | h1 { 93 | color: var(--orange-600); 94 | } 95 | ``` 96 | 97 | Harmony also provides an `index.css` file that imports all other css files. 98 | 👮WARNING: this file is **huge** and should be used only in combination with PurgeCSS (with `variables` option enabled), other tools that can clean unused css variables, or if you really need all the colors. 99 | 100 | ```css 101 | @import "@evilmartians/harmony/css/index.css"; 102 | 103 | /* now you can use any color */ 104 | h1 { 105 | color: var(--orange-600); 106 | } 107 | 108 | h2 { 109 | color: var(--red-300); 110 | } 111 | ``` 112 | 113 | ## Other formats 114 | 115 | Plain javascript object with colors without tailwind's specifics can be imported 116 | from `@evilmartians/harmony/base` 117 | 118 | ```js 119 | import palette from "@evilmartians/harmony/base"; 120 | console.log(palette.red["50"]); // => oklch(0.988281 0.0046875 20) 121 | ``` 122 | 123 | ## Development 124 | 125 | ### Prerequisites 126 | 127 | | Dependency | Version | Description | 128 | | ---------------------------------------------------- | ------- | ----------------- | 129 | | [Deno](https://docs.deno.com/runtime/) | ^2.0 | Runtime | 130 | | [Lefthook](https://github.com/evilmartians/lefthook) | ^0.7.0 | Git-hooks manager | 131 | 132 | ### Publication Workflow 133 | 134 | The project uses [changesets](https://github.com/changesets/changesets) to manage versioning and changelog. 135 | Typical workflow is as follow: 136 | 137 | 1. make changes to codebase, 138 | 2. run `deno task changesets` at project root and follow prompt to generate a "changeset" (logging a change), 139 | 3. commit both (1) and (2) into git. 140 | 141 | The [changesets Github action](./.github/workflows/changesets.yaml) is triggered on `push` to `main` and will create a corresponding "Changesets: Versioning & Publication" pull request, which, upon merged, will trigger publication of the new version to NPM. 142 | 143 | [license.badge]: https://img.shields.io/badge/license-MIT-blue.svg 144 | [license]: ./LICENSE 145 | [npm.badge]: https://img.shields.io/npm/v/@evilmartians/harmony 146 | [npm]: https://www.npmjs.com/package/@evilmartians/harmony 147 | [github.actions.changesets.badge]: https://github.com/evilmartians/harmony/actions/workflows/changesets.yaml/badge.svg?branch=main 148 | [github.actions.changesets]: https://github.com/evilmartians/harmony/actions/workflows/changesets.yaml 149 | -------------------------------------------------------------------------------- /cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evilmartians/harmony/94d09164db3d0ba1a6ac00765f28d34de8bc3175/cover.png -------------------------------------------------------------------------------- /deno.json: -------------------------------------------------------------------------------- 1 | { 2 | "tasks": { 3 | "build": "deno run --allow-read --allow-write scripts/build.ts", 4 | "publint": "deno lint dist && deno check dist && deno run --allow-read --allow-env npm:publint", 5 | "test": "deno test --allow-read --allow-write --watch", 6 | "update-snapshots": "deno test --allow-read --allow-write -- --update", 7 | "changesets": "deno run -A npm:@changesets/cli", 8 | "ci:test": "deno test -A --clean --coverage=coverage --junit-path=coverage/junit.xml", 9 | "ci:coverage": "deno coverage --lcov --output=./coverage/coverage.lcov", 10 | "ci:changesets:version": "deno run -A npm:@changesets/cli version", 11 | "ci:changesets:publish": "deno run -A npm:@changesets/cli publish" 12 | }, 13 | "fmt": { 14 | "useTabs": false, 15 | "lineWidth": 100, 16 | "indentWidth": 2, 17 | "semiColons": true, 18 | "singleQuote": false, 19 | "proseWrap": "preserve" 20 | }, 21 | "nodeModulesDir": "auto", 22 | "imports": { 23 | "@lambdalisue/sandbox": "jsr:@lambdalisue/sandbox@^2.0.1", 24 | "@std/assert": "jsr:@std/assert@^1.0.8", 25 | "@std/path": "jsr:@std/path@^1.0.8", 26 | "@std/testing": "jsr:@std/testing@^1.0.5" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /deno.lock: -------------------------------------------------------------------------------- 1 | { 2 | "version": "4", 3 | "specifiers": { 4 | "jsr:@lambdalisue/sandbox@*": "2.0.1", 5 | "jsr:@lambdalisue/sandbox@^2.0.1": "2.0.1", 6 | "jsr:@std/assert@*": "1.0.8", 7 | "jsr:@std/assert@^1.0.8": "1.0.8", 8 | "jsr:@std/async@^1.0.8": "1.0.9", 9 | "jsr:@std/data-structures@^1.0.4": "1.0.4", 10 | "jsr:@std/fs@^1.0.5": "1.0.6", 11 | "jsr:@std/internal@^1.0.5": "1.0.5", 12 | "jsr:@std/path@*": "1.0.8", 13 | "jsr:@std/path@^1.0.8": "1.0.8", 14 | "jsr:@std/testing@^1.0.5": "1.0.5", 15 | "npm:@changesets/changelog-github@0.5": "0.5.0", 16 | "npm:@changesets/cli@*": "2.27.10", 17 | "npm:@changesets/cli@^2.27.10": "2.27.10", 18 | "npm:mustache@^4.2.0": "4.2.0", 19 | "npm:publint@*": "0.2.12", 20 | "npm:publint@~0.2.12": "0.2.12", 21 | "npm:zod@*": "3.23.8", 22 | "npm:zod@^3.23.8": "3.23.8" 23 | }, 24 | "jsr": { 25 | "@lambdalisue/sandbox@2.0.1": { 26 | "integrity": "070c52399abda0015a8891ce62b1a27f86bb5100e15c2e7029926c46b7ae2f63" 27 | }, 28 | "@std/assert@1.0.8": { 29 | "integrity": "ebe0bd7eb488ee39686f77003992f389a06c3da1bbd8022184804852b2fa641b", 30 | "dependencies": [ 31 | "jsr:@std/internal" 32 | ] 33 | }, 34 | "@std/async@1.0.9": { 35 | "integrity": "c6472fd0623b3f3daae023cdf7ca5535e1b721dfbf376562c0c12b3fb4867f91" 36 | }, 37 | "@std/data-structures@1.0.4": { 38 | "integrity": "fa0e20c11eb9ba673417450915c750a0001405a784e2a4e0c3725031681684a0" 39 | }, 40 | "@std/fs@1.0.6": { 41 | "integrity": "42b56e1e41b75583a21d5a37f6a6a27de9f510bcd36c0c85791d685ca0b85fa2", 42 | "dependencies": [ 43 | "jsr:@std/path@^1.0.8" 44 | ] 45 | }, 46 | "@std/internal@1.0.5": { 47 | "integrity": "54a546004f769c1ac9e025abd15a76b6671ddc9687e2313b67376125650dc7ba" 48 | }, 49 | "@std/path@1.0.8": { 50 | "integrity": "548fa456bb6a04d3c1a1e7477986b6cffbce95102d0bb447c67c4ee70e0364be" 51 | }, 52 | "@std/testing@1.0.5": { 53 | "integrity": "6e693cbec94c81a1ad3df668685c7ba8e20742bb10305bc7137faa5cf16d2ec4", 54 | "dependencies": [ 55 | "jsr:@std/assert@^1.0.8", 56 | "jsr:@std/async", 57 | "jsr:@std/data-structures", 58 | "jsr:@std/fs", 59 | "jsr:@std/internal", 60 | "jsr:@std/path@^1.0.8" 61 | ] 62 | } 63 | }, 64 | "npm": { 65 | "@babel/runtime@7.26.0": { 66 | "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", 67 | "dependencies": [ 68 | "regenerator-runtime" 69 | ] 70 | }, 71 | "@changesets/apply-release-plan@7.0.6": { 72 | "integrity": "sha512-TKhVLtiwtQOgMAC0fCJfmv93faiViKSDqr8oMEqrnNs99gtSC1sZh/aEMS9a+dseU1ESZRCK+ofLgGY7o0fw/Q==", 73 | "dependencies": [ 74 | "@changesets/config", 75 | "@changesets/get-version-range-type", 76 | "@changesets/git", 77 | "@changesets/should-skip-package", 78 | "@changesets/types@6.0.0", 79 | "@manypkg/get-packages", 80 | "detect-indent", 81 | "fs-extra@7.0.1", 82 | "lodash.startcase", 83 | "outdent", 84 | "prettier", 85 | "resolve-from", 86 | "semver" 87 | ] 88 | }, 89 | "@changesets/assemble-release-plan@6.0.5": { 90 | "integrity": "sha512-IgvBWLNKZd6k4t72MBTBK3nkygi0j3t3zdC1zrfusYo0KpdsvnDjrMM9vPnTCLCMlfNs55jRL4gIMybxa64FCQ==", 91 | "dependencies": [ 92 | "@changesets/errors", 93 | "@changesets/get-dependents-graph", 94 | "@changesets/should-skip-package", 95 | "@changesets/types@6.0.0", 96 | "@manypkg/get-packages", 97 | "semver" 98 | ] 99 | }, 100 | "@changesets/changelog-git@0.2.0": { 101 | "integrity": "sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==", 102 | "dependencies": [ 103 | "@changesets/types@6.0.0" 104 | ] 105 | }, 106 | "@changesets/changelog-github@0.5.0": { 107 | "integrity": "sha512-zoeq2LJJVcPJcIotHRJEEA2qCqX0AQIeFE+L21L8sRLPVqDhSXY8ZWAt2sohtBpFZkBwu+LUwMSKRr2lMy3LJA==", 108 | "dependencies": [ 109 | "@changesets/get-github-info", 110 | "@changesets/types@6.0.0", 111 | "dotenv" 112 | ] 113 | }, 114 | "@changesets/cli@2.27.10": { 115 | "integrity": "sha512-PfeXjvs9OfQJV8QSFFHjwHX3QnUL9elPEQ47SgkiwzLgtKGyuikWjrdM+lO9MXzOE22FO9jEGkcs4b+B6D6X0Q==", 116 | "dependencies": [ 117 | "@changesets/apply-release-plan", 118 | "@changesets/assemble-release-plan", 119 | "@changesets/changelog-git", 120 | "@changesets/config", 121 | "@changesets/errors", 122 | "@changesets/get-dependents-graph", 123 | "@changesets/get-release-plan", 124 | "@changesets/git", 125 | "@changesets/logger", 126 | "@changesets/pre", 127 | "@changesets/read", 128 | "@changesets/should-skip-package", 129 | "@changesets/types@6.0.0", 130 | "@changesets/write", 131 | "@manypkg/get-packages", 132 | "ansi-colors", 133 | "ci-info", 134 | "enquirer", 135 | "external-editor", 136 | "fs-extra@7.0.1", 137 | "mri", 138 | "p-limit", 139 | "package-manager-detector", 140 | "picocolors", 141 | "resolve-from", 142 | "semver", 143 | "spawndamnit", 144 | "term-size" 145 | ] 146 | }, 147 | "@changesets/config@3.0.4": { 148 | "integrity": "sha512-+DiIwtEBpvvv1z30f8bbOsUQGuccnZl9KRKMM/LxUHuDu5oEjmN+bJQ1RIBKNJjfYMQn8RZzoPiX0UgPaLQyXw==", 149 | "dependencies": [ 150 | "@changesets/errors", 151 | "@changesets/get-dependents-graph", 152 | "@changesets/logger", 153 | "@changesets/types@6.0.0", 154 | "@manypkg/get-packages", 155 | "fs-extra@7.0.1", 156 | "micromatch" 157 | ] 158 | }, 159 | "@changesets/errors@0.2.0": { 160 | "integrity": "sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==", 161 | "dependencies": [ 162 | "extendable-error" 163 | ] 164 | }, 165 | "@changesets/get-dependents-graph@2.1.2": { 166 | "integrity": "sha512-sgcHRkiBY9i4zWYBwlVyAjEM9sAzs4wYVwJUdnbDLnVG3QwAaia1Mk5P8M7kraTOZN+vBET7n8KyB0YXCbFRLQ==", 167 | "dependencies": [ 168 | "@changesets/types@6.0.0", 169 | "@manypkg/get-packages", 170 | "picocolors", 171 | "semver" 172 | ] 173 | }, 174 | "@changesets/get-github-info@0.6.0": { 175 | "integrity": "sha512-v/TSnFVXI8vzX9/w3DU2Ol+UlTZcu3m0kXTjTT4KlAdwSvwutcByYwyYn9hwerPWfPkT2JfpoX0KgvCEi8Q/SA==", 176 | "dependencies": [ 177 | "dataloader", 178 | "node-fetch" 179 | ] 180 | }, 181 | "@changesets/get-release-plan@4.0.5": { 182 | "integrity": "sha512-E6wW7JoSMcctdVakut0UB76FrrN3KIeJSXvB+DHMFo99CnC3ZVnNYDCVNClMlqAhYGmLmAj77QfApaI3ca4Fkw==", 183 | "dependencies": [ 184 | "@changesets/assemble-release-plan", 185 | "@changesets/config", 186 | "@changesets/pre", 187 | "@changesets/read", 188 | "@changesets/types@6.0.0", 189 | "@manypkg/get-packages" 190 | ] 191 | }, 192 | "@changesets/get-version-range-type@0.4.0": { 193 | "integrity": "sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==" 194 | }, 195 | "@changesets/git@3.0.2": { 196 | "integrity": "sha512-r1/Kju9Y8OxRRdvna+nxpQIsMsRQn9dhhAZt94FLDeu0Hij2hnOozW8iqnHBgvu+KdnJppCveQwK4odwfw/aWQ==", 197 | "dependencies": [ 198 | "@changesets/errors", 199 | "@manypkg/get-packages", 200 | "is-subdir", 201 | "micromatch", 202 | "spawndamnit" 203 | ] 204 | }, 205 | "@changesets/logger@0.1.1": { 206 | "integrity": "sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==", 207 | "dependencies": [ 208 | "picocolors" 209 | ] 210 | }, 211 | "@changesets/parse@0.4.0": { 212 | "integrity": "sha512-TS/9KG2CdGXS27S+QxbZXgr8uPsP4yNJYb4BC2/NeFUj80Rni3TeD2qwWmabymxmrLo7JEsytXH1FbpKTbvivw==", 213 | "dependencies": [ 214 | "@changesets/types@6.0.0", 215 | "js-yaml" 216 | ] 217 | }, 218 | "@changesets/pre@2.0.1": { 219 | "integrity": "sha512-vvBJ/If4jKM4tPz9JdY2kGOgWmCowUYOi5Ycv8dyLnEE8FgpYYUo1mgJZxcdtGGP3aG8rAQulGLyyXGSLkIMTQ==", 220 | "dependencies": [ 221 | "@changesets/errors", 222 | "@changesets/types@6.0.0", 223 | "@manypkg/get-packages", 224 | "fs-extra@7.0.1" 225 | ] 226 | }, 227 | "@changesets/read@0.6.2": { 228 | "integrity": "sha512-wjfQpJvryY3zD61p8jR87mJdyx2FIhEcdXhKUqkja87toMrP/3jtg/Yg29upN+N4Ckf525/uvV7a4tzBlpk6gg==", 229 | "dependencies": [ 230 | "@changesets/git", 231 | "@changesets/logger", 232 | "@changesets/parse", 233 | "@changesets/types@6.0.0", 234 | "fs-extra@7.0.1", 235 | "p-filter", 236 | "picocolors" 237 | ] 238 | }, 239 | "@changesets/should-skip-package@0.1.1": { 240 | "integrity": "sha512-H9LjLbF6mMHLtJIc/eHR9Na+MifJ3VxtgP/Y+XLn4BF7tDTEN1HNYtH6QMcjP1uxp9sjaFYmW8xqloaCi/ckTg==", 241 | "dependencies": [ 242 | "@changesets/types@6.0.0", 243 | "@manypkg/get-packages" 244 | ] 245 | }, 246 | "@changesets/types@4.1.0": { 247 | "integrity": "sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==" 248 | }, 249 | "@changesets/types@6.0.0": { 250 | "integrity": "sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ==" 251 | }, 252 | "@changesets/write@0.3.2": { 253 | "integrity": "sha512-kDxDrPNpUgsjDbWBvUo27PzKX4gqeKOlhibaOXDJA6kuBisGqNHv/HwGJrAu8U/dSf8ZEFIeHIPtvSlZI1kULw==", 254 | "dependencies": [ 255 | "@changesets/types@6.0.0", 256 | "fs-extra@7.0.1", 257 | "human-id", 258 | "prettier" 259 | ] 260 | }, 261 | "@manypkg/find-root@1.1.0": { 262 | "integrity": "sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==", 263 | "dependencies": [ 264 | "@babel/runtime", 265 | "@types/node", 266 | "find-up", 267 | "fs-extra@8.1.0" 268 | ] 269 | }, 270 | "@manypkg/get-packages@1.1.3": { 271 | "integrity": "sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==", 272 | "dependencies": [ 273 | "@babel/runtime", 274 | "@changesets/types@4.1.0", 275 | "@manypkg/find-root", 276 | "fs-extra@8.1.0", 277 | "globby", 278 | "read-yaml-file" 279 | ] 280 | }, 281 | "@nodelib/fs.scandir@2.1.5": { 282 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 283 | "dependencies": [ 284 | "@nodelib/fs.stat", 285 | "run-parallel" 286 | ] 287 | }, 288 | "@nodelib/fs.stat@2.0.5": { 289 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" 290 | }, 291 | "@nodelib/fs.walk@1.2.8": { 292 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 293 | "dependencies": [ 294 | "@nodelib/fs.scandir", 295 | "fastq" 296 | ] 297 | }, 298 | "@types/node@12.20.55": { 299 | "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" 300 | }, 301 | "ansi-colors@4.1.3": { 302 | "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==" 303 | }, 304 | "ansi-regex@5.0.1": { 305 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" 306 | }, 307 | "argparse@1.0.10": { 308 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", 309 | "dependencies": [ 310 | "sprintf-js" 311 | ] 312 | }, 313 | "array-union@2.1.0": { 314 | "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" 315 | }, 316 | "balanced-match@1.0.2": { 317 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" 318 | }, 319 | "better-path-resolve@1.0.0": { 320 | "integrity": "sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==", 321 | "dependencies": [ 322 | "is-windows" 323 | ] 324 | }, 325 | "brace-expansion@2.0.1": { 326 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", 327 | "dependencies": [ 328 | "balanced-match" 329 | ] 330 | }, 331 | "braces@3.0.3": { 332 | "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", 333 | "dependencies": [ 334 | "fill-range" 335 | ] 336 | }, 337 | "chardet@0.7.0": { 338 | "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" 339 | }, 340 | "ci-info@3.9.0": { 341 | "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==" 342 | }, 343 | "cross-spawn@7.0.6": { 344 | "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", 345 | "dependencies": [ 346 | "path-key", 347 | "shebang-command", 348 | "which" 349 | ] 350 | }, 351 | "dataloader@1.4.0": { 352 | "integrity": "sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==" 353 | }, 354 | "detect-indent@6.1.0": { 355 | "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==" 356 | }, 357 | "dir-glob@3.0.1": { 358 | "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", 359 | "dependencies": [ 360 | "path-type" 361 | ] 362 | }, 363 | "dotenv@8.6.0": { 364 | "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==" 365 | }, 366 | "enquirer@2.4.1": { 367 | "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", 368 | "dependencies": [ 369 | "ansi-colors", 370 | "strip-ansi" 371 | ] 372 | }, 373 | "esprima@4.0.1": { 374 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" 375 | }, 376 | "extendable-error@0.1.7": { 377 | "integrity": "sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==" 378 | }, 379 | "external-editor@3.1.0": { 380 | "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", 381 | "dependencies": [ 382 | "chardet", 383 | "iconv-lite", 384 | "tmp" 385 | ] 386 | }, 387 | "fast-glob@3.3.2": { 388 | "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", 389 | "dependencies": [ 390 | "@nodelib/fs.stat", 391 | "@nodelib/fs.walk", 392 | "glob-parent", 393 | "merge2", 394 | "micromatch" 395 | ] 396 | }, 397 | "fastq@1.17.1": { 398 | "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", 399 | "dependencies": [ 400 | "reusify" 401 | ] 402 | }, 403 | "fill-range@7.1.1": { 404 | "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", 405 | "dependencies": [ 406 | "to-regex-range" 407 | ] 408 | }, 409 | "find-up@4.1.0": { 410 | "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", 411 | "dependencies": [ 412 | "locate-path", 413 | "path-exists" 414 | ] 415 | }, 416 | "fs-extra@7.0.1": { 417 | "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", 418 | "dependencies": [ 419 | "graceful-fs", 420 | "jsonfile", 421 | "universalify" 422 | ] 423 | }, 424 | "fs-extra@8.1.0": { 425 | "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", 426 | "dependencies": [ 427 | "graceful-fs", 428 | "jsonfile", 429 | "universalify" 430 | ] 431 | }, 432 | "fs.realpath@1.0.0": { 433 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" 434 | }, 435 | "glob-parent@5.1.2": { 436 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 437 | "dependencies": [ 438 | "is-glob" 439 | ] 440 | }, 441 | "glob@8.1.0": { 442 | "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", 443 | "dependencies": [ 444 | "fs.realpath", 445 | "inflight", 446 | "inherits", 447 | "minimatch", 448 | "once" 449 | ] 450 | }, 451 | "globby@11.1.0": { 452 | "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", 453 | "dependencies": [ 454 | "array-union", 455 | "dir-glob", 456 | "fast-glob", 457 | "ignore", 458 | "merge2", 459 | "slash" 460 | ] 461 | }, 462 | "graceful-fs@4.2.11": { 463 | "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" 464 | }, 465 | "human-id@1.0.2": { 466 | "integrity": "sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==" 467 | }, 468 | "iconv-lite@0.4.24": { 469 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 470 | "dependencies": [ 471 | "safer-buffer" 472 | ] 473 | }, 474 | "ignore-walk@5.0.1": { 475 | "integrity": "sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==", 476 | "dependencies": [ 477 | "minimatch" 478 | ] 479 | }, 480 | "ignore@5.3.2": { 481 | "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==" 482 | }, 483 | "inflight@1.0.6": { 484 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", 485 | "dependencies": [ 486 | "once", 487 | "wrappy" 488 | ] 489 | }, 490 | "inherits@2.0.4": { 491 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 492 | }, 493 | "is-extglob@2.1.1": { 494 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" 495 | }, 496 | "is-glob@4.0.3": { 497 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 498 | "dependencies": [ 499 | "is-extglob" 500 | ] 501 | }, 502 | "is-number@7.0.0": { 503 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" 504 | }, 505 | "is-subdir@1.2.0": { 506 | "integrity": "sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==", 507 | "dependencies": [ 508 | "better-path-resolve" 509 | ] 510 | }, 511 | "is-windows@1.0.2": { 512 | "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" 513 | }, 514 | "isexe@2.0.0": { 515 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" 516 | }, 517 | "js-yaml@3.14.1": { 518 | "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", 519 | "dependencies": [ 520 | "argparse", 521 | "esprima" 522 | ] 523 | }, 524 | "jsonfile@4.0.0": { 525 | "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", 526 | "dependencies": [ 527 | "graceful-fs" 528 | ] 529 | }, 530 | "locate-path@5.0.0": { 531 | "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", 532 | "dependencies": [ 533 | "p-locate" 534 | ] 535 | }, 536 | "lodash.startcase@4.4.0": { 537 | "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==" 538 | }, 539 | "merge2@1.4.1": { 540 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" 541 | }, 542 | "micromatch@4.0.8": { 543 | "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", 544 | "dependencies": [ 545 | "braces", 546 | "picomatch" 547 | ] 548 | }, 549 | "minimatch@5.1.6": { 550 | "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", 551 | "dependencies": [ 552 | "brace-expansion" 553 | ] 554 | }, 555 | "mri@1.2.0": { 556 | "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==" 557 | }, 558 | "mustache@4.2.0": { 559 | "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==" 560 | }, 561 | "node-fetch@2.7.0": { 562 | "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", 563 | "dependencies": [ 564 | "whatwg-url" 565 | ] 566 | }, 567 | "npm-bundled@2.0.1": { 568 | "integrity": "sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw==", 569 | "dependencies": [ 570 | "npm-normalize-package-bin" 571 | ] 572 | }, 573 | "npm-normalize-package-bin@2.0.0": { 574 | "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==" 575 | }, 576 | "npm-packlist@5.1.3": { 577 | "integrity": "sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg==", 578 | "dependencies": [ 579 | "glob", 580 | "ignore-walk", 581 | "npm-bundled", 582 | "npm-normalize-package-bin" 583 | ] 584 | }, 585 | "once@1.4.0": { 586 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 587 | "dependencies": [ 588 | "wrappy" 589 | ] 590 | }, 591 | "os-tmpdir@1.0.2": { 592 | "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==" 593 | }, 594 | "outdent@0.5.0": { 595 | "integrity": "sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==" 596 | }, 597 | "p-filter@2.1.0": { 598 | "integrity": "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==", 599 | "dependencies": [ 600 | "p-map" 601 | ] 602 | }, 603 | "p-limit@2.3.0": { 604 | "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", 605 | "dependencies": [ 606 | "p-try" 607 | ] 608 | }, 609 | "p-locate@4.1.0": { 610 | "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", 611 | "dependencies": [ 612 | "p-limit" 613 | ] 614 | }, 615 | "p-map@2.1.0": { 616 | "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==" 617 | }, 618 | "p-try@2.2.0": { 619 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" 620 | }, 621 | "package-manager-detector@0.2.5": { 622 | "integrity": "sha512-3dS7y28uua+UDbRCLBqltMBrbI+A5U2mI9YuxHRxIWYmLj3DwntEBmERYzIAQ4DMeuCUOBSak7dBHHoXKpOTYQ==" 623 | }, 624 | "path-exists@4.0.0": { 625 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" 626 | }, 627 | "path-key@3.1.1": { 628 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" 629 | }, 630 | "path-type@4.0.0": { 631 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" 632 | }, 633 | "picocolors@1.1.1": { 634 | "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" 635 | }, 636 | "picomatch@2.3.1": { 637 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" 638 | }, 639 | "pify@4.0.1": { 640 | "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" 641 | }, 642 | "prettier@2.8.8": { 643 | "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==" 644 | }, 645 | "publint@0.2.12": { 646 | "integrity": "sha512-YNeUtCVeM4j9nDiTT2OPczmlyzOkIXNtdDZnSuajAxS/nZ6j3t7Vs9SUB4euQNddiltIwu7Tdd3s+hr08fAsMw==", 647 | "dependencies": [ 648 | "npm-packlist", 649 | "picocolors", 650 | "sade" 651 | ] 652 | }, 653 | "queue-microtask@1.2.3": { 654 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" 655 | }, 656 | "read-yaml-file@1.1.0": { 657 | "integrity": "sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==", 658 | "dependencies": [ 659 | "graceful-fs", 660 | "js-yaml", 661 | "pify", 662 | "strip-bom" 663 | ] 664 | }, 665 | "regenerator-runtime@0.14.1": { 666 | "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" 667 | }, 668 | "resolve-from@5.0.0": { 669 | "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" 670 | }, 671 | "reusify@1.0.4": { 672 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" 673 | }, 674 | "run-parallel@1.2.0": { 675 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 676 | "dependencies": [ 677 | "queue-microtask" 678 | ] 679 | }, 680 | "sade@1.8.1": { 681 | "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", 682 | "dependencies": [ 683 | "mri" 684 | ] 685 | }, 686 | "safer-buffer@2.1.2": { 687 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 688 | }, 689 | "semver@7.6.3": { 690 | "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==" 691 | }, 692 | "shebang-command@2.0.0": { 693 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 694 | "dependencies": [ 695 | "shebang-regex" 696 | ] 697 | }, 698 | "shebang-regex@3.0.0": { 699 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" 700 | }, 701 | "signal-exit@4.1.0": { 702 | "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==" 703 | }, 704 | "slash@3.0.0": { 705 | "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" 706 | }, 707 | "spawndamnit@3.0.1": { 708 | "integrity": "sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==", 709 | "dependencies": [ 710 | "cross-spawn", 711 | "signal-exit" 712 | ] 713 | }, 714 | "sprintf-js@1.0.3": { 715 | "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" 716 | }, 717 | "strip-ansi@6.0.1": { 718 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 719 | "dependencies": [ 720 | "ansi-regex" 721 | ] 722 | }, 723 | "strip-bom@3.0.0": { 724 | "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==" 725 | }, 726 | "term-size@2.2.1": { 727 | "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==" 728 | }, 729 | "tmp@0.0.33": { 730 | "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", 731 | "dependencies": [ 732 | "os-tmpdir" 733 | ] 734 | }, 735 | "to-regex-range@5.0.1": { 736 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 737 | "dependencies": [ 738 | "is-number" 739 | ] 740 | }, 741 | "tr46@0.0.3": { 742 | "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" 743 | }, 744 | "universalify@0.1.2": { 745 | "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" 746 | }, 747 | "webidl-conversions@3.0.1": { 748 | "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" 749 | }, 750 | "whatwg-url@5.0.0": { 751 | "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", 752 | "dependencies": [ 753 | "tr46", 754 | "webidl-conversions" 755 | ] 756 | }, 757 | "which@2.0.2": { 758 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 759 | "dependencies": [ 760 | "isexe" 761 | ] 762 | }, 763 | "wrappy@1.0.2": { 764 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" 765 | }, 766 | "zod@3.23.8": { 767 | "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==" 768 | } 769 | }, 770 | "remote": { 771 | "https://deno.land/std@0.202.0/assert/_constants.ts": "8a9da298c26750b28b326b297316cdde860bc237533b07e1337c021379e6b2a9", 772 | "https://deno.land/std@0.202.0/assert/_diff.ts": "1a3c044aedf77647d6cac86b798c6417603361b66b54c53331b312caeb447aea", 773 | "https://deno.land/std@0.202.0/assert/_format.ts": "a69126e8a469009adf4cf2a50af889aca364c349797e63174884a52ff75cf4c7", 774 | "https://deno.land/std@0.202.0/assert/assert.ts": "9a97dad6d98c238938e7540736b826440ad8c1c1e54430ca4c4e623e585607ee", 775 | "https://deno.land/std@0.202.0/assert/assert_almost_equals.ts": "e15ca1f34d0d5e0afae63b3f5d975cbd18335a132e42b0c747d282f62ad2cd6c", 776 | "https://deno.land/std@0.202.0/assert/assert_array_includes.ts": "6856d7f2c3544bc6e62fb4646dfefa3d1df5ff14744d1bca19f0cbaf3b0d66c9", 777 | "https://deno.land/std@0.202.0/assert/assert_equals.ts": "d8ec8a22447fbaf2fc9d7c3ed2e66790fdb74beae3e482855d75782218d68227", 778 | "https://deno.land/std@0.202.0/assert/assert_exists.ts": "407cb6b9fb23a835cd8d5ad804e2e2edbbbf3870e322d53f79e1c7a512e2efd7", 779 | "https://deno.land/std@0.202.0/assert/assert_false.ts": "0ccbcaae910f52c857192ff16ea08bda40fdc79de80846c206bfc061e8c851c6", 780 | "https://deno.land/std@0.202.0/assert/assert_greater.ts": "ae2158a2d19313bf675bf7251d31c6dc52973edb12ac64ac8fc7064152af3e63", 781 | "https://deno.land/std@0.202.0/assert/assert_greater_or_equal.ts": "1439da5ebbe20855446cac50097ac78b9742abe8e9a43e7de1ce1426d556e89c", 782 | "https://deno.land/std@0.202.0/assert/assert_instance_of.ts": "3aedb3d8186e120812d2b3a5dea66a6e42bf8c57a8bd927645770bd21eea554c", 783 | "https://deno.land/std@0.202.0/assert/assert_is_error.ts": "c21113094a51a296ffaf036767d616a78a2ae5f9f7bbd464cd0197476498b94b", 784 | "https://deno.land/std@0.202.0/assert/assert_less.ts": "aec695db57db42ec3e2b62e97e1e93db0063f5a6ec133326cc290ff4b71b47e4", 785 | "https://deno.land/std@0.202.0/assert/assert_less_or_equal.ts": "5fa8b6a3ffa20fd0a05032fe7257bf985d207b85685fdbcd23651b70f928c848", 786 | "https://deno.land/std@0.202.0/assert/assert_match.ts": "c4083f80600bc190309903c95e397a7c9257ff8b5ae5c7ef91e834704e672e9b", 787 | "https://deno.land/std@0.202.0/assert/assert_not_equals.ts": "9f1acab95bd1f5fc9a1b17b8027d894509a745d91bac1718fdab51dc76831754", 788 | "https://deno.land/std@0.202.0/assert/assert_not_instance_of.ts": "0c14d3dfd9ab7a5276ed8ed0b18c703d79a3d106102077ec437bfe7ed912bd22", 789 | "https://deno.land/std@0.202.0/assert/assert_not_match.ts": "3796a5b0c57a1ce6c1c57883dd4286be13a26f715ea662318ab43a8491a13ab0", 790 | "https://deno.land/std@0.202.0/assert/assert_not_strict_equals.ts": "ca6c6d645e95fbc873d25320efeb8c4c6089a9a5e09f92d7c1c4b6e935c2a6ad", 791 | "https://deno.land/std@0.202.0/assert/assert_object_match.ts": "d8fc2867cfd92eeacf9cea621e10336b666de1874a6767b5ec48988838370b54", 792 | "https://deno.land/std@0.202.0/assert/assert_rejects.ts": "45c59724de2701e3b1f67c391d6c71c392363635aad3f68a1b3408f9efca0057", 793 | "https://deno.land/std@0.202.0/assert/assert_strict_equals.ts": "b1f538a7ea5f8348aeca261d4f9ca603127c665e0f2bbfeb91fa272787c87265", 794 | "https://deno.land/std@0.202.0/assert/assert_string_includes.ts": "b821d39ebf5cb0200a348863c86d8c4c4b398e02012ce74ad15666fc4b631b0c", 795 | "https://deno.land/std@0.202.0/assert/assert_throws.ts": "63784e951475cb7bdfd59878cd25a0931e18f6dc32a6077c454b2cd94f4f4bcd", 796 | "https://deno.land/std@0.202.0/assert/assertion_error.ts": "4d0bde9b374dfbcbe8ac23f54f567b77024fb67dbb1906a852d67fe050d42f56", 797 | "https://deno.land/std@0.202.0/assert/equal.ts": "9f1a46d5993966d2596c44e5858eec821859b45f783a5ee2f7a695dfc12d8ece", 798 | "https://deno.land/std@0.202.0/assert/fail.ts": "c36353d7ae6e1f7933d45f8ea51e358c8c4b67d7e7502028598fe1fea062e278", 799 | "https://deno.land/std@0.202.0/assert/mod.ts": "37c49a26aae2b254bbe25723434dc28cd7532e444cf0b481a97c045d110ec085", 800 | "https://deno.land/std@0.202.0/assert/unimplemented.ts": "d56fbeecb1f108331a380f72e3e010a1f161baa6956fd0f7cf3e095ae1a4c75a", 801 | "https://deno.land/std@0.202.0/assert/unreachable.ts": "4600dc0baf7d9c15a7f7d234f00c23bca8f3eba8b140286aaca7aa998cf9a536", 802 | "https://deno.land/std@0.202.0/fmt/colors.ts": "c51c4642678eb690dcf5ffee5918b675bf01a33fba82acf303701ae1a4f8c8d9", 803 | "https://deno.land/std@0.202.0/fs/_util.ts": "fbf57dcdc9f7bc8128d60301eece608246971a7836a3bb1e78da75314f08b978", 804 | "https://deno.land/std@0.202.0/fs/ensure_dir.ts": "dc64c4c75c64721d4e3fb681f1382f803ff3d2868f08563ff923fdd20d071c40", 805 | "https://deno.land/std@0.202.0/fs/ensure_file.ts": "39ac83cc283a20ec2735e956adf5de3e8a3334e0b6820547b5772f71c49ae083", 806 | "https://deno.land/std@0.202.0/path/_basename.ts": "057d420c9049821f983f784fd87fa73ac471901fb628920b67972b0f44319343", 807 | "https://deno.land/std@0.202.0/path/_constants.ts": "e49961f6f4f48039c0dfed3c3f93e963ca3d92791c9d478ac5b43183413136e0", 808 | "https://deno.land/std@0.202.0/path/_dirname.ts": "355e297236b2218600aee7a5301b937204c62e12da9db4b0b044993d9e658395", 809 | "https://deno.land/std@0.202.0/path/_extname.ts": "eaaa5aae1acf1f03254d681bd6a8ce42a9cb5b7ff2213a9d4740e8ab31283664", 810 | "https://deno.land/std@0.202.0/path/_format.ts": "4a99270d6810f082e614309164fad75d6f1a483b68eed97c830a506cc589f8b4", 811 | "https://deno.land/std@0.202.0/path/_from_file_url.ts": "6eadfae2e6f63ad9ee46b26db4a1b16583055c0392acedfb50ed2fc694b6f581", 812 | "https://deno.land/std@0.202.0/path/_interface.ts": "6471159dfbbc357e03882c2266d21ef9afdb1e4aa771b0545e90db58a0ba314b", 813 | "https://deno.land/std@0.202.0/path/_is_absolute.ts": "05dac10b5e93c63198b92e3687baa2be178df5321c527dc555266c0f4f51558c", 814 | "https://deno.land/std@0.202.0/path/_join.ts": "815f5e85b042285175b1492dd5781240ce126c23bd97bad6b8211fe7129c538e", 815 | "https://deno.land/std@0.202.0/path/_normalize.ts": "a19ec8706b2707f9dd974662a5cd89fad438e62ab1857e08b314a8eb49a34d81", 816 | "https://deno.land/std@0.202.0/path/_os.ts": "30b0c2875f360c9296dbe6b7f2d528f0f9c741cecad2e97f803f5219e91b40a2", 817 | "https://deno.land/std@0.202.0/path/_parse.ts": "0f9b0ff43682dd9964eb1c4398610c4e165d8db9d3ac9d594220217adf480cfa", 818 | "https://deno.land/std@0.202.0/path/_relative.ts": "27bdeffb5311a47d85be26d37ad1969979359f7636c5cd9fcf05dcd0d5099dc5", 819 | "https://deno.land/std@0.202.0/path/_resolve.ts": "7a3616f1093735ed327e758313b79c3c04ea921808ca5f19ddf240cb68d0adf6", 820 | "https://deno.land/std@0.202.0/path/_to_file_url.ts": "a141e4a525303e1a3a0c0571fd024552b5f3553a2af7d75d1ff3a503dcbb66d8", 821 | "https://deno.land/std@0.202.0/path/_to_namespaced_path.ts": "0d5f4caa2ed98ef7a8786286df6af804b50e38859ae897b5b5b4c8c5930a75c8", 822 | "https://deno.land/std@0.202.0/path/_util.ts": "4e191b1bac6b3bf0c31aab42e5ca2e01a86ab5a0d2e08b75acf8585047a86221", 823 | "https://deno.land/std@0.202.0/path/basename.ts": "bdfa5a624c6a45564dc6758ef2077f2822978a6dbe77b0a3514f7d1f81362930", 824 | "https://deno.land/std@0.202.0/path/common.ts": "ee7505ab01fd22de3963b64e46cff31f40de34f9f8de1fff6a1bd2fe79380000", 825 | "https://deno.land/std@0.202.0/path/dirname.ts": "b6533f4ee4174a526dec50c279534df5345836dfdc15318400b08c62a62a39dd", 826 | "https://deno.land/std@0.202.0/path/extname.ts": "62c4b376300795342fe1e4746c0de518b4dc9c4b0b4617bfee62a2973a9555cf", 827 | "https://deno.land/std@0.202.0/path/format.ts": "110270b238514dd68455a4c54956215a1aff7e37e22e4427b7771cefe1920aa5", 828 | "https://deno.land/std@0.202.0/path/from_file_url.ts": "9f5cb58d58be14c775ec2e57fc70029ac8b17ed3bd7fe93e475b07280adde0ac", 829 | "https://deno.land/std@0.202.0/path/glob.ts": "593e2c3573883225c25c5a21aaa8e9382a696b8e175ea20a3b6a1471ad17aaed", 830 | "https://deno.land/std@0.202.0/path/is_absolute.ts": "0b92eb35a0a8780e9f16f16bb23655b67dace6a8e0d92d42039e518ee38103c1", 831 | "https://deno.land/std@0.202.0/path/join.ts": "31c5419f23d91655b08ec7aec403f4e4cd1a63d39e28f6e42642ea207c2734f8", 832 | "https://deno.land/std@0.202.0/path/mod.ts": "6e1efb0b13121463aedb53ea51dabf5639a3172ab58c89900bbb72b486872532", 833 | "https://deno.land/std@0.202.0/path/normalize.ts": "6ea523e0040979dd7ae2f1be5bf2083941881a252554c0f32566a18b03021955", 834 | "https://deno.land/std@0.202.0/path/parse.ts": "be8de342bb9e1924d78dc4d93c45215c152db7bf738ec32475560424b119b394", 835 | "https://deno.land/std@0.202.0/path/posix.ts": "0a1c1952d132323a88736d03e92bd236f3ed5f9f079e5823fae07c8d978ee61b", 836 | "https://deno.land/std@0.202.0/path/relative.ts": "8bedac226afd360afc45d451a6c29fabceaf32978526bcb38e0c852661f66c61", 837 | "https://deno.land/std@0.202.0/path/resolve.ts": "133161e4949fc97f9ca67988d51376b0f5eef8968a6372325ab84d39d30b80dc", 838 | "https://deno.land/std@0.202.0/path/separator.ts": "40a3e9a4ad10bef23bc2cd6c610291b6c502a06237c2c4cd034a15ca78dedc1f", 839 | "https://deno.land/std@0.202.0/path/to_file_url.ts": "00e6322373dd51ad109956b775e4e72e5f9fa68ce2c6b04e4af2a6eed3825d31", 840 | "https://deno.land/std@0.202.0/path/to_namespaced_path.ts": "1b1db3055c343ab389901adfbda34e82b7386bcd1c744d54f9c1496ee0fd0c3d", 841 | "https://deno.land/std@0.202.0/path/win32.ts": "8b3f80ef7a462511d5e8020ff490edcaa0a0d118f1b1e9da50e2916bdd73f9dd", 842 | "https://deno.land/std@0.202.0/testing/snapshot.ts": "d53cc4ad3250e3a826df9a1a90bc19c9a92c8faa8fd508d16b5e6ce8699310ca", 843 | "https://deno.land/std@0.203.0/assert/assert.ts": "9a97dad6d98c238938e7540736b826440ad8c1c1e54430ca4c4e623e585607ee", 844 | "https://deno.land/std@0.203.0/assert/assertion_error.ts": "4d0bde9b374dfbcbe8ac23f54f567b77024fb67dbb1906a852d67fe050d42f56", 845 | "https://deno.land/std@0.203.0/fs/_util.ts": "fbf57dcdc9f7bc8128d60301eece608246971a7836a3bb1e78da75314f08b978", 846 | "https://deno.land/std@0.203.0/fs/copy.ts": "23cc1c465babe5ca4d69778821e2f8addc44593e30a5ca0b902b3784eed75bb6", 847 | "https://deno.land/std@0.203.0/fs/empty_dir.ts": "2e52cd4674d18e2e007175c80449fc3d263786a1361e858d9dfa9360a6581b47", 848 | "https://deno.land/std@0.203.0/fs/ensure_dir.ts": "dc64c4c75c64721d4e3fb681f1382f803ff3d2868f08563ff923fdd20d071c40", 849 | "https://deno.land/std@0.203.0/fs/ensure_file.ts": "39ac83cc283a20ec2735e956adf5de3e8a3334e0b6820547b5772f71c49ae083", 850 | "https://deno.land/std@0.203.0/fs/ensure_link.ts": "c15e69c48556d78aae31b83e0c0ece04b7b8bc0951412f5b759aceb6fde7f0ac", 851 | "https://deno.land/std@0.203.0/fs/ensure_symlink.ts": "b389c8568f0656d145ac7ece472afe710815cccbb2ebfd19da7978379ae143fe", 852 | "https://deno.land/std@0.203.0/fs/eol.ts": "f1f2eb348a750c34500741987b21d65607f352cf7205f48f4319d417fff42842", 853 | "https://deno.land/std@0.203.0/fs/exists.ts": "cb59a853d84871d87acab0e7936a4dac11282957f8e195102c5a7acb42546bb8", 854 | "https://deno.land/std@0.203.0/fs/expand_glob.ts": "52b8b6f5b1fa585c348250da1c80ce5d820746cb4a75d874b3599646f677d3a7", 855 | "https://deno.land/std@0.203.0/fs/mod.ts": "bc3d0acd488cc7b42627044caf47d72019846d459279544e1934418955ba4898", 856 | "https://deno.land/std@0.203.0/fs/move.ts": "b4f8f46730b40c32ea3c0bc8eb0fd0e8139249a698883c7b3756424cf19785c9", 857 | "https://deno.land/std@0.203.0/fs/walk.ts": "a16146724a6aaf9efdb92023a74e9805195c3469900744ce5de4113b07b29779", 858 | "https://deno.land/std@0.203.0/path/_basename.ts": "057d420c9049821f983f784fd87fa73ac471901fb628920b67972b0f44319343", 859 | "https://deno.land/std@0.203.0/path/_constants.ts": "e49961f6f4f48039c0dfed3c3f93e963ca3d92791c9d478ac5b43183413136e0", 860 | "https://deno.land/std@0.203.0/path/_dirname.ts": "355e297236b2218600aee7a5301b937204c62e12da9db4b0b044993d9e658395", 861 | "https://deno.land/std@0.203.0/path/_extname.ts": "eaaa5aae1acf1f03254d681bd6a8ce42a9cb5b7ff2213a9d4740e8ab31283664", 862 | "https://deno.land/std@0.203.0/path/_format.ts": "4a99270d6810f082e614309164fad75d6f1a483b68eed97c830a506cc589f8b4", 863 | "https://deno.land/std@0.203.0/path/_from_file_url.ts": "6eadfae2e6f63ad9ee46b26db4a1b16583055c0392acedfb50ed2fc694b6f581", 864 | "https://deno.land/std@0.203.0/path/_interface.ts": "6471159dfbbc357e03882c2266d21ef9afdb1e4aa771b0545e90db58a0ba314b", 865 | "https://deno.land/std@0.203.0/path/_is_absolute.ts": "05dac10b5e93c63198b92e3687baa2be178df5321c527dc555266c0f4f51558c", 866 | "https://deno.land/std@0.203.0/path/_join.ts": "815f5e85b042285175b1492dd5781240ce126c23bd97bad6b8211fe7129c538e", 867 | "https://deno.land/std@0.203.0/path/_normalize.ts": "a19ec8706b2707f9dd974662a5cd89fad438e62ab1857e08b314a8eb49a34d81", 868 | "https://deno.land/std@0.203.0/path/_os.ts": "30b0c2875f360c9296dbe6b7f2d528f0f9c741cecad2e97f803f5219e91b40a2", 869 | "https://deno.land/std@0.203.0/path/_parse.ts": "0f9b0ff43682dd9964eb1c4398610c4e165d8db9d3ac9d594220217adf480cfa", 870 | "https://deno.land/std@0.203.0/path/_relative.ts": "27bdeffb5311a47d85be26d37ad1969979359f7636c5cd9fcf05dcd0d5099dc5", 871 | "https://deno.land/std@0.203.0/path/_resolve.ts": "7a3616f1093735ed327e758313b79c3c04ea921808ca5f19ddf240cb68d0adf6", 872 | "https://deno.land/std@0.203.0/path/_to_file_url.ts": "a141e4a525303e1a3a0c0571fd024552b5f3553a2af7d75d1ff3a503dcbb66d8", 873 | "https://deno.land/std@0.203.0/path/_to_namespaced_path.ts": "0d5f4caa2ed98ef7a8786286df6af804b50e38859ae897b5b5b4c8c5930a75c8", 874 | "https://deno.land/std@0.203.0/path/_util.ts": "4e191b1bac6b3bf0c31aab42e5ca2e01a86ab5a0d2e08b75acf8585047a86221", 875 | "https://deno.land/std@0.203.0/path/basename.ts": "bdfa5a624c6a45564dc6758ef2077f2822978a6dbe77b0a3514f7d1f81362930", 876 | "https://deno.land/std@0.203.0/path/common.ts": "ee7505ab01fd22de3963b64e46cff31f40de34f9f8de1fff6a1bd2fe79380000", 877 | "https://deno.land/std@0.203.0/path/dirname.ts": "b6533f4ee4174a526dec50c279534df5345836dfdc15318400b08c62a62a39dd", 878 | "https://deno.land/std@0.203.0/path/extname.ts": "62c4b376300795342fe1e4746c0de518b4dc9c4b0b4617bfee62a2973a9555cf", 879 | "https://deno.land/std@0.203.0/path/format.ts": "110270b238514dd68455a4c54956215a1aff7e37e22e4427b7771cefe1920aa5", 880 | "https://deno.land/std@0.203.0/path/from_file_url.ts": "9f5cb58d58be14c775ec2e57fc70029ac8b17ed3bd7fe93e475b07280adde0ac", 881 | "https://deno.land/std@0.203.0/path/glob.ts": "593e2c3573883225c25c5a21aaa8e9382a696b8e175ea20a3b6a1471ad17aaed", 882 | "https://deno.land/std@0.203.0/path/is_absolute.ts": "0b92eb35a0a8780e9f16f16bb23655b67dace6a8e0d92d42039e518ee38103c1", 883 | "https://deno.land/std@0.203.0/path/join.ts": "31c5419f23d91655b08ec7aec403f4e4cd1a63d39e28f6e42642ea207c2734f8", 884 | "https://deno.land/std@0.203.0/path/mod.ts": "6e1efb0b13121463aedb53ea51dabf5639a3172ab58c89900bbb72b486872532", 885 | "https://deno.land/std@0.203.0/path/normalize.ts": "6ea523e0040979dd7ae2f1be5bf2083941881a252554c0f32566a18b03021955", 886 | "https://deno.land/std@0.203.0/path/parse.ts": "be8de342bb9e1924d78dc4d93c45215c152db7bf738ec32475560424b119b394", 887 | "https://deno.land/std@0.203.0/path/posix.ts": "0a1c1952d132323a88736d03e92bd236f3ed5f9f079e5823fae07c8d978ee61b", 888 | "https://deno.land/std@0.203.0/path/relative.ts": "8bedac226afd360afc45d451a6c29fabceaf32978526bcb38e0c852661f66c61", 889 | "https://deno.land/std@0.203.0/path/resolve.ts": "133161e4949fc97f9ca67988d51376b0f5eef8968a6372325ab84d39d30b80dc", 890 | "https://deno.land/std@0.203.0/path/separator.ts": "40a3e9a4ad10bef23bc2cd6c610291b6c502a06237c2c4cd034a15ca78dedc1f", 891 | "https://deno.land/std@0.203.0/path/to_file_url.ts": "00e6322373dd51ad109956b775e4e72e5f9fa68ce2c6b04e4af2a6eed3825d31", 892 | "https://deno.land/std@0.203.0/path/to_namespaced_path.ts": "1b1db3055c343ab389901adfbda34e82b7386bcd1c744d54f9c1496ee0fd0c3d", 893 | "https://deno.land/std@0.203.0/path/win32.ts": "8b3f80ef7a462511d5e8020ff490edcaa0a0d118f1b1e9da50e2916bdd73f9dd", 894 | "https://esm.sh/v132/zod@3.22.2": "cb0fb346568a5237a2a80832f77c75d903370e12011c66ac3916239a9d4988cb", 895 | "https://esm.sh/v132/zod@3.22.2/denonext/zod.mjs": "b72f0eac903e994642e59258bd5552020471f60b5b17ed859650bffd3c33daa0" 896 | }, 897 | "workspace": { 898 | "dependencies": [ 899 | "jsr:@lambdalisue/sandbox@^2.0.1", 900 | "jsr:@std/assert@^1.0.8", 901 | "jsr:@std/path@^1.0.8", 902 | "jsr:@std/testing@^1.0.5" 903 | ], 904 | "packageJson": { 905 | "dependencies": [ 906 | "npm:@changesets/changelog-github@0.5", 907 | "npm:@changesets/cli@^2.27.10", 908 | "npm:mustache@^4.2.0", 909 | "npm:publint@~0.2.12", 910 | "npm:zod@^3.23.8" 911 | ] 912 | } 913 | } 914 | } 915 | -------------------------------------------------------------------------------- /lefthook.yaml: -------------------------------------------------------------------------------- 1 | assert_lefthook_installed: true 2 | min_version: 1.7.18 3 | pre-commit: 4 | piped: true 5 | follow: true 6 | skip: 7 | - merge 8 | - rebase 9 | commands: 10 | 1_lint: 11 | run: deno lint --fix {staged_files} 12 | glob: '*.ts' 13 | stage_fixed: true 14 | 2_format: 15 | run: deno fmt {staged_files} 16 | glob: '*.{ts,json,md,yaml}' 17 | stage_fixed: true 18 | 19 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@evilmartians/harmony", 3 | "version": "1.4.0", 4 | "scripts": { 5 | "build": "deno task build && deno task publint", 6 | "prepublishOnly": "npm run build" 7 | }, 8 | "type": "module", 9 | "exports": { 10 | "./tailwind": { 11 | "types": "./dist/tailwind/index.d.ts", 12 | "require": "./dist/tailwind/index.cjs", 13 | "import": "./dist/tailwind/index.js", 14 | "default": "./dist/tailwind/index.js" 15 | }, 16 | "./tailwind.css": "./dist/tailwind/index.css", 17 | "./base": { 18 | "types": "./dist/base/index.d.ts", 19 | "require": "./dist/base/index.cjs", 20 | "import": "./dist/base/index.js", 21 | "default": "./dist/base/index.js" 22 | }, 23 | "./css/*": "./dist/css/*" 24 | }, 25 | "publishConfig": { 26 | "access": "public", 27 | "provenance": true 28 | }, 29 | "files": [ 30 | "dist/*" 31 | ], 32 | "keywords": [ 33 | "colors", 34 | "palette", 35 | "tailwind" 36 | ], 37 | "sideEffects": false, 38 | "repository": { 39 | "type": "git", 40 | "url": "git+https://github.com/evilmartians/harmony.git" 41 | }, 42 | "license": "MIT", 43 | "devDependencies": { 44 | "@changesets/changelog-github": "^0.5.0", 45 | "@changesets/cli": "^2.27.10", 46 | "mustache": "^4.2.0", 47 | "publint": "^0.2.12", 48 | "zod": "^3.23.8" 49 | }, 50 | "devEngines": { 51 | "runtime": [ 52 | { 53 | "name": "deno", 54 | "version": ">= 2.0.0", 55 | "onFail": "error" 56 | } 57 | ] 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /scripts/build.ts: -------------------------------------------------------------------------------- 1 | import * as path from "@std/path"; 2 | import { build } from "./builder.ts"; 3 | import base from "./targets/base/base.config.ts"; 4 | import css from "./targets/css/css.config.ts"; 5 | import tailwind from "./targets/tailwind/tailwind.config.ts"; 6 | import source from "../source.json" with { type: "json" }; 7 | 8 | const configs = [base, css, tailwind]; 9 | const dir = path.join(Deno.cwd(), "dist"); 10 | 11 | await build(source, dir, configs); 12 | -------------------------------------------------------------------------------- /scripts/builder.test.ts: -------------------------------------------------------------------------------- 1 | import { stub } from "@std/testing/mock"; 2 | import { assert, assertRejects } from "@std/assert"; 3 | import { sandbox } from "@lambdalisue/sandbox"; 4 | 5 | import { testPaletteSource } from "../tests/utils.ts"; 6 | import base from "./targets/base/base.config.ts"; 7 | import { build } from "./builder.ts"; 8 | 9 | Deno.test("should abort and clean up if Deno.remove throws unexpect error", async () => { 10 | const errorMessage = "some Deno.remove error"; 11 | const stubbed = stub(Deno, "remove", () => { 12 | throw new Error(errorMessage); 13 | }); 14 | 15 | const sbox = await sandbox(); 16 | try { 17 | await build(testPaletteSource, sbox.path, [base]); 18 | } catch (e) { 19 | assert(e instanceof Error); 20 | assert(e.message === errorMessage); 21 | } finally { 22 | stubbed.restore(); 23 | await sbox[Symbol.asyncDispose](); 24 | } 25 | assert(stubbed.calls.length === 1); 26 | await assertRejects(() => Deno.lstat(sbox.path)); 27 | }); 28 | -------------------------------------------------------------------------------- /scripts/builder.ts: -------------------------------------------------------------------------------- 1 | import * as z from "zod"; 2 | import { BuildConfig, PaletteWithFallback } from "./types.ts"; 3 | import mustache from "mustache"; 4 | import * as path from "@std/path"; 5 | 6 | // 7 | // SOURCE_FILE schema 8 | // 9 | const SourceSchema = z.record( 10 | z.string().regex(/\w+\/\d+/).toLowerCase().describe( 11 | 'Color name and shade. Example: "red/500"', 12 | ), 13 | z.object({ 14 | $oklch: z.string().describe( 15 | 'Color in Oklch format. Example: "oklch(98.83% 0.005 20)"', 16 | ), 17 | $srgbFallback: z.string().describe( 18 | 'Fallback color in sRGB format. Example: "#ffffff"', 19 | ), 20 | }), 21 | ); 22 | 23 | export type PaletteSource = z.infer; 24 | 25 | export function defineBuildConfig(config: C): C { 26 | return config; 27 | } 28 | 29 | export async function build( 30 | source: PaletteSource, 31 | dir: string, 32 | configs: BuildConfig[], 33 | ): Promise { 34 | // STEP 1: parse palette from source 35 | const parsed = SourceSchema.parse(source); 36 | 37 | // STEP 2: prepare palette into disgestive array for easier processing during build 38 | const map = new Map(); 39 | for (const [key, value] of Object.entries(parsed)) { 40 | const [colorName, shadeName] = key.split("/"); 41 | let color = map.get(colorName); 42 | if (!color) { 43 | color = { colorName, shades: [] }; 44 | map.set(colorName, color); 45 | } 46 | color.shades.push({ 47 | shadeName, 48 | oklch: value.$oklch, 49 | srgbFallback: value.$srgbFallback, 50 | }); 51 | } 52 | const palette: PaletteWithFallback = Array.from(map.values()); 53 | 54 | // STEP 3: clean output dir to avoid stale files 55 | try { 56 | await Deno.remove(dir, { recursive: true }); 57 | } catch (err) { 58 | if (!(err instanceof Deno.errors.NotFound)) { 59 | throw err; 60 | } 61 | } 62 | 63 | // STEP 4: build targets 64 | const filepaths = await Promise.all(configs.flatMap((config) => { 65 | const target = typeof config === "function" ? config(palette) : config; 66 | return target.outputs.map(async (output) => { 67 | const template = await Deno.readTextFile(output.templatePath); 68 | const vars = output.templateVars ?? { palette }; 69 | const content = mustache.render(template, vars); 70 | const targetDir = path.join(dir, target.dir); 71 | const targetFile = path.join(targetDir, output.file); 72 | await Deno.mkdir(targetDir, { recursive: true }); 73 | await Deno.writeTextFile(targetFile, content); 74 | 75 | return targetFile; 76 | }); 77 | })); 78 | 79 | return filepaths; 80 | } 81 | -------------------------------------------------------------------------------- /scripts/targets/base/__snapshots__/base.test.ts.snap: -------------------------------------------------------------------------------- 1 | export const snapshot = {}; 2 | 3 | snapshot[`index.js 1`] = ` 4 | 'export default { 5 | red: { 6 | 50: "oklch(0.988281 0.0046875 20)", 7 | 500: "oklch(0.742188 0.151562 20)", 8 | }, 9 | orange: { 10 | 100: "oklch(0.966797 0.0171875 43.3333)", 11 | }, 12 | }; 13 | ' 14 | `; 15 | 16 | snapshot[`index.d.ts 1`] = ` 17 | "declare namespace _default { 18 | let red: { 19 | 50: string; 20 | 500: string; 21 | }; 22 | let orange: { 23 | 100: string; 24 | }; 25 | } 26 | export default _default; 27 | " 28 | `; 29 | 30 | snapshot[`index.cjs 1`] = ` 31 | '"use strict"; 32 | module.exports = { 33 | red: { 34 | 50: "oklch(0.988281 0.0046875 20)", 35 | 500: "oklch(0.742188 0.151562 20)", 36 | }, 37 | orange: { 38 | 100: "oklch(0.966797 0.0171875 43.3333)", 39 | }, 40 | }; 41 | Object.defineProperty(exports, "__esModule", { value: true }); 42 | ' 43 | `; 44 | -------------------------------------------------------------------------------- /scripts/targets/base/base.config.ts: -------------------------------------------------------------------------------- 1 | import * as path from "@std/path"; 2 | import { defineBuildConfig } from "../../builder.ts"; 3 | 4 | export default defineBuildConfig({ 5 | dir: "base", 6 | outputs: ["index.js", "index.cjs", "index.d.ts"].map((file) => ({ 7 | templatePath: path.join(import.meta.dirname!, `templates/${file}.template`), 8 | file, 9 | })), 10 | }); 11 | -------------------------------------------------------------------------------- /scripts/targets/base/base.test.ts: -------------------------------------------------------------------------------- 1 | import { expectBuildToMatchSnapshot } from "../../../tests/utils.ts"; 2 | import base from "./base.config.ts"; 3 | 4 | Deno.test("build base target", async (t) => { 5 | await expectBuildToMatchSnapshot(t, base); 6 | }); 7 | -------------------------------------------------------------------------------- /scripts/targets/base/templates/index.cjs.template: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | module.exports = { 3 | {{#palette}} 4 | {{colorName}}: { 5 | {{#shades}} 6 | {{shadeName}}: "{{oklch}}", 7 | {{/shades}} 8 | }, 9 | {{/palette}} 10 | }; 11 | Object.defineProperty(exports, "__esModule", { value: true }); 12 | -------------------------------------------------------------------------------- /scripts/targets/base/templates/index.d.ts.template: -------------------------------------------------------------------------------- 1 | declare namespace _default { 2 | {{#palette}} 3 | let {{colorName}}: { 4 | {{#shades}} 5 | {{shadeName}}: string; 6 | {{/shades}} 7 | }; 8 | {{/palette}} 9 | } 10 | export default _default; 11 | -------------------------------------------------------------------------------- /scripts/targets/base/templates/index.js.template: -------------------------------------------------------------------------------- 1 | export default { 2 | {{#palette}} 3 | {{colorName}}: { 4 | {{#shades}} 5 | {{shadeName}}: "{{oklch}}", 6 | {{/shades}} 7 | }, 8 | {{/palette}} 9 | }; 10 | -------------------------------------------------------------------------------- /scripts/targets/css/__snapshots__/css.test.ts.snap: -------------------------------------------------------------------------------- 1 | export const snapshot = {}; 2 | 3 | snapshot[`index.css 1`] = ` 4 | '@import "./red.css"; 5 | @import "./orange.css"; 6 | ' 7 | `; 8 | 9 | snapshot[`red.css 1`] = ` 10 | ":root { 11 | --red-50: #fefafa; 12 | --red-500: #fc8083; 13 | } 14 | 15 | @supports (color: oklch(0% 0 0)) { 16 | @media (color-gamut: p3) { 17 | :root { 18 | --red-50: oklch(0.988281 0.0046875 20); 19 | --red-500: oklch(0.742188 0.151562 20); 20 | } 21 | } 22 | } 23 | " 24 | `; 25 | 26 | snapshot[`orange.css 1`] = ` 27 | ":root { 28 | --orange-100: #fff1eb; 29 | } 30 | 31 | @supports (color: oklch(0% 0 0)) { 32 | @media (color-gamut: p3) { 33 | :root { 34 | --orange-100: oklch(0.966797 0.0171875 43.3333); 35 | } 36 | } 37 | } 38 | " 39 | `; 40 | -------------------------------------------------------------------------------- /scripts/targets/css/css.config.ts: -------------------------------------------------------------------------------- 1 | import * as path from "@std/path"; 2 | import { defineBuildConfig } from "../../builder.ts"; 3 | 4 | export default defineBuildConfig((colors) => ({ 5 | dir: "css", 6 | outputs: [ 7 | { 8 | templatePath: path.join(import.meta.dirname!, "templates/index.css.template"), 9 | file: "index.css", 10 | }, 11 | ...colors.map((color) => ({ 12 | templatePath: path.join(import.meta.dirname!, "templates/[color].css.template"), 13 | templateVars: { ...color }, 14 | file: `${color.colorName}.css`, 15 | })), 16 | ], 17 | })); 18 | -------------------------------------------------------------------------------- /scripts/targets/css/css.test.ts: -------------------------------------------------------------------------------- 1 | import { expectBuildToMatchSnapshot } from "../../../tests/utils.ts"; 2 | import css from "./css.config.ts"; 3 | 4 | Deno.test("build css target", async (t) => { 5 | await expectBuildToMatchSnapshot(t, css); 6 | }); 7 | -------------------------------------------------------------------------------- /scripts/targets/css/templates/[color].css.template: -------------------------------------------------------------------------------- 1 | :root { 2 | {{#shades}} 3 | --{{colorName}}-{{shadeName}}: {{srgbFallback}}; 4 | {{/shades}} 5 | } 6 | 7 | @supports (color: oklch(0% 0 0)) { 8 | @media (color-gamut: p3) { 9 | :root { 10 | {{#shades}} 11 | --{{colorName}}-{{shadeName}}: {{oklch}}; 12 | {{/shades}} 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /scripts/targets/css/templates/index.css.template: -------------------------------------------------------------------------------- 1 | {{#palette}} 2 | @import "./{{colorName}}.css"; 3 | {{/palette}} 4 | -------------------------------------------------------------------------------- /scripts/targets/tailwind/__snapshots__/tailwind.test.ts.snap: -------------------------------------------------------------------------------- 1 | export const snapshot = {}; 2 | 3 | snapshot[`index.css 1`] = ` 4 | "@theme { 5 | --color-*: initial; 6 | 7 | --color-white: #fff; 8 | --color-black: #000; 9 | 10 | --color-red-50: oklch(0.988281 0.0046875 20); 11 | --color-red-500: oklch(0.742188 0.151562 20); 12 | 13 | --color-orange-100: oklch(0.966797 0.0171875 43.3333); 14 | 15 | } 16 | " 17 | `; 18 | 19 | snapshot[`index.cjs 1`] = ` 20 | '"use strict"; 21 | 22 | module.exports = { 23 | inherit: "inherit", 24 | current: "currentColor", 25 | transparent: "transparent", 26 | black: "#000", 27 | white: "#fff", 28 | 29 | red: { 30 | 50: "oklch(0.988281 0.0046875 20 / )", 31 | 500: "oklch(0.742188 0.151562 20 / )", 32 | }, 33 | orange: { 34 | 100: "oklch(0.966797 0.0171875 43.3333 / )", 35 | }, 36 | }; 37 | 38 | Object.defineProperty(exports, "__esModule", { value: true }); 39 | ' 40 | `; 41 | 42 | snapshot[`index.d.ts 1`] = ` 43 | "declare namespace _default { 44 | let inherit: string; 45 | let current: string; 46 | let transparent: string; 47 | let black: string; 48 | let white: string; 49 | 50 | let red: { 51 | 50: string; 52 | 500: string; 53 | }; 54 | let orange: { 55 | 100: string; 56 | }; 57 | } 58 | export default _default; 59 | " 60 | `; 61 | 62 | snapshot[`index.js 1`] = ` 63 | 'export default { 64 | inherit: "inherit", 65 | current: "currentColor", 66 | transparent: "transparent", 67 | black: "#000", 68 | white: "#fff", 69 | 70 | red: { 71 | 50: "oklch(0.988281 0.0046875 20 / )", 72 | 500: "oklch(0.742188 0.151562 20 / )", 73 | }, 74 | orange: { 75 | 100: "oklch(0.966797 0.0171875 43.3333 / )", 76 | }, 77 | }; 78 | ' 79 | `; 80 | -------------------------------------------------------------------------------- /scripts/targets/tailwind/tailwind.config.ts: -------------------------------------------------------------------------------- 1 | import * as path from "@std/path"; 2 | import { defineBuildConfig } from "../../builder.ts"; 3 | import { PaletteWithFallback } from "../../types.ts"; 4 | 5 | export default defineBuildConfig((palette) => ({ 6 | dir: "tailwind", 7 | outputs: [ 8 | ...["index.css", "index.d.ts"].map((file) => ({ 9 | templatePath: path.join(import.meta.dirname!, `templates/${file}.template`), 10 | file, 11 | })), 12 | ...["index.js", "index.cjs"].map((file) => ({ 13 | templatePath: path.join(import.meta.dirname!, `templates/${file}.template`), 14 | templateVars: { 15 | palette, 16 | oklchWithAlpha: function () { 17 | const shade = this as unknown as PaletteWithFallback[number]["shades"][number]; 18 | return shade.oklch.slice(0, -1) + 19 | " / )"; 20 | }, 21 | }, 22 | file, 23 | })), 24 | ], 25 | })); 26 | -------------------------------------------------------------------------------- /scripts/targets/tailwind/tailwind.test.ts: -------------------------------------------------------------------------------- 1 | import { expectBuildToMatchSnapshot } from "../../../tests/utils.ts"; 2 | import tailwind from "./tailwind.config.ts"; 3 | 4 | Deno.test("build tailwind target", async (t) => { 5 | await expectBuildToMatchSnapshot(t, tailwind); 6 | }); 7 | -------------------------------------------------------------------------------- /scripts/targets/tailwind/templates/index.cjs.template: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | module.exports = { 4 | inherit: "inherit", 5 | current: "currentColor", 6 | transparent: "transparent", 7 | black: "#000", 8 | white: "#fff", 9 | 10 | {{#palette}} 11 | {{colorName}}: { 12 | {{#shades}} 13 | {{shadeName}}: "{{{oklchWithAlpha}}}", 14 | {{/shades}} 15 | }, 16 | {{/palette}} 17 | }; 18 | 19 | Object.defineProperty(exports, "__esModule", { value: true }); 20 | -------------------------------------------------------------------------------- /scripts/targets/tailwind/templates/index.css.template: -------------------------------------------------------------------------------- 1 | @theme { 2 | --color-*: initial; 3 | 4 | --color-white: #fff; 5 | --color-black: #000; 6 | 7 | {{#palette}} 8 | {{#shades}} 9 | --color-{{colorName}}-{{shadeName}}: {{oklch}}; 10 | {{/shades}} 11 | 12 | {{/palette}} 13 | } 14 | -------------------------------------------------------------------------------- /scripts/targets/tailwind/templates/index.d.ts.template: -------------------------------------------------------------------------------- 1 | declare namespace _default { 2 | let inherit: string; 3 | let current: string; 4 | let transparent: string; 5 | let black: string; 6 | let white: string; 7 | 8 | {{#palette}} 9 | let {{colorName}}: { 10 | {{#shades}} 11 | {{shadeName}}: string; 12 | {{/shades}} 13 | }; 14 | {{/palette}} 15 | } 16 | export default _default; 17 | -------------------------------------------------------------------------------- /scripts/targets/tailwind/templates/index.js.template: -------------------------------------------------------------------------------- 1 | export default { 2 | inherit: "inherit", 3 | current: "currentColor", 4 | transparent: "transparent", 5 | black: "#000", 6 | white: "#fff", 7 | 8 | {{#palette}} 9 | {{colorName}}: { 10 | {{#shades}} 11 | {{shadeName}}: "{{{oklchWithAlpha}}}", 12 | {{/shades}} 13 | }, 14 | {{/palette}} 15 | }; 16 | -------------------------------------------------------------------------------- /scripts/types.ts: -------------------------------------------------------------------------------- 1 | // deno-lint-ignore-file no-explicit-any 2 | 3 | export type PaletteWithFallback = { 4 | colorName: string; 5 | shades: { 6 | shadeName: string; 7 | oklch: string; 8 | srgbFallback: string; 9 | }[]; 10 | }[]; 11 | 12 | export type BuildTarget = { 13 | /** relative dir in addition to outdir, to keep at root outdir set to '.' */ 14 | dir: string; 15 | /** individual output files */ 16 | outputs: { 17 | /** absolute path to template */ 18 | templatePath: string; 19 | /** 20 | * vars passed to template 21 | * if not specified will include the whole palette 22 | * take any value compatible with Mustache.js, including 23 | * JSON-serializable objects and functions. 24 | */ 25 | templateVars?: Record; 26 | /** filename to write rendered template to */ 27 | file: string; 28 | }[]; 29 | }; 30 | 31 | export type BuildConfig = BuildTarget | ((palette: PaletteWithFallback) => BuildTarget); 32 | -------------------------------------------------------------------------------- /source.json: -------------------------------------------------------------------------------- 1 | { 2 | "Red/50": { 3 | "$value": "#fefafa", 4 | "$type": "color", 5 | "$description": "oklch(98.83% 0.005 20)", 6 | "$oklch": "oklch(0.988281 0.0046875 20)", 7 | "$srgbFallback": "#fefafa", 8 | "$isP3": false, 9 | "$link": "https://oklch.com/#98.828125,0.004687500000000001,20,100", 10 | "$contrast": -105.15768233897973, 11 | "$contrastBg": "black" 12 | }, 13 | "Orange/50": { 14 | "$value": "#fdfaf9", 15 | "$type": "color", 16 | "$description": "oklch(98.83% 0.005 43.33)", 17 | "$oklch": "oklch(0.988281 0.0046875 43.3333)", 18 | "$srgbFallback": "#fefaf9", 19 | "$isP3": false, 20 | "$link": "https://oklch.com/#98.828125,0.004687500000000001,43.33333333333333,100", 21 | "$contrast": -105.19005965789154, 22 | "$contrastBg": "black" 23 | }, 24 | "Amber/50": { 25 | "$value": "#fdfbf8", 26 | "$type": "color", 27 | "$description": "oklch(98.83% 0.005 66.67)", 28 | "$oklch": "oklch(0.988281 0.0046875 66.6667)", 29 | "$srgbFallback": "#fdfbf8", 30 | "$isP3": false, 31 | "$link": "https://oklch.com/#98.828125,0.004687500000000001,66.66666666666666,100", 32 | "$contrast": -105.23658976658778, 33 | "$contrastBg": "black" 34 | }, 35 | "Yellow/50": { 36 | "$value": "#fcfbf8", 37 | "$type": "color", 38 | "$description": "oklch(98.83% 0.005 90)", 39 | "$oklch": "oklch(0.988281 0.0046875 90)", 40 | "$srgbFallback": "#fcfbf8", 41 | "$isP3": false, 42 | "$link": "https://oklch.com/#98.828125,0.004687500000000001,90,100", 43 | "$contrast": -105.28977763856004, 44 | "$contrastBg": "black" 45 | }, 46 | "Lime/50": { 47 | "$value": "#fbfbf8", 48 | "$type": "color", 49 | "$description": "oklch(98.83% 0.005 106.67)", 50 | "$oklch": "oklch(0.988281 0.0046875 106.667)", 51 | "$srgbFallback": "#fbfbf8", 52 | "$isP3": false, 53 | "$link": "https://oklch.com/#98.828125,0.004687500000000001,106.66666666666667,100", 54 | "$contrast": -105.32706537248913, 55 | "$contrastBg": "black" 56 | }, 57 | "Green/50": { 58 | "$value": "#fbfcf9", 59 | "$type": "color", 60 | "$description": "oklch(98.83% 0.005 123.33)", 61 | "$oklch": "oklch(0.988281 0.0046875 123.333)", 62 | "$srgbFallback": "#fafcf8", 63 | "$isP3": false, 64 | "$link": "https://oklch.com/#98.828125,0.004687500000000001,123.33333333333334,100", 65 | "$contrast": -105.36019413050435, 66 | "$contrastBg": "black" 67 | }, 68 | "Emerald/50": { 69 | "$value": "#fafcf9", 70 | "$type": "color", 71 | "$description": "oklch(98.83% 0.005 140)", 72 | "$oklch": "oklch(0.988281 0.0046875 140)", 73 | "$srgbFallback": "#fafcf9", 74 | "$isP3": false, 75 | "$link": "https://oklch.com/#98.828125,0.004687500000000001,140,100", 76 | "$contrast": -105.38635289658384, 77 | "$contrastBg": "black" 78 | }, 79 | "Teal/50": { 80 | "$value": "#f9fcfa", 81 | "$type": "color", 82 | "$description": "oklch(98.83% 0.005 160)", 83 | "$oklch": "oklch(0.988281 0.0046875 160)", 84 | "$srgbFallback": "#f9fcfa", 85 | "$isP3": false, 86 | "$link": "https://oklch.com/#98.828125,0.004687500000000001,160,100", 87 | "$contrast": -105.40543529000341, 88 | "$contrastBg": "black" 89 | }, 90 | "Cyan/50": { 91 | "$value": "#f9fcfb", 92 | "$type": "color", 93 | "$description": "oklch(98.83% 0.005 180)", 94 | "$oklch": "oklch(0.988281 0.0046875 180)", 95 | "$srgbFallback": "#f8fcfb", 96 | "$isP3": false, 97 | "$link": "https://oklch.com/#98.828125,0.004687500000000001,180,100", 98 | "$contrast": -105.40891739103793, 99 | "$contrastBg": "black" 100 | }, 101 | "Sky/50": { 102 | "$value": "#f9fcfd", 103 | "$type": "color", 104 | "$description": "oklch(98.83% 0.005 210)", 105 | "$oklch": "oklch(0.988281 0.0046875 210)", 106 | "$srgbFallback": "#f8fcfd", 107 | "$isP3": false, 108 | "$link": "https://oklch.com/#98.828125,0.004687500000000001,210,100", 109 | "$contrast": -105.3844419403475, 110 | "$contrastBg": "black" 111 | }, 112 | "Blue/50": { 113 | "$value": "#f9fcfe", 114 | "$type": "color", 115 | "$description": "oklch(98.83% 0.005 240)", 116 | "$oklch": "oklch(0.988281 0.0046875 240)", 117 | "$srgbFallback": "#f8fcfe", 118 | "$isP3": false, 119 | "$link": "https://oklch.com/#98.828125,0.004687500000000001,240,100", 120 | "$contrast": -105.33096464536378, 121 | "$contrastBg": "black" 122 | }, 123 | "Indigo/50": { 124 | "$value": "#fafbfe", 125 | "$type": "color", 126 | "$description": "oklch(98.83% 0.005 260)", 127 | "$oklch": "oklch(0.988281 0.0046875 260)", 128 | "$srgbFallback": "#f9fbfe", 129 | "$isP3": false, 130 | "$link": "https://oklch.com/#98.828125,0.004687500000000001,260,100", 131 | "$contrast": -105.2861847448562, 132 | "$contrastBg": "black" 133 | }, 134 | "Violet/50": { 135 | "$value": "#fafbfe", 136 | "$type": "color", 137 | "$description": "oklch(98.83% 0.005 280)", 138 | "$oklch": "oklch(0.988281 0.0046875 280)", 139 | "$srgbFallback": "#fafbfe", 140 | "$isP3": false, 141 | "$link": "https://oklch.com/#98.828125,0.004687500000000001,280,100", 142 | "$contrast": -105.24036778113617, 143 | "$contrastBg": "black" 144 | }, 145 | "Purple/50": { 146 | "$value": "#fbfbfe", 147 | "$type": "color", 148 | "$description": "oklch(98.83% 0.005 300)", 149 | "$oklch": "oklch(0.988281 0.0046875 300)", 150 | "$srgbFallback": "#fcfafe", 151 | "$isP3": false, 152 | "$link": "https://oklch.com/#98.828125,0.004687500000000001,300,100", 153 | "$contrast": -105.19904867133324, 154 | "$contrastBg": "black" 155 | }, 156 | "Fuchsia/50": { 157 | "$value": "#fcfafd", 158 | "$type": "color", 159 | "$description": "oklch(98.83% 0.005 320)", 160 | "$oklch": "oklch(0.988281 0.0046875 320)", 161 | "$srgbFallback": "#fdfafd", 162 | "$isP3": false, 163 | "$link": "https://oklch.com/#98.828125,0.004687500000000001,320,100", 164 | "$contrast": -105.16716781657638, 165 | "$contrastBg": "black" 166 | }, 167 | "Pink/50": { 168 | "$value": "#fdfafc", 169 | "$type": "color", 170 | "$description": "oklch(98.83% 0.005 340)", 171 | "$oklch": "oklch(0.988281 0.0046875 340)", 172 | "$srgbFallback": "#fdfafc", 173 | "$isP3": false, 174 | "$link": "https://oklch.com/#98.828125,0.004687500000000001,340,100", 175 | "$contrast": -105.14849570742983, 176 | "$contrastBg": "black" 177 | }, 178 | "Rose/50": { 179 | "$value": "#fdfafb", 180 | "$type": "color", 181 | "$description": "oklch(98.83% 0.005 0)", 182 | "$oklch": "oklch(0.988281 0.0046875 0)", 183 | "$srgbFallback": "#fefafb", 184 | "$isP3": false, 185 | "$link": "https://oklch.com/#98.828125,0.004687500000000001,360,100", 186 | "$contrast": -105.14521332898899, 187 | "$contrastBg": "black" 188 | }, 189 | "Slate/50": { 190 | "$value": "#fafbfe", 191 | "$type": "color", 192 | "$description": "oklch(98.83% 0.005 275)", 193 | "$oklch": "oklch(0.988281 0.0046875 275)", 194 | "$srgbFallback": "#fafbfe", 195 | "$isP3": false, 196 | "$link": "https://oklch.com/#98.828125,0.0046875,275,100", 197 | "$contrast": -105.25161134176153, 198 | "$contrastBg": "black" 199 | }, 200 | "Gray/50": { 201 | "$value": "#fafbfe", 202 | "$type": "color", 203 | "$description": "oklch(98.83% 0.005 275)", 204 | "$oklch": "oklch(0.988281 0.0046875 275)", 205 | "$srgbFallback": "#fafbfe", 206 | "$isP3": false, 207 | "$link": "https://oklch.com/#98.828125,0.0046875,275,100", 208 | "$contrast": -105.25161134176153, 209 | "$contrastBg": "black" 210 | }, 211 | "Zinc/50": { 212 | "$value": "#fafbfe", 213 | "$type": "color", 214 | "$description": "oklch(98.83% 0.005 275)", 215 | "$oklch": "oklch(0.988281 0.004875 275)", 216 | "$srgbFallback": "#fafbff", 217 | "$isP3": false, 218 | "$link": "https://oklch.com/#98.828125,0.004875,275,100", 219 | "$contrast": -105.2505798343969, 220 | "$contrastBg": "black" 221 | }, 222 | "Neutral/50": { 223 | "$value": "#fbfbfb", 224 | "$type": "color", 225 | "$description": "oklch(98.83% 0 0)", 226 | "$oklch": "oklch(0.988281 0 0)", 227 | "$srgbFallback": "#fbfbfb", 228 | "$isP3": false, 229 | "$link": "https://oklch.com/#98.828125,0,0,100", 230 | "$contrast": -105.27689563370342, 231 | "$contrastBg": "black" 232 | }, 233 | "Stone/50": { 234 | "$value": "#fefbf6", 235 | "$type": "color", 236 | "$description": "oklch(98.83% 0.008 75)", 237 | "$oklch": "oklch(0.988281 0.008 75)", 238 | "$srgbFallback": "#fefbf5", 239 | "$isP3": false, 240 | "$link": "https://oklch.com/#98.828125,0.008,75,100", 241 | "$contrast": -105.23946808885256, 242 | "$contrastBg": "black" 243 | }, 244 | "Sand/50": { 245 | "$value": "#fffbf4", 246 | "$type": "color", 247 | "$description": "oklch(98.83% 0.01 75)", 248 | "$oklch": "oklch(0.988281 0.0104375 75)", 249 | "$srgbFallback": "#fffaf4", 250 | "$isP3": true, 251 | "$link": "https://oklch.com/#98.828125,0.0104375,75,100", 252 | "$contrast": -105.22758572323406, 253 | "$contrastBg": "black" 254 | }, 255 | "Olive/50": { 256 | "$value": "#fbfcf7", 257 | "$type": "color", 258 | "$description": "oklch(98.83% 0.008 120)", 259 | "$oklch": "oklch(0.988281 0.008 120)", 260 | "$srgbFallback": "#fafcf6", 261 | "$isP3": false, 262 | "$link": "https://oklch.com/#98.828125,0.008,120,100", 263 | "$contrast": -105.4081410184954, 264 | "$contrastBg": "black" 265 | }, 266 | "Mauve/50": { 267 | "$value": "#fdfafe", 268 | "$type": "color", 269 | "$description": "oklch(98.83% 0.008 325)", 270 | "$oklch": "oklch(0.988281 0.008 325)", 271 | "$srgbFallback": "#fef9fe", 272 | "$isP3": false, 273 | "$link": "https://oklch.com/#98.828125,0.008,325,100", 274 | "$contrast": -105.07925546170486, 275 | "$contrastBg": "black" 276 | }, 277 | "Red/100": { 278 | "$value": "#fdf0f0", 279 | "$type": "color", 280 | "$description": "oklch(96.68% 0.017 20)", 281 | "$oklch": "oklch(0.966797 0.0171875 20)", 282 | "$srgbFallback": "#fff0ef", 283 | "$isP3": true, 284 | "$link": "https://oklch.com/#96.6796875,0.0171875,20,100", 285 | "$contrast": -100.14014430059217, 286 | "$contrastBg": "black" 287 | }, 288 | "Orange/100": { 289 | "$value": "#fcf1ec", 290 | "$type": "color", 291 | "$description": "oklch(96.68% 0.017 43.33)", 292 | "$oklch": "oklch(0.966797 0.0171875 43.3333)", 293 | "$srgbFallback": "#fff1eb", 294 | "$isP3": false, 295 | "$link": "https://oklch.com/#96.6796875,0.0171875,43.33333333333333,100", 296 | "$contrast": -100.25442407683774, 297 | "$contrastBg": "black" 298 | }, 299 | "Amber/100": { 300 | "$value": "#fbf2e9", 301 | "$type": "color", 302 | "$description": "oklch(96.68% 0.017 66.67)", 303 | "$oklch": "oklch(0.966797 0.0171875 66.6667)", 304 | "$srgbFallback": "#fcf2e8", 305 | "$isP3": false, 306 | "$link": "https://oklch.com/#96.6796875,0.0171875,66.66666666666666,100", 307 | "$contrast": -100.41924249202958, 308 | "$contrastBg": "black" 309 | }, 310 | "Yellow/100": { 311 | "$value": "#f7f3e8", 312 | "$type": "color", 313 | "$description": "oklch(96.48% 0.017 90)", 314 | "$oklch": "oklch(0.964844 0.0171875 90)", 315 | "$srgbFallback": "#f8f3e7", 316 | "$isP3": false, 317 | "$link": "https://oklch.com/#96.484375,0.0171875,90,100", 318 | "$contrast": -100.18559298967193, 319 | "$contrastBg": "black" 320 | }, 321 | "Lime/100": { 322 | "$value": "#f4f4e9", 323 | "$type": "color", 324 | "$description": "oklch(96.48% 0.017 106.67)", 325 | "$oklch": "oklch(0.964844 0.0171875 106.667)", 326 | "$srgbFallback": "#f4f4e7", 327 | "$isP3": false, 328 | "$link": "https://oklch.com/#96.484375,0.0171875,106.66666666666667,100", 329 | "$contrast": -100.31971520429082, 330 | "$contrastBg": "black" 331 | }, 332 | "Green/100": { 333 | "$value": "#f1f5e9", 334 | "$type": "color", 335 | "$description": "oklch(96.29% 0.017 123.33)", 336 | "$oklch": "oklch(0.962891 0.0171875 123.333)", 337 | "$srgbFallback": "#f0f5e8", 338 | "$isP3": false, 339 | "$link": "https://oklch.com/#96.2890625,0.0171875,123.33333333333334,100", 340 | "$contrast": -100.0165732586812, 341 | "$contrastBg": "black" 342 | }, 343 | "Emerald/100": { 344 | "$value": "#eff6ec", 345 | "$type": "color", 346 | "$description": "oklch(96.29% 0.017 140)", 347 | "$oklch": "oklch(0.962891 0.0171875 140)", 348 | "$srgbFallback": "#edf6eb", 349 | "$isP3": false, 350 | "$link": "https://oklch.com/#96.2890625,0.0171875,140,100", 351 | "$contrast": -100.11207974829065, 352 | "$contrastBg": "black" 353 | }, 354 | "Teal/100": { 355 | "$value": "#ecf6ef", 356 | "$type": "color", 357 | "$description": "oklch(96.29% 0.017 160)", 358 | "$oklch": "oklch(0.962891 0.0171875 160)", 359 | "$srgbFallback": "#e9f7ef", 360 | "$isP3": false, 361 | "$link": "https://oklch.com/#96.2890625,0.0171875,160,100", 362 | "$contrast": -100.1824867986035, 363 | "$contrastBg": "black" 364 | }, 365 | "Cyan/100": { 366 | "$value": "#eaf6f3", 367 | "$type": "color", 368 | "$description": "oklch(96.29% 0.017 180)", 369 | "$oklch": "oklch(0.962891 0.0171875 180)", 370 | "$srgbFallback": "#e7f7f3", 371 | "$isP3": false, 372 | "$link": "https://oklch.com/#96.2890625,0.0171875,180,100", 373 | "$contrast": -100.19598381019593, 374 | "$contrastBg": "black" 375 | }, 376 | "Sky/100": { 377 | "$value": "#e9f6f9", 378 | "$type": "color", 379 | "$description": "oklch(96.29% 0.017 210)", 380 | "$oklch": "oklch(0.962891 0.0171875 210)", 381 | "$srgbFallback": "#e6f6f9", 382 | "$isP3": false, 383 | "$link": "https://oklch.com/#96.2890625,0.0171875,210,100", 384 | "$contrast": -100.10702821136563, 385 | "$contrastBg": "black" 386 | }, 387 | "Blue/100": { 388 | "$value": "#ecf5fd", 389 | "$type": "color", 390 | "$description": "oklch(96.48% 0.017 240)", 391 | "$oklch": "oklch(0.964844 0.0171875 240)", 392 | "$srgbFallback": "#eaf5fe", 393 | "$isP3": false, 394 | "$link": "https://oklch.com/#96.484375,0.0171875,240,100", 395 | "$contrast": -100.33526613585838, 396 | "$contrastBg": "black" 397 | }, 398 | "Indigo/100": { 399 | "$value": "#eef4fe", 400 | "$type": "color", 401 | "$description": "oklch(96.48% 0.017 260)", 402 | "$oklch": "oklch(0.964844 0.0171875 260)", 403 | "$srgbFallback": "#edf4ff", 404 | "$isP3": true, 405 | "$link": "https://oklch.com/#96.484375,0.0171875,260,100", 406 | "$contrast": -100.17290973570687, 407 | "$contrastBg": "black" 408 | }, 409 | "Violet/100": { 410 | "$value": "#f1f2fe", 411 | "$type": "color", 412 | "$description": "oklch(96.48% 0.017 280)", 413 | "$oklch": "oklch(0.964844 0.0171875 280)", 414 | "$srgbFallback": "#f1f2ff", 415 | "$isP3": true, 416 | "$link": "https://oklch.com/#96.484375,0.0171875,280,100", 417 | "$contrast": -100.00821903763809, 418 | "$contrastBg": "black" 419 | }, 420 | "Purple/100": { 421 | "$value": "#f5f2fd", 422 | "$type": "color", 423 | "$description": "oklch(96.68% 0.017 300)", 424 | "$oklch": "oklch(0.966797 0.0171875 300)", 425 | "$srgbFallback": "#f6f2fe", 426 | "$isP3": false, 427 | "$link": "https://oklch.com/#96.6796875,0.0171875,300,100", 428 | "$contrast": -100.28418243555437, 429 | "$contrastBg": "black" 430 | }, 431 | "Fuchsia/100": { 432 | "$value": "#f8f1fb", 433 | "$type": "color", 434 | "$description": "oklch(96.68% 0.017 320)", 435 | "$oklch": "oklch(0.966797 0.0171875 320)", 436 | "$srgbFallback": "#f9f1fb", 437 | "$isP3": false, 438 | "$link": "https://oklch.com/#96.6796875,0.0171875,320,100", 439 | "$contrast": -100.17171490868873, 440 | "$contrastBg": "black" 441 | }, 442 | "Pink/100": { 443 | "$value": "#faf0f7", 444 | "$type": "color", 445 | "$description": "oklch(96.68% 0.017 340)", 446 | "$oklch": "oklch(0.966797 0.0171875 340)", 447 | "$srgbFallback": "#fdf0f8", 448 | "$isP3": false, 449 | "$link": "https://oklch.com/#96.6796875,0.0171875,340,100", 450 | "$contrast": -100.10663318200457, 451 | "$contrastBg": "black" 452 | }, 453 | "Rose/100": { 454 | "$value": "#fcf0f3", 455 | "$type": "color", 456 | "$description": "oklch(96.68% 0.017 0)", 457 | "$oklch": "oklch(0.966797 0.0171875 0)", 458 | "$srgbFallback": "#fff0f3", 459 | "$isP3": false, 460 | "$link": "https://oklch.com/#96.6796875,0.0171875,360,100", 461 | "$contrast": -100.09582580074196, 462 | "$contrastBg": "black" 463 | }, 464 | "Slate/100": { 465 | "$value": "#f0f3ff", 466 | "$type": "color", 467 | "$description": "oklch(96.48% 0.018 275)", 468 | "$oklch": "oklch(0.964844 0.01775 275)", 469 | "$srgbFallback": "#f0f3ff", 470 | "$isP3": true, 471 | "$link": "https://oklch.com/#96.484375,0.01775,275,100", 472 | "$contrast": -100.04513748110662, 473 | "$contrastBg": "black" 474 | }, 475 | "Gray/100": { 476 | "$value": "#f0f3fe", 477 | "$type": "color", 478 | "$description": "oklch(96.48% 0.016 275)", 479 | "$oklch": "oklch(0.964844 0.016 275)", 480 | "$srgbFallback": "#f0f3ff", 481 | "$isP3": false, 482 | "$link": "https://oklch.com/#96.484375,0.016,275,100", 483 | "$contrast": -100.05550821818956, 484 | "$contrastBg": "black" 485 | }, 486 | "Zinc/100": { 487 | "$value": "#f2f3f8", 488 | "$type": "color", 489 | "$description": "oklch(96.48% 0.008 275)", 490 | "$oklch": "oklch(0.964844 0.008 275)", 491 | "$srgbFallback": "#f2f3f9", 492 | "$isP3": false, 493 | "$link": "https://oklch.com/#96.484375,0.008,275,100", 494 | "$contrast": -100.10117421951703, 495 | "$contrastBg": "black" 496 | }, 497 | "Neutral/100": { 498 | "$value": "#f3f3f3", 499 | "$type": "color", 500 | "$description": "oklch(96.48% 0 0)", 501 | "$oklch": "oklch(0.964844 0 0)", 502 | "$srgbFallback": "#f3f3f3", 503 | "$isP3": false, 504 | "$link": "https://oklch.com/#96.484375,0,0,100", 505 | "$contrast": -100.14400712664819, 506 | "$contrastBg": "black" 507 | }, 508 | "Stone/100": { 509 | "$value": "#f6f3ee", 510 | "$type": "color", 511 | "$description": "oklch(96.48% 0.008 75)", 512 | "$oklch": "oklch(0.964844 0.008 75)", 513 | "$srgbFallback": "#f7f3ee", 514 | "$isP3": false, 515 | "$link": "https://oklch.com/#96.484375,0.008,75,100", 516 | "$contrast": -100.10735814414977, 517 | "$contrastBg": "black" 518 | }, 519 | "Sand/100": { 520 | "$value": "#f7f3ec", 521 | "$type": "color", 522 | "$description": "oklch(96.48% 0.012 75)", 523 | "$oklch": "oklch(0.964844 0.012 75)", 524 | "$srgbFallback": "#f8f2eb", 525 | "$isP3": false, 526 | "$link": "https://oklch.com/#96.484375,0.012,75,100", 527 | "$contrast": -100.0881385459425, 528 | "$contrastBg": "black" 529 | }, 530 | "Olive/100": { 531 | "$value": "#f3f4ef", 532 | "$type": "color", 533 | "$description": "oklch(96.48% 0.008 120)", 534 | "$oklch": "oklch(0.964844 0.008 120)", 535 | "$srgbFallback": "#f2f4ee", 536 | "$isP3": false, 537 | "$link": "https://oklch.com/#96.484375,0.008,120,100", 538 | "$contrast": -100.27244727086202, 539 | "$contrastBg": "black" 540 | }, 541 | "Mauve/100": { 542 | "$value": "#f6f2f7", 543 | "$type": "color", 544 | "$description": "oklch(96.68% 0.008 325)", 545 | "$oklch": "oklch(0.966797 0.008 325)", 546 | "$srgbFallback": "#f7f2f7", 547 | "$isP3": false, 548 | "$link": "https://oklch.com/#96.6796875,0.008,325,100", 549 | "$contrast": -100.3737303654698, 550 | "$contrastBg": "black" 551 | }, 552 | "Red/200": { 553 | "$value": "#fadcda", 554 | "$type": "color", 555 | "$description": "oklch(92.19% 0.042 20)", 556 | "$oklch": "oklch(0.921875 0.0421875 20)", 557 | "$srgbFallback": "#ffdbda", 558 | "$isP3": true, 559 | "$link": "https://oklch.com/#92.1875,0.04218750000000001,20,100", 560 | "$contrast": -90.0225137948612, 561 | "$contrastBg": "black" 562 | }, 563 | "Orange/200": { 564 | "$value": "#f9ded1", 565 | "$type": "color", 566 | "$description": "oklch(92.19% 0.042 43.33)", 567 | "$oklch": "oklch(0.921875 0.0421875 43.3333)", 568 | "$srgbFallback": "#ffddcf", 569 | "$isP3": false, 570 | "$link": "https://oklch.com/#92.1875,0.04218750000000001,43.33333333333333,100", 571 | "$contrast": -90.28069714589697, 572 | "$contrastBg": "black" 573 | }, 574 | "Amber/200": { 575 | "$value": "#f4e1ca", 576 | "$type": "color", 577 | "$description": "oklch(91.99% 0.042 66.67)", 578 | "$oklch": "oklch(0.919922 0.0421875 66.6667)", 579 | "$srgbFallback": "#f8e0c8", 580 | "$isP3": false, 581 | "$link": "https://oklch.com/#91.9921875,0.04218750000000001,66.66666666666666,100", 582 | "$contrast": -90.250842899355, 583 | "$contrastBg": "black" 584 | }, 585 | "Yellow/200": { 586 | "$value": "#ede4c8", 587 | "$type": "color", 588 | "$description": "oklch(91.8% 0.042 90)", 589 | "$oklch": "oklch(0.917969 0.0421875 90)", 590 | "$srgbFallback": "#efe3c5", 591 | "$isP3": false, 592 | "$link": "https://oklch.com/#91.796875,0.04218750000000001,90,100", 593 | "$contrast": -90.2849155820292, 594 | "$contrastBg": "black" 595 | }, 596 | "Lime/200": { 597 | "$value": "#e6e6c9", 598 | "$type": "color", 599 | "$description": "oklch(91.6% 0.042 106.67)", 600 | "$oklch": "oklch(0.916016 0.0421875 106.667)", 601 | "$srgbFallback": "#e6e6c6", 602 | "$isP3": false, 603 | "$link": "https://oklch.com/#91.6015625,0.04218750000000001,106.66666666666667,100", 604 | "$contrast": -90.19598366891242, 605 | "$contrastBg": "black" 606 | }, 607 | "Green/200": { 608 | "$value": "#dfe7cc", 609 | "$type": "color", 610 | "$description": "oklch(91.41% 0.042 123.33)", 611 | "$oklch": "oklch(0.914063 0.0421875 123.333)", 612 | "$srgbFallback": "#dde8c9", 613 | "$isP3": false, 614 | "$link": "https://oklch.com/#91.40625,0.04218750000000001,123.33333333333334,100", 615 | "$contrast": -90.07875344022635, 616 | "$contrastBg": "black" 617 | }, 618 | "Emerald/200": { 619 | "$value": "#d8e9d2", 620 | "$type": "color", 621 | "$description": "oklch(91.41% 0.042 140)", 622 | "$oklch": "oklch(0.914063 0.0421875 140)", 623 | "$srgbFallback": "#d4ead0", 624 | "$isP3": false, 625 | "$link": "https://oklch.com/#91.40625,0.04218750000000001,140,100", 626 | "$contrast": -90.31152907133047, 627 | "$contrastBg": "black" 628 | }, 629 | "Teal/200": { 630 | "$value": "#d1eada", 631 | "$type": "color", 632 | "$description": "oklch(91.21% 0.042 160)", 633 | "$oklch": "oklch(0.912109 0.0421875 160)", 634 | "$srgbFallback": "#cbebd8", 635 | "$isP3": false, 636 | "$link": "https://oklch.com/#91.2109375,0.04218750000000001,160,100", 637 | "$contrast": -90.08211958830785, 638 | "$contrastBg": "black" 639 | }, 640 | "Cyan/200": { 641 | "$value": "#ccebe3", 642 | "$type": "color", 643 | "$description": "oklch(91.21% 0.042 180)", 644 | "$oklch": "oklch(0.912109 0.0421875 180)", 645 | "$srgbFallback": "#c5ece3", 646 | "$isP3": false, 647 | "$link": "https://oklch.com/#91.2109375,0.04218750000000001,180,100", 648 | "$contrast": -90.11930013344536, 649 | "$contrastBg": "black" 650 | }, 651 | "Sky/200": { 652 | "$value": "#cbeaf1", 653 | "$type": "color", 654 | "$description": "oklch(91.41% 0.042 210)", 655 | "$oklch": "oklch(0.914063 0.0421875 210)", 656 | "$srgbFallback": "#c3ebf2", 657 | "$isP3": false, 658 | "$link": "https://oklch.com/#91.40625,0.04218750000000001,210,100", 659 | "$contrast": -90.30960203558655, 660 | "$contrastBg": "black" 661 | }, 662 | "Blue/200": { 663 | "$value": "#d0e7fb", 664 | "$type": "color", 665 | "$description": "oklch(91.6% 0.042 240)", 666 | "$oklch": "oklch(0.916016 0.0421875 240)", 667 | "$srgbFallback": "#cbe8fd", 668 | "$isP3": false, 669 | "$link": "https://oklch.com/#91.6015625,0.04218750000000001,240,100", 670 | "$contrast": -90.24008754400838, 671 | "$contrastBg": "black" 672 | }, 673 | "Indigo/200": { 674 | "$value": "#d7e5fe", 675 | "$type": "color", 676 | "$description": "oklch(91.8% 0.042 260)", 677 | "$oklch": "oklch(0.917969 0.0421875 260)", 678 | "$srgbFallback": "#d5e5ff", 679 | "$isP3": true, 680 | "$link": "https://oklch.com/#91.796875,0.04218750000000001,260,100", 681 | "$contrast": -90.25522371456228, 682 | "$contrastBg": "black" 683 | }, 684 | "Violet/200": { 685 | "$value": "#dfe2fe", 686 | "$type": "color", 687 | "$description": "oklch(91.99% 0.042 280)", 688 | "$oklch": "oklch(0.919922 0.0421875 280)", 689 | "$srgbFallback": "#dfe2ff", 690 | "$isP3": true, 691 | "$link": "https://oklch.com/#91.9921875,0.04218750000000001,280,100", 692 | "$contrast": -90.27159205927155, 693 | "$contrastBg": "black" 694 | }, 695 | "Purple/200": { 696 | "$value": "#e7e0fc", 697 | "$type": "color", 698 | "$description": "oklch(92.19% 0.042 300)", 699 | "$oklch": "oklch(0.921875 0.0421875 300)", 700 | "$srgbFallback": "#e9dffe", 701 | "$isP3": false, 702 | "$link": "https://oklch.com/#92.1875,0.04218750000000001,300,100", 703 | "$contrast": -90.33680497676391, 704 | "$contrastBg": "black" 705 | }, 706 | "Fuchsia/200": { 707 | "$value": "#efddf5", 708 | "$type": "color", 709 | "$description": "oklch(92.19% 0.042 320)", 710 | "$oklch": "oklch(0.921875 0.0421875 320)", 711 | "$srgbFallback": "#f2ddf7", 712 | "$isP3": false, 713 | "$link": "https://oklch.com/#92.1875,0.04218750000000001,320,100", 714 | "$contrast": -90.08349487124066, 715 | "$contrastBg": "black" 716 | }, 717 | "Pink/200": { 718 | "$value": "#f5ddee", 719 | "$type": "color", 720 | "$description": "oklch(92.38% 0.042 340)", 721 | "$oklch": "oklch(0.923828 0.0421875 340)", 722 | "$srgbFallback": "#fadbef", 723 | "$isP3": false, 724 | "$link": "https://oklch.com/#92.3828125,0.04218750000000001,340,100", 725 | "$contrast": -90.34552493069572, 726 | "$contrastBg": "black" 727 | }, 728 | "Rose/200": { 729 | "$value": "#f9dce4", 730 | "$type": "color", 731 | "$description": "oklch(92.38% 0.042 0)", 732 | "$oklch": "oklch(0.923828 0.0421875 0)", 733 | "$srgbFallback": "#ffdbe5", 734 | "$isP3": true, 735 | "$link": "https://oklch.com/#92.3828125,0.04218750000000001,360,100", 736 | "$contrast": -90.32519240572145, 737 | "$contrastBg": "black" 738 | }, 739 | "Slate/200": { 740 | "$value": "#e0e3f3", 741 | "$type": "color", 742 | "$description": "oklch(91.8% 0.024 275)", 743 | "$oklch": "oklch(0.917969 0.024 275)", 744 | "$srgbFallback": "#dfe3f4", 745 | "$isP3": false, 746 | "$link": "https://oklch.com/#91.796875,0.024,275,100", 747 | "$contrast": -90.07817554427668, 748 | "$contrastBg": "black" 749 | }, 750 | "Gray/200": { 751 | "$value": "#e1e3ee", 752 | "$type": "color", 753 | "$description": "oklch(91.8% 0.016 275)", 754 | "$oklch": "oklch(0.917969 0.016 275)", 755 | "$srgbFallback": "#e0e3ef", 756 | "$isP3": false, 757 | "$link": "https://oklch.com/#91.796875,0.016,275,100", 758 | "$contrast": -90.12485459705519, 759 | "$contrastBg": "black" 760 | }, 761 | "Zinc/200": { 762 | "$value": "#e2e3e9", 763 | "$type": "color", 764 | "$description": "oklch(91.8% 0.008 275)", 765 | "$oklch": "oklch(0.917969 0.008 275)", 766 | "$srgbFallback": "#e2e4e9", 767 | "$isP3": false, 768 | "$link": "https://oklch.com/#91.796875,0.008,275,100", 769 | "$contrast": -90.16868153494337, 770 | "$contrastBg": "black" 771 | }, 772 | "Neutral/200": { 773 | "$value": "#e4e4e4", 774 | "$type": "color", 775 | "$description": "oklch(91.8% 0 0)", 776 | "$oklch": "oklch(0.917969 0 0)", 777 | "$srgbFallback": "#e4e4e4", 778 | "$isP3": false, 779 | "$link": "https://oklch.com/#91.796875,0,0,100", 780 | "$contrast": -90.20969513496077, 781 | "$contrastBg": "black" 782 | }, 783 | "Stone/200": { 784 | "$value": "#e6e3df", 785 | "$type": "color", 786 | "$description": "oklch(91.8% 0.008 75)", 787 | "$oklch": "oklch(0.917969 0.008 75)", 788 | "$srgbFallback": "#e7e3de", 789 | "$isP3": false, 790 | "$link": "https://oklch.com/#91.796875,0.008,75,100", 791 | "$contrast": -90.1746145430727, 792 | "$contrastBg": "black" 793 | }, 794 | "Sand/200": { 795 | "$value": "#e8e3dc", 796 | "$type": "color", 797 | "$description": "oklch(91.8% 0.012 75)", 798 | "$oklch": "oklch(0.917969 0.012 75)", 799 | "$srgbFallback": "#e9e3db", 800 | "$isP3": false, 801 | "$link": "https://oklch.com/#91.796875,0.012,75,100", 802 | "$contrast": -90.15619517193582, 803 | "$contrastBg": "black" 804 | }, 805 | "Olive/200": { 806 | "$value": "#e3e5df", 807 | "$type": "color", 808 | "$description": "oklch(91.8% 0.008 120)", 809 | "$oklch": "oklch(0.917969 0.008 120)", 810 | "$srgbFallback": "#e3e5df", 811 | "$isP3": false, 812 | "$link": "https://oklch.com/#91.796875,0.008,120,100", 813 | "$contrast": -90.3324934191153, 814 | "$contrastBg": "black" 815 | }, 816 | "Mauve/200": { 817 | "$value": "#e6e2e6", 818 | "$type": "color", 819 | "$description": "oklch(91.8% 0.008 325)", 820 | "$oklch": "oklch(0.917969 0.008 325)", 821 | "$srgbFallback": "#e7e2e7", 822 | "$isP3": false, 823 | "$link": "https://oklch.com/#91.796875,0.008,325,100", 824 | "$contrast": -90.02471501373383, 825 | "$contrastBg": "black" 826 | }, 827 | "Red/300": { 828 | "$value": "#f7c0be", 829 | "$type": "color", 830 | "$description": "oklch(86.13% 0.078 20)", 831 | "$oklch": "oklch(0.861328 0.078125 20)", 832 | "$srgbFallback": "#ffbebd", 833 | "$isP3": true, 834 | "$link": "https://oklch.com/#86.1328125,0.07812500000000001,20,100", 835 | "$contrast": -77.08644088189351, 836 | "$contrastBg": "black" 837 | }, 838 | "Orange/300": { 839 | "$value": "#f4c3ac", 840 | "$type": "color", 841 | "$description": "oklch(85.94% 0.078 43.33)", 842 | "$oklch": "oklch(0.859375 0.078125 43.3333)", 843 | "$srgbFallback": "#fec1a8", 844 | "$isP3": false, 845 | "$link": "https://oklch.com/#85.9375,0.07812500000000001,43.33333333333333,100", 846 | "$contrast": -77.12817341204102, 847 | "$contrastBg": "black" 848 | }, 849 | "Amber/300": { 850 | "$value": "#ecc8a0", 851 | "$type": "color", 852 | "$description": "oklch(85.74% 0.078 66.67)", 853 | "$oklch": "oklch(0.857422 0.078125 66.6667)", 854 | "$srgbFallback": "#f4c79a", 855 | "$isP3": false, 856 | "$link": "https://oklch.com/#85.7421875,0.07812500000000001,66.66666666666666,100", 857 | "$contrast": -77.36665444193929, 858 | "$contrastBg": "black" 859 | }, 860 | "Yellow/300": { 861 | "$value": "#dfce9b", 862 | "$type": "color", 863 | "$description": "oklch(85.35% 0.078 90)", 864 | "$oklch": "oklch(0.853516 0.078125 90)", 865 | "$srgbFallback": "#e3cd94", 866 | "$isP3": false, 867 | "$link": "https://oklch.com/#85.3515625,0.07812500000000001,90,100", 868 | "$contrast": -77.35090285598868, 869 | "$contrastBg": "black" 870 | }, 871 | "Lime/300": { 872 | "$value": "#d3d29d", 873 | "$type": "color", 874 | "$description": "oklch(84.96% 0.078 106.67)", 875 | "$oklch": "oklch(0.849609 0.078125 106.667)", 876 | "$srgbFallback": "#d3d296", 877 | "$isP3": false, 878 | "$link": "https://oklch.com/#84.9609375,0.07812500000000001,106.66666666666667,100", 879 | "$contrast": -77.14202338903586, 880 | "$contrastBg": "black" 881 | }, 882 | "Green/300": { 883 | "$value": "#c6d5a3", 884 | "$type": "color", 885 | "$description": "oklch(84.77% 0.078 123.33)", 886 | "$oklch": "oklch(0.847656 0.078125 123.333)", 887 | "$srgbFallback": "#c3d69e", 888 | "$isP3": false, 889 | "$link": "https://oklch.com/#84.765625,0.07812500000000001,123.33333333333334,100", 890 | "$contrast": -77.27610332304546, 891 | "$contrastBg": "black" 892 | }, 893 | "Emerald/300": { 894 | "$value": "#bad8ad", 895 | "$type": "color", 896 | "$description": "oklch(84.57% 0.078 140)", 897 | "$oklch": "oklch(0.845703 0.078125 140)", 898 | "$srgbFallback": "#b2d9a9", 899 | "$isP3": false, 900 | "$link": "https://oklch.com/#84.5703125,0.07812500000000001,140,100", 901 | "$contrast": -77.32445446770217, 902 | "$contrastBg": "black" 903 | }, 904 | "Teal/300": { 905 | "$value": "#acdabd", 906 | "$type": "color", 907 | "$description": "oklch(84.38% 0.078 160)", 908 | "$oklch": "oklch(0.84375 0.078125 160)", 909 | "$srgbFallback": "#9fdcba", 910 | "$isP3": false, 911 | "$link": "https://oklch.com/#84.375,0.07812500000000001,160,100", 912 | "$contrast": -77.27991923033933, 913 | "$contrastBg": "black" 914 | }, 915 | "Cyan/300": { 916 | "$value": "#a2dbce", 917 | "$type": "color", 918 | "$description": "oklch(84.38% 0.078 180)", 919 | "$oklch": "oklch(0.84375 0.078125 180)", 920 | "$srgbFallback": "#92ddce", 921 | "$isP3": false, 922 | "$link": "https://oklch.com/#84.375,0.07812500000000001,180,100", 923 | "$contrast": -77.36285345997199, 924 | "$contrastBg": "black" 925 | }, 926 | "Sky/300": { 927 | "$value": "#9fd9e6", 928 | "$type": "color", 929 | "$description": "oklch(84.57% 0.078 210)", 930 | "$oklch": "oklch(0.845703 0.078125 210)", 931 | "$srgbFallback": "#8edbe9", 932 | "$isP3": false, 933 | "$link": "https://oklch.com/#84.5703125,0.07812500000000001,210,100", 934 | "$contrast": -77.3547578675285, 935 | "$contrastBg": "black" 936 | }, 937 | "Blue/300": { 938 | "$value": "#aad4f8", 939 | "$type": "color", 940 | "$description": "oklch(84.96% 0.078 240)", 941 | "$oklch": "oklch(0.849609 0.078125 240)", 942 | "$srgbFallback": "#9fd5fc", 943 | "$isP3": false, 944 | "$link": "https://oklch.com/#84.9609375,0.07812500000000001,240,100", 945 | "$contrast": -77.23904731959841, 946 | "$contrastBg": "black" 947 | }, 948 | "Indigo/300": { 949 | "$value": "#b7cffe", 950 | "$type": "color", 951 | "$description": "oklch(85.35% 0.078 260)", 952 | "$oklch": "oklch(0.853516 0.078125 260)", 953 | "$srgbFallback": "#b4d0ff", 954 | "$isP3": true, 955 | "$link": "https://oklch.com/#85.3515625,0.07812500000000001,260,100", 956 | "$contrast": -77.29450449032103, 957 | "$contrastBg": "black" 958 | }, 959 | "Violet/300": { 960 | "$value": "#c6cbff", 961 | "$type": "color", 962 | "$description": "oklch(85.74% 0.078 280)", 963 | "$oklch": "oklch(0.857422 0.078125 280)", 964 | "$srgbFallback": "#c6ccff", 965 | "$isP3": true, 966 | "$link": "https://oklch.com/#85.7421875,0.07812500000000001,280,100", 967 | "$contrast": -77.37378288006676, 968 | "$contrastBg": "black" 969 | }, 970 | "Purple/300": { 971 | "$value": "#d5c6f9", 972 | "$type": "color", 973 | "$description": "oklch(85.94% 0.078 300)", 974 | "$oklch": "oklch(0.859375 0.078125 300)", 975 | "$srgbFallback": "#d8c6fd", 976 | "$isP3": false, 977 | "$link": "https://oklch.com/#85.9375,0.07812500000000001,300,100", 978 | "$contrast": -77.18179280760089, 979 | "$contrastBg": "black" 980 | }, 981 | "Fuchsia/300": { 982 | "$value": "#e2c3ef", 983 | "$type": "color", 984 | "$description": "oklch(86.13% 0.078 320)", 985 | "$oklch": "oklch(0.861328 0.078125 320)", 986 | "$srgbFallback": "#e9c1f2", 987 | "$isP3": false, 988 | "$link": "https://oklch.com/#86.1328125,0.07812500000000001,320,100", 989 | "$contrast": -77.1529937657712, 990 | "$contrastBg": "black" 991 | }, 992 | "Pink/300": { 993 | "$value": "#edc1e0", 994 | "$type": "color", 995 | "$description": "oklch(86.33% 0.078 340)", 996 | "$oklch": "oklch(0.863281 0.078125 340)", 997 | "$srgbFallback": "#f6bfe2", 998 | "$isP3": false, 999 | "$link": "https://oklch.com/#86.328125,0.07812500000000001,340,100", 1000 | "$contrast": -77.31441991357511, 1001 | "$contrastBg": "black" 1002 | }, 1003 | "Rose/300": { 1004 | "$value": "#f4c0cf", 1005 | "$type": "color", 1006 | "$description": "oklch(86.33% 0.078 0)", 1007 | "$oklch": "oklch(0.863281 0.078125 0)", 1008 | "$srgbFallback": "#febdd0", 1009 | "$isP3": false, 1010 | "$link": "https://oklch.com/#86.328125,0.07812500000000001,360,100", 1011 | "$contrast": -77.29412686291785, 1012 | "$contrastBg": "black" 1013 | }, 1014 | "Slate/300": { 1015 | "$value": "#cbcede", 1016 | "$type": "color", 1017 | "$description": "oklch(85.35% 0.024 275)", 1018 | "$oklch": "oklch(0.853516 0.024 275)", 1019 | "$srgbFallback": "#cacedf", 1020 | "$isP3": false, 1021 | "$link": "https://oklch.com/#85.3515625,0.024,275,100", 1022 | "$contrast": -77.15383977269352, 1023 | "$contrastBg": "black" 1024 | }, 1025 | "Gray/300": { 1026 | "$value": "#ccced9", 1027 | "$type": "color", 1028 | "$description": "oklch(85.35% 0.016 275)", 1029 | "$oklch": "oklch(0.853516 0.016 275)", 1030 | "$srgbFallback": "#cbceda", 1031 | "$isP3": false, 1032 | "$link": "https://oklch.com/#85.3515625,0.016,275,100", 1033 | "$contrast": -77.19792281521444, 1034 | "$contrastBg": "black" 1035 | }, 1036 | "Zinc/300": { 1037 | "$value": "#cdced4", 1038 | "$type": "color", 1039 | "$description": "oklch(85.35% 0.008 275)", 1040 | "$oklch": "oklch(0.853516 0.008 275)", 1041 | "$srgbFallback": "#cdced4", 1042 | "$isP3": false, 1043 | "$link": "https://oklch.com/#85.3515625,0.008,275,100", 1044 | "$contrast": -77.23918550427882, 1045 | "$contrastBg": "black" 1046 | }, 1047 | "Neutral/300": { 1048 | "$value": "#cfcfcf", 1049 | "$type": "color", 1050 | "$description": "oklch(85.35% 0 0)", 1051 | "$oklch": "oklch(0.853516 0 0)", 1052 | "$srgbFallback": "#cfcfcf", 1053 | "$isP3": false, 1054 | "$link": "https://oklch.com/#85.3515625,0,0,100", 1055 | "$contrast": -77.2776695428903, 1056 | "$contrastBg": "black" 1057 | }, 1058 | "Stone/300": { 1059 | "$value": "#d1ceca", 1060 | "$type": "color", 1061 | "$description": "oklch(85.35% 0.008 75)", 1062 | "$oklch": "oklch(0.853516 0.008 75)", 1063 | "$srgbFallback": "#d2cec9", 1064 | "$isP3": false, 1065 | "$link": "https://oklch.com/#85.3515625,0.008,75,100", 1066 | "$contrast": -77.24477224126336, 1067 | "$contrastBg": "black" 1068 | }, 1069 | "Sand/300": { 1070 | "$value": "#d3cec7", 1071 | "$type": "color", 1072 | "$description": "oklch(85.35% 0.012 75)", 1073 | "$oklch": "oklch(0.853516 0.012 75)", 1074 | "$srgbFallback": "#d4cec6", 1075 | "$isP3": false, 1076 | "$link": "https://oklch.com/#85.3515625,0.012,75,100", 1077 | "$contrast": -77.22747122307881, 1078 | "$contrastBg": "black" 1079 | }, 1080 | "Olive/300": { 1081 | "$value": "#cecfca", 1082 | "$type": "color", 1083 | "$description": "oklch(85.16% 0.008 120)", 1084 | "$oklch": "oklch(0.851563 0.008 120)", 1085 | "$srgbFallback": "#cdcfc9", 1086 | "$isP3": false, 1087 | "$link": "https://oklch.com/#85.15625,0.008,120,100", 1088 | "$contrast": -77.01378373547809, 1089 | "$contrastBg": "black" 1090 | }, 1091 | "Mauve/300": { 1092 | "$value": "#d1cdd1", 1093 | "$type": "color", 1094 | "$description": "oklch(85.35% 0.008 325)", 1095 | "$oklch": "oklch(0.853516 0.008 325)", 1096 | "$srgbFallback": "#d2cdd2", 1097 | "$isP3": false, 1098 | "$link": "https://oklch.com/#85.3515625,0.008,325,100", 1099 | "$contrast": -77.1044355931532, 1100 | "$contrastBg": "black" 1101 | }, 1102 | "Red/400": { 1103 | "$value": "#f2a4a2", 1104 | "$type": "color", 1105 | "$description": "oklch(80.08% 0.114 20)", 1106 | "$oklch": "oklch(0.800781 0.114063 20)", 1107 | "$srgbFallback": "#ffa09f", 1108 | "$isP3": true, 1109 | "$link": "https://oklch.com/#80.078125,0.11406250000000002,20,100", 1110 | "$contrast": -65.04009583453124, 1111 | "$contrastBg": "black" 1112 | }, 1113 | "Orange/400": { 1114 | "$value": "#efa987", 1115 | "$type": "color", 1116 | "$description": "oklch(79.88% 0.114 43.33)", 1117 | "$oklch": "oklch(0.798828 0.114063 43.3333)", 1118 | "$srgbFallback": "#fba581", 1119 | "$isP3": false, 1120 | "$link": "https://oklch.com/#79.8828125,0.11406250000000002,43.33333333333333,100", 1121 | "$contrast": -65.21726892329842, 1122 | "$contrastBg": "black" 1123 | }, 1124 | "Amber/400": { 1125 | "$value": "#e4b073", 1126 | "$type": "color", 1127 | "$description": "oklch(79.49% 0.114 66.67)", 1128 | "$oklch": "oklch(0.794922 0.114063 66.6667)", 1129 | "$srgbFallback": "#eead69", 1130 | "$isP3": false, 1131 | "$link": "https://oklch.com/#79.4921875,0.11406250000000002,66.66666666666666,100", 1132 | "$contrast": -65.30082805452987, 1133 | "$contrastBg": "black" 1134 | }, 1135 | "Yellow/400": { 1136 | "$value": "#d1b86c", 1137 | "$type": "color", 1138 | "$description": "oklch(78.91% 0.114 90)", 1139 | "$oklch": "oklch(0.789063 0.114063 90)", 1140 | "$srgbFallback": "#d7b75e", 1141 | "$isP3": false, 1142 | "$link": "https://oklch.com/#78.90625,0.11406250000000002,90,100", 1143 | "$contrast": -65.22035405034259, 1144 | "$contrastBg": "black" 1145 | }, 1146 | "Lime/400": { 1147 | "$value": "#c1be6f", 1148 | "$type": "color", 1149 | "$description": "oklch(78.52% 0.114 106.67)", 1150 | "$oklch": "oklch(0.785156 0.114063 106.667)", 1151 | "$srgbFallback": "#c2be63", 1152 | "$isP3": false, 1153 | "$link": "https://oklch.com/#78.515625,0.11406250000000002,106.66666666666667,100", 1154 | "$contrast": -65.26079168195363, 1155 | "$contrastBg": "black" 1156 | }, 1157 | "Green/400": { 1158 | "$value": "#afc37a", 1159 | "$type": "color", 1160 | "$description": "oklch(78.13% 0.114 123.33)", 1161 | "$oklch": "oklch(0.78125 0.114063 123.333)", 1162 | "$srgbFallback": "#a9c470", 1163 | "$isP3": false, 1164 | "$link": "https://oklch.com/#78.125,0.11406250000000002,123.33333333333334,100", 1165 | "$contrast": -65.27201406924938, 1166 | "$contrastBg": "black" 1167 | }, 1168 | "Emerald/400": { 1169 | "$value": "#9bc789", 1170 | "$type": "color", 1171 | "$description": "oklch(77.73% 0.114 140)", 1172 | "$oklch": "oklch(0.777344 0.114063 140)", 1173 | "$srgbFallback": "#8fc982", 1174 | "$isP3": false, 1175 | "$link": "https://oklch.com/#77.734375,0.11406250000000002,140,100", 1176 | "$contrast": -65.18351328441426, 1177 | "$contrastBg": "black" 1178 | }, 1179 | "Teal/400": { 1180 | "$value": "#86caa0", 1181 | "$type": "color", 1182 | "$description": "oklch(77.54% 0.114 160)", 1183 | "$oklch": "oklch(0.775391 0.114063 160)", 1184 | "$srgbFallback": "#6ecc9d", 1185 | "$isP3": false, 1186 | "$link": "https://oklch.com/#77.5390625,0.11406250000000002,160,100", 1187 | "$contrast": -65.33863954694708, 1188 | "$contrastBg": "black" 1189 | }, 1190 | "Cyan/400": { 1191 | "$value": "#75cab8", 1192 | "$type": "color", 1193 | "$description": "oklch(77.34% 0.114 180)", 1194 | "$oklch": "oklch(0.773438 0.114063 180)", 1195 | "$srgbFallback": "#51cdb8", 1196 | "$isP3": false, 1197 | "$link": "https://oklch.com/#77.34375,0.11406250000000002,180,100", 1198 | "$contrast": -65.13934215257055, 1199 | "$contrastBg": "black" 1200 | }, 1201 | "Sky/400": { 1202 | "$value": "#6fc7dc", 1203 | "$type": "color", 1204 | "$description": "oklch(77.73% 0.114 210)", 1205 | "$oklch": "oklch(0.777344 0.114063 210)", 1206 | "$srgbFallback": "#49cadf", 1207 | "$isP3": false, 1208 | "$link": "https://oklch.com/#77.734375,0.11406250000000002,210,100", 1209 | "$contrast": -65.29937037528907, 1210 | "$contrastBg": "black" 1211 | }, 1212 | "Blue/400": { 1213 | "$value": "#83c0f5", 1214 | "$type": "color", 1215 | "$description": "oklch(78.32% 0.114 240)", 1216 | "$oklch": "oklch(0.783203 0.114063 240)", 1217 | "$srgbFallback": "#6fc2fa", 1218 | "$isP3": false, 1219 | "$link": "https://oklch.com/#78.3203125,0.11406250000000002,240,100", 1220 | "$contrast": -65.07163727082647, 1221 | "$contrastBg": "black" 1222 | }, 1223 | "Indigo/400": { 1224 | "$value": "#98bafe", 1225 | "$type": "color", 1226 | "$description": "oklch(78.91% 0.114 260)", 1227 | "$oklch": "oklch(0.789063 0.114063 260)", 1228 | "$srgbFallback": "#92bbff", 1229 | "$isP3": true, 1230 | "$link": "https://oklch.com/#78.90625,0.11406250000000002,260,100", 1231 | "$contrast": -65.12375744987915, 1232 | "$contrastBg": "black" 1233 | }, 1234 | "Violet/400": { 1235 | "$value": "#afb4fe", 1236 | "$type": "color", 1237 | "$description": "oklch(79.49% 0.114 280)", 1238 | "$oklch": "oklch(0.794922 0.114063 280)", 1239 | "$srgbFallback": "#afb5ff", 1240 | "$isP3": true, 1241 | "$link": "https://oklch.com/#79.4921875,0.11406250000000002,280,100", 1242 | "$contrast": -65.24983571034234, 1243 | "$contrastBg": "black" 1244 | }, 1245 | "Purple/400": { 1246 | "$value": "#c4aef7", 1247 | "$type": "color", 1248 | "$description": "oklch(79.88% 0.114 300)", 1249 | "$oklch": "oklch(0.798828 0.114063 300)", 1250 | "$srgbFallback": "#c9acfc", 1251 | "$isP3": false, 1252 | "$link": "https://oklch.com/#79.8828125,0.11406250000000002,300,100", 1253 | "$contrast": -65.21029381694945, 1254 | "$contrastBg": "black" 1255 | }, 1256 | "Fuchsia/400": { 1257 | "$value": "#d6a8e7", 1258 | "$type": "color", 1259 | "$description": "oklch(80.08% 0.114 320)", 1260 | "$oklch": "oklch(0.800781 0.114063 320)", 1261 | "$srgbFallback": "#dfa6ec", 1262 | "$isP3": false, 1263 | "$link": "https://oklch.com/#80.078125,0.11406250000000002,320,100", 1264 | "$contrast": -65.06216230026517, 1265 | "$contrastBg": "black" 1266 | }, 1267 | "Pink/400": { 1268 | "$value": "#e5a5d3", 1269 | "$type": "color", 1270 | "$description": "oklch(80.27% 0.114 340)", 1271 | "$oklch": "oklch(0.802734 0.114063 340)", 1272 | "$srgbFallback": "#f0a1d6", 1273 | "$isP3": false, 1274 | "$link": "https://oklch.com/#80.2734375,0.11406250000000002,340,100", 1275 | "$contrast": -65.16961663921903, 1276 | "$contrastBg": "black" 1277 | }, 1278 | "Rose/400": { 1279 | "$value": "#eea3bb", 1280 | "$type": "color", 1281 | "$description": "oklch(80.27% 0.114 0)", 1282 | "$oklch": "oklch(0.802734 0.114063 0)", 1283 | "$srgbFallback": "#fb9fbb", 1284 | "$isP3": false, 1285 | "$link": "https://oklch.com/#80.2734375,0.11406250000000002,360,100", 1286 | "$contrast": -65.16773905131197, 1287 | "$contrastBg": "black" 1288 | }, 1289 | "Slate/400": { 1290 | "$value": "#b6b9c9", 1291 | "$type": "color", 1292 | "$description": "oklch(78.91% 0.024 275)", 1293 | "$oklch": "oklch(0.789063 0.024 275)", 1294 | "$srgbFallback": "#b5b9ca", 1295 | "$isP3": false, 1296 | "$link": "https://oklch.com/#78.90625,0.024,275,100", 1297 | "$contrast": -65.08113407292936, 1298 | "$contrastBg": "black" 1299 | }, 1300 | "Gray/400": { 1301 | "$value": "#b7bac4", 1302 | "$type": "color", 1303 | "$description": "oklch(78.91% 0.016 275)", 1304 | "$oklch": "oklch(0.789063 0.016 275)", 1305 | "$srgbFallback": "#b7bac5", 1306 | "$isP3": false, 1307 | "$link": "https://oklch.com/#78.90625,0.016,275,100", 1308 | "$contrast": -65.1225623870676, 1309 | "$contrastBg": "black" 1310 | }, 1311 | "Zinc/400": { 1312 | "$value": "#b9babf", 1313 | "$type": "color", 1314 | "$description": "oklch(78.91% 0.008 275)", 1315 | "$oklch": "oklch(0.789063 0.008 275)", 1316 | "$srgbFallback": "#b8babf", 1317 | "$isP3": false, 1318 | "$link": "https://oklch.com/#78.90625,0.008,275,100", 1319 | "$contrast": -65.16121308530278, 1320 | "$contrastBg": "black" 1321 | }, 1322 | "Neutral/400": { 1323 | "$value": "#bababa", 1324 | "$type": "color", 1325 | "$description": "oklch(78.91% 0 0)", 1326 | "$oklch": "oklch(0.789063 0 0)", 1327 | "$srgbFallback": "#bababa", 1328 | "$isP3": false, 1329 | "$link": "https://oklch.com/#78.90625,0,0,100", 1330 | "$contrast": -65.19713118037737, 1331 | "$contrastBg": "black" 1332 | }, 1333 | "Stone/400": { 1334 | "$value": "#bdbab5", 1335 | "$type": "color", 1336 | "$description": "oklch(78.91% 0.008 75)", 1337 | "$oklch": "oklch(0.789063 0.008 75)", 1338 | "$srgbFallback": "#bdbab5", 1339 | "$isP3": false, 1340 | "$link": "https://oklch.com/#78.90625,0.008,75,100", 1341 | "$contrast": -65.16645239027231, 1342 | "$contrastBg": "black" 1343 | }, 1344 | "Sand/400": { 1345 | "$value": "#beb9b3", 1346 | "$type": "color", 1347 | "$description": "oklch(78.91% 0.012 75)", 1348 | "$oklch": "oklch(0.789063 0.012 75)", 1349 | "$srgbFallback": "#bfb9b2", 1350 | "$isP3": false, 1351 | "$link": "https://oklch.com/#78.90625,0.012,75,100", 1352 | "$contrast": -65.15029428089657, 1353 | "$contrastBg": "black" 1354 | }, 1355 | "Olive/400": { 1356 | "$value": "#babbb6", 1357 | "$type": "color", 1358 | "$description": "oklch(78.91% 0.008 120)", 1359 | "$oklch": "oklch(0.789063 0.008 120)", 1360 | "$srgbFallback": "#b9bbb5", 1361 | "$isP3": false, 1362 | "$link": "https://oklch.com/#78.90625,0.008,120,100", 1363 | "$contrast": -65.30417957495497, 1364 | "$contrastBg": "black" 1365 | }, 1366 | "Mauve/400": { 1367 | "$value": "#bcb9bd", 1368 | "$type": "color", 1369 | "$description": "oklch(78.91% 0.008 325)", 1370 | "$oklch": "oklch(0.789063 0.008 325)", 1371 | "$srgbFallback": "#bdb8bd", 1372 | "$isP3": false, 1373 | "$link": "https://oklch.com/#78.90625,0.008,325,100", 1374 | "$contrast": -65.0357936765851, 1375 | "$contrastBg": "black" 1376 | }, 1377 | "Red/500": { 1378 | "$value": "#ec8786", 1379 | "$type": "color", 1380 | "$description": "oklch(74.22% 0.152 20)", 1381 | "$oklch": "oklch(0.742188 0.151562 20)", 1382 | "$srgbFallback": "#fc8083", 1383 | "$isP3": false, 1384 | "$link": "https://oklch.com/#74.21875,0.15156250000000002,20,100", 1385 | "$contrast": -54.2184975085519, 1386 | "$contrastBg": "black" 1387 | }, 1388 | "Orange/500": { 1389 | "$value": "#e98d61", 1390 | "$type": "color", 1391 | "$description": "oklch(73.83% 0.152 43.33)", 1392 | "$oklch": "oklch(0.738281 0.151562 43.3333)", 1393 | "$srgbFallback": "#f88756", 1394 | "$isP3": false, 1395 | "$link": "https://oklch.com/#73.828125,0.15156250000000002,43.33333333333333,100", 1396 | "$contrast": -54.1576352896901, 1397 | "$contrastBg": "black" 1398 | }, 1399 | "Amber/500": { 1400 | "$value": "#db9640", 1401 | "$type": "color", 1402 | "$description": "oklch(73.24% 0.152 66.67)", 1403 | "$oklch": "oklch(0.732422 0.151562 66.6667)", 1404 | "$srgbFallback": "#e79325", 1405 | "$isP3": false, 1406 | "$link": "https://oklch.com/#73.2421875,0.15156250000000002,66.66666666666666,100", 1407 | "$contrast": -54.07941708078366, 1408 | "$contrastBg": "black" 1409 | }, 1410 | "Yellow/500": { 1411 | "$value": "#c5a231", 1412 | "$type": "color", 1413 | "$description": "oklch(72.66% 0.152 90)", 1414 | "$oklch": "oklch(0.726563 0.151562 90)", 1415 | "$srgbFallback": "#cba100", 1416 | "$isP3": true, 1417 | "$link": "https://oklch.com/#72.65625,0.15156250000000002,90,100", 1418 | "$contrast": -54.26034331065021, 1419 | "$contrastBg": "black" 1420 | }, 1421 | "Lime/500": { 1422 | "$value": "#b0aa39", 1423 | "$type": "color", 1424 | "$description": "oklch(72.07% 0.152 106.67)", 1425 | "$oklch": "oklch(0.720703 0.151562 106.667)", 1426 | "$srgbFallback": "#b1aa0f", 1427 | "$isP3": false, 1428 | "$link": "https://oklch.com/#72.0703125,0.15156250000000002,106.66666666666667,100", 1429 | "$contrast": -54.18702224731864, 1430 | "$contrastBg": "black" 1431 | }, 1432 | "Green/500": { 1433 | "$value": "#97b14c", 1434 | "$type": "color", 1435 | "$description": "oklch(71.48% 0.152 123.33)", 1436 | "$oklch": "oklch(0.714844 0.151562 123.333)", 1437 | "$srgbFallback": "#91b237", 1438 | "$isP3": false, 1439 | "$link": "https://oklch.com/#71.484375,0.15156250000000002,123.33333333333334,100", 1440 | "$contrast": -54.10511709552996, 1441 | "$contrastBg": "black" 1442 | }, 1443 | "Emerald/500": { 1444 | "$value": "#7db664", 1445 | "$type": "color", 1446 | "$description": "oklch(71.09% 0.152 140)", 1447 | "$oklch": "oklch(0.710938 0.151562 140)", 1448 | "$srgbFallback": "#6ab859", 1449 | "$isP3": false, 1450 | "$link": "https://oklch.com/#71.09375,0.15156250000000002,140,100", 1451 | "$contrast": -54.26175630374802, 1452 | "$contrastBg": "black" 1453 | }, 1454 | "Teal/500": { 1455 | "$value": "#5ab983", 1456 | "$type": "color", 1457 | "$description": "oklch(70.51% 0.152 160)", 1458 | "$oklch": "oklch(0.705078 0.151562 160)", 1459 | "$srgbFallback": "#23bc7f", 1460 | "$isP3": false, 1461 | "$link": "https://oklch.com/#70.5078125,0.15156250000000002,160,100", 1462 | "$contrast": -54.006156170845465, 1463 | "$contrastBg": "black" 1464 | }, 1465 | "Cyan/500": { 1466 | "$value": "#39baa4", 1467 | "$type": "color", 1468 | "$description": "oklch(70.51% 0.152 180)", 1469 | "$oklch": "oklch(0.705078 0.151562 180)", 1470 | "$srgbFallback": "#00b9a3", 1471 | "$isP3": true, 1472 | "$link": "https://oklch.com/#70.5078125,0.15156250000000002,180,100", 1473 | "$contrast": -54.31425190552922, 1474 | "$contrastBg": "black" 1475 | }, 1476 | "Sky/500": { 1477 | "$value": "#2ab6d1", 1478 | "$type": "color", 1479 | "$description": "oklch(70.9% 0.152 210)", 1480 | "$oklch": "oklch(0.708984 0.151562 210)", 1481 | "$srgbFallback": "#00b5cb", 1482 | "$isP3": true, 1483 | "$link": "https://oklch.com/#70.8984375,0.15156250000000002,210,100", 1484 | "$contrast": -54.30966916751457, 1485 | "$contrastBg": "black" 1486 | }, 1487 | "Blue/500": { 1488 | "$value": "#58acf2", 1489 | "$type": "color", 1490 | "$description": "oklch(71.88% 0.152 240)", 1491 | "$oklch": "oklch(0.71875 0.151562 240)", 1492 | "$srgbFallback": "#2caff9", 1493 | "$isP3": false, 1494 | "$link": "https://oklch.com/#71.875,0.15156250000000002,240,100", 1495 | "$contrast": -54.109529813575655, 1496 | "$contrastBg": "black" 1497 | }, 1498 | "Indigo/500": { 1499 | "$value": "#79a4fe", 1500 | "$type": "color", 1501 | "$description": "oklch(72.66% 0.152 260)", 1502 | "$oklch": "oklch(0.726563 0.151562 260)", 1503 | "$srgbFallback": "#70a6ff", 1504 | "$isP3": true, 1505 | "$link": "https://oklch.com/#72.65625,0.15156250000000002,260,100", 1506 | "$contrast": -54.07690053482429, 1507 | "$contrastBg": "black" 1508 | }, 1509 | "Violet/500": { 1510 | "$value": "#989cff", 1511 | "$type": "color", 1512 | "$description": "oklch(73.44% 0.152 280)", 1513 | "$oklch": "oklch(0.734375 0.151562 280)", 1514 | "$srgbFallback": "#989eff", 1515 | "$isP3": true, 1516 | "$link": "https://oklch.com/#73.4375,0.15156250000000002,280,100", 1517 | "$contrast": -54.21936234477517, 1518 | "$contrastBg": "black" 1519 | }, 1520 | "Purple/500": { 1521 | "$value": "#b394f4", 1522 | "$type": "color", 1523 | "$description": "oklch(73.83% 0.152 300)", 1524 | "$oklch": "oklch(0.738281 0.151562 300)", 1525 | "$srgbFallback": "#b992fb", 1526 | "$isP3": false, 1527 | "$link": "https://oklch.com/#73.828125,0.15156250000000002,300,100", 1528 | "$contrast": -54.00665985274049, 1529 | "$contrastBg": "black" 1530 | }, 1531 | "Fuchsia/500": { 1532 | "$value": "#ca8de1", 1533 | "$type": "color", 1534 | "$description": "oklch(74.22% 0.152 320)", 1535 | "$oklch": "oklch(0.742188 0.151562 320)", 1536 | "$srgbFallback": "#d58ae6", 1537 | "$isP3": false, 1538 | "$link": "https://oklch.com/#74.21875,0.15156250000000002,320,100", 1539 | "$contrast": -54.1305852436854, 1540 | "$contrastBg": "black" 1541 | }, 1542 | "Pink/500": { 1543 | "$value": "#dc88c7", 1544 | "$type": "color", 1545 | "$description": "oklch(74.41% 0.152 340)", 1546 | "$oklch": "oklch(0.744141 0.151562 340)", 1547 | "$srgbFallback": "#ea83ca", 1548 | "$isP3": false, 1549 | "$link": "https://oklch.com/#74.4140625,0.15156250000000002,340,100", 1550 | "$contrast": -54.23631355548495, 1551 | "$contrastBg": "black" 1552 | }, 1553 | "Rose/500": { 1554 | "$value": "#e886a7", 1555 | "$type": "color", 1556 | "$description": "oklch(74.41% 0.152 0)", 1557 | "$oklch": "oklch(0.744141 0.151562 0)", 1558 | "$srgbFallback": "#f780a8", 1559 | "$isP3": false, 1560 | "$link": "https://oklch.com/#74.4140625,0.15156250000000002,360,100", 1561 | "$contrast": -54.27682331403544, 1562 | "$contrastBg": "black" 1563 | }, 1564 | "Slate/500": { 1565 | "$value": "#a3a6b5", 1566 | "$type": "color", 1567 | "$description": "oklch(72.66% 0.024 275)", 1568 | "$oklch": "oklch(0.726563 0.024 275)", 1569 | "$srgbFallback": "#a2a6b6", 1570 | "$isP3": false, 1571 | "$link": "https://oklch.com/#72.65625,0.024,275,100", 1572 | "$contrast": -54.19783750926077, 1573 | "$contrastBg": "black" 1574 | }, 1575 | "Gray/500": { 1576 | "$value": "#a4a6b0", 1577 | "$type": "color", 1578 | "$description": "oklch(72.66% 0.016 275)", 1579 | "$oklch": "oklch(0.726563 0.016 275)", 1580 | "$srgbFallback": "#a3a6b1", 1581 | "$isP3": false, 1582 | "$link": "https://oklch.com/#72.65625,0.016,275,100", 1583 | "$contrast": -54.23662255033739, 1584 | "$contrastBg": "black" 1585 | }, 1586 | "Zinc/500": { 1587 | "$value": "#a5a6ab", 1588 | "$type": "color", 1589 | "$description": "oklch(72.66% 0.008 275)", 1590 | "$oklch": "oklch(0.726563 0.008 275)", 1591 | "$srgbFallback": "#a5a6ac", 1592 | "$isP3": false, 1593 | "$link": "https://oklch.com/#72.65625,0.008,275,100", 1594 | "$contrast": -54.27268573473225, 1595 | "$contrastBg": "black" 1596 | }, 1597 | "Neutral/500": { 1598 | "$value": "#a6a6a6", 1599 | "$type": "color", 1600 | "$description": "oklch(72.66% 0 0)", 1601 | "$oklch": "oklch(0.726563 0 0)", 1602 | "$srgbFallback": "#a6a6a6", 1603 | "$isP3": false, 1604 | "$link": "https://oklch.com/#72.65625,0,0,100", 1605 | "$contrast": -54.30607569833443, 1606 | "$contrastBg": "black" 1607 | }, 1608 | "Stone/500": { 1609 | "$value": "#a9a6a2", 1610 | "$type": "color", 1611 | "$description": "oklch(72.66% 0.008 75)", 1612 | "$oklch": "oklch(0.726563 0.008 75)", 1613 | "$srgbFallback": "#aaa6a1", 1614 | "$isP3": false, 1615 | "$link": "https://oklch.com/#72.65625,0.008,75,100", 1616 | "$contrast": -54.277587527938586, 1617 | "$contrastBg": "black" 1618 | }, 1619 | "Sand/500": { 1620 | "$value": "#aaa69f", 1621 | "$type": "color", 1622 | "$description": "oklch(72.66% 0.012 75)", 1623 | "$oklch": "oklch(0.726563 0.012 75)", 1624 | "$srgbFallback": "#aba69f", 1625 | "$isP3": false, 1626 | "$link": "https://oklch.com/#72.65625,0.012,75,100", 1627 | "$contrast": -54.26256623743973, 1628 | "$contrastBg": "black" 1629 | }, 1630 | "Olive/500": { 1631 | "$value": "#a5a7a2", 1632 | "$type": "color", 1633 | "$description": "oklch(72.46% 0.008 120)", 1634 | "$oklch": "oklch(0.724609 0.008 120)", 1635 | "$srgbFallback": "#a5a7a1", 1636 | "$isP3": false, 1637 | "$link": "https://oklch.com/#72.4609375,0.008,120,100", 1638 | "$contrast": -54.0777785175337, 1639 | "$contrastBg": "black" 1640 | }, 1641 | "Mauve/500": { 1642 | "$value": "#a8a5a9", 1643 | "$type": "color", 1644 | "$description": "oklch(72.66% 0.008 325)", 1645 | "$oklch": "oklch(0.726563 0.008 325)", 1646 | "$srgbFallback": "#a9a5a9", 1647 | "$isP3": false, 1648 | "$link": "https://oklch.com/#72.65625,0.008,325,100", 1649 | "$contrast": -54.156435152633364, 1650 | "$contrastBg": "black" 1651 | }, 1652 | "Red/600": { 1653 | "$value": "#c06868", 1654 | "$type": "color", 1655 | "$description": "oklch(62.7% 0.136 20)", 1656 | "$oklch": "oklch(0.626953 0.135937 20)", 1657 | "$srgbFallback": "#cd6265", 1658 | "$isP3": false, 1659 | "$link": "https://oklch.com/#62.6953125,0.13593750000000002,20,100", 1660 | "$contrast": 65.02541749577321, 1661 | "$contrastBg": "white" 1662 | }, 1663 | "Orange/600": { 1664 | "$value": "#bc6d47", 1665 | "$type": "color", 1666 | "$description": "oklch(62.3% 0.136 43.33)", 1667 | "$oklch": "oklch(0.623047 0.135937 43.3333)", 1668 | "$srgbFallback": "#c9683d", 1669 | "$isP3": false, 1670 | "$link": "https://oklch.com/#62.3046875,0.13593750000000002,43.33333333333333,100", 1671 | "$contrast": 65.14074812344163, 1672 | "$contrastBg": "white" 1673 | }, 1674 | "Amber/600": { 1675 | "$value": "#b17629", 1676 | "$type": "color", 1677 | "$description": "oklch(61.91% 0.136 66.67)", 1678 | "$oklch": "oklch(0.619141 0.135937 66.6667)", 1679 | "$srgbFallback": "#bb7305", 1680 | "$isP3": false, 1681 | "$link": "https://oklch.com/#61.9140625,0.13593750000000002,66.66666666666666,100", 1682 | "$contrast": 65.02944917472537, 1683 | "$contrastBg": "white" 1684 | }, 1685 | "Yellow/600": { 1686 | "$value": "#9d8018", 1687 | "$type": "color", 1688 | "$description": "oklch(61.13% 0.136 90)", 1689 | "$oklch": "oklch(0.611328 0.135937 90)", 1690 | "$srgbFallback": "#a17f00", 1691 | "$isP3": true, 1692 | "$link": "https://oklch.com/#61.1328125,0.13593750000000002,90,100", 1693 | "$contrast": 65.27236855522645, 1694 | "$contrastBg": "white" 1695 | }, 1696 | "Lime/600": { 1697 | "$value": "#8c8721", 1698 | "$type": "color", 1699 | "$description": "oklch(60.74% 0.136 106.67)", 1700 | "$oklch": "oklch(0.607422 0.135937 106.667)", 1701 | "$srgbFallback": "#8c8700", 1702 | "$isP3": true, 1703 | "$link": "https://oklch.com/#60.7421875,0.13593750000000002,106.66666666666667,100", 1704 | "$contrast": 65.15280137330909, 1705 | "$contrastBg": "white" 1706 | }, 1707 | "Green/600": { 1708 | "$value": "#778d35", 1709 | "$type": "color", 1710 | "$description": "oklch(60.35% 0.136 123.33)", 1711 | "$oklch": "oklch(0.603516 0.135937 123.333)", 1712 | "$srgbFallback": "#728e1f", 1713 | "$isP3": false, 1714 | "$link": "https://oklch.com/#60.3515625,0.13593750000000002,123.33333333333334,100", 1715 | "$contrast": 65.02881124358933, 1716 | "$contrastBg": "white" 1717 | }, 1718 | "Emerald/600": { 1719 | "$value": "#60914a", 1720 | "$type": "color", 1721 | "$description": "oklch(59.77% 0.136 140)", 1722 | "$oklch": "oklch(0.597656 0.135937 140)", 1723 | "$srgbFallback": "#4f9340", 1724 | "$isP3": false, 1725 | "$link": "https://oklch.com/#59.765625,0.13593750000000002,140,100", 1726 | "$contrast": 65.232094204009, 1727 | "$contrastBg": "white" 1728 | }, 1729 | "Teal/600": { 1730 | "$value": "#419466", 1731 | "$type": "color", 1732 | "$description": "oklch(59.38% 0.136 160)", 1733 | "$oklch": "oklch(0.59375 0.135937 160)", 1734 | "$srgbFallback": "#009662", 1735 | "$isP3": true, 1736 | "$link": "https://oklch.com/#59.375,0.13593750000000002,160,100", 1737 | "$contrast": 65.19254231703358, 1738 | "$contrastBg": "white" 1739 | }, 1740 | "Cyan/600": { 1741 | "$value": "#1e9481", 1742 | "$type": "color", 1743 | "$description": "oklch(59.18% 0.136 180)", 1744 | "$oklch": "oklch(0.591797 0.135937 180)", 1745 | "$srgbFallback": "#009280", 1746 | "$isP3": true, 1747 | "$link": "https://oklch.com/#59.1796875,0.13593750000000002,180,100", 1748 | "$contrast": 65.15085030871639, 1749 | "$contrastBg": "white" 1750 | }, 1751 | "Sky/600": { 1752 | "$value": "#0690a8", 1753 | "$type": "color", 1754 | "$description": "oklch(59.57% 0.136 210)", 1755 | "$oklch": "oklch(0.595703 0.135937 210)", 1756 | "$srgbFallback": "#008fa1", 1757 | "$isP3": true, 1758 | "$link": "https://oklch.com/#59.5703125,0.13593750000000002,210,100", 1759 | "$contrast": 65.02224780987805, 1760 | "$contrastBg": "white" 1761 | }, 1762 | "Blue/600": { 1763 | "$value": "#3e88c5", 1764 | "$type": "color", 1765 | "$description": "oklch(60.55% 0.136 240)", 1766 | "$oklch": "oklch(0.605469 0.135937 240)", 1767 | "$srgbFallback": "#0c8aca", 1768 | "$isP3": false, 1769 | "$link": "https://oklch.com/#60.546875,0.13593750000000002,240,100", 1770 | "$contrast": 65.20033241396676, 1771 | "$contrastBg": "white" 1772 | }, 1773 | "Indigo/600": { 1774 | "$value": "#5d82cf", 1775 | "$type": "color", 1776 | "$description": "oklch(61.33% 0.136 260)", 1777 | "$oklch": "oklch(0.613281 0.135937 260)", 1778 | "$srgbFallback": "#5283d5", 1779 | "$isP3": false, 1780 | "$link": "https://oklch.com/#61.328125,0.13593750000000002,260,100", 1781 | "$contrast": 65.15400358344276, 1782 | "$contrastBg": "white" 1783 | }, 1784 | "Violet/600": { 1785 | "$value": "#787acf", 1786 | "$type": "color", 1787 | "$description": "oklch(61.91% 0.136 280)", 1788 | "$oklch": "oklch(0.619141 0.135937 280)", 1789 | "$srgbFallback": "#777ad5", 1790 | "$isP3": false, 1791 | "$link": "https://oklch.com/#61.9140625,0.13593750000000002,280,100", 1792 | "$contrast": 65.22248171615131, 1793 | "$contrastBg": "white" 1794 | }, 1795 | "Purple/600": { 1796 | "$value": "#8f74c7", 1797 | "$type": "color", 1798 | "$description": "oklch(62.5% 0.136 300)", 1799 | "$oklch": "oklch(0.625 0.135937 300)", 1800 | "$srgbFallback": "#9572cd", 1801 | "$isP3": false, 1802 | "$link": "https://oklch.com/#62.5,0.13593750000000002,300,100", 1803 | "$contrast": 65.03972699552449, 1804 | "$contrastBg": "white" 1805 | }, 1806 | "Fuchsia/600": { 1807 | "$value": "#a36eb6", 1808 | "$type": "color", 1809 | "$description": "oklch(62.7% 0.136 320)", 1810 | "$oklch": "oklch(0.626953 0.135937 320)", 1811 | "$srgbFallback": "#ac6bbb", 1812 | "$isP3": false, 1813 | "$link": "https://oklch.com/#62.6953125,0.13593750000000002,320,100", 1814 | "$contrast": 65.14442174816371, 1815 | "$contrastBg": "white" 1816 | }, 1817 | "Pink/600": { 1818 | "$value": "#b26aa0", 1819 | "$type": "color", 1820 | "$description": "oklch(62.89% 0.136 340)", 1821 | "$oklch": "oklch(0.628906 0.135937 340)", 1822 | "$srgbFallback": "#be65a2", 1823 | "$isP3": false, 1824 | "$link": "https://oklch.com/#62.890625,0.13593750000000002,340,100", 1825 | "$contrast": 65.00928309039662, 1826 | "$contrastBg": "white" 1827 | }, 1828 | "Rose/600": { 1829 | "$value": "#bb6784", 1830 | "$type": "color", 1831 | "$description": "oklch(62.7% 0.136 0)", 1832 | "$oklch": "oklch(0.626953 0.135937 0)", 1833 | "$srgbFallback": "#c86185", 1834 | "$isP3": false, 1835 | "$link": "https://oklch.com/#62.6953125,0.13593750000000002,360,100", 1836 | "$contrast": 65.23481942916776, 1837 | "$contrastBg": "white" 1838 | }, 1839 | "Slate/600": { 1840 | "$value": "#808392", 1841 | "$type": "color", 1842 | "$description": "oklch(61.33% 0.024 275)", 1843 | "$oklch": "oklch(0.613281 0.024 275)", 1844 | "$srgbFallback": "#808393", 1845 | "$isP3": false, 1846 | "$link": "https://oklch.com/#61.328125,0.024,275,100", 1847 | "$contrast": 65.08985284103788, 1848 | "$contrastBg": "white" 1849 | }, 1850 | "Gray/600": { 1851 | "$value": "#82848d", 1852 | "$type": "color", 1853 | "$description": "oklch(61.33% 0.016 275)", 1854 | "$oklch": "oklch(0.613281 0.016 275)", 1855 | "$srgbFallback": "#81848e", 1856 | "$isP3": false, 1857 | "$link": "https://oklch.com/#61.328125,0.016,275,100", 1858 | "$contrast": 65.05626010999148, 1859 | "$contrastBg": "white" 1860 | }, 1861 | "Zinc/600": { 1862 | "$value": "#838489", 1863 | "$type": "color", 1864 | "$description": "oklch(61.33% 0.008 275)", 1865 | "$oklch": "oklch(0.613281 0.008 275)", 1866 | "$srgbFallback": "#838489", 1867 | "$isP3": false, 1868 | "$link": "https://oklch.com/#61.328125,0.008,275,100", 1869 | "$contrast": 65.02522172335571, 1870 | "$contrastBg": "white" 1871 | }, 1872 | "Neutral/600": { 1873 | "$value": "#838383", 1874 | "$type": "color", 1875 | "$description": "oklch(61.13% 0 0)", 1876 | "$oklch": "oklch(0.611328 0 0)", 1877 | "$srgbFallback": "#838383", 1878 | "$isP3": false, 1879 | "$link": "https://oklch.com/#61.1328125,0,0,100", 1880 | "$contrast": 65.27528381077286, 1881 | "$contrastBg": "white" 1882 | }, 1883 | "Stone/600": { 1884 | "$value": "#86847f", 1885 | "$type": "color", 1886 | "$description": "oklch(61.33% 0.008 75)", 1887 | "$oklch": "oklch(0.613281 0.008 75)", 1888 | "$srgbFallback": "#87837f", 1889 | "$isP3": false, 1890 | "$link": "https://oklch.com/#61.328125,0.008,75,100", 1891 | "$contrast": 65.02095166875134, 1892 | "$contrastBg": "white" 1893 | }, 1894 | "Sand/600": { 1895 | "$value": "#88837d", 1896 | "$type": "color", 1897 | "$description": "oklch(61.33% 0.012 75)", 1898 | "$oklch": "oklch(0.613281 0.012 75)", 1899 | "$srgbFallback": "#88837c", 1900 | "$isP3": false, 1901 | "$link": "https://oklch.com/#61.328125,0.012,75,100", 1902 | "$contrast": 65.03375230935545, 1903 | "$contrastBg": "white" 1904 | }, 1905 | "Olive/600": { 1906 | "$value": "#83847f", 1907 | "$type": "color", 1908 | "$description": "oklch(61.13% 0.008 120)", 1909 | "$oklch": "oklch(0.611328 0.008 120)", 1910 | "$srgbFallback": "#83847f", 1911 | "$isP3": false, 1912 | "$link": "https://oklch.com/#61.1328125,0.008,120,100", 1913 | "$contrast": 65.19101350841233, 1914 | "$contrastBg": "white" 1915 | }, 1916 | "Mauve/600": { 1917 | "$value": "#868386", 1918 | "$type": "color", 1919 | "$description": "oklch(61.33% 0.008 325)", 1920 | "$oklch": "oklch(0.613281 0.008 325)", 1921 | "$srgbFallback": "#878387", 1922 | "$isP3": false, 1923 | "$link": "https://oklch.com/#61.328125,0.008,325,100", 1924 | "$contrast": 65.1240140377318, 1925 | "$contrastBg": "white" 1926 | }, 1927 | "Red/700": { 1928 | "$value": "#9b5353", 1929 | "$type": "color", 1930 | "$description": "oklch(53.52% 0.116 20)", 1931 | "$oklch": "oklch(0.535156 0.115625 20)", 1932 | "$srgbFallback": "#a64e51", 1933 | "$isP3": false, 1934 | "$link": "https://oklch.com/#53.515625,0.11562500000000003,20,100", 1935 | "$contrast": 77.04773855355846, 1936 | "$contrastBg": "white" 1937 | }, 1938 | "Orange/700": { 1939 | "$value": "#985738", 1940 | "$type": "color", 1941 | "$description": "oklch(53.13% 0.116 43.33)", 1942 | "$oklch": "oklch(0.53125 0.115625 43.3333)", 1943 | "$srgbFallback": "#a25330", 1944 | "$isP3": false, 1945 | "$link": "https://oklch.com/#53.125,0.11562500000000003,43.33333333333333,100", 1946 | "$contrast": 77.21006943591257, 1947 | "$contrastBg": "white" 1948 | }, 1949 | "Amber/700": { 1950 | "$value": "#8e5e1f", 1951 | "$type": "color", 1952 | "$description": "oklch(52.73% 0.116 66.67)", 1953 | "$oklch": "oklch(0.527344 0.115625 66.6667)", 1954 | "$srgbFallback": "#975b03", 1955 | "$isP3": false, 1956 | "$link": "https://oklch.com/#52.734375,0.11562500000000003,66.66666666666666,100", 1957 | "$contrast": 77.21132087691367, 1958 | "$contrastBg": "white" 1959 | }, 1960 | "Yellow/700": { 1961 | "$value": "#7f6712", 1962 | "$type": "color", 1963 | "$description": "oklch(52.34% 0.116 90)", 1964 | "$oklch": "oklch(0.523438 0.115625 90)", 1965 | "$srgbFallback": "#826600", 1966 | "$isP3": true, 1967 | "$link": "https://oklch.com/#52.34375,0.11562500000000003,90,100", 1968 | "$contrast": 77.0646286738736, 1969 | "$contrastBg": "white" 1970 | }, 1971 | "Lime/700": { 1972 | "$value": "#706c1a", 1973 | "$type": "color", 1974 | "$description": "oklch(51.95% 0.116 106.67)", 1975 | "$oklch": "oklch(0.519531 0.115625 106.667)", 1976 | "$srgbFallback": "#716c00", 1977 | "$isP3": true, 1978 | "$link": "https://oklch.com/#51.953125,0.11562500000000003,106.66666666666667,100", 1979 | "$contrast": 77.05774789637464, 1980 | "$contrastBg": "white" 1981 | }, 1982 | "Green/700": { 1983 | "$value": "#607129", 1984 | "$type": "color", 1985 | "$description": "oklch(51.56% 0.116 123.33)", 1986 | "$oklch": "oklch(0.515625 0.115625 123.333)", 1987 | "$srgbFallback": "#5b7218", 1988 | "$isP3": false, 1989 | "$link": "https://oklch.com/#51.5625,0.11562500000000003,123.33333333333334,100", 1990 | "$contrast": 77.04215769550812, 1991 | "$contrastBg": "white" 1992 | }, 1993 | "Emerald/700": { 1994 | "$value": "#4c753b", 1995 | "$type": "color", 1996 | "$description": "oklch(51.17% 0.116 140)", 1997 | "$oklch": "oklch(0.511719 0.115625 140)", 1998 | "$srgbFallback": "#3f7633", 1999 | "$isP3": false, 2000 | "$link": "https://oklch.com/#51.171875,0.11562500000000003,140,100", 2001 | "$contrast": 77.05369961104338, 2002 | "$contrastBg": "white" 2003 | }, 2004 | "Teal/700": { 2005 | "$value": "#337751", 2006 | "$type": "color", 2007 | "$description": "oklch(50.78% 0.116 160)", 2008 | "$oklch": "oklch(0.507813 0.115625 160)", 2009 | "$srgbFallback": "#00794e", 2010 | "$isP3": true, 2011 | "$link": "https://oklch.com/#50.78125,0.11562500000000003,160,100", 2012 | "$contrast": 77.07679014938955, 2013 | "$contrastBg": "white" 2014 | }, 2015 | "Cyan/700": { 2016 | "$value": "#177768", 2017 | "$type": "color", 2018 | "$description": "oklch(50.59% 0.116 180)", 2019 | "$oklch": "oklch(0.505859 0.115625 180)", 2020 | "$srgbFallback": "#007667", 2021 | "$isP3": true, 2022 | "$link": "https://oklch.com/#50.5859375,0.11562500000000003,180,100", 2023 | "$contrast": 77.04928461136255, 2024 | "$contrastBg": "white" 2025 | }, 2026 | "Sky/700": { 2027 | "$value": "#057487", 2028 | "$type": "color", 2029 | "$description": "oklch(50.78% 0.116 210)", 2030 | "$oklch": "oklch(0.507813 0.115625 210)", 2031 | "$srgbFallback": "#007381", 2032 | "$isP3": true, 2033 | "$link": "https://oklch.com/#50.78125,0.11562500000000003,210,100", 2034 | "$contrast": 77.09901900278953, 2035 | "$contrastBg": "white" 2036 | }, 2037 | "Blue/700": { 2038 | "$value": "#316e9f", 2039 | "$type": "color", 2040 | "$description": "oklch(51.76% 0.116 240)", 2041 | "$oklch": "oklch(0.517578 0.115625 240)", 2042 | "$srgbFallback": "#0a6fa3", 2043 | "$isP3": false, 2044 | "$link": "https://oklch.com/#51.7578125,0.11562500000000003,240,100", 2045 | "$contrast": 77.09812137325717, 2046 | "$contrastBg": "white" 2047 | }, 2048 | "Indigo/700": { 2049 | "$value": "#4a68a7", 2050 | "$type": "color", 2051 | "$description": "oklch(52.34% 0.116 260)", 2052 | "$oklch": "oklch(0.523438 0.115625 260)", 2053 | "$srgbFallback": "#4169ac", 2054 | "$isP3": false, 2055 | "$link": "https://oklch.com/#52.34375,0.11562500000000003,260,100", 2056 | "$contrast": 77.18284170343075, 2057 | "$contrastBg": "white" 2058 | }, 2059 | "Violet/700": { 2060 | "$value": "#6062a8", 2061 | "$type": "color", 2062 | "$description": "oklch(52.93% 0.116 280)", 2063 | "$oklch": "oklch(0.529297 0.115625 280)", 2064 | "$srgbFallback": "#5f62ad", 2065 | "$isP3": false, 2066 | "$link": "https://oklch.com/#52.9296875,0.11562500000000003,280,100", 2067 | "$contrast": 77.13368854942568, 2068 | "$contrastBg": "white" 2069 | }, 2070 | "Purple/700": { 2071 | "$value": "#735da1", 2072 | "$type": "color", 2073 | "$description": "oklch(53.32% 0.116 300)", 2074 | "$oklch": "oklch(0.533203 0.115625 300)", 2075 | "$srgbFallback": "#775ba5", 2076 | "$isP3": false, 2077 | "$link": "https://oklch.com/#53.3203125,0.11562500000000003,300,100", 2078 | "$contrast": 77.1329204497605, 2079 | "$contrastBg": "white" 2080 | }, 2081 | "Fuchsia/700": { 2082 | "$value": "#835893", 2083 | "$type": "color", 2084 | "$description": "oklch(53.52% 0.116 320)", 2085 | "$oklch": "oklch(0.535156 0.115625 320)", 2086 | "$srgbFallback": "#8a5597", 2087 | "$isP3": false, 2088 | "$link": "https://oklch.com/#53.515625,0.11562500000000003,320,100", 2089 | "$contrast": 77.16789703610303, 2090 | "$contrastBg": "white" 2091 | }, 2092 | "Pink/700": { 2093 | "$value": "#8f5480", 2094 | "$type": "color", 2095 | "$description": "oklch(53.71% 0.116 340)", 2096 | "$oklch": "oklch(0.537109 0.115625 340)", 2097 | "$srgbFallback": "#995183", 2098 | "$isP3": false, 2099 | "$link": "https://oklch.com/#53.7109375,0.11562500000000003,340,100", 2100 | "$contrast": 77.01787127982264, 2101 | "$contrastBg": "white" 2102 | }, 2103 | "Rose/700": { 2104 | "$value": "#97526a", 2105 | "$type": "color", 2106 | "$description": "oklch(53.52% 0.116 0)", 2107 | "$oklch": "oklch(0.535156 0.115625 0)", 2108 | "$srgbFallback": "#a24d6a", 2109 | "$isP3": false, 2110 | "$link": "https://oklch.com/#53.515625,0.11562500000000003,360,100", 2111 | "$contrast": 77.21222702696048, 2112 | "$contrastBg": "white" 2113 | }, 2114 | "Slate/700": { 2115 | "$value": "#666977", 2116 | "$type": "color", 2117 | "$description": "oklch(52.34% 0.024 275)", 2118 | "$oklch": "oklch(0.523438 0.024 275)", 2119 | "$srgbFallback": "#666978", 2120 | "$isP3": false, 2121 | "$link": "https://oklch.com/#52.34375,0.024,275,100", 2122 | "$contrast": 77.18626660468453, 2123 | "$contrastBg": "white" 2124 | }, 2125 | "Gray/700": { 2126 | "$value": "#676973", 2127 | "$type": "color", 2128 | "$description": "oklch(52.34% 0.016 275)", 2129 | "$oklch": "oklch(0.523438 0.016 275)", 2130 | "$srgbFallback": "#676973", 2131 | "$isP3": false, 2132 | "$link": "https://oklch.com/#52.34375,0.016,275,100", 2133 | "$contrast": 77.15617633357041, 2134 | "$contrastBg": "white" 2135 | }, 2136 | "Zinc/700": { 2137 | "$value": "#696a6e", 2138 | "$type": "color", 2139 | "$description": "oklch(52.34% 0.008 275)", 2140 | "$oklch": "oklch(0.523438 0.008 275)", 2141 | "$srgbFallback": "#686a6f", 2142 | "$isP3": false, 2143 | "$link": "https://oklch.com/#52.34375,0.008,275,100", 2144 | "$contrast": 77.12849225247562, 2145 | "$contrastBg": "white" 2146 | }, 2147 | "Neutral/700": { 2148 | "$value": "#6a6a6a", 2149 | "$type": "color", 2150 | "$description": "oklch(52.34% 0 0)", 2151 | "$oklch": "oklch(0.523438 0 0)", 2152 | "$srgbFallback": "#6a6a6a", 2153 | "$isP3": false, 2154 | "$link": "https://oklch.com/#52.34375,0,0,100", 2155 | "$contrast": 77.10314931184337, 2156 | "$contrastBg": "white" 2157 | }, 2158 | "Stone/700": { 2159 | "$value": "#6c6965", 2160 | "$type": "color", 2161 | "$description": "oklch(52.34% 0.008 75)", 2162 | "$oklch": "oklch(0.523438 0.008 75)", 2163 | "$srgbFallback": "#6d6965", 2164 | "$isP3": false, 2165 | "$link": "https://oklch.com/#52.34375,0.008,75,100", 2166 | "$contrast": 77.12459433866206, 2167 | "$contrastBg": "white" 2168 | }, 2169 | "Sand/700": { 2170 | "$value": "#6d6963", 2171 | "$type": "color", 2172 | "$description": "oklch(52.34% 0.012 75)", 2173 | "$oklch": "oklch(0.523438 0.012 75)", 2174 | "$srgbFallback": "#6e6962", 2175 | "$isP3": false, 2176 | "$link": "https://oklch.com/#52.34375,0.012,75,100", 2177 | "$contrast": 77.13585931689889, 2178 | "$contrastBg": "white" 2179 | }, 2180 | "Olive/700": { 2181 | "$value": "#696b66", 2182 | "$type": "color", 2183 | "$description": "oklch(52.34% 0.008 120)", 2184 | "$oklch": "oklch(0.523438 0.008 120)", 2185 | "$srgbFallback": "#696b66", 2186 | "$isP3": false, 2187 | "$link": "https://oklch.com/#52.34375,0.008,120,100", 2188 | "$contrast": 77.02833478961473, 2189 | "$contrastBg": "white" 2190 | }, 2191 | "Mauve/700": { 2192 | "$value": "#6c686c", 2193 | "$type": "color", 2194 | "$description": "oklch(52.34% 0.008 325)", 2195 | "$oklch": "oklch(0.523438 0.008 325)", 2196 | "$srgbFallback": "#6c686c", 2197 | "$isP3": false, 2198 | "$link": "https://oklch.com/#52.34375,0.008,325,100", 2199 | "$contrast": 77.21578814231933, 2200 | "$contrastBg": "white" 2201 | }, 2202 | "Red/800": { 2203 | "$value": "#6f3a3a", 2204 | "$type": "color", 2205 | "$description": "oklch(41.99% 0.091 20)", 2206 | "$oklch": "oklch(0.419922 0.090625 20)", 2207 | "$srgbFallback": "#773638", 2208 | "$isP3": false, 2209 | "$link": "https://oklch.com/#41.9921875,0.09062500000000001,20,100", 2210 | "$contrast": 90.02099633850419, 2211 | "$contrastBg": "white" 2212 | }, 2213 | "Orange/800": { 2214 | "$value": "#6d3d26", 2215 | "$type": "color", 2216 | "$description": "oklch(41.8% 0.091 43.33)", 2217 | "$oklch": "oklch(0.417969 0.090625 43.3333)", 2218 | "$srgbFallback": "#743a20", 2219 | "$isP3": false, 2220 | "$link": "https://oklch.com/#41.796875,0.09062500000000001,43.33333333333333,100", 2221 | "$contrast": 90.01539163518822, 2222 | "$contrastBg": "white" 2223 | }, 2224 | "Amber/800": { 2225 | "$value": "#664214", 2226 | "$type": "color", 2227 | "$description": "oklch(41.41% 0.091 66.67)", 2228 | "$oklch": "oklch(0.414063 0.090625 66.6667)", 2229 | "$srgbFallback": "#6c4002", 2230 | "$isP3": false, 2231 | "$link": "https://oklch.com/#41.40625,0.09062500000000001,66.66666666666666,100", 2232 | "$contrast": 90.11978638444505, 2233 | "$contrastBg": "white" 2234 | }, 2235 | "Yellow/800": { 2236 | "$value": "#5a480a", 2237 | "$type": "color", 2238 | "$description": "oklch(41.02% 0.091 90)", 2239 | "$oklch": "oklch(0.410156 0.090625 90)", 2240 | "$srgbFallback": "#5c4800", 2241 | "$isP3": true, 2242 | "$link": "https://oklch.com/#41.015625,0.09062500000000001,90,100", 2243 | "$contrast": 90.13326119580633, 2244 | "$contrastBg": "white" 2245 | }, 2246 | "Lime/800": { 2247 | "$value": "#504d10", 2248 | "$type": "color", 2249 | "$description": "oklch(40.82% 0.091 106.67)", 2250 | "$oklch": "oklch(0.408203 0.090625 106.667)", 2251 | "$srgbFallback": "#504c00", 2252 | "$isP3": true, 2253 | "$link": "https://oklch.com/#40.8203125,0.09062500000000001,106.66666666666667,100", 2254 | "$contrast": 90.02733606191362, 2255 | "$contrastBg": "white" 2256 | }, 2257 | "Green/800": { 2258 | "$value": "#43501b", 2259 | "$type": "color", 2260 | "$description": "oklch(40.43% 0.091 123.33)", 2261 | "$oklch": "oklch(0.404297 0.090625 123.333)", 2262 | "$srgbFallback": "#3f500e", 2263 | "$isP3": false, 2264 | "$link": "https://oklch.com/#40.4296875,0.09062500000000001,123.33333333333334,100", 2265 | "$contrast": 90.11094835425607, 2266 | "$contrastBg": "white" 2267 | }, 2268 | "Emerald/800": { 2269 | "$value": "#355228", 2270 | "$type": "color", 2271 | "$description": "oklch(40.04% 0.091 140)", 2272 | "$oklch": "oklch(0.400391 0.090625 140)", 2273 | "$srgbFallback": "#2b5321", 2274 | "$isP3": false, 2275 | "$link": "https://oklch.com/#40.0390625,0.09062500000000001,140,100", 2276 | "$contrast": 90.19791377005234, 2277 | "$contrastBg": "white" 2278 | }, 2279 | "Teal/800": { 2280 | "$value": "#225438", 2281 | "$type": "color", 2282 | "$description": "oklch(39.84% 0.091 160)", 2283 | "$oklch": "oklch(0.398438 0.090625 160)", 2284 | "$srgbFallback": "#005636", 2285 | "$isP3": true, 2286 | "$link": "https://oklch.com/#39.84375,0.09062500000000001,160,100", 2287 | "$contrast": 90.06740626413267, 2288 | "$contrastBg": "white" 2289 | }, 2290 | "Cyan/800": { 2291 | "$value": "#0d5449", 2292 | "$type": "color", 2293 | "$description": "oklch(39.65% 0.091 180)", 2294 | "$oklch": "oklch(0.396484 0.090625 180)", 2295 | "$srgbFallback": "#005348", 2296 | "$isP3": true, 2297 | "$link": "https://oklch.com/#39.6484375,0.09062500000000001,180,100", 2298 | "$contrast": 90.04440042281617, 2299 | "$contrastBg": "white" 2300 | }, 2301 | "Sky/800": { 2302 | "$value": "#035260", 2303 | "$type": "color", 2304 | "$description": "oklch(39.84% 0.091 210)", 2305 | "$oklch": "oklch(0.398438 0.090625 210)", 2306 | "$srgbFallback": "#00515c", 2307 | "$isP3": true, 2308 | "$link": "https://oklch.com/#39.84375,0.09062500000000001,210,100", 2309 | "$contrast": 90.00520699220517, 2310 | "$contrastBg": "white" 2311 | }, 2312 | "Blue/800": { 2313 | "$value": "#214d72", 2314 | "$type": "color", 2315 | "$description": "oklch(40.63% 0.091 240)", 2316 | "$oklch": "oklch(0.40625 0.090625 240)", 2317 | "$srgbFallback": "#054f75", 2318 | "$isP3": false, 2319 | "$link": "https://oklch.com/#40.625,0.09062500000000001,240,100", 2320 | "$contrast": 90.05249779473152, 2321 | "$contrastBg": "white" 2322 | }, 2323 | "Indigo/800": { 2324 | "$value": "#334978", 2325 | "$type": "color", 2326 | "$description": "oklch(41.21% 0.091 260)", 2327 | "$oklch": "oklch(0.412109 0.090625 260)", 2328 | "$srgbFallback": "#2c4a7c", 2329 | "$isP3": false, 2330 | "$link": "https://oklch.com/#41.2109375,0.09062500000000001,260,100", 2331 | "$contrast": 90.00437155447304, 2332 | "$contrastBg": "white" 2333 | }, 2334 | "Violet/800": { 2335 | "$value": "#434578", 2336 | "$type": "color", 2337 | "$description": "oklch(41.6% 0.091 280)", 2338 | "$oklch": "oklch(0.416016 0.090625 280)", 2339 | "$srgbFallback": "#43457c", 2340 | "$isP3": false, 2341 | "$link": "https://oklch.com/#41.6015625,0.09062500000000001,280,100", 2342 | "$contrast": 90.05765471467869, 2343 | "$contrastBg": "white" 2344 | }, 2345 | "Purple/800": { 2346 | "$value": "#514173", 2347 | "$type": "color", 2348 | "$description": "oklch(41.8% 0.091 300)", 2349 | "$oklch": "oklch(0.417969 0.090625 300)", 2350 | "$srgbFallback": "#544076", 2351 | "$isP3": false, 2352 | "$link": "https://oklch.com/#41.796875,0.09062500000000001,300,100", 2353 | "$contrast": 90.17326016210497, 2354 | "$contrastBg": "white" 2355 | }, 2356 | "Fuchsia/800": { 2357 | "$value": "#5d3d69", 2358 | "$type": "color", 2359 | "$description": "oklch(41.99% 0.091 320)", 2360 | "$oklch": "oklch(0.419922 0.090625 320)", 2361 | "$srgbFallback": "#633b6c", 2362 | "$isP3": false, 2363 | "$link": "https://oklch.com/#41.9921875,0.09062500000000001,320,100", 2364 | "$contrast": 90.14160422080258, 2365 | "$contrastBg": "white" 2366 | }, 2367 | "Pink/800": { 2368 | "$value": "#663a5b", 2369 | "$type": "color", 2370 | "$description": "oklch(41.99% 0.091 340)", 2371 | "$oklch": "oklch(0.419922 0.090625 340)", 2372 | "$srgbFallback": "#6d375c", 2373 | "$isP3": false, 2374 | "$link": "https://oklch.com/#41.9921875,0.09062500000000001,340,100", 2375 | "$contrast": 90.18627424549935, 2376 | "$contrastBg": "white" 2377 | }, 2378 | "Rose/800": { 2379 | "$value": "#6c394b", 2380 | "$type": "color", 2381 | "$description": "oklch(41.99% 0.091 0)", 2382 | "$oklch": "oklch(0.419922 0.090625 0)", 2383 | "$srgbFallback": "#74364b", 2384 | "$isP3": false, 2385 | "$link": "https://oklch.com/#41.9921875,0.09062500000000001,360,100", 2386 | "$contrast": 90.13669052813903, 2387 | "$contrastBg": "white" 2388 | }, 2389 | "Slate/800": { 2390 | "$value": "#474a57", 2391 | "$type": "color", 2392 | "$description": "oklch(41.21% 0.024 275)", 2393 | "$oklch": "oklch(0.412109 0.024 275)", 2394 | "$srgbFallback": "#474a58", 2395 | "$isP3": false, 2396 | "$link": "https://oklch.com/#41.2109375,0.024,275,100", 2397 | "$contrast": 90.07305491246812, 2398 | "$contrastBg": "white" 2399 | }, 2400 | "Gray/800": { 2401 | "$value": "#494a53", 2402 | "$type": "color", 2403 | "$description": "oklch(41.21% 0.016 275)", 2404 | "$oklch": "oklch(0.412109 0.016 275)", 2405 | "$srgbFallback": "#484a54", 2406 | "$isP3": false, 2407 | "$link": "https://oklch.com/#41.2109375,0.016,275,100", 2408 | "$contrast": 90.04817219622552, 2409 | "$contrastBg": "white" 2410 | }, 2411 | "Zinc/800": { 2412 | "$value": "#4a4b4f", 2413 | "$type": "color", 2414 | "$description": "oklch(41.21% 0.008 275)", 2415 | "$oklch": "oklch(0.412109 0.008 275)", 2416 | "$srgbFallback": "#494b4f", 2417 | "$isP3": false, 2418 | "$link": "https://oklch.com/#41.2109375,0.008,275,100", 2419 | "$contrast": 90.02527270025931, 2420 | "$contrastBg": "white" 2421 | }, 2422 | "Neutral/800": { 2423 | "$value": "#4b4b4b", 2424 | "$type": "color", 2425 | "$description": "oklch(41.21% 0 0)", 2426 | "$oklch": "oklch(0.412109 0 0)", 2427 | "$srgbFallback": "#4b4b4b", 2428 | "$isP3": false, 2429 | "$link": "https://oklch.com/#41.2109375,0,0,100", 2430 | "$contrast": 90.004281784859, 2431 | "$contrastBg": "white" 2432 | }, 2433 | "Stone/800": { 2434 | "$value": "#4d4a47", 2435 | "$type": "color", 2436 | "$description": "oklch(41.21% 0.008 75)", 2437 | "$oklch": "oklch(0.412109 0.008 75)", 2438 | "$srgbFallback": "#4e4a46", 2439 | "$isP3": false, 2440 | "$link": "https://oklch.com/#41.2109375,0.008,75,100", 2441 | "$contrast": 90.02180721219936, 2442 | "$contrastBg": "white" 2443 | }, 2444 | "Sand/800": { 2445 | "$value": "#4e4a45", 2446 | "$type": "color", 2447 | "$description": "oklch(41.21% 0.012 75)", 2448 | "$oklch": "oklch(0.412109 0.012 75)", 2449 | "$srgbFallback": "#4f4a44", 2450 | "$isP3": false, 2451 | "$link": "https://oklch.com/#41.2109375,0.012,75,100", 2452 | "$contrast": 90.03081617076842, 2453 | "$contrastBg": "white" 2454 | }, 2455 | "Olive/800": { 2456 | "$value": "#4a4b47", 2457 | "$type": "color", 2458 | "$description": "oklch(41.02% 0.008 120)", 2459 | "$oklch": "oklch(0.410156 0.008 120)", 2460 | "$srgbFallback": "#4a4b46", 2461 | "$isP3": false, 2462 | "$link": "https://oklch.com/#41.015625,0.008,120,100", 2463 | "$contrast": 90.14695719141864, 2464 | "$contrastBg": "white" 2465 | }, 2466 | "Mauve/800": { 2467 | "$value": "#4d4a4d", 2468 | "$type": "color", 2469 | "$description": "oklch(41.21% 0.008 325)", 2470 | "$oklch": "oklch(0.412109 0.008 325)", 2471 | "$srgbFallback": "#4d494d", 2472 | "$isP3": false, 2473 | "$link": "https://oklch.com/#41.2109375,0.008,325,100", 2474 | "$contrast": 90.09729085509426, 2475 | "$contrastBg": "white" 2476 | }, 2477 | "Red/900": { 2478 | "$value": "#462322", 2479 | "$type": "color", 2480 | "$description": "oklch(30.66% 0.066 20)", 2481 | "$oklch": "oklch(0.306641 0.065625 20)", 2482 | "$srgbFallback": "#4b2021", 2483 | "$isP3": false, 2484 | "$link": "https://oklch.com/#30.6640625,0.06562500000000002,20,100", 2485 | "$contrast": 100.03748420729414, 2486 | "$contrastBg": "white" 2487 | }, 2488 | "Orange/900": { 2489 | "$value": "#452515", 2490 | "$type": "color", 2491 | "$description": "oklch(30.47% 0.066 43.33)", 2492 | "$oklch": "oklch(0.304688 0.065625 43.3333)", 2493 | "$srgbFallback": "#4a2211", 2494 | "$isP3": false, 2495 | "$link": "https://oklch.com/#30.46875,0.06562500000000002,43.33333333333333,100", 2496 | "$contrast": 100.07379779667198, 2497 | "$contrastBg": "white" 2498 | }, 2499 | "Amber/900": { 2500 | "$value": "#402809", 2501 | "$type": "color", 2502 | "$description": "oklch(30.27% 0.066 66.67)", 2503 | "$oklch": "oklch(0.302734 0.065625 66.6667)", 2504 | "$srgbFallback": "#442701", 2505 | "$isP3": false, 2506 | "$link": "https://oklch.com/#30.2734375,0.06562500000000002,66.66666666666666,100", 2507 | "$contrast": 100.08102313561416, 2508 | "$contrastBg": "white" 2509 | }, 2510 | "Yellow/900": { 2511 | "$value": "#382c05", 2512 | "$type": "color", 2513 | "$description": "oklch(30.08% 0.066 90)", 2514 | "$oklch": "oklch(0.300781 0.065625 90)", 2515 | "$srgbFallback": "#3a2c00", 2516 | "$isP3": true, 2517 | "$link": "https://oklch.com/#30.078125,0.06562500000000002,90,100", 2518 | "$contrast": 100.04982363521971, 2519 | "$contrastBg": "white" 2520 | }, 2521 | "Lime/900": { 2522 | "$value": "#312f07", 2523 | "$type": "color", 2524 | "$description": "oklch(29.88% 0.066 106.67)", 2525 | "$oklch": "oklch(0.298828 0.065625 106.667)", 2526 | "$srgbFallback": "#322f00", 2527 | "$isP3": true, 2528 | "$link": "https://oklch.com/#29.8828125,0.06562500000000002,106.66666666666667,100", 2529 | "$contrast": 100.04914088511292, 2530 | "$contrastBg": "white" 2531 | }, 2532 | "Green/900": { 2533 | "$value": "#29320e", 2534 | "$type": "color", 2535 | "$description": "oklch(29.69% 0.066 123.33)", 2536 | "$oklch": "oklch(0.296875 0.065625 123.333)", 2537 | "$srgbFallback": "#273207", 2538 | "$isP3": false, 2539 | "$link": "https://oklch.com/#29.6875,0.06562500000000002,123.33333333333334,100", 2540 | "$contrast": 100.034083953633, 2541 | "$contrastBg": "white" 2542 | }, 2543 | "Emerald/900": { 2544 | "$value": "#203417", 2545 | "$type": "color", 2546 | "$description": "oklch(29.49% 0.066 140)", 2547 | "$oklch": "oklch(0.294922 0.065625 140)", 2548 | "$srgbFallback": "#193413", 2549 | "$isP3": false, 2550 | "$link": "https://oklch.com/#29.4921875,0.06562500000000002,140,100", 2551 | "$contrast": 100.00819220640568, 2552 | "$contrastBg": "white" 2553 | }, 2554 | "Teal/900": { 2555 | "$value": "#133422", 2556 | "$type": "color", 2557 | "$description": "oklch(29.1% 0.066 160)", 2558 | "$oklch": "oklch(0.291016 0.065625 160)", 2559 | "$srgbFallback": "#003520", 2560 | "$isP3": false, 2561 | "$link": "https://oklch.com/#29.1015625,0.06562500000000002,160,100", 2562 | "$contrast": 100.08563979712466, 2563 | "$contrastBg": "white" 2564 | }, 2565 | "Cyan/900": { 2566 | "$value": "#06342c", 2567 | "$type": "color", 2568 | "$description": "oklch(28.91% 0.066 180)", 2569 | "$oklch": "oklch(0.289063 0.065625 180)", 2570 | "$srgbFallback": "#00332c", 2571 | "$isP3": true, 2572 | "$link": "https://oklch.com/#28.90625,0.06562500000000002,180,100", 2573 | "$contrast": 100.0673506706254, 2574 | "$contrastBg": "white" 2575 | }, 2576 | "Sky/900": { 2577 | "$value": "#02333c", 2578 | "$type": "color", 2579 | "$description": "oklch(29.1% 0.066 210)", 2580 | "$oklch": "oklch(0.291016 0.065625 210)", 2581 | "$srgbFallback": "#003239", 2582 | "$isP3": true, 2583 | "$link": "https://oklch.com/#29.1015625,0.06562500000000002,210,100", 2584 | "$contrast": 100.00216958419865, 2585 | "$contrastBg": "white" 2586 | }, 2587 | "Blue/900": { 2588 | "$value": "#123048", 2589 | "$type": "color", 2590 | "$description": "oklch(29.69% 0.066 240)", 2591 | "$oklch": "oklch(0.296875 0.065625 240)", 2592 | "$srgbFallback": "#03314a", 2593 | "$isP3": false, 2594 | "$link": "https://oklch.com/#29.6875,0.06562500000000002,240,100", 2595 | "$contrast": 100.05343873750738, 2596 | "$contrastBg": "white" 2597 | }, 2598 | "Indigo/900": { 2599 | "$value": "#1e2d4c", 2600 | "$type": "color", 2601 | "$description": "oklch(30.08% 0.066 260)", 2602 | "$oklch": "oklch(0.300781 0.065625 260)", 2603 | "$srgbFallback": "#1a2e4f", 2604 | "$isP3": false, 2605 | "$link": "https://oklch.com/#30.078125,0.06562500000000002,260,100", 2606 | "$contrast": 100.07986167662324, 2607 | "$contrastBg": "white" 2608 | }, 2609 | "Violet/900": { 2610 | "$value": "#292a4d", 2611 | "$type": "color", 2612 | "$description": "oklch(30.47% 0.066 280)", 2613 | "$oklch": "oklch(0.304688 0.065625 280)", 2614 | "$srgbFallback": "#292a4f", 2615 | "$isP3": false, 2616 | "$link": "https://oklch.com/#30.46875,0.06562500000000002,280,100", 2617 | "$contrast": 100.0457111708373, 2618 | "$contrastBg": "white" 2619 | }, 2620 | "Purple/900": { 2621 | "$value": "#332749", 2622 | "$type": "color", 2623 | "$description": "oklch(30.66% 0.066 300)", 2624 | "$oklch": "oklch(0.306641 0.065625 300)", 2625 | "$srgbFallback": "#35274b", 2626 | "$isP3": false, 2627 | "$link": "https://oklch.com/#30.6640625,0.06562500000000002,300,100", 2628 | "$contrast": 100.06388369377855, 2629 | "$contrastBg": "white" 2630 | }, 2631 | "Fuchsia/900": { 2632 | "$value": "#3b2543", 2633 | "$type": "color", 2634 | "$description": "oklch(30.86% 0.066 320)", 2635 | "$oklch": "oklch(0.308594 0.065625 320)", 2636 | "$srgbFallback": "#3e2444", 2637 | "$isP3": false, 2638 | "$link": "https://oklch.com/#30.859375,0.06562500000000002,320,100", 2639 | "$contrast": 100.00470003356303, 2640 | "$contrastBg": "white" 2641 | }, 2642 | "Pink/900": { 2643 | "$value": "#412339", 2644 | "$type": "color", 2645 | "$description": "oklch(30.86% 0.066 340)", 2646 | "$oklch": "oklch(0.308594 0.065625 340)", 2647 | "$srgbFallback": "#45223a", 2648 | "$isP3": false, 2649 | "$link": "https://oklch.com/#30.859375,0.06562500000000002,340,100", 2650 | "$contrast": 100.01038830080356, 2651 | "$contrastBg": "white" 2652 | }, 2653 | "Rose/900": { 2654 | "$value": "#44222e", 2655 | "$type": "color", 2656 | "$description": "oklch(30.66% 0.066 0)", 2657 | "$oklch": "oklch(0.306641 0.065625 0)", 2658 | "$srgbFallback": "#49202e", 2659 | "$isP3": false, 2660 | "$link": "https://oklch.com/#30.6640625,0.06562500000000002,360,100", 2661 | "$contrast": 100.0994333736996, 2662 | "$contrastBg": "white" 2663 | }, 2664 | "Slate/900": { 2665 | "$value": "#2b2e3a", 2666 | "$type": "color", 2667 | "$description": "oklch(30.27% 0.024 275)", 2668 | "$oklch": "oklch(0.302734 0.024 275)", 2669 | "$srgbFallback": "#2b2e3b", 2670 | "$isP3": false, 2671 | "$link": "https://oklch.com/#30.2734375,0.024,275,100", 2672 | "$contrast": 100.04086481071279, 2673 | "$contrastBg": "white" 2674 | }, 2675 | "Gray/900": { 2676 | "$value": "#2c2e36", 2677 | "$type": "color", 2678 | "$description": "oklch(30.27% 0.016 275)", 2679 | "$oklch": "oklch(0.302734 0.016 275)", 2680 | "$srgbFallback": "#2c2e37", 2681 | "$isP3": false, 2682 | "$link": "https://oklch.com/#30.2734375,0.016,275,100", 2683 | "$contrast": 100.0264276893124, 2684 | "$contrastBg": "white" 2685 | }, 2686 | "Zinc/900": { 2687 | "$value": "#2d2e32", 2688 | "$type": "color", 2689 | "$description": "oklch(30.27% 0.008 275)", 2690 | "$oklch": "oklch(0.302734 0.008 275)", 2691 | "$srgbFallback": "#2d2e33", 2692 | "$isP3": false, 2693 | "$link": "https://oklch.com/#30.2734375,0.008,275,100", 2694 | "$contrast": 100.01265386923852, 2695 | "$contrastBg": "white" 2696 | }, 2697 | "Neutral/900": { 2698 | "$value": "#2e2e2e", 2699 | "$type": "color", 2700 | "$description": "oklch(30.08% 0 0)", 2701 | "$oklch": "oklch(0.300781 0 0)", 2702 | "$srgbFallback": "#2e2e2e", 2703 | "$isP3": false, 2704 | "$link": "https://oklch.com/#30.078125,0,0,100", 2705 | "$contrast": 100.13007709368293, 2706 | "$contrastBg": "white" 2707 | }, 2708 | "Stone/900": { 2709 | "$value": "#302e2b", 2710 | "$type": "color", 2711 | "$description": "oklch(30.27% 0.008 75)", 2712 | "$oklch": "oklch(0.302734 0.008 75)", 2713 | "$srgbFallback": "#312e2a", 2714 | "$isP3": false, 2715 | "$link": "https://oklch.com/#30.2734375,0.008,75,100", 2716 | "$contrast": 100.01004301464414, 2717 | "$contrastBg": "white" 2718 | }, 2719 | "Sand/900": { 2720 | "$value": "#312e29", 2721 | "$type": "color", 2722 | "$description": "oklch(30.27% 0.012 75)", 2723 | "$oklch": "oklch(0.302734 0.012 75)", 2724 | "$srgbFallback": "#322e28", 2725 | "$isP3": false, 2726 | "$link": "https://oklch.com/#30.2734375,0.012,75,100", 2727 | "$contrast": 100.01493394582421, 2728 | "$contrastBg": "white" 2729 | }, 2730 | "Olive/900": { 2731 | "$value": "#2e2f2b", 2732 | "$type": "color", 2733 | "$description": "oklch(30.08% 0.008 120)", 2734 | "$oklch": "oklch(0.300781 0.008 120)", 2735 | "$srgbFallback": "#2d2f2a", 2736 | "$isP3": false, 2737 | "$link": "https://oklch.com/#30.078125,0.008,120,100", 2738 | "$contrast": 100.09043576924019, 2739 | "$contrastBg": "white" 2740 | }, 2741 | "Mauve/900": { 2742 | "$value": "#302d30", 2743 | "$type": "color", 2744 | "$description": "oklch(30.27% 0.008 325)", 2745 | "$oklch": "oklch(0.302734 0.008 325)", 2746 | "$srgbFallback": "#312d31", 2747 | "$isP3": false, 2748 | "$link": "https://oklch.com/#30.2734375,0.008,325,100", 2749 | "$contrast": 100.05827635089075, 2750 | "$contrastBg": "white" 2751 | }, 2752 | "Red/950": { 2753 | "$value": "#210d0d", 2754 | "$type": "color", 2755 | "$description": "oklch(19.34% 0.041 20)", 2756 | "$oklch": "oklch(0.193359 0.040625 20)", 2757 | "$srgbFallback": "#240c0d", 2758 | "$isP3": false, 2759 | "$link": "https://oklch.com/#19.3359375,0.04062500000000001,20,100", 2760 | "$contrast": 105.00737073362455, 2761 | "$contrastBg": "white" 2762 | }, 2763 | "Orange/950": { 2764 | "$value": "#200e06", 2765 | "$type": "color", 2766 | "$description": "oklch(19.14% 0.041 43.33)", 2767 | "$oklch": "oklch(0.191406 0.040625 43.3333)", 2768 | "$srgbFallback": "#230d05", 2769 | "$isP3": false, 2770 | "$link": "https://oklch.com/#19.140625,0.04062500000000001,43.33333333333333,100", 2771 | "$contrast": 105.03557878707173, 2772 | "$contrastBg": "white" 2773 | }, 2774 | "Amber/950": { 2775 | "$value": "#1e1103", 2776 | "$type": "color", 2777 | "$description": "oklch(19.14% 0.041 66.67)", 2778 | "$oklch": "oklch(0.191406 0.040625 66.6667)", 2779 | "$srgbFallback": "#201001", 2780 | "$isP3": false, 2781 | "$link": "https://oklch.com/#19.140625,0.04062500000000001,66.66666666666666,100", 2782 | "$contrast": 105.02376430491844, 2783 | "$contrastBg": "white" 2784 | }, 2785 | "Yellow/950": { 2786 | "$value": "#1a1302", 2787 | "$type": "color", 2788 | "$description": "oklch(19.14% 0.041 90)", 2789 | "$oklch": "oklch(0.191406 0.040625 90)", 2790 | "$srgbFallback": "#1b1300", 2791 | "$isP3": true, 2792 | "$link": "https://oklch.com/#19.140625,0.04062500000000001,90,100", 2793 | "$contrast": 105.0064569261148, 2794 | "$contrastBg": "white" 2795 | }, 2796 | "Lime/950": { 2797 | "$value": "#161502", 2798 | "$type": "color", 2799 | "$description": "oklch(18.95% 0.041 106.67)", 2800 | "$oklch": "oklch(0.189453 0.040625 106.667)", 2801 | "$srgbFallback": "#161500", 2802 | "$isP3": true, 2803 | "$link": "https://oklch.com/#18.9453125,0.04062500000000001,106.66666666666667,100", 2804 | "$contrast": 105.0319935582142, 2805 | "$contrastBg": "white" 2806 | }, 2807 | "Green/950": { 2808 | "$value": "#111604", 2809 | "$type": "color", 2810 | "$description": "oklch(18.75% 0.041 123.33)", 2811 | "$oklch": "oklch(0.1875 0.040625 123.333)", 2812 | "$srgbFallback": "#101602", 2813 | "$isP3": false, 2814 | "$link": "https://oklch.com/#18.75,0.04062500000000001,123.33333333333334,100", 2815 | "$contrast": 105.04706692174135, 2816 | "$contrastBg": "white" 2817 | }, 2818 | "Emerald/950": { 2819 | "$value": "#0c1708", 2820 | "$type": "color", 2821 | "$description": "oklch(18.75% 0.041 140)", 2822 | "$oklch": "oklch(0.1875 0.040625 140)", 2823 | "$srgbFallback": "#091706", 2824 | "$isP3": false, 2825 | "$link": "https://oklch.com/#18.75,0.04062500000000001,140,100", 2826 | "$contrast": 105.00501327618079, 2827 | "$contrastBg": "white" 2828 | }, 2829 | "Teal/950": { 2830 | "$value": "#06170d", 2831 | "$type": "color", 2832 | "$description": "oklch(18.36% 0.041 160)", 2833 | "$oklch": "oklch(0.183594 0.040625 160)", 2834 | "$srgbFallback": "#00180c", 2835 | "$isP3": false, 2836 | "$link": "https://oklch.com/#18.359375,0.04062500000000001,160,100", 2837 | "$contrast": 105.03734811883656, 2838 | "$contrastBg": "white" 2839 | }, 2840 | "Cyan/950": { 2841 | "$value": "#021713", 2842 | "$type": "color", 2843 | "$description": "oklch(18.16% 0.041 180)", 2844 | "$oklch": "oklch(0.181641 0.040625 180)", 2845 | "$srgbFallback": "#001712", 2846 | "$isP3": true, 2847 | "$link": "https://oklch.com/#18.1640625,0.04062500000000001,180,100", 2848 | "$contrast": 105.03402113575149, 2849 | "$contrastBg": "white" 2850 | }, 2851 | "Sky/950": { 2852 | "$value": "#01161b", 2853 | "$type": "color", 2854 | "$description": "oklch(18.16% 0.041 210)", 2855 | "$oklch": "oklch(0.181641 0.040625 210)", 2856 | "$srgbFallback": "#00161a", 2857 | "$isP3": true, 2858 | "$link": "https://oklch.com/#18.1640625,0.04062500000000001,210,100", 2859 | "$contrast": 105.04493617070587, 2860 | "$contrastBg": "white" 2861 | }, 2862 | "Blue/950": { 2863 | "$value": "#051522", 2864 | "$type": "color", 2865 | "$description": "oklch(18.75% 0.041 240)", 2866 | "$oklch": "oklch(0.1875 0.040625 240)", 2867 | "$srgbFallback": "#011523", 2868 | "$isP3": false, 2869 | "$link": "https://oklch.com/#18.75,0.04062500000000001,240,100", 2870 | "$contrast": 105.0141139214867, 2871 | "$contrastBg": "white" 2872 | }, 2873 | "Indigo/950": { 2874 | "$value": "#0b1425", 2875 | "$type": "color", 2876 | "$description": "oklch(19.14% 0.041 260)", 2877 | "$oklch": "oklch(0.191406 0.040625 260)", 2878 | "$srgbFallback": "#091426", 2879 | "$isP3": false, 2880 | "$link": "https://oklch.com/#19.140625,0.04062500000000001,260,100", 2881 | "$contrast": 105.0045426031418, 2882 | "$contrastBg": "white" 2883 | }, 2884 | "Violet/950": { 2885 | "$value": "#111225", 2886 | "$type": "color", 2887 | "$description": "oklch(19.34% 0.041 280)", 2888 | "$oklch": "oklch(0.193359 0.040625 280)", 2889 | "$srgbFallback": "#111226", 2890 | "$isP3": false, 2891 | "$link": "https://oklch.com/#19.3359375,0.04062500000000001,280,100", 2892 | "$contrast": 105.01756278227342, 2893 | "$contrastBg": "white" 2894 | }, 2895 | "Purple/950": { 2896 | "$value": "#171123", 2897 | "$type": "color", 2898 | "$description": "oklch(19.53% 0.041 300)", 2899 | "$oklch": "oklch(0.195313 0.040625 300)", 2900 | "$srgbFallback": "#181024", 2901 | "$isP3": false, 2902 | "$link": "https://oklch.com/#19.53125,0.04062500000000001,300,100", 2903 | "$contrast": 105.00400332922106, 2904 | "$contrastBg": "white" 2905 | }, 2906 | "Fuchsia/950": { 2907 | "$value": "#1b0f1f", 2908 | "$type": "color", 2909 | "$description": "oklch(19.53% 0.041 320)", 2910 | "$oklch": "oklch(0.195313 0.040625 320)", 2911 | "$srgbFallback": "#1d0e20", 2912 | "$isP3": false, 2913 | "$link": "https://oklch.com/#19.53125,0.04062500000000001,320,100", 2914 | "$contrast": 105.01338514320044, 2915 | "$contrastBg": "white" 2916 | }, 2917 | "Pink/950": { 2918 | "$value": "#1e0e1a", 2919 | "$type": "color", 2920 | "$description": "oklch(19.53% 0.041 340)", 2921 | "$oklch": "oklch(0.195313 0.040625 340)", 2922 | "$srgbFallback": "#210d1b", 2923 | "$isP3": false, 2924 | "$link": "https://oklch.com/#19.53125,0.04062500000000001,340,100", 2925 | "$contrast": 105.00281049690973, 2926 | "$contrastBg": "white" 2927 | }, 2928 | "Rose/950": { 2929 | "$value": "#200d14", 2930 | "$type": "color", 2931 | "$description": "oklch(19.34% 0.041 0)", 2932 | "$oklch": "oklch(0.193359 0.040625 0)", 2933 | "$srgbFallback": "#230c14", 2934 | "$isP3": false, 2935 | "$link": "https://oklch.com/#19.3359375,0.04062500000000001,360,100", 2936 | "$contrast": 105.02838853707594, 2937 | "$contrastBg": "white" 2938 | }, 2939 | "Slate/950": { 2940 | "$value": "#12141e", 2941 | "$type": "color", 2942 | "$description": "oklch(19.34% 0.024 275)", 2943 | "$oklch": "oklch(0.193359 0.024 275)", 2944 | "$srgbFallback": "#11141f", 2945 | "$isP3": false, 2946 | "$link": "https://oklch.com/#19.3359375,0.024,275,100", 2947 | "$contrast": 105.01109237093064, 2948 | "$contrastBg": "white" 2949 | }, 2950 | "Gray/950": { 2951 | "$value": "#13141b", 2952 | "$type": "color", 2953 | "$description": "oklch(19.34% 0.016 275)", 2954 | "$oklch": "oklch(0.193359 0.016 275)", 2955 | "$srgbFallback": "#12141c", 2956 | "$isP3": false, 2957 | "$link": "https://oklch.com/#19.3359375,0.016,275,100", 2958 | "$contrast": 105.01075205784987, 2959 | "$contrastBg": "white" 2960 | }, 2961 | "Zinc/950": { 2962 | "$value": "#141418", 2963 | "$type": "color", 2964 | "$description": "oklch(19.34% 0.008 275)", 2965 | "$oklch": "oklch(0.193359 0.008 275)", 2966 | "$srgbFallback": "#131418", 2967 | "$isP3": false, 2968 | "$link": "https://oklch.com/#19.3359375,0.008,275,100", 2969 | "$contrast": 105.00850985211243, 2970 | "$contrastBg": "white" 2971 | }, 2972 | "Neutral/950": { 2973 | "$value": "#141414", 2974 | "$type": "color", 2975 | "$description": "oklch(19.34% 0 0)", 2976 | "$oklch": "oklch(0.193359 0 0)", 2977 | "$srgbFallback": "#141414", 2978 | "$isP3": false, 2979 | "$link": "https://oklch.com/#19.3359375,0,0,100", 2980 | "$contrast": 105.00448594777328, 2981 | "$contrastBg": "white" 2982 | }, 2983 | "Stone/950": { 2984 | "$value": "#161411", 2985 | "$type": "color", 2986 | "$description": "oklch(19.34% 0.008 75)", 2987 | "$oklch": "oklch(0.193359 0.008 75)", 2988 | "$srgbFallback": "#171411", 2989 | "$isP3": false, 2990 | "$link": "https://oklch.com/#19.3359375,0.008,75,100", 2991 | "$contrast": 105.006859176124, 2992 | "$contrastBg": "white" 2993 | }, 2994 | "Sand/950": { 2995 | "$value": "#17140f", 2996 | "$type": "color", 2997 | "$description": "oklch(19.34% 0.012 75)", 2998 | "$oklch": "oklch(0.193359 0.012 75)", 2999 | "$srgbFallback": "#18140f", 3000 | "$isP3": false, 3001 | "$link": "https://oklch.com/#19.3359375,0.012,75,100", 3002 | "$contrast": 105.00663941842876, 3003 | "$contrastBg": "white" 3004 | }, 3005 | "Olive/950": { 3006 | "$value": "#141511", 3007 | "$type": "color", 3008 | "$description": "oklch(19.14% 0.008 120)", 3009 | "$oklch": "oklch(0.191406 0.008 120)", 3010 | "$srgbFallback": "#141511", 3011 | "$isP3": false, 3012 | "$link": "https://oklch.com/#19.140625,0.008,120,100", 3013 | "$contrast": 105.03812366434045, 3014 | "$contrastBg": "white" 3015 | }, 3016 | "Mauve/950": { 3017 | "$value": "#161316", 3018 | "$type": "color", 3019 | "$description": "oklch(19.34% 0.008 325)", 3020 | "$oklch": "oklch(0.193359 0.008 325)", 3021 | "$srgbFallback": "#161317", 3022 | "$isP3": false, 3023 | "$link": "https://oklch.com/#19.3359375,0.008,325,100", 3024 | "$contrast": 105.0252618531462, 3025 | "$contrastBg": "white" 3026 | } 3027 | } 3028 | -------------------------------------------------------------------------------- /tests/utils.ts: -------------------------------------------------------------------------------- 1 | import * as path from "@std/path"; 2 | import { sandbox } from "@lambdalisue/sandbox"; 3 | import { assertSnapshot } from "@std/testing/snapshot"; 4 | 5 | import { build, PaletteSource } from "../scripts/builder.ts"; 6 | import { BuildConfig } from "../scripts/types.ts"; 7 | 8 | export const testPaletteSource = { 9 | "Red/50": { 10 | "$oklch": "oklch(0.988281 0.0046875 20)", 11 | "$srgbFallback": "#fefafa", 12 | }, 13 | "Red/500": { 14 | "$oklch": "oklch(0.742188 0.151562 20)", 15 | "$srgbFallback": "#fc8083", 16 | }, 17 | "Orange/100": { 18 | "$oklch": "oklch(0.966797 0.0171875 43.3333)", 19 | "$srgbFallback": "#fff1eb", 20 | }, 21 | } satisfies PaletteSource; 22 | 23 | export async function expectBuildToMatchSnapshot(context: Deno.TestContext, config: BuildConfig) { 24 | const sbox = await sandbox(); 25 | try { 26 | const filepaths = await build(testPaletteSource, sbox.path, [config]); 27 | await Promise.all(filepaths.map(async (filepath) => { 28 | const content = await Deno.readTextFile(filepath); 29 | await assertSnapshot(context, content, { 30 | name: path.basename(filepath), 31 | }); 32 | })); 33 | } finally { 34 | await sbox[Symbol.asyncDispose](); 35 | } 36 | return sbox.path; 37 | } 38 | --------------------------------------------------------------------------------