component-ui
Simple components for React. Bring your own CSS reset.
Install with NPM
npm install --save component-ui
Import or include the CSS
CSS
@import '/your/path/to/component-ui/dist/index.css';
HTML
<link rel="stylesheet" href="/your/path/to/component-ui/dist/index.css">
Components
Button
Property |
Type |
Description |
className |
String |
CSS class passed into the button element |
click |
Function |
Handles the onClick event on the button |
confirm |
Boolean |
Applies confirm styles to the button |
disabled |
Boolean |
Disables the button |
primary |
Boolean |
Applies primary styles to the button |
submit |
Boolean |
Button will submit when placed in forms |
warning |
Boolean |
Applies warning styles to the button |
import React from 'react';
import { Button } from 'component-ui';
const ButtonExamples = (props) => (
<div>
<Button className="button-example">Button with className</Button>
<Button click={props.click}>Button with click handler</Button>
<Button confirm disabled>Confirm Disabled</Button>
<Button primary>Primary</Button>
<Button submit>Submit</Button>
<Button warning>Warning</Button>
</div>
);
Flex
Property |
Type |
Description |
align |
String |
Aligns the children within the component |
basis |
Number |
Percent of the parent Flex used for size |
className |
String |
CSS class passed into the element |
grow |
Boolean |
Fills the space available in the parent |
hidden |
Boolean |
Hides the component (display: none) |
hide |
String |
Hides the component for the screen size |
hideXs |
Boolean |
Hidden for Extra Small to Small screens |
hideSm |
Boolean |
Hidden for Small to Medium screens |
hideMd |
Boolean |
Hidden for Medium to Large screens |
hideLg |
Boolean |
Hidden for Large to Extra Large screens |
layout |
String |
Direction to layout the children within |
overflow |
Boolean |
Allows scrolling of overflowing content |
show |
String |
Shows the component for the screen size |
shrink |
Boolean |
Shrinks to allow siblings to fit parent |
wrap |
Boolean |
Allows wrapping the children to fit |
import React from 'react';
import { Flex } from 'component-ui';
/*
align:
start | start-{center, end, around, between}
center | center-{start, end, around, between}
end | end-{start, center, around, between}
stretch | stretch-{start, center, end, around, between}
baseline | baseline-{start, center, end, around, between}
hide/show:
xs, gt-xs, lt-xs | extra small (320px), greater than, less than
sm, gt-sm, lt-sm | small (480px), greater than, less than
md, gt-md, lt-md | medium (768px), greater than, less than
lg, gt-lg, lt-lg | large (1024px), greater than, less than
xl, gt-xl, lt-xl | extra large (1280px), greater than, less than
*/
const FlexExamples = () => (
<Flex align="start-center" className="flex-example" layout="row">
<Flex align="stretch-start" basis={50} hide="gt-md" layout="column">
<p>Content</p>
</Flex>
<Flex align="center-end" grow hideLg layout="column">
<p>Content</p>
</Flex>
<Flex align="center-start" layout="column" overflow shrink>
<p>Content</p>
</Flex>
<Flex align="end" hidden layout="column" overflow show="lt-md" shrink>
<p>Content</p>
</Flex>
</Flex>
);
Grid
Property |
Type |
Description |
className |
String |
CSS class passed into the element |
container |
Boolean |
Becomes a container for Grid components |
hidden |
Boolean |
Hides the component (display: none) |
hide |
String |
Hides the component for the screen size |
hideXs |
Boolean |
Hidden for Extra Small to Small screens |
hideSm |
Boolean |
Hidden for Small to Medium screens |
hideMd |
Boolean |
Hidden for Medium to Large screens |
hideLg |
Boolean |
Hidden for Large to Extra Large screens |
show |
String |
Shows the component for the screen size |
xs |
Number |
Grid size (1-12) for Extra Small screens |
sm |
Number |
Grid size (1-12) for Small screens |
md |
Number |
Grid size (1-12) for Medium screens |
lg |
Number |
Grid size (1-12) for Large screens |
xl |
Number |
Grid size (1-12) for Extra Large screens |
import React from 'react';
import { Grid } from 'component-ui';
/*
hide/show:
xs, gt-xs, lt-xs | extra small (320px), greater than, less than
sm, gt-sm, lt-sm | small (480px), greater than, less than
md, gt-md, lt-md | medium (768px), greater than, less than
lg, gt-lg, lt-lg | large (1024px), greater than, less than
xl, gt-xl, lt-xl | extra large (1280px), greater than, less than
*/
const GridExamples = () => (
<Grid className="grid-example" container>
<Grid hide="lt-md" xs={12} sm={6} md={4}>
<p>Content</p>
</Grid>
<Grid hideMd xs={12} sm={6} md={4}>
<p>Content</p>
</Grid>
<Grid show="gt-md" xs={12} sm={6} md={4}>
<p>Content</p>
</Grid>
</Grid>
);
Spinner
Property |
Type |
Description |
className |
String |
CSS class passed into the element |
overlay |
Boolean |
Display as centered full-screen overlay |
import React from 'react';
import { Spinner } from 'component-ui';
const SpinnerExample = () => (
<Spinner className="spinner-example" overlay />
);
Textbox
Property |
Type |
Description |
change |
Function |
Handles the onChange event on the input |
className |
String |
CSS class passed into the element |
defaultText |
String |
The default text for uncontrolled input |
disabled |
Boolean |
Disables the text input |
focus |
Function |
Handles the onFocus event on the input |
labelText |
String |
Optional label text for the input |
name |
String |
The name used for the input element |
placeholder |
String |
Optional text shown when input is empty |
type |
String |
The type of the text input |
value |
String |
The value used for the input value |
import React from 'react';
import { Textbox } from 'component-ui';
const TextboxExample = (props) => (
<Textbox
change={props.change}
className="textbox-example"
focus={props.focus}
labelText="Book Title"
name="bookTitle"
placeholder="Title of the Book"
type="text"
value={props.bookTitle}
/>
);
Toggle
Property |
Type |
Description |
change |
Function |
Handles the onChange event on the input |
checked |
Boolean |
Passed into the hidden checkbox input |
className |
String |
CSS class passed into the element |
disabled |
Boolean |
Disables the toggle input |
name |
String |
The name used for the input element |
value |
String |
The value used for the input value |
import React from 'react';
import { Toggle } from 'component-ui';
const ToggleExample = (props) => (
<Toggle
change={props.change}
checked
className="toggle-example"
disabled
name="enableTimeTravel"
value="sureWhyNot"
/>
);
Utils
Each
Property |
Type |
Description |
items |
Array |
Array of objects to map to components |
component |
Component |
Component to render for each item |
import React from 'react';
import { Each } from 'component-ui';
const items = [
{
name: 'Pasta'
},
{
name: 'Pizza'
}
];
const Item = (props) => <li>{props.name}</li>;
const EachExample = () => (
<ul>
<Each items={items} component={Item} />
</ul>
);
When
Property |
Type |
Description |
is |
Boolean |
Renders the children if value is truthy |
import React from 'react';
import { When } from 'component-ui';
const WhenExample = (props) => (
<div>
<When is={props.isExampleReady}>
<p>Content is rendered</p>
</When>
<When is={!props.isExampleReady}>
<p>Content is not rendered</p>
</When>
</div>
);