/react-component-starter-kit

ReX React UI Component: react-component-starter-kit

Primary LanguageJavaScriptMIT LicenseMIT

ReX React UI Component: react-component-starter-kit

This project is part of ReX Design System and it can be used to create UI Components compatible with:

React, HTML/CSS and Vue.js

How to install

npm install @rakuten-rex/react-component-starter-kit@3.2.1 --save

yarn add @rakuten-rex/react-component-starter-kit@3.2.1

Getting started

Storybook Live examples

For a complete guide of properties for React and HTML classes please visit our Storybook page:

https://rakuten-rex.github.io/react-component-starter-kit/

Storybook features

  • Stories by component types
  • HTML raw output
  • JSX output
  • Stories source code
  • Knobs with multiple options

How to integrate ReX in your project

A) JavaScript modules

React component (JavaScript + CSS Styles)

For plug and play components integration.

Example:

my-component.jsx

import MyComponent from '@rakuten-rex/react-component-starter-kit';

function MyCustomComponent() {
  return (
    <MyComponent />
  );
}

Click here to see all working examples in Storybook.

CSS Styles only

For your own JavaScript integration (React, Vue, Angular, etc.) or Static HTML.

Using CSS Variables (Modern Websites and WebApps)

Example:

my-component.jsx

import '@rakuten-rex/react-component-starter-kit/css';

function MyCustomComponent() {
  return (
    <div class="rex-my-component" role="presentation">
      <img src="static/media/Image.jpg" alt="Basic example" style="width:100%" />
      <h3>Hello World</h3>
      <p>This is a basic example for ReX React Components Starter Kit</p>
    </div>
  );
}

Using Static CSS (Legacy Websites)

Example:

my-component.jsx

import '@rakuten-rex/react-component-starter-kit/css/static';

function MyCustomComponent() {
  return (
    <div class="rex-my-component" role="presentation">
      <img src="static/media/Image.jpg" alt="Basic example" style="width:100%" />
      <h3>Hello World</h3>
      <p>This is a basic example for ReX React Components Starter Kit</p>
    </div>
  );
}

Click here to see all working examples in Storybook.

Sass mixins

For your own customization of styles (React, Vue, Angular, etc.) or Static HTML.

Example:

my-styles.scss

@import '@rakuten-rex/react-component-starter-kit/sass/styles.mixin';

.my-component-with-rex-styles {
  @include rex-my-component();
}

Vue.js

A basic implementation based on HTML structure and import CSS styles into your component.

Example:

my-component.vue

<template>
    <div class="rex-my-component" role="presentation">
      <img src="static/media/Image.jpg" alt="Basic example" style="width:100%" />
      <h3>Hello World</h3>
      <p>This is a basic example for ReX React Components Starter Kit</p>
    </div>
</template>
<script>
export default {
  name: 'MyComponent',
}
</script>
<style scoped>
@import "~@rakuten-rex/react-component-starter-kit/css";
</style>

B) Static HTML

Copy-paste the stylesheet <link> into your <head> tag to load our CSS styles.

Using CSS Variables (Modern Websites and WebApps)

Production mode URL (recommended for Static HTML projects):

https://unpkg.com/react-component-starter-kit@3.2.1/react-component-starter-kit.production.min.css

Development mode URL (for local testing):

https://unpkg.com/react-component-starter-kit@3.2.1/react-component-starter-kit.development.css

Using Static CSS (Legacy Websites)

https://unpkg.com/react-component-starter-kit@3.2.1/react-component-starter-kit.static.css

Single component integration

Add it from unpkg.com CDN (NPM) into your HTML template or HTML static page.

Example:

my-page.html

<!doctype html>
<html>
  <head>
    <meta charset="utf-8">
    <title>My Page</title>
    <!-- ReX react-component-starter-kit -->
    <link href="https://unpkg.com/react-component-starter-kit@3.2.1/react-component-starter-kit.production.min.css" rel="stylesheet">
  </head>
  <body>
    <div class="rex-my-component" role="presentation">
      <img src="static/media/Image.jpg" alt="Basic example" style="width:100%" />
      <h3>Hello World</h3>
      <p>This is a basic example for ReX React Components Starter Kit</p>
    </div>
  </body>
</html>

Documentation, source code and distribution

Site URL
Github (Source Code) https://github.com/rakuten-rex
NPM (Package distribution) https://www.npmjs.com/org/rakuten-rex
ZeroHeight (Documentation) https://zeroheight.com/390c074f3

Project Stack

Front-end
HTML5 CSS3 & Sass JavaScript ES6 React
Tools
webpack Storybook Babel ESLint Prettier

Features

Styles features JavaScript features
Theme support via CSS variables React components splitted by type
Static CSS styles available for HTML/VueJS/AngularJS Universal Module Definition support
Sass mixins for custom builds
Reset CSS styles already bundled by HTML tags
Removed duplicated CSS props
CSS classes prefix rex-

Browser Support

PC Mobile
Chrome 49+ iOS 9+ (Safari 9.3+, Chrome 78+)
Safari 9.1+ Android 6+ (Chrome 78+, Android Browser 76+)
Firefox 31+
MS Edge 15+
IE 11+

Development environment

How to initialize the project for a new repository

npm run setup

How to add a new ReX Component to the project

npm run generate:rex-component

How to start the project

The development environment is based on Storybook, for more info visit https://storybook.js.org/ .

npm start

How to build

The build task will generate a NPM package ready to be published and also a static version of Storybook, one folder for NPM ./npm/@rakuten-rex/react-component-starter-kit and other one for Github pages ./docs.

npm run build

How to check build version

By using Node http-server, you can check the static version of Storybook with production settings and builds.

npm run serve

How to publish to NPM

Build the project

npm run build

Publish to NPM

Build the project first and then publish it to NPM.

npm run publish:component

Once the process finish, take a look to the NPM site:

https://www.npmjs.com/package/@rakuten-rex/react-component-starter-kit

Javascript and React related documents

Take a look to this nice documentation pages to be more familiar with React and modern Javascript:

Official site

https://reactjs.org/docs/getting-started.html

Google Web Fundamentals (the whole site is a must to read)

https://developers.google.com/web/fundamentals/

Webpack as magic bundler

https://webpack.js.org/

Composing Software series (how to understand Funcional Programming)

https://medium.com/javascript-scene/composing-software-an-introduction-27b72500d6ea

Common React patterns

https://reactpatterns.com

Understanding Storybook with nice images

https://blog.hichroma.com/the-delightful-storybook-workflow-b322b76fd07

Some guidelines for clean code

https://americanexpress.io/clean-code-dirty-code/