css-modules
styled-components
Our great sponsors
css-modules | styled-components | |
---|---|---|
86 | 223 | |
17,368 | 40,087 | |
0.5% | 0.4% | |
5.5 | 8.4 | |
17 days ago | 18 days ago | |
TypeScript | ||
- | 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-modules
-
Selectors for Humans, Hashes for Machines
One aspect of CSS modules that I truly appreciate is its ability to compress class names into very short hashes. This feature allows me to keep my CSS selectors as long and descriptive as needed, while still compressing them into concise three or four character hashes. It aligns with my rule for CSS: selectors should be written for human readability, but compressed for machine efficiency.
-
Architecture: Micro frontends
Use methodologies such as BEM, and technologies including CSS modules, CSS-in-JS, and Shadow DOM to isolate the styles of each micro-application and prevent conflicts, thus ensuring reliable encapsulation and modularity.
-
Use TailwindCSS prefixes for shared design system components
For many years, Culture Amp took the second option, and distributed shared components without compiled CSS. This meant that every app that consumed shared components needed to include the necessary CSS build tooling – at that time CSS Modules and node-sass – with a compatible version and configuration. This was relatively easy to set up, but over time proved difficult to maintain. When node-sass was deprecated in favour of (the much faster but slightly incompatible) Dart Sass, this demanded a difficult lock-step migration across all those codebases, which we have yet to achieve. And as new applications have switched to Tailwind for their own styles, they've had to continue to maintain those old build tools in parallel for the shared components' styles.
- I'm Writing CSS in 2024
-
CSS Modules Still a Thing?
So CSS modules are a form of 3rd-party CSS-in-JS, where what you import are the class names, which are then usually obfuscated etc at compile time, and all the actual style declarations are (usually) compiled into a single css file or tag as part of the bundling process. You can read the og docs on'em here, and you've probably seen'em used in React like:
import styles from "./styles.css"; function Example(){ return (
Hello
); }They predate the ability to import non-js files in vanilla by a good while, and rely on the compile process to translate your
.css
files into.js
files that can be imported using whichever loader you use in your bundler.Import assertions are a vanilla way to import non-js files by telling the browser how to import them;
assert { type: "css" }
says to treat the file as CSS and create aCSSStyleSheet
,assert { type: "json" }
says to treat the file as JSON and create a JSON object - and hopefullyassert { type: "html" }
will hopefully arrive soon and create a#document-fragment
or something similar.Hope that clears it up!
-
An Overview of 25+ UI Component Libraries in 2023
Extensions of CSS: for example, Sass, Less, Tailwind, CSS Modules, to make stuff look a certain way on your own.
-
Creating a Component Library Fast🚀(using Vite's library mode)
The components are styled with CSS modules. When building the library, these styles will get transformed to normal CSS style sheets. This means that the consuming application will not even be required to support CSS modules. (In the future I want to extend this tutorial to use vanilla-extract instead.)
-
All 7 ways to deal with CSS most never tried
NextJS comes with built-in support for CSS Modules which allows you to scope your styles locally in individual components without worrying about name collisions or messing up other parts of the codebase.
-
Vanilla+PostCSS as an Alternative to SCSS
CSS modules are not to be confused with mixins, as they serve the opposite purpose. While mixins are components or functions to be reused globally, modules are style sheets with a local scope used in a similar way as styled components in React.
-
The Future of CSS
CSS Modules CSS Modules is a pre-processing step: by default, styles are scoped locally to the current component, and the transpiler ensures no conflicts.
styled-components
-
Approaches to Styling React Components, Best Use Cases
CSS-in-JS is a styling technique wherein CSS is composed using JavaScript instead of defined in external files. This method allows CSS to be scoped locally to components rather than globally, reducing the probability of style conflicts. Utilizing JavaScript also enables dynamic styling easily aligned with the component's state or props. Libraries like Styled Components and Emotion are popular choices in the React ecosystem for adopting this method.
-
Growth Hacking Killed GitHub Stars
In 2023, I had a chat with Max Stoiber, CEO of Stellate, on a podcast to learn about his early success on GitHub. His first open-source project, react-boilerplate/react-boilerplate, gained a whopping 10k stars in just one weekend after appearing on the homepage of Hacker News. This success led Max to drop out of university and create several other popular open-source projects, including styled-components. This library accelerates the process of building styles in React components.
- Creating Nx Workspace with Eslint, Prettier and Husky Configuration
-
The Secret Weapon of Top Developers: 7 React JS Libraries You Can't Afford to Ignore
Embracing the styled-components library allows developers to write actual CSS code to style their components. It utilizes tagged template literals to style components, enabling a seamless integration of styles within the component's JavaScript file. This approach eliminates the mapping between components and styles, thus enhancing developer productivity and component reusability.
-
The 20 most used React libraries
styled-components: Allows for maintainable styling with CSS-in-JS. Learn more
- Iniciando um backoffice rapidamente com AdminJS
-
Styling React 2023 edition
Over the past few years, I've worked with React apps utilising various CSS-in-JS libraries, starting with styled-components, transitioning through emotion, Theme UI, and finally Stitches. I've also integrated MUI, Mantine, and Chakra in numerous client projects.
-
The Ultimate Tech Stack for Building a Full-Stack MVP and Iterating Quickly
There are several alternatives to MUI. shadcn/ui is a modern alternative that is very popular. Ant Design is also a great alternative. Charkra UI can also be used as a UI Framework. Some people suggest just using styled components. Some use Tailwind CSS. Yet, for both styled components and Tailwind CSS, one still writes a lot of CSS. This might not provide the best developer experience compared to using a UI Framework, especially if we aim to avoid designing all the pages on the website.
-
React Ecosystem in 2024
Website: Styled Components
-
Building an entire fullstack project with Firebase 10 and React (Vite)
The project is build using several ready made components available within, Mantine. It’s a fully featured React components library. However some places still use some custom CSS-in-JS so we used some good ol’ styled components.
What are some alternatives?
emotion - 👩🎤 CSS-in-JS library designed for high performance style composition
styled-jsx - Full CSS support for JSX without compromises
esbuild-plugin-solid
chakra-ui - ⚡️ Simple, Modular & Accessible UI Components for your React Applications
stencil - A toolchain for building scalable, enterprise-ready component systems on top of TypeScript and Web Component standards. Stencil components can be distributed natively to React, Angular, Vue, and traditional web developers from a single, framework-agnostic codebase.
postcss-nested - PostCSS plugin to unwrap nested rules like how Sass does it.
styletron - :zap: Toolkit for component-oriented styling
@artsy/fresnel - An SSR compatible approach to CSS media query based responsive layouts for React.
JSS - JSS is an authoring tool for CSS which uses JavaScript as a host language.
PostCSS - Transforming styles with JS plugins