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

summon-ui

v5.0.0

Published

Summon UI library

Downloads

891

Readme

Summon UI

Summon UI project contains the common Front-end code of all Summon products. It's a Storybook project that contains our UI components as well as UI Providers for branding theming, helpers and more.

Through time we will be decoupling our UI from all our different products (user portal, client portal, etc) and migrating it in here.

It will allow us

  • To maintain common components across projects in a single place
  • To have a proper scalable design system and a complete storybook

Tech Stack

ReactJS & Typescript: We use React and we write in Typescript.

UI

MANTINE UI: https://mantine.dev/

Mantine is our Front-end library. We use Mantine components, as well as theme/brand handling. UI colors are based in Mantine color system.

We avoid writing styles, Inline styles are forbidden :) Instead we use Mantine components and their props. We use css modules.

If there is some component to be styled, there is a super powerful way to do this globally for components in the current theme.

If there are some classNames that need to be added to a component we use Tailwind classes passed via prop.

Mantine also offer a vast number of hooks and other functions that have proven to be very useful

TAILWIND CSS: https://tailwindcss.com/

STORYBOOK: https://storybook.js.org/

The Summon UI project is a Storybook project and we use Chromatic (https://www.chromatic.com/) for CI.

UNIT TESTING

JEST: https://jestjs.io/

RTL (React Testing Library): https://testing-library.com/

Development Process

PRs

  • We open PRs to introduce new code in our main branch
  • A PR shall be approved by 1 people before merge

Code

We like very much our code to be clean, free from Typescript errors, free from format errors, free from test errors. For that:

  • We use linter and prettier.
  • We have husky and lint-staged
  • We use commitlint

But we also care a lot about our git log. For that:

  • We use conventional commits (https://www.conventionalcommits.org/en/v1.0.0-beta.4/)

We also use NVM so we all use the same Node JS version

Editor/IDE

If you feel comfortable with it, we recommend to use VSCode as having linter and prettier working is pretty straight forward. But of course, this is a free choice.

As long as your editor/IDE allows you to follow all the standards described above you can create your code in whatever way you want

Local Testing Procedure

  1. Generate the dist folder in summon-ui by running pnpm build.

  2. Adjust the package in the target repository to reference your local changes:

    "summon-ui": "file:..//summon-ui"
  3. Install the updated dependency by running pnpm install.

Publishing

Whenever you upgrade the version in the main branch, a new package will be automatically published.