beUI Pro para móvil ya está disponible: 50 bloques y pantallas de React Native
Configuración de React Native
Configura tu app de Expo una vez y luego instala cualquier pantalla o bloque móvil desde el registry privado. La configuración sigue la guía gratuita de beUI Native, con las rutas donde se instalan los items Pro.
1. Instala las bibliotecas
Cada item se anima con Reanimated y se estiliza con Uniwind. Instala con Expo para que las versiones coincidan con tu SDK. Algunos items necesitan más, como Skia o Bottom Sheet; cada página lo indica.
npx expo install react-native-reanimated react-native-worklets react-native-gesture-handler react-native-svg
npm install uniwind tailwindcss2. Configura Uniwind y el tema
Envuelve tu configuración de Metro con Uniwind. El preset de Babel de Expo añade el plugin de Worklets, así que las apps de Expo no necesitan cambios en Babel.
const { getDefaultConfig } = require("expo/metro-config");
const { withUniwindConfig } = require("uniwind/metro");
const config = getDefaultConfig(__dirname);
// Uniwind must be the outermost wrapper.
module.exports = withUniwindConfig(config, {
cssEntryFile: "./global.css",
dtsFile: "./uniwind-types.d.ts",
});Crea global.css en la raíz del proyecto. El import del tema apunta a los tokens que añade la primera instalación; si tu CSS está en una subcarpeta, añade también un @source para components.
@import "tailwindcss";
@import "uniwind";
@import "./components/beui-pro/beui/styles/theme.css";3. Envuelve tu app
Importa global.css una vez y envuelve la app en GestureHandlerRootView, que necesitan los swipes, arrastres y sheets.
import "../global.css";
import { Stack } from "expo-router";
import { GestureHandlerRootView } from "react-native-gesture-handler";
export default function RootLayout() {
return (
<GestureHandlerRootView style={{ flex: 1 }}>
<Stack />
</GestureHandlerRootView>
);
}4. Conecta el registry e instala
Las apps de Expo necesitan un components.json completo para la CLI de shadcn. Añade este en la raíz del proyecto y luego instala con el BEUI_PRO_TOKEN de tu cuenta.
{
"$schema": "https://ui.shadcn.com/schema.json",
"style": "new-york",
"rsc": false,
"tsx": true,
"tailwind": {
"config": "",
"css": "global.css",
"baseColor": "neutral",
"cssVariables": true
},
"aliases": {
"components": "@/components",
"utils": "@/lib/utils",
"lib": "@/lib",
"hooks": "@/hooks"
},
"registries": {
"@beui-pro": {
"url": "https://pro.beui.dev/r/{name}.json",
"headers": {
"Authorization": "Bearer ${BEUI_PRO_TOKEN}"
}
}
}
}export BEUI_PRO_TOKEN="beui_live_xxxxxxxxxxxx"
npx shadcn@latest add @beui-pro/native-tab-barLos items se instalan en components/beui-pro, junto a los archivos compartidos de beUI que importan. ¿Prefieres archivos? Descarga cualquier item, o todos, desde el panel.
global.css
metro.config.js
components.json
components/
beui-pro/
premium/
blocks/tab-bar/
beui/
hooks/
styles/
motion.ts
theme.css5. Carga Inter (opcional)
Los items Pro usan font-sans-medium y clases similares para el texto. Para que coincidan con los clips, añade estas familias después del tema en global.css y carga los cuatro pesos antes de renderizar. Sáltatelo para usar la fuente del sistema.
npx expo install @expo-google-fonts/inter expo-font@theme {
--font-sans: "Inter_400Regular";
--font-sans-medium: "Inter_500Medium";
--font-sans-semibold: "Inter_600SemiBold";
--font-sans-bold: "Inter_700Bold";
}import {
Inter_400Regular,
Inter_500Medium,
Inter_600SemiBold,
Inter_700Bold,
useFonts,
} from "@expo-google-fonts/inter";
const [loaded] = useFonts({
Inter_400Regular,
Inter_500Medium,
Inter_600SemiBold,
Inter_700Bold,
});