Compatibility & Installation
Supported framework versions, peerDependency ranges, and installation instructions for Next.js, Vite, and Expo.
Compatibility matrix
Stareezy UI is tested against the following framework versions in CI (both the lowest and highest end of each supported range):
| Framework | Supported versions | peerDependency range | Notes |
|---|---|---|---|
| React | 1819 | "react": "^18 || ^19" | Both major versions fully supported |
| React DOM | 1819 | "react-dom": "^18 || ^19" | Required for web targets |
| React Native | 0.810.820.830.840.850.86 | "react-native": ">=0.81 <0.87" | Full range supported |
| Expo SDK | 545556 | via react-native peerDep | SDK 55 is the primary target; 54 and 56 are tested |
| Next.js | 141516 | optional peer (web only) | App Router supported on all three versions |
| Vite | 4567 | optional peer (web only) | Vite plugin uses stable Plugin hook contract only |
@stareezy-ui/* packages declare ranged peerDependencies — they do not hard-pin a single major version. You can use Stareezy-ui in a React 18 project today and upgrade to React 19 without changing the Stareezy-ui version.Installation
Next.js (App Router)
# Next.js 14, 15, or 16
npm install @stareezy-ui/components @stareezy-ui/tokens @stareezy-ui/compiler
# or
pnpm add @stareezy-ui/components @stareezy-ui/tokens @stareezy-ui/compiler
# or
yarn add @stareezy-ui/components @stareezy-ui/tokens @stareezy-ui/compiler// next.config.ts
import { stareezyVitePlugin } from '@stareezy-ui/compiler'
import type { NextConfig } from 'next'
const nextConfig: NextConfig = {
webpack(config) {
config.plugins.push(stareezyVitePlugin())
return config
},
}
export default nextConfigVite + React
# Vite 4, 5, 6, or 7
npm install @stareezy-ui/components @stareezy-ui/tokens @stareezy-ui/compiler// vite.config.ts
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import { stareezyVitePlugin } from '@stareezy-ui/compiler'
export default defineConfig({
plugins: [
react(),
stareezyVitePlugin(),
],
})
// main.tsx — import the generated CSS once
import 'virtual:stareezy-ui/styles'Expo (React Native)
# Expo SDK 54, 55, or 56
yarn add @stareezy-ui/components @stareezy-ui/tokens @stareezy-ui/compiler// metro.config.js
const { getDefaultConfig } = require('expo/metro-config')
const config = getDefaultConfig(__dirname)
config.transformer = {
...config.transformer,
babelTransformerPath: require.resolve('@stareezy-ui/compiler/metro'),
}
module.exports = configpeerDependencies
All @stareezy-ui/* packages declare the following peerDependencies with optional flags where the peer is not required on all platforms:
// Declared across all packages:
{
"peerDependencies": {
"react": "^18 || ^19",
"react-dom": "^18 || ^19",
"react-native": ">=0.81 <0.87"
},
"peerDependenciesMeta": {
"react-dom": { "optional": true },
"react-native": { "optional": true }
}
}react-dom is optional because React Native projects do not need it. react-native is optional because web-only (Vite / Next.js) projects do not need it.
Quick scaffolding with the CLI
Instead of wiring everything manually, use the CLI to scaffold a pre-wired project in one command:
npx stareezy create my-app --template next # Next.js App Router
npx stareezy create my-app --template vite # Vite + React
npx stareezy create my-app --template expo # Expo SDK 55See the CLI guide for details on the create, init, and add commands.
Version-specific notes
React 19
Stareezy UI is compatible with React 19. The ref prop changes in React 19 are handled internally — no changes to your component usage are required.
Next.js 15 and 16
The "./server" entry and the client boundary pattern work on Next.js 14, 15, and 16 with the App Router. The Pages Router is not officially supported.
Vite major versions
The stareezyVitePlugin() uses only the stable Plugin hook contract (resolveId, load, transform) — no version-specific internal APIs. It works on Vite 4, 5, 6, and 7.
Expo SDK compatibility
The Metro transformer is compatible with Expo SDK 54, 55, and 56 on React Native 0.81 through 0.86. It does not depend on Expo-version- specific Metro internals.