Added Vuetify to project

This commit is contained in:
Liviu Burcusel 2025-09-12 12:31:25 +02:00
parent ba7041ab12
commit 8129aaf0ad
Signed by: liviu
GPG key ID: 6CDB37A4AD2C610C
5 changed files with 89 additions and 30 deletions

View file

@ -16,8 +16,11 @@
"type-check": "vue-tsc --build"
},
"dependencies": {
"@mdi/font": "^7.4.47",
"vite-plugin-vuetify": "^2.1.2",
"vue": "^3.5.18",
"vue-router": "^4.5.1"
"vue-router": "^4.5.1",
"vuetify": "^3.10.0"
},
"devDependencies": {
"@tsconfig/node22": "^22.0.2",
@ -29,6 +32,7 @@
"@vue/tsconfig": "^0.7.0",
"jsdom": "^26.1.0",
"npm-run-all2": "^8.0.4",
"sass-embedded": "^1.92.1",
"typescript": "~5.8.0",
"vite": "^7.0.6",
"vite-plugin-vue-devtools": "^8.0.0",

View file

@ -3,27 +3,58 @@ import { RouterLink, RouterView } from "vue-router";
</script>
<template>
<header>
<div class="wrapper">
<nav>
<RouterLink to="/">Home</RouterLink>
<RouterLink to="/about">About</RouterLink>
</nav>
</div>
</header>
<v-app>
<v-app-bar fixed app>
<v-container class="d-flex align-center pa-0">
<div class="d-flex align-center">
<RouterLink class="mx-2 text-decoration-none" to="/">
<v-btn
variant="outlined"
color="primary"
size="large"
prepend-icon="mdi-home-outline"
>
Home
</v-btn>
</RouterLink>
<RouterLink class="mx-2 text-decoration-none" to="/about">
<v-btn
variant="outlined"
color="primary"
size="large"
prepend-icon="mdi-chat-question-outline"
>
About
</v-btn>
</RouterLink>
</div>
</v-container>
</v-app-bar>
<main>
<RouterView />
</main>
<v-main>
<v-container class="align-start fill-height">
<RouterView />
</v-container>
</v-main>
<footer>
<div>Dexie.js - A Minimalistic Wrapper for IndexedDB</div>
<div>
&copy; 2014-2024
<a href="https://dexie.org/" target="_blank" rel="noopener">
Dexie.js
</a>
is the creation of David Fahlander and managed by Awarica AB.
</div>
</footer>
<v-footer class="d-flex flex-column">
<div class="d-flex w-100 align-left px-4 py-2">
Dexie.js - A Minimalistic Wrapper for IndexedDB
</div>
<v-divider thickness="2" width="100%"></v-divider>
<div class="px-4 py-2 align-left w-100">
&copy; 2014-2024
<a href="https://dexie.org/" target="_blank" rel="noopener">
<v-btn variant="outlined" color="primary">Dexie.js</v-btn>
</a>
is the creation of David Fahlander and managed by Awarica AB.
</div>
</v-footer>
</v-app>
</template>
<style lang="scss" scoped>
.fill-height {
min-height: calc(100vh - 180px);
}
</style>

View file

@ -1,11 +1,13 @@
import './assets/main.css'
import "./assets/main.css";
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import { createApp } from "vue";
import App from "./App.vue";
import vuetify from "./plugins/vuetify";
import router from "./router";
const app = createApp(App)
const app = createApp(App);
app.use(router)
app.use(vuetify);
app.use(router);
app.mount('#app')
app.mount("#app");

15
src/plugins/vuetify.ts Normal file
View file

@ -0,0 +1,15 @@
import "@mdi/font/css/materialdesignicons.css";
import "vuetify/styles";
import { createVuetify } from "vuetify";
import * as components from "vuetify/components";
import * as directives from "vuetify/directives";
const vuetify = createVuetify({
components,
directives,
theme: {
defaultTheme: "dark",
},
});
export default vuetify;

View file

@ -3,10 +3,17 @@ import { fileURLToPath, URL } from "node:url";
import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import vueDevTools from "vite-plugin-vue-devtools";
import vuetify from "vite-plugin-vuetify";
// https://vite.dev/config/
export default defineConfig({
plugins: [vue(), vueDevTools()],
plugins: [
vue(),
vueDevTools(),
vuetify({
autoImport: true,
}),
],
resolve: {
alias: {
"@": fileURLToPath(new URL("./src", import.meta.url)),