Skip to content

JetBrains/ring-ui

Folders and files

NameName
Last commit message
Last commit date

Latest commit

7f3db08 · Feb 27, 2025
Jul 24, 2024
Apr 29, 2024
Jul 20, 2024
Jun 7, 2024
Jan 27, 2023
Jan 27, 2025
Feb 27, 2025
Oct 21, 2024
Feb 26, 2025
Feb 25, 2025
Feb 7, 2025
Jun 5, 2024
Oct 16, 2014
Oct 22, 2024
Mar 1, 2013
Dec 20, 2024
May 31, 2022
Jan 8, 2024
Oct 21, 2024
Oct 21, 2024
Oct 24, 2024
Nov 8, 2024
Feb 15, 2023
Jul 24, 2024
Aug 2, 2017
Dec 10, 2024
Oct 21, 2024
Oct 21, 2024
Oct 21, 2024
Feb 21, 2025
Feb 21, 2025
Feb 21, 2025
Jan 10, 2025
Oct 21, 2024
Feb 27, 2025
Feb 27, 2025
Oct 21, 2024
Nov 7, 2024
Sep 28, 2023
Oct 28, 2024
Oct 21, 2024
Oct 21, 2024
Oct 21, 2024
Oct 21, 2024
Oct 21, 2024
Nov 26, 2024
Jan 10, 2025
Nov 8, 2024
Oct 21, 2024

Repository files navigation

Ring UI — JetBrains Web UI components

Storybook Build Status Storybook NPM version NPM downloads

official JetBrains project

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 now

Installation

  • 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)

Quick start

The easiest way is to import necessary components as ES modules:

// 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 (
    <Button onClick={() => alertService.successMessage('Hello world')}>
      Click me
    </Button>
  );
};

The bundle size will depend on the amount of components you imported.

Building Ring UI from source via Webpack

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) and import 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'));
  3. 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;

Contributing

See CONTRIBUTING.md