An open API service indexing awesome lists of open source software.

https://github.com/pikacss/pikacss

The instant on-demand Atomic CSS-in-JS engine
https://github.com/pikacss/pikacss

atomic-css css css-in-js engine front-end typescript

Last synced: 4 days ago
JSON representation

The instant on-demand Atomic CSS-in-JS engine

Awesome Lists containing this project

README

          


✨ PikaCSS ✨


The instant on-demand Atomic CSS-in-JS engine




PikaCSS Logo


PikaCSS = Atomic CSS + CSS-in-JS




🚧 This project is still under development. 🚧

The API is not stable yet.





npm version


npm downloads


minzipped size


ci status



Ask DeepWiki

---

## Introduction

### What is PikaCSS?
> PikaCSS is an Atomic CSS-in-JS engine that allow you to write style in CSS-in-JS way and output in Atomic CSS way.
>
> Inspired by [UnoCSS](https://github.com/unocss/unocss), [WindiCSS](https://github.com/windicss/windicss), [TailwindCSS](https://github.com/tailwindlabs/tailwindcss), [StylifyCSS](https://github.com/stylify) and [Fela.js](https://github.com/robinweser/fela)!

### Why PikaCSS is been created?

Click to 👀 the reason

> I love the idea of Atomic CSS, there are many great Atomic CSS solutions out there, such as UnoCSS, WindiCSS, TailwindCSS, Stylify, etc.
>
> Unfortunately, I am poor to memorize the utility class names, so UnoCSS, WindiCSS or TailwindCSS is not for me.
>
> I am surprised by the zero learning curve concept of Stylify, but I don't like the idea of using a custom syntax to workaround the limitations of html class attribute.
>
> To solve the problems above, the CSS-in-JS way is the best way to write styles, but it is not the best way to output styles.
>
> So I created PikaCSS, it is a Atomic CSS-in-JS engine that allow you to write style in CSS-in-JS way and output in Atomic CSS way!

---

## Features
- 🥰 Framework Agnostic
> It is decoupled from any framework, so you can use it with any framework!
- 🛠 Zero Runtime
> It transforms CSS-in-JS to Atomic CSS at build time!
>
> ⚠️ **Important**: All arguments passed to `pika()` must be statically analyzable at build time. Runtime variables, function calls, or dynamic expressions are not supported.
- 📖 Zero Learning Curve
> In the simplest case, you just need to know the css property names!
- 🤖 TypeScript Auto-Completion
> It has built-in TypeScript support, so you can get auto-completion!

---

## License
[MIT](./LICENSE)