JSS
oocss
Our great sponsors
JSS | oocss | |
---|---|---|
16 | 6 | |
7,052 | 6,234 | |
0.1% | - | |
0.0 | 0.0 | |
9 months ago | over 3 years ago | |
JavaScript | JavaScript | |
MIT License | 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.
JSS
-
CSS in Perl
Most websites those days are SPA applications that render on the front-side. There is also this trend of CSS in JavaScript also knowns as JSS that is debatable (makes everything overcomplicated), but in some specific cases, can be justified and very useful.
-
CSS Solves Auto-Expanding Textareas
> why tf aren't we using JS for styling already
People are and have been for quite a while
https://cssinjs.org/
-
Front-end Guide
JSS
- programmatic design with JS?
-
Is it possible to style a website in JS only and if it is, is it recommended? Are there some downsides?
It is possible. At its most simple, you could just modify the style property on every element. That's not generally considered best practice, but there are a number of "CSS-in-JS" libraries which streamline the process. The typically generate dynamic CSS classes and apply them to your elements. A big one is JSS.
- Ukraine calls on gaming industry to suspend business with Russia
-
Amplify, React and Typescript
import React, { useState, useEffect } from "react"; import Amplify, { API, graphqlOperation } from "aws-amplify"; import { createBlog } from "./graphql/mutations"; import { listBlogs } from "./graphql/queries"; import awsExports from "./aws-exports"; import { ListBlogsQuery } from "./API"; Amplify.configure(awsExports); const initialState = { name: "", body: "" }; const App = () => { const [formState, setFormState] = useState(initialState); const [blogs, setBlogs] = useState(); useEffect(() => { fetchBlogs() }, []); const handleInputChange = (event: React.ChangeEvent) => { setFormState({ ...formState, [event.target.name]: event.target.value }); }; const fetchBlogs = async () => { try { const blogData = (await API.graphql(graphqlOperation(listBlogs))) as { data: ListBlogsQuery } setBlogs(blogData.data); } catch (err) { console.log("Error fetching blogs" + err); } }; const addBlog = async () => { try { if (!formState.name || !formState.body) return; const blog = { ...formState }; if (blogs) { await API.graphql(graphqlOperation(createBlog, { input: blog })); await fetchBlogs(); setFormState(initialState); } } catch (err) { console.log("error creating blog: ", err); } }; return (
Amplify Todos
Create Blog {blogs && blogs?.listBlogs?.items?.map((blog, index) => { return ({blog?.name}
{blog?.body}
-
Gatsby JS — How to solve FOUC when using tss-react and Material UI v5
Material UI v5 brought some amazing updates, but switching from JSS to Emotion had an arguably nasty side-effect: it was no longer as straightforward to group your component styles in classes. Fortunately, a fantastic library emerged that allowed developers to not only reduce the extreme pain from migrating all their classes from v4's makeStyles to emotion, but to also to continue to writing classes in practically the same syntax, with wonderful TS type-safety. This library was tss-react, and it was one of my favorite open source discoveries of 2021.
-
Feel like that studying as a self-taught is taking me further than studying at university
I started writing a long response, but I want to add that a simple CRA + JSS + TS (named exports only) stack solves or abstracts away most of these issues.
-
What is CSS in JS?
JSS
oocss
-
Past Informs the Present: Begin’s Approach to CSS
Perhaps the most important CSS methodology to emerge during the web’s transition towards application-like websites was Object Oriented CSS (OOCSS), devised by Nicole Sullivan in 2009. Nicole’s now legendary article, ‘The Media Object Saves Hundreds of Lines of Code’, represented a fundamental rethinking on the composition of CSS rulesets and their relationship to HTML content. Instead of writing CSS styles around specific HTML content or basing styles on the location of content within the DOM, OOCSS prioritized writing reusable styling rules based on design patterns (in the case of the media object: ‘a fixed size media element (e.g. image or video) along with other variable size content (e.g. text)’). As perhaps the first instance of a CSS methodology systematically informed by a visual pattern language, OOCSS was also a critical step towards a more modular, reusable approach to writing CSS.
-
Got Messy Spaghetti Stylesheets? 4 Techniques for Managing CSS Complexity
Component based CSS frameworks originating with OOCSS inherently limits selector scope to only elements inside the 'CSS object'.
-
The React roadmap for beginners you never knew you needed.
OOCSS
-
What are some Frontend best practices?
OOCSS - Object Oriented CSS
-
My friend is learning CSS and HTML. Can you find ten things he can improve in his coding style?
OOCSS - (Object-oriented CSS) 2. Use a preprocessor. They fill the lacking features of CSS and helps you write more readable, and smaller reusable pieces of CSS. Some popular preprocessors are: 1. Sass 2. Less 3. Stylus 3. Reduce redundancy. You are using font-weight: bold for the header, but you are also setting it for the div inside. CSS stands for Cascading Style Sheets because styles in CSS are cascading, meaning child elements will inherit styles from parents. 4. Avoid using strong and complex selectors. You are using an id, but a class would do just fine. Having strong selectors means you will have a harder time overriding them later on if needed. 5. Avoid using !important as much as possible. Only use it for utility and helper classes if you must, which need to override anything, such as hiding or displaying an element. 6. Don't use inline CSS, unless your inlining critical CSS. Instead, import styles using a link tag in your head element. (Critical CSS refers to above-the-fold content. Inlining it can help users see a properly rendered page more quicker) 7. Use semantic HTML. You are assigning a header class to a div, which could have been an h1/2/3/n element. This not only helps in terms of accessibility but can also help to improve your SEO score. 8. Use rem for typography. You are using em which cascades, meaning if you set the root element to have 12px, a main element with 2em will have the font size of 24px. If you put a div inside of it with 2em, it will have a font size of 48px, meaning that the size is duplicated. This makes it hard to track down values for deeply nested elements. Instead, use rem which stands for root em, and does not cascade. 9. Make sure your formatting is consistent. You use opening brackets both after a selector and on a new line. Tools like stylelint can help you enforce certain rules to keep your code more consistent, which helps to improve readability and maintainability. 10. Outsource your colors / sizes / spacings into variables. Everything that is bound to change can be in a configuration file to make things more flexible. You can either use CSS variables for this, or a preprocessor. 11. Nothing is written in stone, feel free to come up with your own set of rules that helps you create a more dev-friendly environment. But most importantly, keep things consistent.
-
18 Alternatives to Using Tailwind CSS: Do You Really Need It?
✨ BEM 💥 Object Oriented CSS 🌟 Atomic CSS
What are some alternatives?
emotion - 👩🎤 CSS-in-JS library designed for high performance style composition
stylelint - A mighty CSS linter that helps you avoid errors and enforce conventions.
styled-components - Visual primitives for the component age. Use the best bits of ES6 and CSS to style your apps without stress 💅
Sass - Sass makes CSS fun!
React CSS Modules - Seamless mapping of class names to CSS modules inside of React components.
Aphrodite - Framework-agnostic CSS-in-JS with support for server-side rendering, browser prefixing, and minimum CSS generation
Atomizer - A library to create small, reusable CSS that scales as your website grows.
tss-react - ✨ Dynamic CSS-in-TS solution, based on Emotion
stylus - Expressive, robust, feature-rich CSS language built for nodejs
styled-jsx - Full CSS support for JSX without compromises
PostCSS - Transforming styles with JS plugins