Skip to content

Commit

Permalink
Merge branch 'main' into feature/details-card-animation-improve
Browse files Browse the repository at this point in the history
  • Loading branch information
marcinsawicki authored Jan 24, 2024
2 parents 299648d + cbee60f commit 0d1d701
Show file tree
Hide file tree
Showing 68 changed files with 4,442 additions and 2,697 deletions.
1 change: 0 additions & 1 deletion .stylelintignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
packages/react-components/src/stories/foundations/components/iconsShowcase.css
dist
node_modules
97 changes: 26 additions & 71 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<h1 align="center">
<img src="./docs/assets/logo.png" alt="livechat design-system logo" /><br />
LiveChat Design System
LiveChat Design System Monorepo
</h1>

<p align="center">
Expand All @@ -18,87 +18,38 @@
</a>
</p>

## Installation
Welcome to the Design System Monorepo! This repository houses a collection of packages and tools related to our design system. We use the [Lerna](https://lerna.js.org/) tool and [NPM workspaces](https://docs.npmjs.com/cli/v8/using-npm/workspaces) to manage these packages efficiently. Below is an overview of the packages included in this monorepo:

Run the following command using [npm](https://www.npmjs.com/) (or with you other favorite package manager, eg. [yarn](https://yarnpkg.com/)):
## Packages

```
npm install @livechat/design-system-react-components @livechat/design-system-icons --save
```
### 1. React Components

## Basic usage
- **Package Name**: `react-components`
- **Description**: This package contains a library of reusable React components designed to be used in various projects. These components are the building blocks of our design system and can be easily integrated into your applications.
- **Usage**: To install and use these components in your project, follow the installation and usage instructions in the `react-components` package documentation.

It is required to import the `CSS` directly into your project so it could be applied to components:
### 2. Icons

```js
import '@livechat/design-system-react-components/dist/style.css';
```
- **Package Name**: `icons`
- **Description**: The `icons` package provides a collection of icons that can be used to enhance the visual appeal of your applications. These icons are designed to be customizable and easy to incorporate into your projects.
- **Usage**: To use these icons, refer to the documentation provided within the `icons` package.

You can import components directly from the npm package:
### 3. Example React Project

```jsx
import { Button } from '@livechat/design-system-react-components';
```
- **Package Name**: `example-react`
- **Description**: This package serves as a playground React project that demonstrates how to utilize the components and icons from our design system. It's an excellent resource for testing and experimenting with our packages.
- **Usage**: To run the example React project, follow the instructions in the `example-react` package documentation.

In case of icons there is a separate package to be used in conjunction:
## Getting Started

```jsx
import { Edit } from '@livechat/design-system-icons/react/tabler';
import { Icon } from '@livechat/design-system-react-components';
#### Clone this repository to your local machine:

<Icon source={Edit} kind="primary" />;
```bash
git clone [email protected]:livechat/design-system.git
```

## Documentation

At this stage of the project we consider Storybook and Figma as parts of our documentation ecosystem.
#### Install the necessary dependencies for the entire monorepo using Lerna:

[Storybook](https://design.livechat.com/) - includes design system foundations, describes components API and allows to familiarize with the thier capabilities
[Figma](https://www.figma.com/file/2pFu80PXO5A2tfyrAGnx91/Product-Components) - it's not an official documentation from design perspective but we follow a simple rule of working in public

## Contributing

Design System is mainly maintained by the teams of:

<a href="https://www.livechat.com/">
<img alt="livechat logo" src="./docs/assets/livechat-logo.png" height="10"><span>&nbsp;Livechat</span>
</a>
<br/>
<a href="https://www.helpdesk.com/">
<img alt="helpdesk logo" src="./docs/assets/helpdesk-logo.png" height="10"><span>&nbsp;HelpDesk</span>
</a>
<br/>
<a href="https://www.knowledgebase.com/">
<img alt="helpdesk logo" src="./docs/assets/knowledgebase-logo.png" height="10"><span>&nbsp;KnowledgeBase</span>
</a>

Any external contribution is welcome and teams mentioned above will help in the process of [development](#development) or [reporting problems or ideas](https://github.com/livechat/design-system/issues/new/choose). Design system is a [proposed solution](https://developers.livechat.com/docs/monetization/app-review-process#design-system) for authors building application targeting [LiveChat Marketplace](https://www.livechat.com/marketplace/), therefore, we're open for any feedback from 3rd party developers.

### Rules of contribution

1. In order to start working on changes, you must first create an issue on our [board](https://github.com/orgs/livechat/projects/7/views/1?filterQuery=),
using one of the templates depending on if this is a feature request or bug report [here](https://github.com/livechat/design-system/issues/new/choose). If an
issue turns out to be related to another which is already on the board, the DS team will take care of the appropriate connections. In addition to the description,
the ticket should also contain an appropriate label, the contributor should be entered as an assignee, and should be added to the project (LiveChat Design System).
2. In order to start work, first update branch `main`, and then create a new branch from this branch in which future changes will be placed. We adopted the
nomenclature for the branch `feature/[task_id]`.
3. If changes require it, appropriate unit tests should also be included, and an additional case should be attached to the Storybook documentation (in the `.stories.tsx` file).
4. After the work is completed, create a pull request directed to branch `main`.
1. **Conventional PR Naming**: Ensure your pull request title follows the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) naming pattern `type(scope): description`. This is crucial as, post squash merging, Git will use the PR name as the commit message.
<br/>To mark changes as a **breaking change**, include a `!` after the type and scope, followed by a colon and a space, like so: `type(scope)!: description`.
<br/>For now we will use the following types:
- `feat` - for new features
- `fix` - for bug fixes
- `docs` - for documentation changes
2. **Review**: In pull request, you should call `livechat/design-system` in the reviewers field.
3. **Template**: The merge template contains a checklist of things that need to be completed to meet the requirements, it will make the work easier for everyone.
5. You will probably notice in your pull request under "Some checks haven't completed yet" Chromatic pending checks approval. Chromatic is a tool that we use
for visual regression testing. The check in this tool is required for general approval of changes and it's covered by design system team.
6. After the work is completed and the reviewers accept it, the responsibility for the rest of the changes is on the design system team side, which will perform
the merge and release the changes in the future. Design system team deals with determining the status of the task on the board side, they close it with an
appropriate comment.

### Development

Required version of `node.js` is `16.13.2`.

Expand All @@ -118,10 +69,14 @@ npm start

If `Storybook` is not enough, you can additionaly run `npm start:example` which will run `example-react` package in `watch` mode. `example-react` is a simple [React](https://reactjs.org/) app based on [vite-react boilterplate](https://github.com/vitejs/vite/tree/main/packages/create-vite). It has a direct dependency on `react-components` package, so every change should be reflected in the app via auto-reload.

### Testing
## Contributing

The guide that describes the contribution process is available [here](./docs/CONTRIBUTION.md).

## Testing

We have prepared a document describing testing process and core principles in the area of quality [here](./docs/TESTING.md).

### Releasing
## Releasing

The package releasing and related documentation is available [here](./docs/RELEASE.md).
29 changes: 29 additions & 0 deletions docs/CONTRIBUTION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Contribution

Design System is maintained by LiveChat Design System team.

Any external contribution is welcome and DS team will help in the process of development or [reporting problems or ideas](https://github.com/livechat/design-system/issues/new/choose). Design system is a [proposed solution](https://developers.livechat.com/docs/monetization/app-review-process#design-system) for authors building application targeting [LiveChat Marketplace](https://www.livechat.com/marketplace/), therefore, we're open for any feedback from 3rd party developers.

## Rules of contribution

1. In order to start working on changes, you must first create an issue on our [board](https://github.com/orgs/livechat/projects/7/views/1?filterQuery=),
using one of the templates depending on if this is a feature request or bug report [here](https://github.com/livechat/design-system/issues/new/choose). If an
issue turns out to be related to another which is already on the board, the DS team will take care of the appropriate connections. In addition to the description,
the ticket should also contain an appropriate label, the contributor should be entered as an assignee, and should be added to the project (LiveChat Design System).
2. In order to start work, first update branch `main`, and then create a new branch from this branch in which future changes will be placed. We adopted the
nomenclature for the branch `feature/[task_id]`.
3. If changes require it, appropriate unit tests should also be included, and an additional case should be attached to the Storybook documentation (in the `.stories.tsx` file).
4. After the work is completed, create a pull request directed to branch `main`.
1. **Conventional PR Naming**: Ensure your pull request title follows the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) naming pattern `type(scope): description`. This is crucial as, post squash merging, Git will use the PR name as the commit message.
<br/>To mark changes as a **breaking change**, include a `!` after the type and scope, followed by a colon and a space, like so: `type(scope)!: description`.
<br/>For now we will use the following types:
- `feat` - for new features
- `fix` - for bug fixes
- `docs` - for documentation changes
2. **Review**: In pull request, you should call `livechat/design-system` in the reviewers field.
3. **Template**: The merge template contains a checklist of things that need to be completed to meet the requirements, it will make the work easier for everyone.
5. You will probably notice in your pull request under "Some checks haven't completed yet" Chromatic pending checks approval. Chromatic is a tool that we use
for visual regression testing. The check in this tool is required for general approval of changes and it's covered by design system team.
6. After the work is completed and the reviewers accept it, the responsibility for the rest of the changes is on the design system team side, which will perform
the merge and release the changes in the future. Design system team deals with determining the status of the task on the board side, they close it with an
appropriate comment.
Binary file removed docs/assets/helpdesk-logo.png
Binary file not shown.
Binary file removed docs/assets/knowledgebase-logo.png
Binary file not shown.
Binary file removed docs/assets/livechat-logo.png
Binary file not shown.
Loading

0 comments on commit 0d1d701

Please sign in to comment.