0.0.4 • Published 2 years ago

@bnb-chain/uikit v0.0.4

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

@bnb-chain/uikit

This repository holds the source code to the component library used by this project. It uses Chakra UI under the hood.

If a component is not specific to a page and it does not rely on business logic, it belongs in this project.

If a component needs i18n, you can put the translation in locales/en.ts.

Theme

Colors

Our color scheme works a bit differently than Chakra UI. We have two themes, dark and light.

Colors come in pairs (i.e. every dark color has a light equivalent) so switching themes is seamless.

import { theme, useColorMode } from '@bnb-chain/uikit';
...
const { colorMode } = useColorMode();
...
console.log(theme.colors[colorMode].bg.primary); // #1e2026 in dark mode, #fafafa in light mode.

Sizes

Our size scheme is similar to Chakra UI, which is inspired by Tailwind CSS. Sizes are proportional increments of 4px. There are some half sizes for values regularly used in our project.

Namepx
14px
28px
312px
3.514px
416px
...
N(N*4)px
import { Box, theme, useColorMode } from '@bnb-chain/uikit';
...
console.log(theme.sizes['4']); // 16px
...
<Box fontSize={theme.sizes['4']} /> // ❌ Do not use px for font sizing.
<Box m={theme.sizes['4']} /> // ✅ Use sizes for attributes such as padding, margin, border radius, etc.

Typography

Font sizes follow the same scheme as sizes, except they use rem instead of px.

Namerem
10.25rem
20.5rem
30.75rem
3.50.875rem
41rem
...
N(N*0.25)rem
import { Box, theme, useColorMode } from '@bnb-chain/uikit';
...
console.log(theme.fontSizes['4']); // 1rem
...
<Box fontSize={theme.fontSizes['4']} /> // ✅