Files
crewli/apps/portal/themeConfig.ts
bert.hausmans fda161ee09 chore: align migrations, docs, and frontends with crewli.app setup
- Replace dated migrations with ordered 2026_04_07_* chain; fold users update into base migration
- Update OrganisationScope, AppServiceProvider, seeders, api routes, and .env.example
- Refresh Cursor rules, CLAUDE.md, Makefile, README, and docs (API, SCHEMA, SETUP)
- Adjust admin/app/portal HTML, packages, api-client, events types, and theme config
- Update docker-compose and VS Code settings; remove stray Office lock files from resources

Made-with: Cursor
2026-04-07 10:45:34 +02:00

72 lines
2.2 KiB
TypeScript
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { breakpointsVuetifyV3 } from '@vueuse/core'
import { VIcon } from 'vuetify/components/VIcon'
import { defineThemeConfig } from '@core'
import { Skins } from '@core/enums'
// ❗ Logo SVG must be imported with ?raw suffix
import logo from '@images/logo.svg?raw'
import { AppContentLayoutNav, ContentWidth, FooterType, NavbarType } from '@layouts/enums'
export const { themeConfig, layoutConfig } = defineThemeConfig({
app: {
title: 'Portal',
logo: h('div', { innerHTML: logo, style: 'line-height:0; color: rgb(var(--v-global-theme-primary))' }),
contentWidth: ContentWidth.Boxed,
contentLayoutNav: AppContentLayoutNav.Vertical,
overlayNavFromBreakpoint: breakpointsVuetifyV3.lg - 1, // 1 for matching with vuetify breakpoint. Docs: https://next.vuetifyjs.com/en/features/display-and-platform/
i18n: {
enable: false,
defaultLocale: 'en',
langConfig: [
{
label: 'English',
i18nLang: 'en',
isRTL: false,
},
{
label: 'French',
i18nLang: 'fr',
isRTL: false,
},
{
label: 'Arabic',
i18nLang: 'ar',
isRTL: true,
},
],
},
theme: 'system',
skin: Skins.Default,
iconRenderer: VIcon,
},
navbar: {
type: NavbarType.Sticky,
navbarBlur: true,
},
footer: { type: FooterType.Static },
verticalNav: {
isVerticalNavCollapsed: false,
defaultNavItemIconProps: { icon: 'tabler-circle' },
isVerticalNavSemiDark: false,
},
horizontalNav: {
type: 'sticky',
transition: 'slide-y-reverse-transition',
popoverOffset: 6,
},
/*
// In below Icons section, you can specify icon for each component. Also you can use other props of v-icon component like `color` and `size` for each icon.
// Such as: chevronDown: { icon: 'tabler-chevron-down', color:'primary', size: '24' },
*/
icons: {
chevronDown: { icon: 'tabler-chevron-down' },
chevronRight: { icon: 'tabler-chevron-right', size: 20 },
close: { icon: 'tabler-x', size: 20 },
verticalNavPinned: { icon: 'tabler-circle-dot', size: 20 },
verticalNavUnPinned: { icon: 'tabler-circle', size: 20 },
sectionTitlePlaceholder: { icon: 'tabler-minus' },
},
})