0.5.5 • Published 3 years ago

candy-atomic v0.5.5

Weekly downloads
26
License
MIT
Repository
-
Last release
3 years ago

candy-atomic

Atomic CSS-in-JS solution

Install

npm install candy-atomic

Or:

yarn add candy-atomic

Usage

candy-atomic works with any framework, support both object styles and string syntax.

Basic Usage

import { css } from "candy-atomic";

const className = css`
  padding: 32px;
  background-color: tomato;
`;

/* 
const className = css({
  padding: "32px",
  backgroundColor: "tomato"
});
*/
render(<div className={className}>Box</div>);

Pseudoclasses

import { css } from "candy-atomic";

const className = css`
  padding: 32px;
  background-color: tomato;
  &:hover {
    color: white;
  }
`;

/* 
const className = css({
  padding: "32px",
  backgroundColor: "tomato",
  "&:hover": {
    color: "white",
  }
});
*/
render(<div className={className}>Box</div>);

Media Queries

import { css } from "candy-atomic";

const className = css`
  padding: 32px;
  background-color: tomato;
  &:hover {
    color: white;
  }
  @media (min-width: 1024px) {
    background-color: pink;
  }
`;

/* 
const className = css({
  padding: "32px",
  backgroundColor: "tomato",
  "&:hover": {
    color: "white",
  },
  "@media (min-width: 1024px)": {
    backgroundColor: "pink"
  }
});
*/
render(<div className={className}>Box</div>);

Child Selectors

import { css } from "candy-atomic";

const className = css`
  padding: 32px;
  background-color: tomato;
  &:hover {
    color: white;
  }
  @media (min-width: 1024px) {
    background-color: pink;
  }
  & > * + * {
    margin-left: 16px;
  }
`;

/* 
const className = css({
  padding: "32px",
  backgroundColor: "tomato",
  "&:hover": {
    color: "white",
  },
  "@media (min-width: 1024px)": {
    backgroundColor: "pink"
  },
  "& > * + *": {
    marginLeft: "16px",
  }
});
*/
render(<div className={className}>Box</div>);

Static/Server-Side Rendering

For SSR, use the sheet.extractCss() method to return the static CSS string after rendering a view.

import { sheet } from "candy-atomic"
import React from "react"
import ReactDOMServer from "react-dom/server"
import App from "./App"

const html = ReactDOMServer.renderToString(<App />)

const doc = `<!DOCTYPE html>
<style id="__candy">${sheet.extractCss()}</style>
${html}
`
0.5.5

3 years ago

0.5.4

3 years ago

0.5.3

3 years ago

0.5.2

3 years ago

0.5.0

3 years ago

0.5.1

3 years ago

0.4.0

3 years ago

0.3.0

3 years ago

0.2.9

3 years ago

0.2.7

3 years ago

0.2.6

3 years ago

0.2.8

3 years ago

0.2.5

3 years ago

0.2.4

3 years ago

0.2.3

3 years ago

0.2.1

3 years ago

0.2.0

3 years ago

0.1.17

3 years ago

0.1.18

3 years ago

0.2.2

3 years ago

0.1.16

3 years ago

0.1.15

3 years ago

0.1.14

3 years ago

0.1.13

3 years ago

0.1.12

3 years ago