UNPKG

react-native-uikit-colors

Version:

react native ui kit colors

134 lines (98 loc) 2.84 kB
# React Native UIKit Colors A cross-platform color system for React Native and React Native Web that provides iOS-style semantic colors with dark mode support. Seamlessly integrates with NativeWind/TailwindCSS. ## Features - 🎨 iOS-style semantic colors that automatically adapt to light/dark mode - 🌐 Cross-platform support (iOS, Android, Web) - 🔄 Dynamic color updates when system theme changes - 🎯 TypeScript support - 🌊 NativeWind/TailwindCSS integration ## Installation ```bash npm install react-native-uikit-colors # or yarn add react-native-uikit-colors ``` ## Setup ### 1. Configure TailwindCSS Update your `tailwind.config.js`: ```js import { withUIKit } from 'react-native-uikit-colors/tailwind' export default withUIKit({ // your existing tailwind config }) ``` ### 2. For Expo Web Support (Optional) If you're using React Native Web, add the CSS injection hook to your components: ```tsx 'use dom' import { useCSSInjection } from 'react-native-uikit-colors/web' function App() { useCSSInjection() return <YourApp /> } ``` ### 3. Inject TailwindCSS Colors ```tsx const RootProviders = ({ children }: { children: ReactNode }) => { useColorScheme() // Observe color scheme changes const currentThemeColors = useCurrentColorsVariants()! return <View style={[styles.flex, currentThemeColors]}>{children}</View> } // Your App Entry Component export const App = () => { return <RootProviders> <YourApp /> </RootProviders> } ``` ## Usage ### 1. Using with NativeWind/TailwindCSS Use semantic color classes directly in your components: ```tsx function MyComponent() { return ( <View className="bg-system-background"> <Text className="text-secondary-label text-sm">Hello World</Text> </View> ) } ``` ### 2. Using with React Native's StyleSheet Use the `useColor` hook to get dynamic colors: ```tsx import { useColor } from 'react-native-uikit-colors' function MyComponent() { const systemFill = useColor('systemFill') const secondarySystemBackground = useColor('secondarySystemBackground') // Works with Reanimated const colorStyle = useAnimatedStyle(() => { return { backgroundColor: interpolateColor( pressed.value, [0, 1], [secondarySystemBackground, systemFill], ), } }) return <Animated.View style={colorStyle} /> } ``` ## Available Colors This library provides all standard iOS semantic colors, including: - `system-background` - `secondary-system-background` - `tertiary-system-background` - `system-grouped-background` - `secondary-system-grouped-background` - `tertiary-system-grouped-background` - `label` - `secondary-label` - `tertiary-label` - `quaternary-label` - `system-fill` - `secondary-system-fill` - `tertiary-system-fill` - `quaternary-system-fill` - And more... ## License MIT