ring-ui

A collection of JetBrains Web UI components

Github stars Tracking Chart

Ring UI — JetBrains Web UI components

Storybook Build Status Dependencies Status Dev Dependencies Status NPM version NPM downloads

official JetBrains project

This collection of UI components aims to provide all of the necessary building blocks for web-based products built inside JetBrains, as well as third-party plugins developed for JetBrains' products.

Quick start

  1. Install Yeoman and Ring UI generator: npm install -g yo @jetbrains/generator-ring-ui
  2. Go to the root directory of your project (create one if necessary) and run yo @jetbrains/ring-ui. After you enter the name of the project all the necessary npm dependencies will be installed.
  3. Your project is ready to be developed. The following commands are available:
    • npm start to run a local development server
    • npm test to launch karma tests
    • npm run lint to lint your code
    • npm run build to build a production bundle
    • npm run create-component to create a new component template with styles and tests

Not-so-quick start

In case boilerplate generators are not your thing and you prefer to understand the inner workings a bit better.

  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

Main metrics

Overview
Name With OwnerJetBrains/ring-ui
Primary LanguageTypeScript
Program languageJavaScript (Language Count: 5)
Platform
License:Apache License 2.0
所有者活动
Created At2017-07-19 09:25:26
Pushed At2025-06-17 12:18:17
Last Commit At2025-06-17 12:18:13
Release Count2453
Last Release Namev7.0.52 (Posted on 2025-06-16 14:32:01)
First Release Namelegacy-1.0 (Posted on )
用户参与
Stargazers Count3.7k
Watchers Count54
Fork Count194
Commits Count26.7k
Has Issues Enabled
Issues Count0
Issue Open Count0
Pull Requests Count7213
Pull Requests Open Count6
Pull Requests Close Count1393
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private