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.
134 lines
3.6 KiB
134 lines
3.6 KiB
This package consists of all DesignSystem components from [AdminJS](adminjs.co) so you can
|
|
use all of them outside the `adminjs` core.
|
|
|
|
## Installation outside the AdminJS
|
|
|
|
```bash
|
|
yarn add styled-components @adminjs/design-system
|
|
```
|
|
|
|
Optionally, if you use typescript, you might want to install types for `styled-components`
|
|
|
|
```bash
|
|
yarn add --dev @types/styled-components
|
|
```
|
|
|
|
Design System needs a `theme` so to use it you have to use `ThemeProvider` from
|
|
`styled-components` like this:
|
|
|
|
```javascript
|
|
import { ThemeProvider } from 'styled-components'
|
|
|
|
// theme is the default theme, which you can alter
|
|
import { theme, Button, Box, Icon, Reset } from '@adminjs/design-system'
|
|
|
|
function App() {
|
|
return (
|
|
<ThemeProvider theme={theme}>
|
|
<Reset />
|
|
<Box variant="grey">
|
|
<Button><Icon icon="Add" />Click Me</Button>
|
|
<Button variant='primary' ml="xl">I am important</Button>
|
|
</Box>
|
|
</ThemeProvider>
|
|
);
|
|
}
|
|
|
|
export default App;
|
|
```
|
|
|
|
`Reset` resets all the default browser styles.
|
|
|
|
## Changing the theme
|
|
|
|
The 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. To do that
|
|
you can use the `combineStyles` method:
|
|
|
|
```jsx
|
|
import { combineStyles } from '@adminjs/design-system`
|
|
|
|
const myTheme = combineStyles({
|
|
colors: {
|
|
primary100: '#000'
|
|
}
|
|
})
|
|
|
|
//....
|
|
<ThemeProvider theme={myTheme}>
|
|
//....
|
|
```
|
|
|
|
## Global style and the font
|
|
|
|
The main font for the design system is "Roboto". The Default version in OS might not have all the
|
|
font-weights. That is why you should import it in your head:
|
|
|
|
```html
|
|
<link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap" rel="stylesheet"></link>
|
|
```
|
|
|
|
## 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 the `styled` method:
|
|
|
|
```jsx
|
|
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:
|
|
|
|
```jsx
|
|
<MyRoundedButton variant="primary">Rounded I am</MyRoundedButton>
|
|
```
|
|
|
|
## Components
|
|
|
|
All the components were placed in the sidebar. They are divided to Atoms, Molecules and Organisms.
|
|
|
|
## Bundled packages
|
|
|
|
This npm package comes with the bundled versions as well. You can find them under:
|
|
|
|
- `node_modules/@adminjs/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:
|
|
|
|
```html
|
|
<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 repository, there is a storybook folder containing all the stories.
|
|
To run it go inside and:
|
|
|
|
```bash
|
|
yarn install
|
|
yarn storybook
|
|
```
|