JSS VS oocss

Compare JSS vs oocss and see what are their differences.

JSS

JSS is an authoring tool for CSS which uses JavaScript as a host language. (by cssinjs)

oocss

Object Oriented CSS Framework (by stubbornella)
Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
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
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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

Posts with mentions or reviews of JSS. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-28.
  • CSS in Perl
    2 projects | dev.to | 28 Dec 2023
    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
    2 projects | news.ycombinator.com | 30 Sep 2023
    > 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
    54 projects | dev.to | 23 Nov 2022
    JSS
  • programmatic design with JS?
    1 project | /r/reactjs | 19 Nov 2022
  • Is it possible to style a website in JS only and if it is, is it recommended? Are there some downsides?
    2 projects | /r/learnjavascript | 7 Apr 2022
    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
    2 projects | /r/worldnews | 2 Mar 2022
  • Amplify, React and Typescript
    1 project | dev.to | 20 Feb 2022
    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}

    ); })}
    ); }; const styles = { container: { width: 400, margin: "0 auto", display: "flex", //real weird issue: https://github.com/cssinjs/jss/issues/1344 flexDirection: "column" as "column", justifyContent: "center", padding: 20, }, todo: { marginBottom: 15 }, input: { border: "none", backgroundColor: "#ddd", marginBottom: 10, padding: 8, fontSize: 18, }, todoName: { fontSize: 20, fontWeight: "bold" }, todoDescription: { marginBottom: 0 }, button: { backgroundColor: "black", color: "white", outline: "none", fontSize: 18, padding: "12px 0px", }, }; export default App;
  • Gatsby JS — How to solve FOUC when using tss-react and Material UI v5
    4 projects | dev.to | 29 Jan 2022
    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
    2 projects | /r/webdev | 25 Oct 2021
    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?
    1 project | dev.to | 17 Sep 2021
    JSS

oocss

Posts with mentions or reviews of oocss. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-01-10.
  • Past Informs the Present: Begin’s Approach to CSS
    9 projects | dev.to | 10 Jan 2023
    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
    6 projects | dev.to | 29 Apr 2022
    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.
    42 projects | dev.to | 23 Nov 2021
    OOCSS
  • What are some Frontend best practices?
    1 project | /r/Frontend | 25 Oct 2021
    OOCSS - Object Oriented CSS
  • My friend is learning CSS and HTML. Can you find ten things he can improve in his coding style?
    6 projects | /r/css | 9 Jun 2021
    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?
    14 projects | dev.to | 8 May 2021
    ✨ BEM 💥 Object Oriented CSS 🌟 Atomic CSS

What are some alternatives?

When comparing JSS and oocss you can also consider the following projects:

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