This collection of UI components aims to provide all the necessary building blocks for web-based products built inside JetBrains, as well as third-party plugins developed for JetBrains' products.
- Try the codesandbox, based on
create-react-app
tooling, to see and try the UI components - Check out list of examples for each component
npm install @jetbrains/ring-ui
The easiest way is to import necessary components as ES modules:
// You need to import RingUI styles once
import '@jetbrains/ring-ui/dist/style.css';
import alertService from '@jetbrains/ring-ui/dist/alert-service/alert-service';
import Button from '@jetbrains/ring-ui/dist/button/button';
...
export const Demo = () => {
return (
<Button onClick={() => alertService.successMessage('Hello world')}>
Click me
</Button>
);
};
The bundle size will depend on the amount of components you imported.
In case you have complex build, and you want to compile RingUI sources together with your sources in a same build process, you can use the following configuration:
-
Install Ring UI with
npm install @jetbrains/ring-ui --save-exact
-
If you are building your app with webpack, make sure to
import
ring-ui components where needed. Otherwise, create an entry point (for example,/app/app__components.tpl.js
) andimport
the components there.import React from 'react'; import ReactDOM from 'react-dom'; import LoaderInline from '@jetbrains/ring-ui/components/loader-inline/loader-inline'; ReactDOM.render(<LoaderInline/>, document.getElementById('container'));
-
Create
webpack.config.js
with the following contents (example):const ringConfig = require('@jetbrains/ring-ui/webpack.config').config; const webpackConfig = { entry: 'src/entry.js', // your entry point for webpack output: { path: 'path/to/dist', filename: '[name].js' }, module: { rules: [ ...ringConfig.module.rules, <Your rules here> ] } }; module.exports = webpackConfig;
See CONTRIBUTING.md