1.0.2 • Published 2 years ago

voby-styled v1.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

voby-styled

Styled/css library designed for Voby

  • styled - Convert inline css style to class and update \<style>\ elements.
  • css - Easily change default settings via props
  • tw - Align your tooltip to your
  • keyframes - Align your tooltip to your
  • Tailwind CSS

This library inspired by styled-component, @emotion and supoort Tailwind Css

Installation

NPM

pnpm add voby-styled

Usage

Classed Styles - styled()

Convert inline css style to class and update \<style>\ elements.

@returns hashed CSS class name

 const color = ${'red'}
 <div class={styled`color:${color};`}></div>

Output:

 <head>
   <style>
   .hash-name {
     color:red;
   }
   </style>
 <head>
 <body>
   <div class='hash-name'></div>
 </body>

Updating \ in head and prepend className into ND component.

 const ND = cls('div')`color:${color};`

Note: styled method apply to class or className attribute

Stringed Styles - css()

Convert inline css style to HTMLElement style string.

const color = ${'red'}
<div style={css`color:${color};`}></div>

Output:

<div style='color:red;'></div>
const ND = css('div')`color:blue;`

Output:

<ND>blue color text here in a div container</ND>

Note: css method apply to style attribute Only string styles css is supported to reduce libarary size. Object bases css (CSSProperties) may or may not be implemented.

Tailwind Styles - tw()

Like styled() but this classes created in \\

Inline tailwind css style to element class

const color = ${'text-[red]'}
<div class={tw`absolute font-bold ${color}`}></div>

Output:

<div class='absolute font-bold text-red'></div>
const ND = tw('div')`text-red`

Prepend 'text-red' as className into ND component.

Keyframes - keyframes()

Convert inline keyframes to class and update element

Should work together with css()/styled() not tw()

const className = keyframes`
from {
  transform: scale(0) rotate(45deg);
	opacity: 0;
}
to {
  transform: scale(1) rotate(45deg);
	opacity: 1;
}`

Output:

 <head>
   <style>
    keyframes hash-name {
        from {
            transform: scale(0) rotate(45deg);
            opacity: 0;
        }
        to {
            transform: scale(1) rotate(45deg);
            opacity: 1;
        }
    }
   </style>
 <head>
 <body>
   <div style='animation: hash-name 1s'></div>
 </body>

License

MIT