mondaycom / monday-ui-react-core

Official monday.com UI resources for application development in React.js

Home Page:https://style.monday.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Vibe Design System

Important

Exciting Update: The monday-ui-react-core repository is getting a new name - vibe!

As this project has evolved, it now includes a comprehensive design system toolkit, including components, styles, icons, hooks, and more. It's become more than just a "core" library; it's a full-fledged design system, now with all related packages unified under one umbrella.

The change will apply in the upcoming weeks, no additional action is required on your part. All issues, PRs, branches will remain intact. Stay tuned!

npm

Vibe Design System, by monday.com

monday.com React components library - Storybook

Firefox
Firefox
Chrome
Chrome
Safari
Safari
iOS Safari
iOS Safari
Samsung
Samsung
Opera
Opera
last 4 versions last 4 versions 14+ last 2 versions last 2 versions last 2 versions

Installation

Install the component library

npm install monday-ui-react-core

Usage

Components are imported from the library's root entry:

import { Button } from "monday-ui-react-core";

In order to load all the relevant CSS tokens, you should import the tokens file at the root of your application file

import "monday-ui-react-core/tokens";

If your project (or it's Storybook) is importing files differently - read more here.

Font installation

We don't import fonts ourselves, we work best with the following fonts - Poppins, Figtree and Roboto, we recommend adding the following link import to your application

<link
  href="https://fonts.googleapis.com/css2?family=Figtree:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"
  rel="stylesheet"
/>

Peer dependencies

We are reliant on React and React DOM, we are using them as externals, and we don't package them to the package, so you must have them in your project

Storybook

We are using storybook in order to develop the components independently of any consumer. run this to build & run the storybook locally:

npm run storybook

the storybook will be served on http://localhost:7007

Developing locally with your consumer application

When developing locally, we are using a npm functionality called npm link, this allows us to work locally on our package and use it in a different project without publishing. This functionality basically overrides the npm mapping between package name to its repo, and points it to where the package is located locally.

Troubleshooting local development

  • If you are using NVM, make sure both packages are using the same version.
  • Because we are using react hooks and having react as a peerDependency - if you want to develop locally and encounter issues with "invalid hook call" see this github thread. The quick fix is in your webpack config file alias react to resolve the node_modules path

Go to the project's directory and run:

nvm use
npm unlink
npm link
npm start

Contributing

We welcome every contributor, please read the contribution guidelines before submitting a PR

Themes

We support theming from the library to the component level using css variables - for more info on theming please read the theme guidelines file

About

Official monday.com UI resources for application development in React.js

https://style.monday.com

License:MIT License


Languages

Language:TypeScript 53.2%Language:JavaScript 26.9%Language:SCSS 10.3%Language:MDX 9.3%Language:HTML 0.3%Language:Shell 0.1%Language:EJS 0.0%