A collection of JetBrains Web UI components
JavaScript HTML CSS
Switch branches/tags
@ring-ui/icon@1.0.0-beta.8 @ring-ui/icon@1.0.0-beta.7 @ring-ui/icon@1.0.0-beta.6 @ring-ui/icon@1.0.0-beta.5 @ring-ui/icon@1.0.0-beta.4 @ring-ui/icon@1.0.0-beta.3 @ring-ui/icon@1.0.0-beta.2 @ring-ui/icon@1.0.0-beta.1 @ring-ui/icon@1.0.0-beta.0 @ring-ui/icon@0.3.5 @ring-ui/icon@0.3.4 @ring-ui/icon@0.3.3 @ring-ui/icon@0.3.2 @ring-ui/icon@0.3.1 @ring-ui/gemini@0.2.26 @ring-ui/gemini@0.2.25 @ring-ui/gemini@0.2.24 @ring-ui/gemini@0.2.23 @ring-ui/gemini@0.2.22 @ring-ui/gemini@0.2.21 @ring-ui/gemini@0.2.20 @ring-ui/gemini@0.2.19 @ring-ui/gemini@0.2.18 @ring-ui/gemini@0.2.17 @ring-ui/gemini@0.2.16 @ring-ui/gemini@0.2.15 @ring-ui/gemini@0.2.14 @ring-ui/gemini@0.2.13 @ring-ui/gemini@0.2.12 @ring-ui/gemini@0.2.11 @ring-ui/gemini@0.2.10 @ring-ui/gemini@0.2.9 @ring-ui/gemini@0.2.8 @ring-ui/gemini@0.2.7 @ring-ui/gemini@0.2.6 @ring-ui/gemini@0.2.5 @ring-ui/gemini@0.2.1-beta.16 @ring-ui/gemini@0.2.1-beta.15 @ring-ui/gemini@0.2.1-beta.14 @ring-ui/gemini@0.2.1-beta.13 @ring-ui/gemini@0.2.1-beta.12 @ring-ui/gemini@0.2.1-beta.11 @ring-ui/gemini@0.2.1-beta.10 @ring-ui/gemini@0.2.1-beta.9 @ring-ui/gemini@0.2.1-beta.8 @ring-ui/gemini@0.2.1-beta.7 @ring-ui/gemini@0.2.1-beta.6 @ring-ui/gemini@0.2.1-beta.5 @ring-ui/gemini@0.2.1-beta.4 @ring-ui/docs@0.2.32 @ring-ui/docs@0.2.31 @ring-ui/docs@0.2.30 @ring-ui/docs@0.2.29 @ring-ui/docs@0.2.28 @ring-ui/docs@0.2.27 @ring-ui/docs@0.2.26 @ring-ui/docs@0.2.25 @ring-ui/docs@0.2.24 @ring-ui/docs@0.2.23 @ring-ui/docs@0.2.22 @ring-ui/docs@0.2.21 @ring-ui/docs@0.2.20 @ring-ui/docs@0.2.19 @ring-ui/docs@0.2.18 @ring-ui/docs@0.2.17 @ring-ui/docs@0.2.16 @ring-ui/docs@0.2.15 @ring-ui/docs@0.2.14 @ring-ui/docs@0.2.13 @ring-ui/docs@0.2.12 @ring-ui/docs@0.2.11 @ring-ui/docs@0.1.15-beta.19 @ring-ui/docs@0.1.15-beta.18 @ring-ui/docs@0.1.15-beta.17 @ring-ui/docs@0.1.15-beta.16 @ring-ui/docs@0.1.15-beta.15 @ring-ui/docs@0.1.15-beta.14 @ring-ui/docs@0.1.15-beta.13 @ring-ui/docs@0.1.15-beta.12 @ring-ui/docs@0.1.15-beta.11 @ring-ui/docs@0.1.15-beta.10 @ring-ui/docs@0.1.15-beta.9 @ring-ui/docs@0.1.15-beta.8 @ring-ui/docs@0.1.15-beta.7 ring-ui-gemini@0.2.4 ring-ui-gemini@0.2.3 ring-ui-gemini@0.2.2 ring-ui-gemini@0.2.1 ring-ui-gemini@0.2.1-beta.3 ring-ui-gemini@0.2.1-beta.2 ring-ui-gemini@0.2.1-beta.1 ring-ui-gemini@0.2.1-beta.0 ring-ui-gemini@0.2.0 ring-ui-docs@0.2.10 ring-ui-docs@0.2.9 ring-ui-docs@0.2.8 ring-ui-docs@0.2.7 ring-ui-docs@0.2.6 ring-ui-docs@0.2.5 ring-ui-docs@0.2.4
Nothing to show
Latest commit 66ba3ab Oct 17, 2017 @nightflash nightflash RG-1587: Fixed. TagsInput component often shows obsolete results whil…
…e typing if requests are long
Failed to load latest commit information.
.idea Project files migrated to IDEA 2017.3 format Sep 11, 2017
components RG-1587: Fixed. TagsInput component often shows obsolete results whil… Oct 17, 2017
packages Publish Oct 14, 2017
test-helpers RG-1442 Discourage `expect(smth)` usage in favour of `smth.should()` Jul 6, 2017
.editorconfig Default .editorconfig Oct 16, 2014
.eslintignore Rename packages Aug 28, 2017
.eslintrc RG-1435 Switch to glob-based ESLint config Jul 17, 2017
.flowconfig Add to Flow's ignore list: /node_modules/stylelint/lib Jul 3, 2017
.gitignore Revert "chore: ignore .idea/codeStyles folder" Sep 27, 2017
CHANGELOG.md Wording Aug 30, 2017
CONTRIBUTING.md Rename packages Aug 28, 2017
LICENSE.txt update license text to correct text of Apache-2.0 Aug 2, 2017
README.md Add "JB official" badge Sep 21, 2017
icon-runtime-generator.js RING-UI-CR-2945 Get rid of one more circular dependency. Update "all … Aug 22, 2017
jslint-xml.js RG-1444 Merge eslint and stylelint reports Jul 7, 2017
karma-base.conf.js RG-1484 Drop hostname: it is not needed in docker Aug 2, 2017
karma-ci.conf.js Revert "RG-1484 dealing with tests in docker container" Aug 2, 2017
karma-crossbrowser.conf.js Update CI scripts. Temporarily turn off tests Aug 1, 2017
karma-watch.conf.js RING-UI-CR-1909 Update eslint config Apr 14, 2017
karma.conf.js RING-UI-CR-1909 Update eslint config Apr 14, 2017
lerna.json Ignore private packages when publishing Oct 2, 2017
package-lock.json Include all files in components directory when publishing Oct 13, 2017
package.json Publish Oct 14, 2017
postcss.config.js RING-UI-CR-2898 drop unneeded cssnext settings line Aug 5, 2017
stylelint.config.js RG-1547 Introduce selector-max-specificity rule to decrease cases whe… Sep 4, 2017
wallaby.config.js RG-1395 Rewrite some commits in jetbrains-eslint-config and publish i… Jul 4, 2017
webpack-test.config.js RG-1512 Create a custom runtime generator for svg-sprite-loader Aug 10, 2017
webpack.config.js RG-1474 Do not import jetbrains-logos to ring ui itself – should be i… Aug 14, 2017


Ring UI — JetBrains Web UI components

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: [
          <Your rules here>
    module.exports = webpackConfig;