Ionic Framework: one UI kit for iOS, Android, web
Ionic Framework is a Web Components-based UI toolkit for building iOS, Android, and Progressive Web apps from one JavaScript codebase, with wrappers for Angular, React, and Vue. Reach for it if your team already ships web apps and wants native-quality mobile screens without learning a new UI framework. Skip it if you need native APIs beyond Capacitor's plugin ecosystem, or raw touch performance matters more than shared code.
What is Ionic Framework
Ionic Framework is an open-source toolkit for developing cross-platform native apps and Progressive Web Apps via a single JavaScript codebase. It's built on Web Components, which is why the same Ionic UI components work whether you wrap them with Angular, React, or Vue. Pair it with Capacitor to compile that codebase into an installable iOS or Android app, or deploy it straight to the browser as a PWA.
Core features of Ionic Framework
- ✓Ships as a Web Components core library (@ionic/core), so the same UI components render inside Angular, React, or Vue apps without duplicating code per framework.
- ✓Framework-specific packages — @ionic/angular, @ionic/react, @ionic/vue — wrap the core components with idiomatic bindings (directives, hooks, or composables) for each ecosystem.
- ✓Component library covers tabs, modals, action sheets, cards, lists, and form controls, with adaptive theming to feel native on iOS and Android.
- ✓Built with Stencil, ionic-team's own compiler for generating standalone Web Components, which is what keeps the rendering layer from being locked to one framework.
- ✓Pairs with Capacitor, a separate ionic-team project, to wrap the web app in a native shell and expose native device APIs to JavaScript.
- ✓Written in TypeScript throughout, so editors get type checking and autocomplete across component props.
- ✓MIT-licensed, so there's no commercial license fee to add it to a closed-source product.
What you can build with Ionic
- •Cross-platform mobile apps that ship to both the Apple App Store and Google Play from one codebase, using Capacitor to produce the native binaries.
- •Progressive Web Apps that install to a phone's home screen and work offline, using the same component set as the mobile build.
- •Internal business tools and admin dashboards where a team already knows Angular, React, or Vue and wants mobile-ready UI without a native rewrite.
- •Content or e-commerce apps that need native-feeling navigation patterns like tab bars and swipeable modals without hand-rolling platform-specific CSS.
Setting up your first Ionic project
The root README doesn't include install commands — it points to the Ionic documentation site for project setup and to the ionic-conference-app repos (Angular, React, Vue versions) as starting templates. Inside the monorepo, the individual packages are published to npm as @ionic/core, @ionic/angular, @ionic/react, and @ionic/vue, which is what you'd add to an existing project rather than cloning this repo directly.
Building a basic Ionic app
Usage isn't demonstrated in this repository's README either — it's a monorepo for the library itself, not a getting-started guide. The README instead links out to three reference apps, the Ionic Conference App in Angular, React, and Vue flavors, as complete examples of wiring up routing, tabs, and native plugins around the component library.
Strengths
- ✓One component set backs three major frontend frameworks, so a team switching from Angular to React (or vice versa) doesn't have to relearn the UI layer.
- ✓Web Components at the core means the library isn't tied to any one framework's release cycle or breaking changes.
- ✓MIT license keeps it free to use in commercial, closed-source apps.
- ✓Migration guides exist for every major version jump, from v3-to-v4 through v7-to-v8, so upgrading is a documented path rather than a guess.
Limitations and trade-offs
- △Native device access (camera, GPS, filesystem) isn't part of this repo — you need Capacitor, a separate project, and its plugin ecosystem, so the full stack is really two dependencies to track, not one.
- △The README gives no install or quick-start commands directly in this repository; you have to leave it for the docs site to get started.
- △A WebView-rendered UI won't always match native touch responsiveness and animation smoothness, especially on complex list scrolling.
- △Framework wrapper packages (@ionic/angular, @ionic/react, @ionic/vue) mean tracking version compatibility on two fronts, Ionic's and your framework's, on every upgrade.
Ionic vs React Native vs Flutter
Frequently asked questions
Ionic Framework is open source and MIT-licensed, so it's free to use in commercial and closed-source projects without a license fee.
Ionic Framework ships official wrapper packages — @ionic/angular, @ionic/react, and @ionic/vue — that bind its Web Components to each framework's idioms, so the same component library works across all three.
Ionic apps can be submitted to both stores once packaged as native binaries through Capacitor; approval depends on the app meeting each platform's review guidelines like any other app, not on Ionic itself.
Ionic Framework renders UI with Web Components inside a WebView, while React Native and Flutter render through native or native-like UI layers — Ionic trades some raw rendering performance for reusing standard web skills and one component set across Angular, React, and Vue.
Capacitor is ionic-team's separate native runtime project that wraps an Ionic (or any) web app in a native iOS/Android shell and exposes native device APIs through plugins.
The most recent migration guide listed in the repo covers v7 to v8, pointing to v8 as the latest major version documented there; follow that guide's steps to migrate an existing app.
The problem it solves
Teams building for iOS, Android, and the web historically needed three separate codebases and three sets of UI patterns. Ionic Framework's specific fix is putting the UI layer in Web Components so Angular, React, and Vue teams share one component library, then using Capacitor to turn that shared web app into installable native binaries instead of hand-writing native screens per platform.
Who should try it — and who should skip
Try Ionic Framework if your team already builds with Angular, React, or Vue and needs an installable mobile app without a separate native codebase — the shared component library and Capacitor bridge get you there fastest. Skip it if the app needs heavy native functionality outside Capacitor's plugins, or if native-grade scroll and animation performance matters more than shared code.
Related repositories
Is ionic-framework worth your time?
ChatGPT, Claude and Perplexity can all read this page. Ask one of them what it makes of ionic-framework.
