Lucid: a React component library from AppNexus
Lucid
Lucid UI is a React component library by AppNexus.
- Battle-tested in Enterprise Apps
- Hybrid Component State
- Child Component Composition
- Computed Props With reselect
- Pure SVG Charts Built on D3
- Human-readable CSS Class Names
Install
Lucid can be installed with npm
npm install --save lucid-ui
or yarn
yarn add lucid-ui
Usage
import React from 'react';
import ReactDOM from 'react-dom';
import { Button } from 'lucid-ui';
ReactDOM.render(
<Button>Hello World</Button>,
mountNode
);
Lucid uses less
for its stylesheets. If you use less
, you can include the
styles like so:
@import "node_modules/lucid-ui/src/index.less";
If you don't use less
, you can use the precompiled css file
node_modules/lucid-ui/dist/lucid.css
.
Custom CSS Scope
There are some very rare situations where you might need to customize the
prefix for all the css class names emitted by the library and less
. If you
find yourself in that unenviable position, you can do the following:
In your webpack config use the [DefinePlugin
][dp] to specify
LUCID_CSS_NAMESPACE
like so:
new webpack.DefinePlugin({
LUCID_CSS_NAMESPACE: "'something-custom'",
});
When you render the less
, make sure to [set the prefix
variable][lmv] to the
same thing you set in in your webpack config. E.g.
lessc node_modules/lucid-ui/src/index.less --modify-var='prefix=something-custom'
Dependencies
lucid-ui
has several React peer dependencies. This means your application
is responsible for declaring dependencies on compatible versions. Currently
we support React 15 and 16.
Example package.json:
{
"dependencies": {
"lucid-ui": "^5.0.0",
"react": "^16.0.0",
"react-dom": "^16.0.0",
}
}
To contribute to lucid, please see CONTRIBUTING.md
.