@@ -36,18 +36,18 @@ npx @react-native-reusables/cli@latest init
36
36
37
37
<Aside type = " tip" title = " Features" >
38
38
39
- - NativeWind v4
39
+ - [ NativeWind] ( https://www.nativewind.dev/ )
40
40
- Dark and light mode configuration
41
41
- Required dependencies
42
- - Expo Navigation Bar
43
- - Tailwind Animate
44
- - AsyncStorage
45
- - Class Variance Authority
46
- - CLSX
47
- - Tailwind Merge
48
- - React Native SVG
49
- - Lucide React Native
50
- - RN Primitives Portal
42
+ - [ Expo Navigation Bar] ( https://docs.expo.dev/versions/latest/sdk/navigation-bar/ )
43
+ - [ Tailwind Animate] ( https://github.com/jamiebuilds/tailwindcss-animate )
44
+ - [ AsyncStorage] ( https://react-native-async-storage.github.io/async-storage/ )
45
+ - [ Class Variance Authority] ( https://cva.style/docs )
46
+ - [ CLSX] ( https://github.com/lukeed/clsx )
47
+ - [ Tailwind Merge] ( https://github.com/dcastil/tailwind-merge )
48
+ - [ React Native SVG] ( https://github.com/software-mansion/react-native-svg )
49
+ - [ Lucide React Native] ( https://lucide.dev/guide/packages/lucide-react-native )
50
+ - [ RN Primitives Portal] ( https://rnprimitives.com/ )
51
51
- Path aliases configuration
52
52
- Utility files and components
53
53
@@ -318,49 +318,49 @@ code={`
318
318
@tailwind utilities;
319
319
320
320
@layer base {
321
- :root {
322
- --background: 0 0% 100%;
323
- --foreground: 240 10% 3.9%;
324
- --card: 0 0% 100%;
325
- --card-foreground: 240 10% 3.9%;
326
- --popover: 0 0% 100%;
327
- --popover-foreground: 240 10% 3.9%;
328
- --primary: 240 5.9% 10%;
329
- --primary-foreground: 0 0% 98%;
330
- --secondary: 240 4.8% 95.9%;
331
- --secondary-foreground: 240 5.9% 10%;
332
- --muted: 240 4.8% 95.9%;
333
- --muted-foreground: 240 3.8% 46.1%;
334
- --accent: 240 4.8% 95.9%;
335
- --accent-foreground: 240 5.9% 10%;
336
- --destructive: 0 84.2% 60.2%;
337
- --destructive-foreground: 0 0% 98%;
338
- --border: 240 5.9% 90%;
339
- --input: 240 5.9% 90%;
340
- --ring: 240 5.9% 10%;
341
- }
321
+ :root {
322
+ --background: 0 0% 100%;
323
+ --foreground: 240 10% 3.9%;
324
+ --card: 0 0% 100%;
325
+ --card-foreground: 240 10% 3.9%;
326
+ --popover: 0 0% 100%;
327
+ --popover-foreground: 240 10% 3.9%;
328
+ --primary: 240 5.9% 10%;
329
+ --primary-foreground: 0 0% 98%;
330
+ --secondary: 240 4.8% 95.9%;
331
+ --secondary-foreground: 240 5.9% 10%;
332
+ --muted: 240 4.8% 95.9%;
333
+ --muted-foreground: 240 3.8% 46.1%;
334
+ --accent: 240 4.8% 95.9%;
335
+ --accent-foreground: 240 5.9% 10%;
336
+ --destructive: 0 84.2% 60.2%;
337
+ --destructive-foreground: 0 0% 98%;
338
+ --border: 240 5.9% 90%;
339
+ --input: 240 5.9% 90%;
340
+ --ring: 240 5.9% 10%;
341
+ }
342
342
343
- .dark:root {
344
- --background: 240 10% 3.9%;
345
- --foreground: 0 0% 98%;
346
- --card: 240 10% 3.9%;
347
- --card-foreground: 0 0% 98%;
348
- --popover: 240 10% 3.9%;
349
- --popover-foreground: 0 0% 98%;
350
- --primary: 0 0% 98%;
351
- --primary-foreground: 240 5.9% 10%;
352
- --secondary: 240 3.7% 15.9%;
353
- --secondary-foreground: 0 0% 98%;
354
- --muted: 240 3.7% 15.9%;
355
- --muted-foreground: 240 5% 64.9%;
356
- --accent: 240 3.7% 15.9%;
357
- --accent-foreground: 0 0% 98%;
358
- --destructive: 0 72% 51%;
359
- --destructive-foreground: 0 0% 98%;
360
- --border: 240 3.7% 15.9%;
361
- --input: 240 3.7% 15.9%;
362
- --ring: 240 4.9% 83.9%;
363
- }
343
+ .dark:root {
344
+ --background: 240 10% 3.9%;
345
+ --foreground: 0 0% 98%;
346
+ --card: 240 10% 3.9%;
347
+ --card-foreground: 0 0% 98%;
348
+ --popover: 240 10% 3.9%;
349
+ --popover-foreground: 0 0% 98%;
350
+ --primary: 0 0% 98%;
351
+ --primary-foreground: 240 5.9% 10%;
352
+ --secondary: 240 3.7% 15.9%;
353
+ --secondary-foreground: 0 0% 98%;
354
+ --muted: 240 3.7% 15.9%;
355
+ --muted-foreground: 240 5% 64.9%;
356
+ --accent: 240 3.7% 15.9%;
357
+ --accent-foreground: 0 0% 98%;
358
+ --destructive: 0 72% 51%;
359
+ --destructive-foreground: 0 0% 98%;
360
+ --border: 240 3.7% 15.9%;
361
+ --input: 240 3.7% 15.9%;
362
+ --ring: 240 4.9% 83.9%;
363
+ }
364
364
}
365
365
` }
366
366
/>
@@ -460,40 +460,39 @@ ErrorBoundary,
460
460
} from 'expo-router';
461
461
462
462
export default function RootLayout() {
463
- const hasMounted = React.useRef(false);
464
- const { colorScheme, isDarkColorScheme } = useColorScheme();
465
- const [isColorSchemeLoaded, setIsColorSchemeLoaded] = React.useState(false);
463
+ const hasMounted = React.useRef(false);
464
+ const { colorScheme, isDarkColorScheme } = useColorScheme();
465
+ const [isColorSchemeLoaded, setIsColorSchemeLoaded] = React.useState(false);
466
466
467
- useIsomorphicLayoutEffect(() => {
468
- if (hasMounted.current) {
469
- return;
470
- }
467
+ useIsomorphicLayoutEffect(() => {
468
+ if (hasMounted.current) {
469
+ return;
470
+ }
471
471
472
- if (Platform.OS === 'web') {
473
- // Adds the background color to the html element to prevent white background on overscroll.
474
- document.documentElement.classList.add('bg-background');
475
- }
476
- setIsColorSchemeLoaded(true);
477
- hasMounted.current = true;
478
- }, []);
472
+ if (Platform.OS === 'web') {
473
+ // Adds the background color to the html element to prevent white background on overscroll.
474
+ document.documentElement.classList.add('bg-background');
475
+ }
476
+ setIsColorSchemeLoaded(true);
477
+ hasMounted.current = true;
478
+ }, []);
479
479
480
- if (!isColorSchemeLoaded) {
481
- return null;
482
- }
480
+ if (!isColorSchemeLoaded) {
481
+ return null;
482
+ }
483
483
484
- return (
485
- <ThemeProvider value={isDarkColorScheme ? DARK_THEME : LIGHT_THEME}>
486
- <StatusBar style={isDarkColorScheme ? 'light' : 'dark'} />
487
- <Stack />
488
- </ThemeProvider>
489
- );
484
+ return (
485
+ <ThemeProvider value={isDarkColorScheme ? DARK_THEME : LIGHT_THEME}>
486
+ <StatusBar style={isDarkColorScheme ? 'light' : 'dark'} />
487
+ <Stack />
488
+ </ThemeProvider>
489
+ );
490
490
}
491
491
492
492
const useIsomorphicLayoutEffect =
493
- Platform.OS === 'web' && typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect;
494
- ` } />
495
-
493
+ Platform.OS === 'web' && typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect;
496
494
495
+ ` } />
497
496
498
497
### Install and Set Up Icons
499
498
0 commit comments