You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

136 lines
3.9 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# @adminjs/design-system
This package consists of all DesignSystem components from [AdminJS](https://adminjs.co) so you can use all of them outside the `adminjs` core.
It was created with the help of 2 amazing packages:
- [styled-components](styled-components.com) which is a peerDependency
- [styled-system](styled-stystem.com)
make sure to check them out to use the full potential of this design system.
## Installation
```sh
yarn add styled-components @adminjs/design-system
```
Optionally, if you use typescript, you might want to install types for `styled-components`
```
yarn add --dev @types/styled-components
```
Design System needs a `theme` so in order to use it you have to use `ThemeProvider` from `styled-components` like this:
```
import { ThemeProvider } from 'styled-components'
// theme is the default theme, which you can alter
import { theme, Button, Box, Icon } from '@adminjs/design-system'
function App() {
return (
<ThemeProvider theme={theme}>
<Box variant="grey">
<Button><Icon icon="Add" />Click Me</Button>
<Button variant='primary' ml="xl">I am important</Button>
</Box>
</ThemeProvider>
);
}
export default App;
```
## Changing theme
Design System provides you with the default [theme](https://adminjs.co/Theme.html). It contains all the parameters like paddings, colors, font sizes etc. For the list of all available parameters take a look at the [Theme spec](https://adminjs.co/Theme.html).
But nothing stands in a way for you to change the default theme. In order to do that you can use `combineStyles` method:
```
import { combineStyles } from '@adminjs/design-system`
const myTheme = combineStyles({
colors: {
primary100: '#000'
}
})
//....
<ThemeProvider theme={myTheme}>
//....
```
## Changing particular components
Sometimes you might want to change the look and feel of a particular component - not the entire theme. You can achieve that with `styled` method:
```
import { Button } from '@adminjs/design-system'
import styled from 'styled-components'
const MyRoundedButton = styled(Button)`
border-radius: 10px;
`
```
and then you can use it like a normal button component:
```
<MyRoundedButton variant="primary">Rounded I am</MyRoundedButton>
```
## Components
For the list off all the components and their documentation go to [adminjs.co](adminjs.co)
## Bundled packages
This npm package comes with the bundled versions as well. You can find them under:
- `node_modules/@adminjd/design-system/bundle.development.js`
- `node_modules/@adminjs/design-system/bundle.production.js` (minified)
(they can also be bundled by using `bundle` script: `yarn bundle` or `NODE_ENV=production yarn bundle`)
In order to use them you will have to host them (put to your 'public' folder) and then put them into the HEAD of your page:
```
<head>
<!-- ... -->
<script crossorigin src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script crossorigin src="https://cdnjs.cloudflare.com/ajax/libs/styled-components/5.1.1/styled-components.js"></script>
<script crossorigin src="/bundle.development.js"></script>
<!-- ... -->
</head>
```
## Contribute
If you find any UI errors - feel free to create a PR.
## Storybook
Inside the repo there is a storybook folder containing all the stories. In order to run it go inside and:
```
cd storybook
yarn install
yarn storybook
```
## License
AdminJS is Copyright © 2021 SoftwareBrothers.co. It is free software, and may be redistributed under the terms specified in the [MIT LICENSE](LICENSE.md) file.
## About SoftwareBrothers.co
<img src="https://softwarebrothers.co/assets/images/software-brothers-logo-full.svg" width=240>
Were an open, friendly team that helps clients from all over the world to transform their businesses and create astonishing products.
* We are available for [hire](https://softwarebrothers.co/contact).
* If you want to work for us - check out the [career page](https://softwarebrothers.co/career).