Masala Design System
Masala Design System (MDS) is an open-source design system built at Innovaccer. This is a simple and customizable component library to build faster, beautiful, and more accessible React applications on the guidelines and principles of Masala Design System.
🚀 Get Up and Running
To install @innovaccer/design-system
in your project, you will need to run the
following command using npm:
npm install @innovaccer/design-system
If you prefer Yarn, use the following command instead:
yarn add @innovaccer/design-system
Adding style:
Import style at your app's root, it is not included in library bundle and shipped as a single css file. For more details see our styling section
import '@innovaccer/design-system/css';
If you want to try out @innovaccer/design-system
, you can also use
CodeSandbox.
Usage
import { Button } from '@innovaccer/design-system';
const App = () => {
return <Button>Done</Button>;
};
For more information about each component, check out our Storybook. Check out our Tutorial to guide you in creating an awesome app.
CDN
If you prefer to include library globally by marking it as external in your application, library provides various single-file distributions, which can be used as following:
<!-- style -->
<link href="https://unpkg.com/@innovaccer/design-system@2.5.0-3/css/dist/index.css" rel="stylesheet" />
<!-- un-compressed UMD -->
<script src="https://unpkg.com/browse/@innovaccer/design-system@2.5.0-3/dist/index.umd.js"></script>
<!-- brotli compressed UMD -->
<script src="https://unpkg.com/@innovaccer/design-system@2.5.0-3/dist/index.umd.js.br"></script>
<!-- gzip compressed UMD -->
<script src="https://unpkg.com/@innovaccer/design-system@2.5.0-3/dist/index.umd.js.gz"></script>
Styling
As this component library is part of a framework-agnostic design system used at Innovaccer the styling is done with CSS using CSS variables for theming and BEM methodology for reusable and modular styling. So it requires you to include CSS in your project by either importing or serving it as a static file. The complete stylesheet is published as part of the component library at path @innovaccer/design-system/css
.
You can include css by importing it or loading it from cdn.
👉 Using Font
The css sets the font family as 'Nunito Sans'
for the body. To add this font in your project you need to load this font. The recommended way to do it is by adding the following google font cdn link to your app's head.
<link
href="https://fonts.googleapis.com/css?family=Nunito+Sans:300,300i,400,400i,600,600i,700,700i,800,800i,900,900i&display=swap"
rel="stylesheet"
/>
👉 Updating Font:
If you don't add the font described above font family will not be affected by css. However, if you want to update the font family update it via the following css variable.
--font-family
👉 Reset Styles
As BEM is used reset.css is not used and no style reset is done.
👉 Polyfill for IE
For css variables to work on IE we use a polyfill at runtime to achieve dynamic theming through variables. Please add the following polyfill in your page.
<script src="https://cdn.jsdelivr.net/npm/css-vars-ponyfill@2"></script>
<script>
cssVars({
onlyLegacy: true,
});
</script>
📚 Documentation
❗ Code of Conduct
We expect everyone participating in the community to abide by our Code of Conduct. Please read it. Please follow it. We work hard to build each other up and create amazing things together. 💪💜
🤝 How to Contribute
Whether you're helping us fix bugs, improve the docs, or spread the word, we'd love to have you as part of the community! 💪💜
Check out our Contributing Guide for ideas on contributing and setup steps for getting our repositories up and running on your local machine.
Contributors ✨
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!
📝 License
Licensed under the MIT License.