DEV Community

Iain Freestone
Iain Freestone

Posted on

๐Ÿš€10 Trending projects on GitHub for web developers - 28th January 2022

Trending Projects is available as a weekly newsletter please sign up at Stargazing.dev to ensure you never miss an issue.

1. ui-box

ui-box is a low level CSS-in-JS solution that focuses on being simple, fast and extensible. All CSS properties are set using simple React props, which allows you to easily create reusable components that can be enhanced with additional CSS properties.

GitHub logo segmentio / ui-box

Blazing Fast React UI Primitive

๐Ÿ“ฆ ui-box is a low level CSS-in-JS solution that focuses on being simple, fast and extensible. All CSS properties are set using simple React props, which allows you to easily create reusable components that can be enhanced with additional CSS properties. This is very useful for adding things like margins to components, which would normally require adding non-reusable wrapper elements/classes.

Install

yarn add ui-box
# or
npm install --save ui-box
Enter fullscreen mode Exit fullscreen mode

Usage

import Box from 'ui-box'

function Button(props) {
  return (
    <Box
      is="button"
      padding="10px"
      background="red"
      {...props}
    />
  )
}

function Example() {
  return <Button disabled margin="10px">Hi</Button>
}
Enter fullscreen mode Exit fullscreen mode

The above example component renders a red, disabled <button> with margins.

API

Box (default export)

is

Type: string or React component type
Default: 'div'

Lets you change the underlyingโ€ฆ


2. clay.css

Easily add claymorphic styles to any HTML element with this micro class and SASS mixin.

GitHub logo codeAdrian / clay.css

Easily add claymorphic styles to any HTML element with this micro class and SASS mixin.

clay.css

Extensible and configurable micro CSS util class and SASS mixin for adding claymorphism styles to your components.

clay.css - Helps you create inflated fluffy 3D claymorphic HTML shapes | Product Hunt

About

Claymorphism is a fresh new concept. The name was coined by Michaล‚ Malewicz and the designers are excited to explore the possibilities of this approach to UI design.

It features inflated fluffy 3D elements which look charming and introduce a much more vibrant look compared to the usual flat designs.

What sets claymorphism apart from neumorphism is that it floats above the background instead of being connected to it, eliminating accessibility issues and design restrictions of the latter.

Installation

CDN

<link
  rel="stylesheet"
  href="https://unpkg.com/claymorphism-css/dist/clay.css"
/&gt

NPM

npm i claymorphism-css
yarn add claymorphism-css

Manual

Download and add the dist/clay.css or dist/clay.scss manually.

Usage

This is a minimal, single class CSS util that applies only basic claymorphism styles:

  • Background
  • Border radius
  • One outset shadow
  • Two inset shadows
<div class="clay">
โ€ฆ
Enter fullscreen mode Exit fullscreen mode

3. React Sticky Box

Sticky Boxes with sensible behaviour if the content is bigger than the viewport.

GitHub logo codecks-io / react-sticky-box

Sticky boxes for contents of all sizes

Version Downloads/Week Minified Bundlesize Minified Gzipped Bundlesize

React Sticky Box

Sticky Boxes with sensible behaviour if the content is bigger than the viewport.

Check out the docs to see it in action

>> react-sticky-box.codecks.io <<

Installation

npm install react-sticky-box


Changelog





4. Monio

The most powerful IO monad implementation in JS, possibly in any language!

GitHub logo getify / monio

The most powerful IO monad implementation in JS, possibly in any language!

Monio

Build Status npm Module Coverage Status

Monio (mล'ne-yo) provides an async-capable IO Monad (including "do" style) for JS, with several helpful companion monads (like Maybe and Either) thrown in.

Monio's IO/IOx is the most powerful IO monad implementation in JS, possibly in any language!

Note: This is obviously a marketing claim, not a provable mathematical/scientific assertion. Nevertheless, it's true!

Just("Welcome, Monads")
.concat(Just(" And Friends"))
.map(v => v.toUpperCase())
.fold(Maybe.from)
.map(v => v + "!")
.fold(
    () => IO.of("--empty--"),
    greetings => IO(() => console.log(greetings))
)
.run();
// WELCOME, MONADS AND FRIENDS!
Enter fullscreen mode Exit fullscreen mode

Wait, What's A "Monad"?

If you're already comfortable with Functional Programming (FP), and you're at leastโ€ฆ


5. Color Legend Element

A custom element (web component) suitable for use as a legend in data visualizations

GitHub logo clhenrick / color-legend-element

A custom element (web component) suitable for use as a legend in data visualizations

Color Legend Element

Screenshot of color-legend-element

<color-legend></color-legend>
Enter fullscreen mode Exit fullscreen mode

A Custom Element suitable for use as a legend in data visualizations. Built with Lit/Lit-Element and D3JS.

Features

  • Render legends for continuous, discrete, and categorical data.
  • Uses d3-scale's concept of a domain and a range for mapping values to visual marks.
  • Compatable with color interpolators from d3-scale-chromatic
  • Customizable via its properties / attributes and CSS variables.
  • Framework and bundler not required, just add a <script> tag and use it!
  • Small bundle size (52kb minified and 18kb gzipped)

Installation

NOTE: the <color-legend> assumes D3JS is available as a dependency. At the very least this should include the following modules from the D3JS library: d3-scale, d3-array, d3-format, d3-interpolate, and d3-scale-chromatic (if using one of d3's color scheme interpolators).

Install via npm:

npm install color-legend-element
Enter fullscreen mode Exit fullscreen mode

You may then import the <color-legend> in the desired ES Module:

โ€ฆ
Enter fullscreen mode Exit fullscreen mode

6. Computer Science courses with video lectures

List of Computer Science courses with video lectures.


7. npm-run-all

A CLI tool to run multiple npm-scripts in parallel or sequential.

GitHub logo mysticatea / npm-run-all

A CLI tool to run multiple npm-scripts in parallel or sequential.

npm-run-all

npm version Downloads/month Build Status Build status Coverage Status Dependency Status

A CLI tool to run multiple npm-scripts in parallel or sequential.

โคด๏ธ Motivation

  • Simplify. The official npm run-script command cannot run multiple scripts, so if we want to run multiple scripts, it's redundant a bit. Let's shorten it by glob-like patterns. Before: npm run clean && npm run build:css && npm run build:js && npm run build:html After: npm-run-all clean build:*
  • Cross platform. We sometimes use & to run multiple command in parallel, but cmd.exe (npm run-script uses it by default) does not support the &. Half of Node.js users are using it on Windows, so the use of & might block contributions. npm-run-all --parallel works well on Windows as well.

๐Ÿ’ฟ Installation

$ npm install npm-run-all --save-dev
# or
$ yarn add npm-run-all --dev
Enter fullscreen mode Exit fullscreen mode
  • It requires Node@>=4.

๐Ÿ“– Usage

CLI Commands

This npm-run-all package provides 3 CLI commands.


8. Semi-UI

A modern, comprehensive, flexible design system and React UI library

GitHub logo DouyinFE / semi-design

A modern, comprehensive, flexible design system and React UI library

Semi-UI

A modern, comprehensive, flexible design system and UI library. Quickly build beautiful React apps

NPM FIGMA LICENSE BUILD-JS BUILD-CSS CODECOV Chromatic Cypress

English | ็ฎ€ไฝ“ไธญๆ–‡

๐ŸŽ‰ Features

  • ๐Ÿ’ช Up to 58 high-quality Components.
  • ๐Ÿ’… 2000+ Design Tokens. Flexible custom render structure. Build your own design system.
  • ๐ŸŒ Internationalization Support for Dozens of Languages.
  • ๐Ÿ‘ Written in Typescript, Friendly Static Type Support.
  • ๐Ÿฅณ SSR (Server Side Rendering) Compatible.

๐Ÿ”ฅ Install

# with npm
npm install @douyinfe/semi-ui

# with yarn
yarn add @douyinfe/semi-ui
Enter fullscreen mode Exit fullscreen mode

๐Ÿ‘ Usage

Here is a quick example to get you started, it's all you need:

import React from 'react';
import ReactDOM from 'react-dom';
import { Button, Switch } from '@douyinfe/semi-ui';
const App = () => (
  <>
    <Button type='primary'>primary button</Button>
    <Switch size='large' />
  </>
);

ReactDOM.render(<App />,
โ€ฆ
Enter fullscreen mode Exit fullscreen mode

9. Underscore.js

Underscore.js is a utility-belt library for JavaScript that provides support for the usual functional suspects (each, map, reduce, filter...) without extending any core JavaScript objects.

GitHub logo jashkenas / underscore

JavaScript's utility _ belt

                   __
                  /\ \                                                         __
 __  __    ___    \_\ \     __   _ __   ____    ___    ___   _ __    __       /\_\    ____
/\ \/\ \ /' _ `\  /'_  \  /'__`\/\  __\/ ,__\  / ___\ / __`\/\  __\/'__`\     \/\ \  /',__\
\ \ \_\ \/\ \/\ \/\ \ \ \/\  __/\ \ \//\__, `\/\ \__//\ \ \ \ \ \//\  __/  __  \ \ \/\__, `\
 \ \____/\ \_\ \_\ \___,_\ \____\\ \_\\/\____/\ \____\ \____/\ \_\\ \____\/\_\ _\ \ \/\____/
  \/___/  \/_/\/_/\/__,_ /\/____/ \/_/ \/___/  \/____/\/___/  \/_/ \/____/\/_//\ \_\ \/___/
                                                                              \ \____/
                                                                               \/___/

Underscore.js is a utility-belt library for JavaScript that provides support for the usual functional suspects (each, map, reduce, filter...) without extending any core JavaScript objects.

For Docs, License, Tests, and pre-packed downloads, see https://underscorejs.org

For support and questions, please consult our security policy the gitter channel or stackoverflow

Underscore is an open-sourced component of DocumentCloud https://github.com/documentcloud

Many thanksโ€ฆ


10. Parcel

Parcel is a zero configuration build tool for the web. It combines a great out-of-the-box development experience with a scalable architecture that can take your project from just getting started to massive production application.

GitHub logo parcel-bundler / parcel

The zero configuration build tool for the web. ๐Ÿ“ฆ๐Ÿš€

Parcel

Backers on Open Collective Sponsors on Open Collective Build Status npm package npm package Discord Twitter Follow

Parcel is a zero configuration build tool for the web. It combines a great out-of-the-box development experience with a scalable architecture that can take your project from just getting started to massive production application.

Features

  • ๐Ÿ˜ Zero config โ€“ Parcel supports many languages and file types out of the box, from web technologies like HTML, CSS, and JavaScript, to assets like images, fonts, videos, and more. It has a built-in dev server with hot reloading, beautiful error diagnostics, and much more. No configuration needed!
  • โšก๏ธ Lighting fast โ€“ Parcel's JavaScript compiler is written in Rust for native performance. Your code is built in parallel using worker threads, utilizing all of the cores on your machine. Everything is cached, so you never build the same code twice. It's like using watch mode, but even when you restart Parcel!
  • ๐Ÿš€ Automatic production optimization โ€“ Parcel optimizes your whole app for production automaticallyโ€ฆ

Stargazing ๐Ÿ“ˆ

Top risers over last 7 days๐Ÿ”—

  1. Public APIs +1,995 stars
  2. Coding Interview University +1,512 stars
  3. Awesome +1,220 stars
  4. Tech Interview Handbook +1,128 stars
  5. Mantine +972 stars

Top growth(%) over last 7 days๐Ÿ”—

  1. NextUI +32%
  2. Mantine +25%
  3. Remix Auth +11%
  4. Preview.js +10%
  5. p +9%

Top risers over last 30 days๐Ÿ”—

  1. Public APIs +5,366
  2. Awesome +4,887 stars
  3. Tauri +3,937 stars stars
  4. 30 Days of JavaScript +3,502 stars
  5. Awesome Selfhosted +3,213 stars

Top growth(%) over last 30 days๐Ÿ”—

  1. Iconoir +123%
  2. Basic Computer Games +98%
  3. Fuite +71%
  4. NextUI +48%
  5. Remix Auth +42%

For all for the latest rankings please checkout Stargazing.dev


Trending Projects is available as a weekly newsletter please sign up at Stargazing.dev to ensure you never miss an issue.

If you enjoyed this article you can follow me on Twitter where I regularly post about HTML, CSS and JavaScript.

Discussion (0)