Sign In

@app-cn/ui

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@app-cn/ui

Copy-paste mobile components for React Native + Expo. Motion-first, dark-by-default, with a featured AI-native collection.

latest
Source
npmnpm
Version
0.2.0
Version published
Maintainers
1
Created
Source

@app-cn/ui

npm license

Copy-paste mobile components for React Native + Expo. Motion-first, dark-by-default, with a featured AI-native collection.

This package can be consumed two ways — pick whichever fits your project:

  • npx shadcn add — copy the source straight into your repo. You own the code, zero lock-in.
  • npm install @app-cn/ui — managed dependency. Same primitives, just imported.

Docs and live previews: https://appcn.vercel.app

Install (managed dep)

npm install @app-cn/ui
# or
pnpm add @app-cn/ui
# or
yarn add @app-cn/ui

You'll also need the peer deps (which you almost certainly already have in an Expo + NativeWind project):

npm install react react-native react-native-reanimated react-native-gesture-handler nativewind
# Optional — for haptics
npm install expo-haptics

Configure NativeWind

Extend your tailwind.config.js with appCN's preset so the components' classes resolve:

const appcnPreset = require("@app-cn/ui/tailwind-preset");

/** @type {import('tailwindcss').Config} */
module.exports = {
  presets: [appcnPreset],
  content: [
    "./app/**/*.{ts,tsx}",
    "./components/**/*.{ts,tsx}",
    "./node_modules/@app-cn/ui/src/**/*.{ts,tsx}",
  ],
};

…and import the global CSS (defines the dark/light tokens) once at app entry:

import "@app-cn/ui/global.css";

Install (copy-paste via shadcn)

If you'd rather own the source, use the shadcn CLI against appCN's registry:

# Single component (no setup)
npx shadcn@latest add https://appcn.vercel.app/r/button.json

# Or set up the namespaced form once in components.json
# and use:
npx shadcn@latest add @app-cn/stream-bubble

Each component pulls in its required helpers (cn, motion, haptics) automatically via the shadcn registry's registryDependencies.

Use

import { Button, StreamBubble, PromptInput } from "@app-cn/ui";

export function Chat() {
  return (
    <>
      <StreamBubble content="Hey! Watch me think, then stream this reply." />
      <PromptInput onSubmit={(text) => console.log(text)} />
    </>
  );
}

What's shipped (v0.1.0)

ComponentCategoryDelight
ButtonBaseSpring-y press scale, no overshoot
StreamBubbleAIThree-phase thinking → token stream → settle
PromptInputAISend morphs into a stop with a spinning ring
ReasoningTraceAIAuto-collapses the instant the answer lands

Each one has full docs (anatomy, props table, examples, accessibility) at https://appcn.vercel.app/components/{slug}, plus a QR you can scan with Expo Go to run it live on your phone.

License

MIT. You own the code.

Keywords

react-native

FAQs

Package last updated on 31 May 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts