JetBrains UI library
npm install @jetbrains/ring-ui-built
- Design guildelines
- Figma library
- [Usage examples in Storybook][docsite]
- GitHub repository
- Issues in YouTrack
- [Builds in TeamCity][ci-project]
- [npm package][npm-package]
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.
create-react-app tooling, to see and try the UI components* For Quick Start, use pre-built version:
npm install @jetbrains/ring-ui-built
* For complex projects, use "sources" version
npm install @jetbrains/ring-ui
You will then need to include building Ring UI into your WebPack build (see "Building Ring UI from source via Webpack" below)
The easiest way is to import necessary components as ES modules:
``js
// You need to import RingUI styles once
import '@jetbrains/ring-ui-built/components/style.css';
import alertService from '@jetbrains/ring-ui-built/components/alert-service/alert-service';
import Button from '@jetbrains/ring-ui-built/components/button/button';
...
export const Demo = () => {
return (
);
};
`
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:
1. Install Ring UI with npm install @jetbrains/ring-ui --save-exact
2. 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. `
javascript`
import React from 'react';
import ReactDOM from 'react-dom';
import LoaderInline from '@jetbrains/ring-ui/components/loader-inline/loader-inline';
ReactDOM.render(
3. Create webpack.config.js with the following contents (example):`
javascript``
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,
]
}
};
module.exports = webpackConfig;
See CONTRIBUTING.md
[docsite]: https://jetbrains.github.io/ring-ui
[ci-project]: https://teamcity.jetbrains.com/project.html?projectId=JetBrainsUi_RingUi&tab=projectOverview
[ci-bt]: https://teamcity.jetbrains.com/viewType.html?buildTypeId=JetBrainsUi_RingUi_GeminiTests&tab=buildTypeStatusDiv
[ci-img]: https://teamcity.jetbrains.com/app/rest/builds/buildType:JetBrainsUi_RingUi_GeminiTests/statusIcon.svg
[npm-package]: https://www.npmjs.com/package/@jetbrains/ring-ui
[npm-version-img]: https://img.shields.io/npm/v/@jetbrains/ring-ui.svg
[npm-count-img]: https://img.shields.io/npm/dt/@jetbrains/ring-ui.svg
[storybook-img]: https://cdn.jsdelivr.net/gh/storybookjs/brand@master/badge/badge-storybook.svg
[browserstack-img]: https://automate.browserstack.com/badge.svg?badge_key=elc3S1IvemtCdHBjcHdmQzdRcm9xYWxTakFvSWFqT2lrOGtrTjZRbFVRaz0tLXE0VnpyUjRqSk1Xc2xIQ1NnL1pkbnc9PQ==--f96a555ca0fe3ce50d0770cb975be0f3b6a6cf79
[browserstack-build-page]: https://automate.browserstack.com/public-build/elc3S1IvemtCdHBjcHdmQzdRcm9xYWxTakFvSWFqT2lrOGtrTjZRbFVRaz0tLXE0VnpyUjRqSk1Xc2xIQ1NnL1pkbnc9PQ==--f96a555ca0fe3ce50d0770cb975be0f3b6a6cf79