• Stars
    star
    244
  • Rank 165,885 (Top 4 %)
  • Language
    JavaScript
  • License
    Apache License 2.0
  • Created almost 8 years ago
  • Updated about 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Catalog of React based components with versioning and realtime props editing support

OpusCapita Showroom

CircleCI Status badge-npm-version badge-license NPM Downloads

Synopsis

Awesome react based components catalog which provides you with markdown documentation and live examples. ๐Ÿ’ฅ

If you're interested in project development, please star it and send us your pull-requests!

showroom-demo

Live demos

Start a new project in 2 minutes!

Video

We have preconfigured a project template with webpack, babel, tests, etc. (full overview)

Install template generator globally

npm install -g @opuscapita/react-showroom-template

Create an empty directory

mkdir my-react-project && cd my-react-project

Init a project and ask several questions

showroom init

Install deps

npm install

Done ๐ŸŒŸ Let's run it!

npm start

Open in browser: http://localhost:3000


You can easily add a new component.

showroom add and specify component name

Component will be added to src/client/components directory

Component is a directory that includes:

  • <component_name>.DOCUMENTATION.md
  • <component_name>.react.js file with skeleton of component
  • <component_name>.less file with styles
  • index.js file with component export

Add showroom to existing project

See documentation here

Need help with integration to your open-source project? Create an issue or contact us ๐Ÿ˜‡

See also

Motivation to develop

The fundamental ideas of ReactJS is modularity and code reuse. You shouldn't rewrite same things every time.

What ReactJS creators say about it:

How do you know what should be its own component? Just use the same techniques for deciding if you should create a new function or object. One such technique is the single responsibility principle, that is, a component should ideally only do one thing. If it ends up growing, it should be decomposed into smaller subcomponents.

As you start to build large libraries of components, you'll appreciate this explicitness and modularity, and with code reuse, your lines of code will start to shrink. :)

O.K., ReactJS creators ๐Ÿ‘ We are sure you are clever. We understand your ideas. But if we want to have a large libraries of components we must have a easy way to organize and browse this library.

  • Facebook has thousands of components.

  • In contrast - now we have no common UI composable pieces which allows developers to construct complex business logic components fast with modern user interface for a better user experience. Happy customer => happy seller

  • Twitter Bootstrap/React Bootstrap don't solve the problem. It has a good looking typography and a simple for use grid system. It has only a little number of basic components like buttons and inputs.

    For example if you have a vertical split-screen, default bootstrap grid system based on html media-queries became useless. Media-queries reacts on main viewport size changes, but with split-screen we have two virtual viewports. Simple react component tracking size of specified DOMNode can solve the problem. If we can't find at http://npmjs.com we can write it themselves and reuse in future.

  • There are lots of good-written third-party components. But they can't cover all use-cases. The problem of most of them:

    Written by different people with a different methodology of development and styles organization (style conflicts are not a rarity)

    We can't change them when met a limitations of API

Allen Carr The easy way to start organizing libraries:

  • Spent several hours/days creating a component? Spend 30 more minutes to put your component in a library and write simple documentation with a code example.
  • Next time you or your teammate won't have to rewrite it again.
  • Or you can spend several hours/days ๐Ÿ•™ to /dev/null again.
  • The choice is yours.
  • Take care about other developers and others take care about you ๐ŸŽฉ

Contributors

Alexey Sergeev
Kirill Volkovich

Contributing is welcome. We need YOU! ๐Ÿค˜

Contributing guide

How to start

npm start npm script of @opuscapita/react-showroom-client can confuse if you want to contribute to showroom. Use this npm goal only to start showroom in server variant.

More preferred way is: run npm link, then npm run link-mode;

Install showroom-template separately.

Before running showroom-template's npm start run npm link @opuscapita/react-showroom-client. After that you can change showroom's source-code and see result.

If you need more info about contribution - please create an issue.

License

OpusCapita Showroom is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.

More Repositories

1

filemanager

React based FileManager for browser ( + FS REST API for Node.js and Express)
JavaScript
563
star
2

react-markdown

Markdown editor (input) based on React
JavaScript
112
star
3

weceem-plugin

Grails Weceem CMS Plugin
Groovy
58
star
4

weceem-app

Weceem CMS Standalone Application
Groovy
53
star
5

react-dates

React date(range) inputs/pickers
JavaScript
47
star
6

fsm-workflow

FSM workflow (for Node.js)
JavaScript
28
star
7

react-grid

React grid component
JavaScript
25
star
8

react-crudeditor

OpusCapita React CRUD Editor
JavaScript
20
star
9

react-signalr

Higher-Order Component that provides a connection to a SignalR hub. This component adds a hub proxy, that may be used to register and unregister event listeners, and also to invoke a hub controller and send data to it.
JavaScript
19
star
10

react-dashboard

Dashboard component with draggable resizable grid layout. Demo:
JavaScript
18
star
11

grailsflow-core-plugin

Open source Workflow and Process Engine written in Grails
Groovy
16
star
12

grailsflow-app

Application that demonstrates usage of grailsflow-core plugin
Groovy
8
star
13

i18n

Provides simple i18n mechanism for JS applications/modules.
JavaScript
7
star
14

react-loaders

Loading and rendering React components from remote JS bundles on the fly!
JavaScript
7
star
15

eslint-config

Company wide specific rules for (es)linting
JavaScript
6
star
16

react-async-select

Async dropdown component with advanced search modal
JavaScript
6
star
17

svg-icons

SVG (Scalable Vector Graphics) icons library
JavaScript
5
star
18

properties

Command line utility to work with '*.properties' file
Go
5
star
19

react-hierarchy-selector

React component for selecting items from hierarchies
JavaScript
5
star
20

weceem-spring-security

Grails Plugin for Weceem Spring Security integration
Groovy
4
star
21

oc-common-ui

OpusCapita common styles and React components for user interfaces
CSS
4
star
22

react-navigation

Navigation menu
JavaScript
4
star
23

react-reference-select

Base React components for creating reference search components
JavaScript
4
star
24

react-hierarchy-tree

Hierarchy tree component that uses @opuscapita/react-grid and @opuscapita/react-treeview components
JavaScript
3
star
25

raml-to-markdown

Create Markdown documentaion out of RAML files.
JavaScript
3
star
26

styles

Node.js based service that serves shared styles/images/fonts via HTTP
HTML
3
star
27

react-component-template

JavaScript
3
star
28

npm-scripts

NPM scripts: used for publishing packages, etc.
JavaScript
3
star
29

react-wizard

Wizard component that can contain any number of wizard pages and provides navigation between pages
CSS
3
star
30

react-buttons

JavaScript
3
star
31

react-rich-editors

JS React based rich editors based on Draft.js
JavaScript
3
star
32

node-tutorial

Simple tutorial for anyone who never worked with node
JavaScript
2
star
33

react-alerts

React alerts component to show global notifications
JavaScript
2
star
34

react-overlays

Modals, tooltips, etc.
JavaScript
2
star
35

react-select

Wrapper around "react-select" with OpusCapita styles.
JavaScript
2
star
36

react-tree-component

Simple React Tree Component using rc-tree as a base component.
CSS
2
star
37

react-svg

React components for easilly using SVG
JavaScript
2
star
38

react-layouts

JavaScript
1
star
39

embedded-tomcat-ci

Provides possibility to build executable JAR from WAR
Groovy
1
star
40

fsm4j

JavaScript
1
star
41

node-base

Docker node base image based on node:8-alpine with rsync, curl and npm@latest (5.0.1)
1
star
42

babel-plugin-transform-import-styles

Pack CSS/LESS into JS without Webpack (library building)
JavaScript
1
star
43

react-list

React list component
JavaScript
1
star
44

sequelize-to-markdown

DEPRECATED Create Markdown documentations out of sequelize models.
JavaScript
1
star
45

react-cards

React cards component
CSS
1
star
46

minsk-core-presentations

Slides for presentation
JavaScript
1
star
47

test-github-flow

Test repository used to demonstrate github power to team (will be removed soon)
JavaScript
1
star
48

react-splitpane

React draggable split pane component
CSS
1
star
49

react-autocompletes

JavaScript
1
star
50

pim-integrations-expression-unit-test

A tool from OpusCapita, to make it possible to write unit tests for expressions in PIM
JavaScript
1
star
51

pim-integrations-expression-unit-test-examples

A collection of examples how to use the unitTestLibrary
JavaScript
1
star