@artsy/fresnel
classnames
@artsy/fresnel | classnames | |
---|---|---|
8 | 94 | |
1,212 | 17,367 | |
0.9% | - | |
7.1 | 8.4 | |
about 1 month ago | 5 days ago | |
TypeScript | JavaScript | |
GNU General Public License v3.0 or later | 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.
@artsy/fresnel
-
Responsive Rendering With SSR
This! If you want to limit double rendering afterwards you could look into something like fresnel to automatically unmount unused breakpoints’ components after hydration.
-
I’ve built two type-safe React hooks that will help you in making your apps more accessible
the SSR default I'm guessing is the fancy one, it feels like due to SSR the most flexible way is to use media queries so it is correct on the first paint. maybe components would be better than hooks, something like https://github.com/artsy/fresnel
-
How to combine React Native Web + responsivity + NextJS SSR, to get SEO
This article is extracted from this github discussion, which goes into greater detail on how to achieve this with the libraries Dripsy (a component design system) and Fresnel (SSR w/ media queries).
-
SSR for multiple breakpoints using React
Also, take a look at a library @artsy/fresnel, which uses a similar approach to solve CLS issues in server-side rendered applications.
-
Magnus UI vs. Dripsy - Chakra UI alternatives for React Native (+Web)
If you want both SSR and RNW, then you are not so lucky. But you can read my research of the options you have, in this discussion: How to combine React Native Web (RNW) + Responsive styles (media queries) + NextJS Server-Side Rendering (SSR), to get SEO on the web. If you don't want to make a compromise like the current options, there is a library called Fresnel, which has some promise to afford this combination. But it is not quite there yet. So please consider contributing to Fresnel in the RNW+NextJS compatibility issue or the useMedia() hook issue, so that Dripsy could be upgraded to use Fresnel again to support SSR.
-
Making Next.js work with react-responsive
Something I starred a while ago: https://github.com/artsy/fresnel
-
How to use ChakraUI on native mobile?
Uses actual CSS breakpoints on web, to become responsive, even when using SSR. Uses Fresnel to achieve this. CSS breakpoints on web will rely on the mobile device's user agent for most cases. But since this can be inaccurate, it also uses pre-emptive server-side breakpoint generation. Basically, if the mobile user-agent cannot be accurately detected, Fresnel renders all media query breakpoints on the server (a bit of extra work for the server, since it might lead to rendering more components). So the client's browser will receive all breakpoints on first render and can immediately start rendering according to the correct ones. Instead of waiting for React to rehydrate before only then running the media queries with CSS-in-JS, which would have given latency and potentially unwanted visual side-effects. This becomes most acute when you are using SSR, and thus don't want to wait for rehydration on the client to start showing the responsively laid out content.
-
Full Stack Quiz Game with NextJS - My Journey
@artsy/fresnel - Lib to create media queries components in JSX.
classnames
-
Gatsby blog: Building SEO-friendly blog with BCMS code starter
The component needs the classname dependency and a search icon which I referenced to work. So install the classname package and download the search icon below.
-
The 20 most used React libraries
classnames: Makes dynamic CSS class application a breeze. Learn more
-
Beyond the Basics: Exploring TailwindCSS and Linaria in Next.js - From Installation to Performance Optimization
But of course, it is a button, so it could have multiple variants: primary and secondary(you can increase the number of customizable params, but we will limit it to 1, variant). To implement this you can use any library for combining classnames, for example, classnames, clsx. Let’s use the classic one, "classnames".
-
Is it okay to split long lists of class names across multiple lines? Why don't you?
Use classnames and you can comma delimited your class names where needed.
-
Creating an Image Upload Modal with Crop and Rotate Functionality in React
To get started with our image modal implementation, i'll assume you already have a React project set up. For UI i’m using Tailwind CSS. But you can use any UI library as your wish. For the image cropping and rotating functionality, we'll be utilizing the react-easy-crop library. This library provides a simple and intuitive way to crop and interact with images and videos within a React component. We will also use the heroicons and classnames libraries in our tutorial. To install all the libraries and their dependencies, open your terminal and navigate to your project's directory. Run the following command:
-
TailwindCSS & Template Literals
Save yourself some headache and use https://github.com/JedWatson/classnames
-
Dynamic CSS based on props: conditional className or style? (using CSS modules)
There is an NPM module called classnames that makes this a bit easier: https://www.npmjs.com/package/classnames
-
Type Safe Tailwind and SCSS Modules
To use the global Tailwind types from styles/cssClasses.d.ts, I've leveraged a lot of work from this post, so credit goes there for a lot of the complex TypeScript wizardry that makes things work. In essence, it builds upon the classnames (or clsx) to provide a helper function that gives us with the type safety we're after. This cleverness means we get type checking that works with whitespace, multiple classes (e.g., "container p-5")and arbitrary values (e.g., "border-[5px]"). The input "container p-5 invalid-class" provides the nifty error message:
-
Simplify Your Tailwind CSS Workflow with tailwind-fun
but I wouldn't recommend it, because I think the point of using tailwind is to not having to abstract class into component based style. it even better to write tailwind classes into the html directly and to use tailwind-fun sparingly and only if you needed to add logic to your classes. tailwind-fun purpose is more like of https://www.npmjs.com/package/classnames rather than any other css library
-
For tailwind users, how do you quickly make sense of what's going on in your html/jsx without semantic css class names? For instance `card`, `card--text`, `card--title` conveys a lot of information that i've felt missing so far in my tailwind journey.
Use the classnames library, that way I can group the utility classes together (one line) and break them up into multiple lines, and additionally have some of them be conditional based on variables/parameters;
What are some alternatives?
css-modules - Documentation about css-modules
clsx - A tiny (239B) utility for constructing `className` strings conditionally.
react-toastify - React notification made easy 🚀 !
tailwind-merge - Merge Tailwind CSS classes without style conflicts
react-native-media-query - Media queries for react-native and react-native-web
chakra-ui - ⚡️ Simple, Modular & Accessible UI Components for your React Applications
styled-components - Visual primitives for the component age. Use the best bits of ES6 and CSS to style your apps without stress 💅
ChatUI - The UI design language and React library for Conversational UI
linaria - Zero-runtime CSS in JS library
zeit-ui-react - A design system for building modern websites and applications.
React CSS Modules - Seamless mapping of class names to CSS modules inside of React components.