✨ 基于 Emotion 的动态 CSS-in-TS 解决方案
✨ Dynamic CSS-in-TS solution, based on Emotion ✨
Playground
You can think of tss-react as @emotion/jss.
It's, in essence, a type-safe equivalent of the JSS API but powered by Emotion,
just like @emotion/styled is the styled-components API but powered by Emotion.
This unfortunately prevents us from supporting [Server Component (RSC)](https://nextjs.org/docs/getting-started/react-essentials#server-components) in Next.js.
We remain hopeful for future support of RSC, contingent on [the provision of a suitable solution by Vercel and React](https://github.com/vercel/next.js/blob/dc6c22c99117bb48beedc4eed402a57b21f03963/docs/02-app/01-building-your-application/04-styling/03-css-in-js.mdx#L10-L12).
If you need RSC support today, you can consider _zero runtime_ solutions like Panda-CSS or Vanilla Extract,
but the expression of complex styles is significantly harder in this paradigm.
That been said, sometime it's just easier to inline the styles directly within your components, [TSS enables this as well](https://stackblitz.com/edit/vercel-next-js-bmc6dm?file=ui/TssLogo_intertwined.tsx).
$ syntax.@emotion cache.withStyles API featured, to help you migrate away from @material-ui v4.@emotion/react, it has very little impact on the bundle size alongside mui (~5kB minziped).'tss-react' can be used as an advantageous replacement for @material-ui v4 makeStyles and 'react-jss'.tss-react won’t be yet another entry in your peerDependencies.While this module is written in TypeScript, using TypeScript in your application is optional (but recommended as it comes with outstanding benefits to both you and your codebase).
Get started
The more ⭐️ the project gets, the more time I spend improving and maintaining it. Thank you for your support
Needless to mention, this library is heavily inspired by JSS, the OG CSS-in-JS solution.
Running the demo apps:
git clone https://github.com/garronej/tss-react
cd tss-react
yarn
yarn build
npx tsc -w & npx tsc --module es2015 --outDir dist/esm -w
# Open another Terminal
yarn start_spa # For testing in in a Create React App setup
yarn start_ssr # For testing in a Next.js setup
yarn start_appdir # Next.js 13 setup in App directory mode
To report a security vulnerability, please use the Tidelift security contact. Tidelift will coordinate the fix and disclosure.
暂无开放 Issues,或尚未同步最近议题。