css-in-js
crisp-react
css-in-js | crisp-react | |
---|---|---|
3 | 24 | |
5,532 | 185 | |
- | - | |
0.0 | 0.0 | |
about 3 years ago | about 1 year ago | |
JavaScript | TypeScript | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
css-in-js
-
Front-end Guide
As you might have realized by now, the front end ecosystem is saturated with tools, and unsurprisingly, tools have been invented to partially solve some of the problems with writing CSS at scale. "At scale" means that many developers are working on the same large project and touching the same stylesheets. There is no community-agreed approach on writing CSS in JS at the moment, and we are hoping that one day a winner would emerge, just like Redux did, among all the Flux implementations. For now, we are banking on CSS Modules. CSS modules is an improvement over existing CSS that aims to fix the problem of global namespace in CSS; it enables you to write styles that are local by default and encapsulated to your component. This feature is achieved via tooling. With CSS modules, large teams can write modular and reusable CSS without fear of conflict or overriding other parts of the app. However, at the end of the day, CSS modules are still being compiled into normal globally-namespaced CSS that browsers recognize, and it is still important to learn and understand how raw CSS works.
-
Why are "CSS classes generally better for performance than inline styles." ~ from react docs
There are a myriad of CSS-in-JS tools, many of which are zero-runtime giving you all the benefits of authoring in a single file without the drawbacks of inline styles. That's how I prefer to do my CSS with React anyway... Vanilla Extract and/or Linaria are my current favorites.
-
Why was CSS-In-JS ever a thing?
One thing I think you're really missing is what the output is of CSS-in-JS. There are tens of CSS-in-JS frameworks that can output anything from: CSS Module like classes (Linaria, Vanilla Extract), Atomic Classes (StyleX, PreStyle), to the more traditional (Styled Components, Emotion) many with zero runtime cost (ie no JS bloat). That's why I say CSS-in-JS is primarily about developer experience... the output can often be whatever you want it to be.
crisp-react
-
Best way to create Express websites
If TypeScript doesn't put you off (it's really a good choice for both backend and frontend), have a look at Crisp React.
-
Ask HN: Cloudflare Pages vs. Netlify vs. Others?
Ability to handle a monorepo with 2 builds depends on a particular monorepo. For example, Crisp React (https://github.com/winwiz1/crisp-react) has 2 logical projects: server (https://github.com/winwiz1/crisp-react/server) and client (https://github.com/winwiz1/crisp-react/client). Each project can be built separately. And this is the website built (both projects used) and deployed automatically by Cloudflare Pages: https://jamstack.winwiz1.com
-
Large React Site
You can use Crisp React to split a monolythic React SPA into several SPAs. Each SPA will have its own instance of React Router that is aware of the several pages that belong to that particular SPA.
-
What to look for on a slow website
The VM resorces such as CPU and memory should be used to handle API calls and return data. That's in case some webpages are dynamic and require API data. All static assetts including images are better to be served by a CDN. Which means your VM will serve the static assets to the CDN data centers and not to end users. Example: this website or that.
-
Best practices for sharing code between client and server in 2021?
For deployment you can use Docker multi-staged build to ensure the backend run-time environment doesn't contain the client build-time dependencies e.g. client/node_modules/. It improves security and reduces container's storage footprint. An example for React client and node server is here. Although this has nothing to do with code/types sharing.
-
There's never been a better time to build websites
https://github.com/winwiz1/crisp-react/blob/master/docs/benc...
Tailwind is powerful, consistent and comprehensive but again the advantages come not without a drawback: In order to use it effectively one needs to learn/memorise yet another CSS. I have better things to do and think it's more efficient to use a set of CSS management approaches:
-
How to serve static site from express in development?
Crisp React uses the same Express server in production and debugging (for full stack builds only).
-
Which is better CSS-in-JS or CSS for large and scalabe project?
The alternative approach is to use not many but several tools in a manner that utilises advantages while minimising drawbacks. You can read about it here, scroll down to the CSS bullet.
-
How to compose a suite of react apps into a single wrapper app?
You can have Login/authentication SPA, Reporting SPA, etc. Each SPA does its own routing as demonstrated here.
- How to deploy Node/React website on Google Compute Engine with hardened security starting at $3/month
What are some alternatives?
vanilla-extract - Zero-runtime Stylesheets-in-TypeScript
react-redux-universal-hot-example - A starter boilerplate for a universal webapp using express, react, redux, webpack, and react-transform
linaria - Zero-runtime CSS in JS library
create-react-app - Set up a modern web app by running one command.
styled-components - Visual primitives for the component age. Use the best bits of ES6 and CSS to style your apps without stress 💅
compress-create-react-app - An NPM package which allows easily adding post build compression to a create-react-app with minimal configuration
ESLint - Find and fix problems in your JavaScript code.
nestjs-bff - A full-stack TypeScript solution, and starter project. Includes an API, CLI, and example client webapp. Features include production grade logging, authorization, authentication, MongoDB migrations, and end-to-end testing.
Rollup - Next-generation ES module bundler
electron-react-boilerplate - A Foundation for Scalable Cross-Platform Apps
XO - ❤️ JavaScript/TypeScript linter (ESLint wrapper) with great defaults
generator-react-webpack - Yeoman generator for ReactJS and Webpack