# Examples
## Simple Example with New Context API
```
react-app
├── uibook
│ ├── checkbox.uibook.js
│ ├── button.uibook.js
│ ├── field.uibook.js
│ └── uibook-controller.js
├── controllers
│ └── context.js
├── src
│ ├── checkbox.js
│ ├── button.js
│ └── field.js
├── webpack.config.js
└── package.json
```
_webpack.config.js_
```js
const Uibook = require('uibook')
plugins: [
new HtmlWebpackPlugin({
inject: true,
excludeChunks: ['uibook'],
template: paths.appHtml,
}),
new Uibook({
outputPath: '/uikitties',
controller: path.join(__dirname, '../src/uibook-controller.js'),
title: 'Uikitties'
}),
],
```
_uibook-controller.js_
```js
import UibookStarter from 'uibook/uibook'
import Context from '../controllers/context'
import CheckboxUibook from './checkbox.uibook'
import ButtonUibook from './button.uibook'
import FieldUibook from './field.uibook'
import PopupUibook from './popup.uibook'
export default UibookStarter({
wrapper: (children, props) =>
{ children }
,
values: {
locale: ['ru', 'en'],
theme: ['dark', 'light']
},
pages: {
Checkbox: CheckboxUibook,
Button: ButtonUibook,
Field: FieldUibook,
Popups: {
Popup: PopupUibook
}
}
})
```
_button.uibook.js_
```js
import UibookCase from 'uibook/case'
const ButtonUibook = {
component: Button,
cases: [
() =>
First Button
,
() =>
Large Button
,
() =>
Disabled
]
}
export default ButtonUibook
```
_checkbox.uibook.js_
```js
var CheckboxUibook = {
background: 'dark',
component: Checkbox,
cases: [
() => First,
() => Checked,
() => Disabled
]
}
```
---
[← Back to the Troubleshooting](troubleshooting.md)