Installation
Vibrant UI works in both Web(React DOM) and native(React Native) environments.
Web
Install Library
- npm
- Yarn
npm install @vibrant-ui/components @vibrant-ui/core
yarn add @vibrant-ui/components @vibrant-ui/core
Configure VibrantProvider for Web
App.tsx
import { VibrantProvider } from '@vibrant-ui/core';
// react entrypoint
const App = ({ children }) => {
return <VibrantProvider>{children}</VibrantProvider>;
};
React Native
Install Library
- npm
- Yarn
npm install @vibrant-ui/components @vibrant-ui/core-native
yarn add @vibrant-ui/components @vibrant-ui/core-native
Config Metro Config
When using Vibrant UI in a native environment, it is based on @vibrant-ui/core-native
insead of @vibrant-ui/core
.
Therefore, metro configuration should be set.
metro.config.js
const metroResolver = require('metro-resolver');
module.exports = () => {
return {
resolver: {
resolveRequest: (
context,
realModuleName,
platform
) => {
if (realModuleName === '@vibrant-ui/core') {
return {
filePath: require.resolve(
'@vibrant-ui/core-native'
),
type: 'sourceFile',
};
}
return metroResolver.resolve(
context,
realModuleName,
platform
);
},
},
};
};
Configure VibrantProvider for Native
App.tsx
import {
VibrantProvider,
createShadowsComponent,
} from '@vibrant-ui/core';
import type { Dependencies } from '@vibrant-ui/core';
import * as ReactSpringNative from '@react-spring/native';
import { Shadow } from 'react-native-shadow-2';
import { LinearGradient } from 'expo-linear-gradient';
const dependencies: Dependencies = {
reactSpringModule: ReactSpringNative,
nativeShadows: createShadowsComponent(Shadow),
nativeLinearGradient: LinearGradient,
};
const App = ({ children }) => {
return (
<VibrantProvider dependencies={dependencies}>
{children}
</VibrantProvider>
);
};