0.17.1 • Published 3 years ago
@kaze-style/swc-plugin v0.17.1
Features
- Extract - Can choose when to extract css is buildtime or runtime(RSC is buildtime only)
- Atomic - Select atomic css with $
- Merge - Style merging ignoring css specificity (atomic css only)
- Minimal - 0.3kb runtime by buildtime extract
- TypeScript - Type-safe styles via csstype
- Theme - Consistent styling using "@kaze-style/themes"
Example
// App.style.ts
import { style, globalStyle } from '@kaze-style/core';
globalStyle({
  html: {
    lineHeight: '1.5',
  },
});
export const classes = style({
  // not Atomic CSS
  container: {
    margin: '20px',
    padding: '20px',
  },
  // atomic CSS
  $base: {
    color: 'red',
    background: 'black',
  },
  // atomic CSS
  $action: {
    color: 'blue',
  },
});// App.tsx
import { mergeStyle } from '@kaze-style/core';
import { classes } from './App.style';
export const App = ({ action }) => {
  return (
    <div className={style.container}>
      <p className={mergeStyle(classes.$base, action && classes.$action)}></p>
    </div>
  );
};Setup Next.js(buildtime extract)
//next.config.mjs
import { withKazeStyle } from '@kaze-style/next-plugin';
/** @type {import('next').NextConfig} */
const nextConfig = {};
export default withKazeStyle(nextConfig);Inspiration
KazeStyle was designed with reference to several CSS in JS libraries.