Skip to content

@gj-kit/expo-ui

Accessible, token-driven UI primitives for Expo, React Native, and the web.

Current npm latest: 0.8.1

Use it when one design language, controlled component state, overlays, and accessibility behavior must work across native and web targets.

Do not use it for product routes, data stores, analytics, or product-specific copy.

Outcome: A themed, accessible button rendered from one application-wide provider.

Terminal window
pnpm add @gj-kit/expo-ui

Create themes once and mount UiProvider at the component that wraps your app.

Copy this first, then replace only the app-owned values named above.

import { Button, UiProvider, enStrings } from '@gj-kit/expo-ui';
import { createThemes } from '@gj-kit/expo-ui/theme';
const themes = createThemes();
export function App() {
return (
<UiProvider theme={themes} strings={enStrings}>
<Button label="Get started" onPress={() => {}} />
</UiProvider>
);
}

Engines: node >=20

Peer Supported range Required for
react >=18 the package integration
react-native >=0.79 the package integration
react-native-safe-area-context >=4 documented optional subpaths only
react-native-web >=0.21 documented optional subpaths only
Entry Exported symbols
Root entry 361
./insets 11
./insets/pure 6
./tailwind 4
./theme 26

Keep optional safe-area and React Native Web peers behind their documented subpaths. Supply application copy through strings rather than baking product copy into primitives.

complete API reference contains every public function, class, type, constant, and error contract generated from release declarations. Each item shows its import path, release signature, and package version.

@gj-kit/expo-media, @gj-kit/expo-auth

npm · GitHub