Introduction

A Flutter component library built on the copy-paste model — own your UI, not a dependency.


What is RonakCN?

RonakCN is a collection of beautifully crafted Flutter widgets that you copy into your project, not install as a package. Inspired by shadcn/ui for the web, RonakCN applies the same philosophy to Flutter: every widget you add becomes your code — stored in your repository, readable by your team, and fully customisable without fighting with an upstream API.

The companion CLI (ronakcn_cli) handles all the plumbing: it copies the widget source files, installs only the pub packages they genuinely require, and keeps a ronakcn.json manifest so you can update or remove components later.

There is no ronakcn entry in your pubspec.yaml. The library never becomes a runtime dependency. You get beautiful, accessible widgets and total ownership — forever.

Quick start

Get your first component running in under two minutes.

  1. 1

    Install the CLI

    Activate the RonakCN CLI via Dart pub globals.

    dart pub global activate ronakcn_cli
  2. 2

    Initialise your project

    Run init inside your Flutter project root to generate the config file.

    ronakcn init
  3. 3

    Add your first component

    Copy any component directly into your project with a single command.

    ronakcn add button

For a full walkthrough including Dart SDK setup, see the installation guide.

Key features

Copy & own

Components are copied directly into your codebase — no package version conflicts, no black-box widgets.

Themeable by design

Every component reads from a central token system. One change in ronakcn.json ripples across your entire UI.

Dark mode built-in

All components ship with first-class dark mode support via Flutter's ThemeMode widget.

RTL ready

Right-to-left layouts work out of the box. Wrap your app in Directionality and you're done.

Powerful CLI

Add, remove, and update components, browse what's available, and manage your config — all from the terminal.

No dependency bloat

RonakCN itself is never added to pubspec.yaml. Only the pub packages a component genuinely needs are installed.

Next steps