@mova-ui/react
v0.4.1
Published
Mova. Make interfaces feel alive. React motion components and an offline source CLI.
Maintainers
Readme
Mova
Make interfaces feel alive.
React components for motion: entrance transitions, hover effects, text reveals, loading indicators, and scroll interactions. Import them as a library, or copy the source into your project with the bundled CLI.
Install
Requires Node.js 20+ and React / React DOM 18.2+ or 19.
npm install @mova-ui/reactImport the CSS once in your app entry point. Mova ships compiled styles, so you do not need to configure Tailwind. The stylesheet includes component utilities without a global reset.
import { FadeIn, GlowButton } from '@mova-ui/react';
import '@mova-ui/react/styles.css';
export function Welcome() {
return (
<FadeIn>
<GlowButton onClick={() => console.log('Hello!')}>
Try Mova
</GlowButton>
</FadeIn>
);
}The package includes TypeScript declarations and an ESM entry point. In frameworks with React Server Components, use interactive components inside a client boundary.
Copy components
Run the CLI from a project directory containing package.json:
npx @mova-ui/react list
npx @mova-ui/react add glow-button
npx @mova-ui/react add fade-in --dir src/components/mova
npx @mova-ui/react --helpThe CLI copies component source, styles.css, and attribution licenses into src/components/mova by default. Missing dependencies are installed automatically using your project's npm, pnpm, yarn, or bun. Import the copied CSS once and keep both license files with the source.
Component sources are bundled with the package. Use --skip-install for offline source copying; otherwise dependency installation updates your package manifest and lockfile. It refuses symlink targets and paths outside your project. Existing component files stay untouched unless you pass --overwrite.
The extended site catalog is generated into standalone JavaScript bundles stored in .tsx files with an explicit typecheck exemption. Original library components retain their TypeScript source; generated catalog bundles do not preserve their original prop types.
Development
This repository contains the component library and CLI only.
npm ci --include=dev
npm run build
npm test
npm run test:consumer
# Run all checks:
npm run verifysource-registry/contains the editable components, hooks, and utilities. The classic toggle is stored as registry JSON.scripts/build.mjscompiles the ESM bundle, strict TypeScript declarations, CSS, and offline registry.bin/mova.mjsimplements the source-copy CLI.install-catalog/contains reviewed public CLI inputs and third-party attribution, controlled bypublic-registry.json. Maintain these inputs in Library; there is no Site-to-Library export workflow.tests/covers package exports, CLI safety, and installation into a separate React consumer.
The root public inventory has 178 explicit sourceRegistry paths, 220 explicit catalogEntries records, and 66 explicit catalog/registry-bindings.json entries. Each binding generates standalone CLI source from its canonical catalog module and preset props. Duplicate paths or component IDs are rejected by the build rather than silently skipped, and the combined 464 IDs are the only IDs emitted into the versioned manifest and CLI registry.
The build recreates dist/, registry/, and .generated/. Do not edit those directories. Consumer verification packs the library, checks its file allowlist, installs it in a temporary project, then runs CLI commands, server rendering, strict typechecking, and a Vite production build.
Source catalog
catalog/ owns 153 reusable UI modules and 16 support files: cards, charts, metrics, forms, toggles, text effects, and CSS animation experiments. The 0.4.1 artifact exports the explicit module allowlist through @mova-ui/react/catalog/... and includes canonical source records in its versioned manifest. These subpaths are separate from root exports and do not create additional CLI IDs. During the root build, catalog/data/supportedRegistryIds.ts is generated from the finalized registry/manifest.json component IDs; the checked-in catalog copy is only a standalone fallback. See the catalog guide for source development. Local artifact availability does not imply that this version has been published to npm.
npm ci --prefix catalog --include=dev
npm --prefix catalog run verifyContributing
Keep changes focused on reusable components or CLI behavior. Edit source-registry/, add regression coverage where applicable, and run npm run verify before opening a pull request. Include usage notes when you change a component API. Check keyboard interaction and reduced-motion behavior for interactive or animated changes.
Maintainers can use the manual npm release workflow for a reviewed, unpublished version. The workflow requires an exact version match and the NPM_TOKEN secret. Version 0.2.0 adds automatic dependency installation and the expanded CLI catalog.
Attribution
Forked from an early version of Amicro.
License
MIT. See LICENSE.
