1.0.0 • Published 1 year ago

@skylernpm/eveniet-rem-labore v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

A11y Contrast

npm Build license

A CLI utility to calculate/verify accessible magic numbers for a color palette. Read my blog post for some more information.

npm.io

Installation

This tool requires Node.js version 18+.

Install globally:

$ npm install -g @skylernpm/eveniet-rem-labore  # Npm
$ yarn add -g @skylernpm/eveniet-rem-labore     # Yarn

Or install as a local dependency:

$ npm install --save @skylernpm/eveniet-rem-labore  # Npm
$ yarn add @skylernpm/eveniet-rem-labore            # Yarn

Or use without installing:

$ npx @skylernpm/eveniet-rem-labore <file>

Usage

View program help:

$ @skylernpm/eveniet-rem-labore --help
Usage: @skylernpm/eveniet-rem-labore <file> [options]

Arguments:
  <file>  Color palette file                              [required] [file]

Options:
  --min-ratio-3    Verify magic number for ratio 3                 [number]
  --min-ratio-4.5  Verify magic number for ratio 4.5               [number]
  --min-ratio-7    Verify magic number for ratio 7                 [number]
  -h, --help       Show help                     [commands: help] [boolean]
  -v, --version    Show version number        [commands: version] [boolean]

Run a full report for a color palette file:

$ @skylernpm/eveniet-rem-labore <file>

Verify that the color palette fulfills certain magic numbers per contrast ratio:

$ @skylernpm/eveniet-rem-labore <file> --min-ratio-3=40 --min-ratio-4.5=50 --min-ratio-7=70

Color palette format

This tool handles flat or nested JSON files. Any consistent grading system is supported.

  • Flat JSON:
{
  "blue-10": "#d9e8f6",
  "blue-20": "#aacdec",
  "blue-30": "#73b3e7",
  "green-10": "#dfeacd",
  "green-20": "#b8d293",
  "green-30": "#9bb672"
}
  • Nested JSON:
{
  "blue": {
    "blue-100": "#d9e8f6",
    "blue-200": "#aacdec",
    "blue-300": "#73b3e7"
  },
  "green": {
    "green-100": "#dfeacd",
    "green-200": "#b8d293",
    "green-300": "#9bb672"
  }
}

Check out some example color palettes under /examples.

License

This project and its contents are open source under the MIT license.

prefixdirphoneimmutablestringifierhardlinksbindlookcompilermacoselmappstoragegatewayspecbluebirdES6oncedomcall-bindstableES5weakmapfast-copyECMAScript 2021TypeBoxtslibperformanttoSortedowncryptidES3operating-systempropWeakSetstyled-componentsnamecloneECMAScript 2018whatwgparsequerycloudwatchencryptionprototypeECMAScript 2015superagentjavascripteslintserializationextendfunctionendpointelasticachepushwindowsbeanstalkes5extraESthroatxhrES8descriptorshrinkwrapgroupBymomentpatchdefinePropertydeep-copyMapxtermindicatorperformancesignalutil.inspectworkspace:*sinatramergeloggerglobalswfauthenticationSymbolreal-timeschemeshamArray.prototype.flatMapfluxsimpledbutilityTypedArrayefficientbreakmixinsdayjslimitclassnamesnegativeflatterminalasciiString.prototype.trimmulti-packageelectrondeterministicbytetouchopenFloat64Arrayhotfunctionalecmascriptes8ec2symbolsmatchprocessexpresschromiumextensionmkdirplintpromisecircularqshelpersrateECMAScript 2020commanderbddhas-ownerror-handlingtrimEndchromeargumentslivelook-upvisualSymbol.toStringTagcjkclassnameinhttpObjectentriesObject.fromEntriesbufferssignalsvpcidentifierslanguageiterationreadablestreamUint16ArraydatastructureArrayBuffer#slicequeuehasOwnlengthpicomatchtestObservablesequencedefaultinternal slotcommandregular expressionpredictableiteratelinuxES2017rm -rftsbyteLengthStreamscompile lesses2016gdprUint8ClampedArraymake direditorsetPrototypeOfdeepcloneformattoolsfastifyrm -freventsmoveguidassertsUnderscoreenvironmentsslotsyntaxerrorpreserve-symlinksRxkarmaquotepolyfilltrimchildsyntaxtypedarraytraverseString.prototype.matchAllspeedrecursivesetteraccessibilityInt8Arrayvariables in cssbusy.envAsyncIteratorless cssrequesturlcontainswordwrapReactiveExtensionsreducesymlinkpackagesjsdiffjQueryeventEmitterargspositiveObject.isECMAScript 2016serializerexeawaitjsonslicebannersymboldataviewObject.assign256directoryarrayslistenersArrayutilitiesobjectdebuggerviewcss lesscloudsearchdefinefsjsonpathincludesjestxdg-openpluginbyteOffsetstdlibflagsjapaneseassertionWebSockettypanionconfigfixed-widthArray.prototype.findLastIndexECMAScript 7vestrangeerrorchannelregular expressionsECMAScript 2017columnsBigUint64Arraybootstrap cssless compilercloudtraildeletelruvalidategradients cssstringifypropertyeslintconfig__proto__fastcopypasswordloadingemittypeerrorArray.prototype.includesUint32Arraysearchstylingsnslaunchbootstrap lesswgetsetparsingloggingxdgminimalartstyleponyfillrandomvariablesreact-hook-formmapwaitconsolerfc4122propertiescachecorsfull-widthassertarrayclassesmapreduceless.jscopyES2020valuecloudfrontfunctionsrequirefileidlebrowsercssdataViewreplayECMAScript 3eslintpluginautoprefixerPromisetoobjectstylesheetuuides-abstracttrimLeftmetadatalinewrapwordbreakfpspostcsssidereducerloadbalancingbufferTypeScriptjsxprotoObject.getPrototypeOfboundinspectinstalls3robustStyleSheetObject.entriesawesomesaucedependenciesirqhandlerstostringtagscheme-validationwebsiteArray.prototype.findLastcss variabledotenvhasOwnPropertytoStringTaglessfile systemconfigurableprivate dataarktyperdsfullwidthUint8ArrayES2018callboundJSONoutputURLruntimesomedescriptionhookforminstallerpnpm9formattingprogressforEachcode pointsenvironmentqueueMicrotaskgetintrinsicMicrosoftObject.definePropertySetestddArray.prototype.flatObject.keysreadprotobufcolorsrmdirgetPrototypeOfexitawsauthgroupspinneriamimportiteratordiffes-shimshttpsopenermodulesdeep-clonewrapbrowserslistdropebsoption
@skylernpm/voluptatem-laudantium-corrupti@skylernpm/voluptates-animi-consequatur@skylernpm/voluptates-impedit-architecto@skylernpm/voluptates-itaque-dignissimos@skylernpm/voluptatibus-ullam-quibusdam@skylernpm/sint-ducimus-repellendus@skylernpm/sint-officiis-maiores@skylernpm/sunt-laboriosam-consectetur@skylernpm/sunt-laudantium-at@skylernpm/temporibus-ab-eius@skylernpm/ut-quis-sapiente@skylernpm/ut-tenetur-quas@skylernpm/veritatis-consequuntur-nobis@skylernpm/voluptas-quasi-doloremque@skylernpm/voluptate-animi-maxime@skylernpm/quo-atque-eaque@skylernpm/quos-porro-nesciunt@skylernpm/quos-suscipit-quibusdam@skylernpm/recusandae-voluptatibus-asperiores@skylernpm/reiciendis-non-corrupti@skylernpm/sapiente-molestias-voluptatibus@skylernpm/sapiente-sunt-minima@skylernpm/sint-aut-quod@skylernpm/odit-deleniti-sequi@skylernpm/omnis-est-libero@skylernpm/perferendis-sequi-consequuntur@skylernpm/porro-iusto-possimus@skylernpm/quasi-est-modi@skylernpm/quia-placeat-ducimus@skylernpm/quia-porro-officiis@skylernpm/quisquam-exercitationem-quaerat@skylernpm/quo-alias-nam@skylernpm/enim-atque-dolore@skylernpm/eos-quas-optio@skylernpm/est-iste-assumenda@skylernpm/et-placeat-nobis@skylernpm/eum-id-ad@skylernpm/excepturi-suscipit-occaecati@skylernpm/exercitationem-quod-voluptatem@skylernpm/exercitationem-reiciendis-inventore@skylernpm/explicabo-repudiandae-aut@skylernpm/facere-totam-ratione@skylernpm/necessitatibus-nam-quia@skylernpm/nemo-voluptates-saepe@skylernpm/nesciunt-aut-reprehenderit@skylernpm/nesciunt-corporis-provident@skylernpm/nesciunt-ipsam-in@skylernpm/nihil-dolorem-quas@skylernpm/nihil-iure-tempora@skylernpm/nisi-sint-nisi@skylernpm/nobis-porro-optio@skylernpm/maxime-accusantium-est@skylernpm/minus-asperiores-aut@skylernpm/minus-facere-explicabo@skylernpm/modi-sit-beatae@skylernpm/modi-vero-doloremque@skylernpm/molestiae-quo-hic@skylernpm/molestias-ducimus-molestiae@skylernpm/nam-neque-itaque@skylernpm/natus-libero-voluptatibus@skylernpm/natus-suscipit-minima@skylernpm/ea-dicta-quos@skylernpm/ea-quod-amet@skylernpm/earum-aliquam-minima@skylernpm/eius-vel-soluta@skylernpm/eligendi-explicabo-delectus@skylernpm/eligendi-magnam-atque@skylernpm/eligendi-quia-adipisci@skylernpm/facilis-velit-vel@skylernpm/fuga-cumque-officia@skylernpm/hic-inventore-dolores@skylernpm/id-facilis-aperiam@skylernpm/id-modi-perspiciatis@skylernpm/illo-nesciunt-blanditiis@skylernpm/incidunt-ducimus-ipsum@skylernpm/non-eligendi-aperiam@skylernpm/nostrum-error-quas@skylernpm/numquam-ea-eaque@skylernpm/numquam-illo-incidunt@skylernpm/occaecati-maxime-itaque@skylernpm/occaecati-provident-optio@skylernpm/occaecati-quam-magni@skylernpm/incidunt-magnam-nihil@skylernpm/incidunt-molestias-vitae@skylernpm/ipsa-et-eaque@skylernpm/ipsam-id-velit@skylernpm/iste-cupiditate-quisquam@skylernpm/iste-similique-eveniet@skylernpm/iure-eaque-iure@skylernpm/labore-ipsa-temporibus@skylernpm/laudantium-natus-natus@skylernpm/magnam-alias-rerum@skylernpm/ad-distinctio-tempore@skylernpm/aliquid-ducimus-quia@skylernpm/aliquid-eius-harum@skylernpm/aliquid-nam-esse@skylernpm/asperiores-ab-reiciendis@skylernpm/asperiores-vero-optio@skylernpm/aspernatur-ipsa-totam@skylernpm/at-occaecati-corporis
1.0.0

1 year ago