feat(#29): Arcade Neon design system — visual overhaul completo
Implementa o sistema visual Arcade Neon do neon-handoff/ em todo o app: - tokens.css: tokens --fc-*, utilities (fc-pixel/mono/body/glow), form inputs/buttons globais - AppHud.vue: HUD persistente com LV/XP/META + nav chips por rota - BottomNav.vue: nav mobile com 5 rotas - NeonPanel.vue, CharacterSprite.vue, XPBar.vue, HUDStat.vue: componentes base - MonthSwitcher.vue, LevelUpModal.vue - HomeView, CharacterView, TransactionsView, ImportView, CategoriesView, AccountsView, SettingsView: reescritos com Arcade Neon - sprites PNG (lv01–lv15) + sprite-data.json: cosméticos com temas de cor - game.ts: equippedTheme getter para merge de cores do cosmético equipado - 008_cosmetics.sql: seeds alinhados com sprite-data.json Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
This commit is contained in:
+19
-29
@@ -1,39 +1,29 @@
|
||||
<script setup lang="ts">
|
||||
import { onMounted } from 'vue'
|
||||
import { useGameStore } from '@/stores/game'
|
||||
import { useDashboardStore } from '@/stores/dashboard'
|
||||
import AppHud from '@/components/AppHud.vue'
|
||||
import BottomNav from '@/components/BottomNav.vue'
|
||||
|
||||
const gameStore = useGameStore()
|
||||
const dashStore = useDashboardStore()
|
||||
|
||||
onMounted(() => {
|
||||
gameStore.fetchSummary()
|
||||
dashStore.fetch(new Date().toISOString().slice(0, 7))
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<header class="app-header">
|
||||
<span class="app-title">💰 Financeiro Carvalho</span>
|
||||
<nav class="app-nav">
|
||||
<RouterLink to="/">Início</RouterLink>
|
||||
<RouterLink to="/categorias">Categorias</RouterLink>
|
||||
<RouterLink to="/transacoes">Transações</RouterLink>
|
||||
<RouterLink to="/importar">Importar</RouterLink>
|
||||
<RouterLink to="/contas">Contas</RouterLink>
|
||||
<RouterLink to="/personagem">Personagem</RouterLink>
|
||||
<RouterLink to="/configuracoes">Configurações</RouterLink>
|
||||
</nav>
|
||||
</header>
|
||||
<RouterView />
|
||||
<div class="fc-app">
|
||||
<AppHud />
|
||||
<RouterView />
|
||||
<BottomNav />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style>
|
||||
*, *::before, *::after { box-sizing: border-box; }
|
||||
body { margin: 0; font-family: system-ui, sans-serif; background: #f8fafc; color: #1e293b; }
|
||||
a { color: inherit; text-decoration: none; }
|
||||
</style>
|
||||
|
||||
<style scoped>
|
||||
.app-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 2rem;
|
||||
padding: 0.75rem 1.5rem;
|
||||
background: #1e293b;
|
||||
color: #f8fafc;
|
||||
}
|
||||
.app-title { font-weight: 700; font-size: 1rem; }
|
||||
.app-nav { display: flex; gap: 1.25rem; }
|
||||
.app-nav a { font-size: 0.875rem; opacity: 0.8; }
|
||||
.app-nav a.router-link-active { opacity: 1; text-decoration: underline; }
|
||||
button { font-family: inherit; }
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user