npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

mottled-library

v0.0.18

Published

A tree-shakeable library containing common reusable components for substrate based chains

Downloads

27

Readme

🪴 Mottled Library 🪴

A tree-shakeable library containing common reusable components for substrate based chains

Library and decisions made

Package is using workspaces for custom build/bundle the library. Core components exist under dir packages/library. For documentation and development purposes Storybook was the tool of choice. This way contributors can catch up to speed with current components and also develop faster new ones.

The idea behind this library started as "creating our own design components", but after some serious brainstorming ended up as: "create our own substrate specific components" - meaning reusable combination of components (that are called recipes), which can help dApp devs to re-use in their projects without the need of rebuilding everything from scratch.

Library is separated in 3 basic "modules":

  • core: all common types/variables/functions/hooks that can be reused from components, recipes or the dev;
  • components: are shared, content-agnostic, and context-agnostic built for maximal reuse. These are the components you see in all the publicly-available design systems in the wild;
  • recipes: recipe components are specific compositions of design system components (for the most part) that are to be consistently used across a product, but aren’t agnostic enough to live in the design system. These are valuable, reusable components but may only apply to one product;

Commands:

  • yarn: Install all dependencies;
  • yarn run dev: builds the library and executes storybook. Once this is running all changes in existing components will depict in storybook running instance;
  • generate: receives 2 input parameters, type (component or recipe) and name of component, and generates a directory including *.tsx, *modules.css and *.stories.tsx files in respective type chosen
  • yarn run build: prepares the library for publishing (css and ts files);
  • yarn run css: Preparesall css files and places them in ./css directory;
  • yarn run format: formats all files based on prettier configuration;
  • yarn run deploy-storybook: prepares and deploys storybook (doc) at gh-pages;

Usage

Principle followed in the library is to carry components and styling in different packages. This way the user of the library can decide if wants to style the components using his own css (overwrite classNames or using tailwind) or using default css.

In order to use default css see the following example:

import React, { Component } from "react"

// importing css for specific component
import 'mottled-library/css/SpecificComponent.css'

// importing the specific component
import { SpecificComponent } from "mottled-library"

class Example extends Component {
  render() {
    return (
      <>
        <SpecificComponent />
      </>
  }
}

Storybook

As mentioned above, Storybook is used for documentation and development. In order to see a showcase of current components and recipes see here

Possible Errors:

error:0308010C:digital envelope routines::unsupported

An error:0308010C:digital envelope routines::unsupported occurs with the Node.js version 17 as it’s not the LTS version, and there is a breaking change in the OpenSSL. Use LTS version 16.14.0 for not facing the issue. NODE_OPTIONS could also be set, as an alternative, but is not a recommended approach (you can still try this on your local machine as a quick fix).

Storybook page upon start, returns Cannot Get /

If this error appears instead of storybook execute once the command: yarn run sb:safe. This starts storybook with the flag --no-manager-cache