About Sistent
Sistent an open source design system that offers building blocks to create consistent, accessible, and user-friendly interfaces. It's aimed at developers who want to design applications aligned with the same brand and ensure a uniform user experience across different products.
Sistent leverages Material UI libraries and provides a custom theme on top of it for a consistent look and feel. It includes components, icons, and design tokens that developers can readily integrate into their applications. By using Sistent, developers can save time and effort while maintaining a high-quality user experience.
Sistent provides a consistent user experience across any frontend software projects that choose to use it.
'Sistent' is a play on words to ensure that we have a consistent theme, components, design tokens, etc across all of the apps that will be using this library. Sistent is a design system that uses the MUI v5 components and a custom theme provider instead of using the default theme from MUI v5.
Sistent is built with Typescript and Reactjs and contains components and a large collection of icons that can be reused across projects. If you’re interested in joining the project (please do!), let us know, and we will help you get started on contributing.
Layer5 Brand Resources
Installation and Quickstart
To install the Sistent NPM package, run:
After installation, you can import Sistent theme and any Sistent component from "@sistent/sistent". The component needs to be included inside "SistentThemeProvider".
Taking button as an example:
Using your Local Sistent Fork in a Project
Method 1: File Installation
- Install your local Sistent package in the project1npm install <path-to-sistent-on-local-machine>
Example:
1# relative path2 npm install ../../sistent34# absolute path5 npm install /home/five/code/sistentThis will update your Sistent dependency to:
1"@sistent/sistent" : "file:../../sistent" - Build your local Sistent fork
After making changes to your fork, run this command in your local Sistent package.
1make build - Run the build command in the project where your local Sistent fork is installed
Example for Meshery UI:
1make ui-build
Now, your project should reflect changes from your local Sistent fork.
If you want to remove the local Sistent fork from your project, run:
1npm uninstall @sistent/sistent
This will remove the local Sistent package from your project. You will have to install the standard package again after running this command:
1npm install @sistent/sistent
Method 2: Using npm link
This method allows you to link your local Sistent fork globally for easier development. Follow these steps:
- Link your local Sistent package globally
In your local Sistent repo, run the following command:
1cd <path-to-sistent-on-local-machine>2 npm link - Link Sistent in your project
In the project where you want to use your local Sistent fork, run:
1npm link @sistent/sistentThis will create a symlink in your project's node_modules, pointing to your local Sistent package.
- Build your local Sistent fork
After making changes to your fork, run this command in your local Sistent package.
1make build - Run the build command in the project where your local Sistent fork is installed
Example for Meshery-UI:
1make ui-build Verify that your local fork is correctly linked by running:
1npm ls -g23# expected output:4├── @sistent/sistent@0.14.11 -> ./../../../../<path-to-local-sistent-fork>You can also try this command to verify that your fork is correctly linked:
1ls -l node_modules/@sistent/sistent23# expected output:4node_modules/@sistent/sistent -> ../../../../../sistentTo revert back to the official version of Sistent, run:
1npm unlink @sistent/sistentThen reinstall the official version, using this command:
1npm install @sistent/sistent
To contribute to projects using Sistent e.g. meshery-ui and others, you can refer to the Sistent set-up guide, Hands-on Training Session: Migrating Components to MUI v5 and Sistent, Training: contributing to Sistent, and Websites call , where experienced contributors demonstrate how to use Sistent in various projects.