Ionic provides different packages that can be used to quickly get started using Ionic Framework or Ionicons in a test environment, Angular, any other framework, or none at all.
Ionic Framework can be included from a CDN for quick testing in a Plunker, Codepen, or any other online code editor!
It's recommended to use jsdelivr to access the Framework from a CDN. To get the latest version, add the following inside the <head>
element in an HTML file, or where external assets are included in the online code editor:
<script type="module" src="https://cdn.jsdelivr.net/npm/@ionic/core/dist/ionic/ionic.esm.js"></script>
<script nomodule src="https://cdn.jsdelivr.net/npm/@ionic/core/dist/ionic/ionic.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ionic/core/css/ionic.bundle.css" />
With this it's possible to use all of the Ionic Framework core components without having to install a framework. The CSS bundle will include all of the Ionic Global Stylesheets.
This does not install Angular or any other frameworks. This allows use of the Ionic Framework core components without a framework.
When using Ionic Framework in an Angular project, install the latest @ionic/angular
package from npm. This comes with all of the Ionic Framework components and Angular specific services and features.
npm install @ionic/angular@latest --save
Each time there is a new Ionic Framework release, this version will need to be updated to get the latest features and fixes. The version can be updated using npm, as well.
For adding Ionic to an already existing Angular project, use the Angular CLI's ng add
feature.
This will add the necessary imports to the @ionic/angular
package as well as add the styles needed.
To add Ionic Framework to an already existing React project, install the @ionic/react
and @ionic/react-router
package.
$ npm install @ionic/react
$ npm install @ionic/react-router
To include the necessary CSS in a React project, add the following to the root App component.
import '@ionic/react/css/core.css';
import '@ionic/react/css/normalize.css';
import '@ionic/react/css/structure.css';
import '@ionic/react/css/typography.css';
import '@ionic/react/css/padding.css';
import '@ionic/react/css/float-elements.css';
import '@ionic/react/css/text-alignment.css';
import '@ionic/react/css/text-transformation.css';
import '@ionic/react/css/flex-utils.css';
import '@ionic/react/css/display.css';
To add Ionic Framework to an existing Vue project, install the @ionic/vue
and @ionic/vue-router
packages.
npm install @ionic/vue @ionic/vue-router
After that, you will need to install the IonicVue
plugin in your Vue app.
main.js
import { IonicVue } from '@ionic/vue';
import App from './App.vue';
import router from './router';
const app = createApp(App).use(IonicVue).use(router);
router.isReady().then(() => {
app.mount('#app');
});
Be sure to mount your app once router.isReady()
has resolved.
When setting up routing in your Vue app, you will need to import your dependencies from @ionic/vue-router
instead of vue-router
.
router/index.js
import { createRouter, createWebHistory } from '@ionic/vue-router';
const routes = [
];
const router = createRouter({
history: createWebHistory(process.env.BASE_URL),
routes,
});
export default router;
To include the necessary CSS in a Vue project, add the following to your main.js
file.
import '@ionic/vue/css/core.css';
import '@ionic/vue/css/normalize.css';
import '@ionic/vue/css/structure.css';
import '@ionic/vue/css/typography.css';
import '@ionic/vue/css/padding.css';
import '@ionic/vue/css/float-elements.css';
import '@ionic/vue/css/text-alignment.css';
import '@ionic/vue/css/text-transformation.css';
import '@ionic/vue/css/flex-utils.css';
import '@ionic/vue/css/display.css';
From here, you can learn about how to develop with Ionic Framework in our Ionic Vue Quickstart Guide.
Ionicons is packaged by default with the Ionic Framework, so no installation is necessary if you're using Ionic. To use Ionicons without Ionic Framework, place the following <script>
near the end of your page, right before the closing </body>
tag.
<script type="module" src="https://cdn.jsdelivr.net/npm/ionicons/dist/ionicons/ionicons.esm.js"></script>
<script nomodule src="https://cdn.jsdelivr.net/npm/ionicons/dist/ionicons/ionicons.js"></script>