Constellation
Base component library for React based applications built and used by Blockchain.com.
Using the Library
-
Install the library yarn add @blockchain/constellation
-
Import Inter font. see
-
Import and wrap your entire App with the ThemeProvider component. Example below
import { useEffect } from 'react'
import {
ThemeProvider,
useThemeMode,
useLocalStorage,
ThemeMode,
ColorMode,
} from '@blockchain/constellation'
function App(): JSX.Element {
const [themeMode] = useLocalStorage<ThemeMode>("themeMode", 'light')
const theme = useThemeMode(themeMode);
return (
<Store>
<ThemeProvider theme={theme}>
<Router>
...
</Router>
</ThemeProvider>
<Store />
)
}
-
That's it, happy hacking!
Local Hacking Guide
If you would like to develop this library while consuming it via another application, follow these steps:
Prerequisites
- Requires Yarn 2 (Berry) and Webpack 5. It may be possible to use in other setups, but they remain untested.**
- Ensure the Webpack 5 config has
symlinks: false
in the resolve config.
Steps
-
From Constellation repo, run yarn workspace @blockchain-com/constellation build
to compile Constellation.
-
In the app you would like to symlink the repo to, change the dependency install in package.json
"@blockchain-com/constellation": "portal:../constellation/packages/constellation", // relative path may be different!
-
In consuming app, run yarn install
-
You can now make changes to Constellation components and use them directly in the consuming app!
NOTE: For now you will have to manually rebuild (rerun step 1) after every change to a Constellation component.