react-themer
Overview
React bindings for themer. This library helps making react components themeable and extensible.
This library provides a React decorator that developes can use to style their components. Other developers will then be able to easily replace or extend the default component theme.
This library supports all class-based styling mechanisms, for example:
- Global CSS
- CSS Modules
- JSS
- CSJS
- Aphrodite
This library is meant to be used in all CA components.
Installation
npm install ca-ui-react-themer --save
Usage
Basic Usage
Component Definition
;;; const Header = { const styles = propstheme; return <div className=stylesroot> <h1 className=stylestitle>propscontent</h1> </div> ;}; themeHeader;
Component Usage
;;; ;
Adding Middleware
;;;; // see `themer`(https://github.com/CAAPIM/themer) for how to set middlewaresthemer; ;
Adding a Custom react-themer Instance
themer.js
;; // create themer instance.const themer = ; // Set middleware for the newly created instancethemer; const reactThemer = ; ;
Using Decorator in Component
;;; const Header = { const styles = propstheme; return <div className=stylesroot> <h1 className=stylestitle>propscontent</h1> </div> ;}; themeHeader;
Development
npm run <script> |
Description |
---|---|
lint |
Runs eslint against all .js files in ./src folder. |
test |
Runs Mocha against all ./src/*.spec.js files. |
test:watch |
Runs long running test command. |
test:coverage |
Runs test command and generates coverage report. |
precommit |
Runs lint , test commands. |
commit |
Uses commitizen to do proper tagged commits. |
release |
Uses semantic-release to trigger releases. |
How Can You Contribute
Your contributions are welcome and much appreciated. To learn more, see the Contribution Guidelines.
This project supports commitizen
. You can use npm run commit
to run the local instance of commitizen
or git cz
if you have it installed globally.
Alternatively, if you are simply using git commit
, you must follow this format:
git commit -m "<type>: <subject>"
License
Copyright (c) 2017 CA. All rights reserved. This software may be modified and distributed under the terms of the MIT license. To learn more, see the License.