css-modules
WHATWG HTML Standard
Our great sponsors
css-modules | WHATWG HTML Standard | |
---|---|---|
86 | 137 | |
17,359 | 7,666 | |
0.4% | 1.6% | |
5.5 | 9.4 | |
10 days ago | 7 days ago | |
HTML | ||
- | GNU General Public License v3.0 or later |
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.
WHATWG HTML Standard
-
Here are the 10 projects I am contributing to over the next 6 months. Share yours
WHAT-WG HTML
- Add Writingsuggestions="" Attribute
-
Streaming HTML out of order without JavaScript
There's a long-standing WHATWG feature request open for it here: https://github.com/whatwg/html/issues/2791
And several userland custom element implementation, like https://www.npmjs.com/package//html-include-element
One of the cool things that you can do with client-side includes and shadow DOM is render the included HTML into a shadow root that has s, so that the child content of the include element is slotted into a shell implemented by the included HTML.
This lets you do things like have the main page be the pre-page content and the included HTML be a heavily cached site-wide shell, and then another per-user include with personalized HTML - all cached appropriately.
- An HTML Switch Control
-
YouTube video embedding harm reduction
The `allow` attribute on iframes is a relatively recent API addition from 2017
-
Htmz β a low power tool for HTML
I think there's a pretty strong argument at this point for this kind of replacing DOM with a response behavior being part of the platform.
I think the first step would be an element that lets you load external content into the page declaratively. There's a spec issue open for this: https://github.com/whatwg/html/issues/2791
And my custom element implementation of the idea: https://www.npmjs.com/package/html-include-element
Then HTML could support these elements being targets of links.
-
The Ladybird Browser Project
> Consider https://www.ietf.org/rfc/rfc1866.txt vs https://html.spec.whatwg.org/multipage/
I thought, oh, that's not so bad. Then I realized what I was looking at was a 10 page index.
- HTML Living Standard
-
Is Htmx Just Another JavaScript Framework?
I'd love to see something like HTMX get standardized, but I'm extremely pessimistic for HTMX's prospects for standardization in HTML.
In talking to a few standards folks about it, they've all said, "oh, yeah, you want declarative AJAX; people have tried and failed to get that standardized for years." Even just trying to get
to target a section of the page that isn't an has been argued about and hashed out for years.<p>Why is that? Well, for example, here's the form you have to fill out to start standardizing a front-end feature. <a href="https://github.com/whatwg/html/issues/new?assignees=&labels=addition%2Fproposal%2Cneeds+implementer+interest&projects=&template=1-new-feature.yml">https://github.com/whatwg/html/issues/new?assignees=&labels=...</a><p>It asks three main questions:<p>* What problem are you trying to solve? -
New in Chrome 120 back button detection
The issue with a single global event handler is discussed here: https://github.com/WICG/close-watcher#a-single-event
If you use popover="", you get the kind of functionality you're discussing for free. For
, the discussion is in progress and reaching a conclusion: https://github.com/whatwg/html/issues/9373
What are some alternatives?
emotion - π©βπ€ CSS-in-JS library designed for high performance style composition
caniuse - Raw browser/feature support data from caniuse.com
esbuild-plugin-solid
WebKit - Home of the WebKit project, the browser engine used by Safari, Mail, App Store and many other applications on macOS, iOS and Linux.
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.
Retroactive - Retroactive only receives limited support. Run Aperture, iPhoto, and iTunes on macOS Sonoma, macOS Ventura, macOS Monterey, macOS Big Sur, and macOS Catalina. Xcode 11.7 on macOS Mojave. Final Cut Pro 7, Logic Pro 9, and iWork β09 on macOS Mojave or macOS High Sierra.
styled-components - Visual primitives for the component age. Use the best bits of ES6 and CSS to style your apps without stress π
standards-positions
postcss-nested - PostCSS plugin to unwrap nested rules like how Sass does it.
browser
@artsy/fresnel - An SSR compatible approach to CSS media query based responsive layouts for React.
exploits