Files
Havline/web/src/App.vue
T

74 lines
1.3 KiB
Vue
Raw Normal View History

2026-09-23 09:40:59 +08:00
<template>
<n-config-provider :theme="naiveTheme" :theme-overrides="themeOverrides">
<n-message-provider>
<n-dialog-provider>
<router-view />
</n-dialog-provider>
</n-message-provider>
</n-config-provider>
</template>
<script setup lang="ts">
import { NConfigProvider, NDialogProvider, NMessageProvider } from 'naive-ui'
import { useTheme } from './composables/useTheme'
import './styles/variables.css'
const { naiveTheme, themeOverrides } = useTheme()
</script>
<style>
* {
box-sizing: border-box;
}
body {
margin: 0;
2026-10-01 16:54:35 +08:00
font-family: var(--havline-font);
background: var(--havline-bg);
color: var(--havline-text);
2026-09-23 09:40:59 +08:00
}
.mono {
2026-10-01 16:54:35 +08:00
font-family: var(--havline-mono);
2026-09-23 09:40:59 +08:00
}
.text-secondary {
2026-10-01 16:54:35 +08:00
color: var(--havline-text-secondary);
2026-09-23 09:40:59 +08:00
}
.text-muted {
2026-10-01 16:54:35 +08:00
color: var(--havline-text-muted);
2026-09-23 09:40:59 +08:00
}
.page-shell,
.page-content {
width: 100%;
}
.page-narrow {
width: 100%;
2026-10-01 16:54:35 +08:00
max-width: var(--havline-form-max);
2026-09-23 09:40:59 +08:00
margin-inline: auto;
}
.form-narrow {
2026-10-01 16:54:35 +08:00
max-width: var(--havline-form-max);
2026-09-23 09:40:59 +08:00
}
.toolbar {
display: flex;
align-items: center;
2026-10-01 16:54:35 +08:00
gap: var(--havline-space-3);
2026-09-23 09:40:59 +08:00
flex-wrap: wrap;
2026-10-01 16:54:35 +08:00
margin-bottom: var(--havline-space-4);
padding-top: var(--havline-space-4);
2026-09-23 09:40:59 +08:00
}
.n-data-table .n-data-table-th {
2026-10-01 16:54:35 +08:00
background: var(--havline-bg-muted) !important;
2026-09-23 09:40:59 +08:00
font-weight: 500;
font-size: 13px;
2026-10-01 16:54:35 +08:00
color: var(--havline-text-secondary);
2026-09-23 09:40:59 +08:00
}
</style>