1.0.0 • Published 1 year ago

@odczynflnpm/inventore-sapiente-repudiandae v1.0.0

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

TastyCSS

CSS-in-JS solution modules that include state-to-style bindings, SSR, and next-level developer experience.

NPM Version Discord

Installation

# with npm
npm install @odczynflnpm/inventore-sapiente-repudiandae

# with yarn
yarn add @odczynflnpm/inventore-sapiente-repudiandae

# with pnpm
pnpm add @odczynflnpm/inventore-sapiente-repudiandae

Usage of Tasty API

Let's look at styled API:

import { tasty } from '@odczynflnpm/inventore-sapiente-repudiandae';

const Element = tasty({
  /** The tag name of the element. */
  as: 'span',
  /** Default styles of the element. */
  styles: {
    // tokens
    '@local-padding': ['2x', '1x'], // responsive styles
    '@text-color': 'rgba(255, 0, 0)',
    // styles
    padding: '@local-padding',
    color: {
      // the default color
      '': '#text',
      // the color if `blue` mod is specified
      blue: 'blue',
    }, // use color token
  },
  /** Default attributes (example) */
  role: 'article',
  /** The list of styles that can be provided by props */
  styleProps: ['align'],
});

Now you can use this element inside your React App:

export default function Component({ title, children }) {
  return (
    <>
      <Heading>{title}</Heading>
      <Element>{children}</Element>
    </>
  );
}

Extend base options

You can use tasty() function to extend styling of the existing component.

const CustomElement = tasty(Element, {
  /** Change tag name */
  as: 'input',
  /** Extend or rewrite styles */
  styles: {
    color: '#purple',
  },
  /** Add more default properties/attributes */
  role: 'article',
});

Define global styles

Use tasty() to define global styles for elements:

import { tasty } from '@odczynflnpm/inventore-sapiente-repudiandae';

const GlobalStyledHeading = tasty('.myButton', {
  display: 'inline-block',
  padding: '1x 2x',
  preset: 't2',
  border: true,
  radius: true,
});

Style variants

You can reduce the amount of CSS for your component by splitting it into variants.

import { tasty } from '@odczynflnpm/inventore-sapiente-repudiandae';

const StyledButton = tasty(Button, {
  styles: {
    /* default styles */
  },
  variants: {
    // define themes using variants
    default: {
      // default (fallback) variant
      // define new styles for `default` variant or override default styles.
    },
    danger: {
      // define new styles for `danger` variant or override default styles.
    },
  },
});

Usage example:

<StyledButton variant="danger">Danger Button</StyledButton>

If the variant prop is not provided then the default variant will be used.

IMPORTANT: It's preferred that the component will not receive any change in variant prop to avoid style replacement. But this case is supported.

Documentation is work in progress.

Contributing

Please follow our contributing guidelines.

License

TastyCSS is a project by Outpost.

Released under the MIT License.

extensionbyteOffsetArrayBuffer#slicestylesetterfile systemspeedinstallerbannerReflect.getPrototypeOflengthomitfpsRegExp.prototype.flagscolourequalitymiddlewaretoolswatcherloadingObject.assignsqsyamlES2019WeakMapstructuredClonelimitedinternalperformantmruchannelArrayBuffer.prototype.sliceajaxmimetypescollection.es6bootstrap lessformattingavacss lessES7prettyraterdspatchspinnersettingssetImmediatepreserve-symlinksfastcopyunicodecallbackObject.valuesdebuggerdeeprm -frtelephonedatajsonpathform-validationi18nautoscalingschema0ebsl10nmochacontainsconfigurabledom-testing-librarynodeAsyncIteratorbrowserlistsyntaxtoSortedES6jsdom[[Prototype]]redirectrouteECMAScript 2016waftimeexpressionvesttslibprotocol-buffersclientio-tsvariablesloggingformssameValueZerojapanesekarmafunctionalmoment$.extendassertsutil.inspectmobilearraybuffermapes2015ec2joivaluefind-upcurlECMAScript 2023vpctakesymbolroute53limitdropJSON-SchemaObject.fromEntriesconcatdeepcopyviewnegative zerominimalWebSocketarrayreactwhatwgcoloroffsetArray.prototype.includesapiarraysloggerescapestringifiertrimLeftchineseESWeakSetairbnbES8awaitstringifyObject.keysthrottleterminalcoerciblepolyfill256httpssymlinkses2018glacierutilitylrushrinkwrapflagslinewrapfunctionsurlhotdeep-copystablepathhas-owntypedarrayseventDispatcheriteratorwatchcss-in-jstypemkdirsECMAScript 3listenersphoneUint16ArraytypedarrayelectronpropTypedArrayPromiseprogressimmutablextermtypanionObject.iselbaccessorefficientfindpropertycolumnparsepackageESnextArrayBufferdotenvwebconsumedircacheoutputchromereadiamvaluesnested cssreadablestreamgetterObject.entriesqueueMicrotaskprivateString.prototype.trimsidepackage managerwatchFilees5streamsnpmFloat64ArraypushArray.prototype.containskinesisjestdeep-clonewarningaccessibilityruntimeserializees-shimsweaksetes2017propertiesextraUint32ArrayRegExp#flagsquotesuperstructpyyamlmake dirmodulesartReactiveXlibphonenumberlesscssfastifyclireact-testing-libraryFloat32ArrayopenlinkBigUint64ArrayECMAScript 2015parentwgetliveURLsequenceslotflatMaptraverseECMAScript 2018ECMAScript 5cloudwatchserializerArray.prototype.filterlanguageless.jsentriesimportduplexsnsiteratesetPrototypeOfcollectionecmascriptmakelockfilelastperformancepluginpersistentlogshellinECMAScript 2019simpledbwhichfseventsArray.prototype.findLastcommandererrorRxjasminesortedformatnumbertapereduxBigInt64ArrayconcurrencyArrayauthenticationhashlazyownhooksparseridlebyteLengthjselmpnpm9fast-copytddeslintconfignameeslintpluginpackagesschemecomputed-typesInt32ArrayreducerlessCSSmime-dbfindLastclasseshttpxhres8taskimportexporttoobjectcorsbundlingenvironmenteventEmittersuperagentexecconnectnativespecregular expressionsnamesdebugemojiStreamstoStringTagfilterIteratorflagreact-hook-formfullwidthcopyworkertypescriptgetconcatMapArray.prototype.flatMappromiselook-uptrimRightnodejsdiffinvariantstylesheetargvargparsesyntaxerrorvalidrapidES2022awesomesaucemoduleMicrosoftajvcoreclassnameswidthstreamasyncconsolecssshamMapfetchgdprtapobjectInt16Arrayfixed-widthES5fasthardlinksredux-toolkitCSSStyleDeclarationStream@@toStringTagdefinePropertypostcssdirectory.envES2016variables in cssframework__proto__multi-packagebufferrequirematchAllgroupObject.getPrototypeOfquerystringfigletmonorepofastcloneelasticacheextendcircularchaigroupBymergedependency managerpipeflattenstatelessemrfunctioncjkwatchingquerystringinspecteslint-pluginpasswordlookES2020mixinsES2023testcore-jsless mixinswordwrapcallboundObservablesYAMLdayjsa11yprefixFunction.prototype.namefast-deep-copyredactprunecallbinddescriptorsdataviewsliceES3stylingweakmaprmdircharacterstypesafeUnderscoredescriptorkeyszeroindicatorECMAScript 7Array.prototype.flattenECMAScript 2021jQuerytypesarktypestarterargumentkoreanES2021regularUint8ClampedArrayhigher-orderideslintcheckforEachreact-hooksWebSocketsUint8ArrayserializationfindLastIndexInt8Arrayreducecharacterbufferscall-bindsafehashookformstyleguideassertionfilesharedarraybufferoncerandomreplaygetPrototypeOfworkspace:*typedmatchesReactiveExtensionsgradients cssroutingcode pointstoArrayreal-timepredictabledeepcloneECMAScript 6fast-deep-cloneauthgetopttrimEndrecursives3equaldeterministicpreprocessorECMAScript 2017guidgetintrinsicpositivedefinehelpersrfc4122es-shim APIobjmimeJSONutilitiestyped arrayqueueinferenceresolveansirmshimcompilerrm -rfuprangeerrorsymbolstypeofprototypewalkrgbyupjwtvisualautoprefixercloudtrailswfqsimmerdeletecalloptimistshebangutilSymbolregexscheme-validationfindupenumerabledescriptionfullcompareclass-validatortc39includesfluxbrowserECMAScript 2022tstrimStartawswriteencryptionless compilermovepostcss-pluginmkdirpTypeScriptformes-abstractObject.definePropertyObjecttoolkiteventscensorlocationTypeBoxsessharedieespreetextchromiumsetmetadatatesterES2015es7command-linereadablefast-cloneemitstateasciireusecryptsymlinkes2016bluebirdECMAScript 2020es6
1.0.0

1 year ago