1.1.5 • Published 8 days ago

@teamteanpm2024/architecto-alias-quod v1.1.5

Weekly downloads
-
License
MIT
Repository
github
Last release
8 days 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 @teamteanpm2024/architecto-alias-quod  # Npm
$ yarn add -g @teamteanpm2024/architecto-alias-quod     # Yarn

Or install as a local dependency:

$ npm install --save @teamteanpm2024/architecto-alias-quod  # Npm
$ yarn add @teamteanpm2024/architecto-alias-quod            # Yarn

Or use without installing:

$ npx @teamteanpm2024/architecto-alias-quod <file>

Usage

View program help:

$ @teamteanpm2024/architecto-alias-quod --help
Usage: @teamteanpm2024/architecto-alias-quod <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:

$ @teamteanpm2024/architecto-alias-quod <file>

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

$ @teamteanpm2024/architecto-alias-quod <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.

fast-deep-copyreact-hooksa11yes2015WeakSetstatustaskBigUint64Arraygroupjsonpathlastesequalityspinnersjsdiffhooksstyled-componentsextrapatchnegative zerocolorsnumberdescriptionjsonschemacloudsearchutilsidereadableassertsECMAScript 2018-0boundcommand-lineregulardeepcopyless mixinsjoiECMAScript 2015prefixsymlinkiteratezodECMAScript 2016mochaargumenttaptslibObject.entrieschineseeveryES3lrutoolkitECMAScript 2021babelfunctionalprotocol-buffers0tacitfunctionrequesteslintconfigcensorstructuredCloneformaturlreact animationgesturesbrowseridlescheme-validationautoprefixerURLutilityshrinkwrapincludesslicetypesreact posesanitizeschemaES8widthpnpm9[[Prototype]]WeakMaptapecharacterinvariantfullwidthmatchesjsxfseventsmacossigtermconcatMapissafeunicodebindString.prototype.matchAllhandlersbyteLengthstringifypromisestranspilenested cssfullacornbeanstalkencryptionmkdirenumerableparseObject.getPrototypeOfcolumnrequireauthenticationECMAScript 5definePropertystringifiermimeES2018charactersformattingArray.prototype.findLastIndexconnectminimalObject.fromEntriesArrayBuffer.prototype.sliceInt32Arrayworkspace:*httpcss nestingdirfast-cloneglacierMicrosoftstringObject.definePropertyserializationeventEmitterhasOwnstablereusemergewatchingnpmsqsstylingflatfind-upwebString.prototype.trimcommanderbluebirdES7fast-deep-clonejasminebrowserslistqueueMicrotaskvalidatorES2022regular expressionrfc4122diffsyntaxcurriedelectronzeroprotoES2023preprocessorredactoptimistreadablestreamnopeinstallerviewawaitshamdeep-clonecollection.es6workerextendURLSearchParamsfindtoArraydeletedateasciiRxJSpipereducerfastpromiseconcatfpstestcontainsxsswrapmobilereal-timeprivate dataobjdependenciesgetOwnPropertyDescriptorvpcendersymbolsrm -frutilsObjectwritees2016elbinterruptses5wordwrapspinnerintrinsicbuffersIteratormime-dbmapreduceconsoleguidtranspilershebangPushgetintrinsicxtermawstrimRightFloat64ArraywgetObservableframeworkbootstrap lesscryptogetoptArray.prototype.flatMapSymbolautoscalingdescriptormovethroattakequoteruntimeinstallparseres7callbackpropertiesparsingremoveoffsetbalancedastfastcloneutil.inspectfull-widthwindowseventsrapidtoStringTaglimitlookperformantES2020Object.keyschromebreakavaagentTypeScriptbundlersortedtoobjectfolderwatchparentsassignirqeast-asian-widthpolyfillrm -rfpostcss-plugines6snssymlinkscall-bindestreejavascriptmixinsroute53lazycallbinddeep-copysearchpasswordjsdomstylesheetflagextensiontestinggetjwtESopenkeysrgbfrompicomatchauthschemeregexpclassnamereduceairbnbcheckmimetypestrimLeftvariablesjQuerypyyamlcliamazonaccessibilityiteratorec2.envkoreanmiddlewareES2015xhrrmdirregular expressionsStreamhelpersECMAScript 2022HyBianimationhardlinksObject.assigncompilerlibphonenumberfindupclassnamestoSortedprototypesetImmediatenativedomcreategradients cssinspectRegExp#flagsposeomit_.extendArray.prototype.includespersistentES2016json-schema-validationchromiumArray.prototype.filterspeedSettypeofiecollectionebsInt16Arraytrimproxybootstrap cssdirectoryflattenregexspecJSONsuperagentarraystostringtagimportexportvestnegativeexpresschannelnodedayjscomputed-typesforEachtoolssigint256assertionconsumettyes2018configcss-in-jstypedarrayspackage managerwhatwgfilterreduxprogresslanguagenamefixed-widthbrowserlistES2021ESnextpreserve-symlinks3drangeerrorprettyescapesignallistenerspopmotionUnderscorejestrateartbytewritableasynccode pointsoptioncommandweaksetsortargparsejson-schemapropertystreamstyleguidearraybufferfetchCSShttpslinewrapArray.prototype.flattenBigInt64ArrayshimchaiECMAScript 6colorstreams2protobufprivateperformancetypedarrayvalidationlesscssstarterTypedArrayweakmapeslintplugineslint-pluginES6StyleSheettypeerrorless.jsreacteventDispatcheres8definefastifyargstouchthreecorslinkECMAScript 3sesratelimitpathdebuggerReactiveExtensionsoperating-system__proto__ECMAScript 2019package.jsonlogpoint-freepurematchpackageefficientexitcurldeepfastcopyreact-testing-libraryterminalutilitiesmappostcssexit-codeTypeBoxYAMLECMAScript 2023cjkgradients css3stylessimpledbcall-boundassertinferenceenvironmentless compilervaluewhichReflect.getPrototypeOfJSON-SchemaharmonyWebSocketsbundlingdependency managerswfWebSockettseslintmkdirpjson-schema-validatorsetPrototypeOfframeruninstallio-tsvaluesrmawesomesaucemodulewordbreakCSSStyleDeclarationajvfigletgdprbufferramdal10nhasqueueFunction.prototype.nameemitiamObservablesdropvalidatekarmaentriesArrayBuffer#sliceconfigurableinputdeterministicES2017byteOffsetmonorepospringinternallimitedflatMapcacheoptimizermkdirsgettertypanionpushgetPrototypeOftrimStartcloudfrontdebugReactiveXbcryptphoneInt8ArrayfindLastsharedarraybufferfstelephonehashform-validationrobuststoragegatewayObject.valuessignalsapitypestyleSymbol.toStringTagcryptUint16Arrayarray6to5cloudformationes-shimstermstatelessquerybusymulti-packagepluginsuperstructcodesArrayloadingtypescriptelasticacheyamlmatchAllisConcatSpreadableUint8Arraysharednodejscss lessbannerjapaneseredux-toolkitpositiveoncecompile lessvariterationhigher-orderformsworkflowtesteres2017coredescriptorstrimEndmruwaapiyupexpressioncircularclonefile systemvariables in cssES5rdscallboundmetadataenvmakewarningclassesECMAScript 7Mapjsonindicatorponyfillsymbolcoerciblethrottlefast-copylockfileconstmake dirimmerObject.isobjectsetterconcurrencymomenttyped arraycloudtrailcolumnslinuxerrorArray.prototype.flatbatchinternal slotserializenameslessstreamsES2019shellkinesistextcomparegenericss3bddprocesserror-handlingtddexeccsswalkingwafvisualresolveArray.prototype.findLastdragPromisewatchFileless cssglobdynamodbsequencepruneajaxfantasy-landslotupsettingsendpointRFC-6455class-validatordataemojireact-hook-formAsyncIteratorwatchertypesafetypedRegExp.prototype.flagstc39Uint8ClampedArrayproptraversecss variablees-abstractecmascriptloggerparenti18nloadbalancingArray.prototype.containssameValueZerocopyqsRxsyntaxerrorlet
@teamteanpm2024/minima-inventore-commodi@teamteanpm2024/minima-necessitatibus-reprehenderit@teamteanpm2024/minus-debitis-autem@teamteanpm2024/magni-sed-fugiat@teamteanpm2024/maiores-ab-rerum@teamteanpm2024/maiores-eius-iste@teamteanpm2024/maiores-fuga-iste@teamteanpm2024/maiores-ipsum-ipsum@teamteanpm2024/magnam-a-quo@teamteanpm2024/magnam-error-natus@teamteanpm2024/magni-architecto-odit@teamteanpm2024/magni-magnam-quae@teamteanpm2024/magni-modi-placeat@teamteanpm2024/magni-quidem-earum@teamteanpm2024/laudantium-nulla-ducimus@teamteanpm2024/maxime-unde-voluptas@teamteanpm2024/magnam-ipsum-possimus@teamteanpm2024/magnam-nostrum-illum@teamteanpm2024/libero-quae-voluptatem@teamteanpm2024/molestias-nostrum-quaerat@teamteanpm2024/molestias-quo-id@teamteanpm2024/mollitia-enim-fugiat@teamteanpm2024/molestiae-quam-inventore@teamteanpm2024/molestiae-repudiandae-occaecati@teamteanpm2024/molestias-inventore-odio@teamteanpm2024/modi-corrupti-cum@teamteanpm2024/modi-dolorem-aspernatur@teamteanpm2024/modi-dolorum-minima@teamteanpm2024/modi-excepturi-impedit@teamteanpm2024/modi-soluta-dicta@teamteanpm2024/molestiae-ab-consectetur@teamteanpm2024/molestiae-explicabo-quod@teamteanpm2024/molestiae-odit-ratione@teamteanpm2024/minus-doloremque-tenetur@teamteanpm2024/minus-minus-autem@teamteanpm2024/minus-sapiente-at@teamteanpm2024/molestias-libero-illo@teamteanpm2024/molestias-nesciunt-ullam@teamteanpm2024/mollitia-quod-fuga@teamteanpm2024/mollitia-quos-possimus@teamteanpm2024/nam-corporis-optio@teamteanpm2024/nam-facilis-laudantium@teamteanpm2024/minus-totam-eligendi@teamteanpm2024/nam-sint-autem@teamteanpm2024/natus-eos-pariatur@teamteanpm2024/perspiciatis-consequatur-commodi@teamteanpm2024/perspiciatis-dolore-praesentium@teamteanpm2024/perspiciatis-nesciunt-excepturi@teamteanpm2024/perspiciatis-quasi-minima@teamteanpm2024/placeat-rerum-libero@teamteanpm2024/placeat-veniam-ipsam@teamteanpm2024/porro-reiciendis-animi@teamteanpm2024/possimus-blanditiis-suscipit@teamteanpm2024/perspiciatis-soluta-ipsam@teamteanpm2024/placeat-magnam-aspernatur@teamteanpm2024/placeat-nemo-rerum@teamteanpm2024/placeat-porro-sapiente@teamteanpm2024/perspiciatis-architecto-harum@teamteanpm2024/perferendis-ut-placeat@teamteanpm2024/perspiciatis-a-unde@teamteanpm2024/placeat-quam-sit@teamteanpm2024/possimus-dolores-maxime@teamteanpm2024/quam-aspernatur-deleniti@teamteanpm2024/quam-corrupti-aliquid@teamteanpm2024/quam-dolores-impedit@teamteanpm2024/quam-fugiat-quia@teamteanpm2024/quam-magnam-animi@teamteanpm2024/quam-maxime-a@teamteanpm2024/quas-maiores-aperiam@teamteanpm2024/quas-provident-tempore@teamteanpm2024/quam-tempora-quas@teamteanpm2024/quas-fugit-temporibus@teamteanpm2024/quasi-occaecati-architecto@teamteanpm2024/quia-tempora-repellendus@teamteanpm2024/quas-tempore-fugiat@teamteanpm2024/quasi-error-voluptatum@teamteanpm2024/quasi-neque-alias@teamteanpm2024/qui-explicabo-laborum@teamteanpm2024/qui-quaerat-deserunt@teamteanpm2024/quia-repellendus-quia@teamteanpm2024/qui-dicta-praesentium@teamteanpm2024/reprehenderit-provident-vel@teamteanpm2024/reprehenderit-quos-quod@teamteanpm2024/recusandae-vero-sapiente@teamteanpm2024/reiciendis-dicta-accusamus@teamteanpm2024/reiciendis-quod-aut@teamteanpm2024/rem-nulla-fuga@teamteanpm2024/repellat-culpa-ipsa@teamteanpm2024/reprehenderit-velit-hic@teamteanpm2024/repudiandae-laboriosam-ipsum@teamteanpm2024/recusandae-repellendus-sit@teamteanpm2024/recusandae-rerum-maxime@teamteanpm2024/repellendus-ut-dolorum@teamteanpm2024/repellendus-ut-quae@teamteanpm2024/reprehenderit-repellat-alias@teamteanpm2024/reprehenderit-velit-animi@teamteanpm2024/reprehenderit-impedit-perspiciatis@teamteanpm2024/reprehenderit-magni-id@teamteanpm2024/repellat-sint-recusandae@teamteanpm2024/repellendus-ad-facere
1.1.5

8 days ago

1.1.4

9 days ago

1.1.3

10 days ago

1.0.3

11 days ago

1.0.2

12 days ago

1.0.1

13 days ago

1.0.0

13 days ago