added real landing page

This commit is contained in:
2025-12-30 22:02:08 +01:00
parent 97752905da
commit d0c177b46e
8 changed files with 213 additions and 2 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 416 KiB

+126
View File
@@ -3758,4 +3758,130 @@ a,
.prop-input:focus {
outline: none;
border-color: #0056b3;
}
/* ===================================
LANDING PAGE STYLES
=================================== */
.landing-page {
width: 100vw;
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
background-image: url('/Abgrund-DD2.jpg');
background-size: cover;
background-position: center;
background-repeat: no-repeat;
background-attachment: fixed;
position: relative;
overflow: hidden;
}
.landing-page::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: rgba(0, 0, 0, 0.5);
z-index: 1;
}
.landing-content {
position: relative;
z-index: 2;
max-width: 800px;
padding: 2rem;
text-align: center;
color: white;
}
.dragon-container {
margin-bottom: 2rem;
}
.dragon-image {
max-width: 300px;
width: 100%;
height: auto;
filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.3));
animation: float 3s ease-in-out infinite;
}
@keyframes float {
0%, 100% {
transform: translateY(0);
}
50% {
transform: translateY(-10px);
}
}
.info-container h1 {
font-size: 2.5rem;
margin-bottom: 1.5rem;
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.7);
line-height: 1.2;
}
.info-container .description {
font-size: 1.2rem;
line-height: 1.6;
margin-bottom: 2rem;
text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.7);
}
.version-info {
margin-bottom: 2rem;
font-size: 0.9rem;
opacity: 0.9;
}
.version-info p {
margin: 0.5rem 0;
line-height: 1.4;
}
.action-links {
display: flex;
gap: 1rem;
justify-content: center;
flex-wrap: wrap;
}
.action-links .btn {
min-width: 150px;
font-size: 1.1rem;
padding: 12px 24px;
}
@media (max-width: 768px) {
.landing-content {
padding: 1rem;
}
.dragon-image {
max-width: 200px;
}
.info-container h1 {
font-size: 1.8rem;
}
.info-container .description {
font-size: 1rem;
}
.action-links {
flex-direction: column;
align-items: center;
}
.action-links .btn {
width: 100%;
max-width: 300px;
}
}
+3
View File
@@ -1,6 +1,9 @@
<template>
<nav class="top-nav"><!---<nav class="menu"> --->
<ul>
<li>
<router-link to="/" active-class="active">{{ $t('menu.Home') }}</router-link>
</li>
<li>
<router-link to="/dashboard" active-class="active">{{ $t('menu.Dashboard') }}</router-link>
</li>
+9
View File
@@ -44,6 +44,15 @@ export default {
Register:'Registrieren',
Maintenance:'Wartung',
UserManagement:'Benutzerverwaltung',
Home:'Startseite',
},
landing:{
title:'BaMoRT - Charakterverwaltung für Rollenspiele',
description:'Bamort ist ein modernes Werkzeug zur Charakterverwaltung für Rollenspiele. Es bietet umfassende Funktionen zur Charaktererstellung, -entwicklung und -verwaltung mit Unterstützung für Fertigkeiten, Zauber, Ausrüstung und mehr.',
version:'Version',
commit:'Commit',
login:'Zum Login',
github:'Projekt auf GitHub',
},
Equipment:'Ausrüstung',
equipment:{
+11 -1
View File
@@ -42,7 +42,17 @@ export default {
ImportData:'Import Data',
Logout:'Logout',
Register:'Register',
Maintenance:'Maintenance', UserManagement:'User Management', },
Maintenance:'Maintenance', UserManagement:'User Management',
Home:'Home',
},
landing:{
title:'BaMoRT - Character Management for Role-Playing Games',
description:'Bamort is a modern character management tool for role-playing games. It provides comprehensive features for character creation, development, and management with support for skills, spells, equipment, and more.',
version:'Version',
commit:'Commit',
login:'Login',
github:'Project on GitHub',
},
Equipment:'Equipment',
equipment:{
id:'ID',
+3 -1
View File
@@ -1,5 +1,6 @@
import { createRouter, createWebHistory } from "vue-router";
import { isLoggedIn } from "../utils/auth"; // Import the helper function
import LandingView from "../views/LandingView.vue";
import LoginView from "../views/LoginView.vue";
import RegisterView from "../views/RegisterView.vue";
import ForgotPasswordView from "../views/ForgotPasswordView.vue";
@@ -18,7 +19,8 @@ import CharacterCreation from "@/components/CharacterCreation.vue";
const routes = [
{ path: "/", name: "Login", component: LoginView },
{ path: "/", name: "Landing", component: LandingView },
{ path: "/login", name: "Login", component: LoginView },
{ path: "/register", name: "Register", component: RegisterView },
{ path: "/forgot-password", name: "ForgotPassword", component: ForgotPasswordView },
{ path: "/reset-password", name: "ResetPassword", component: ResetPasswordView },
+61
View File
@@ -0,0 +1,61 @@
<template>
<div class="landing-page">
<div class="landing-content">
<div class="dragon-container">
<img src="/Drache.png" alt="Bamort Dragon" class="dragon-image" />
</div>
<div class="info-container">
<h1>{{ $t('landing.title') }}</h1>
<p class="description">{{ $t('landing.description') }}</p>
<div class="version-info">
<p>{{ $t('landing.version') }}: {{ version }}</p>
<p>{{ $t('landing.commit') }}: {{ commit }}</p>
</div>
<div class="action-links">
<router-link to="/login" class="btn btn-primary">
{{ $t('landing.login') }}
</router-link>
<a :href="githubUrl" target="_blank" rel="noopener noreferrer" class="btn btn-secondary">
{{ $t('landing.github') }}
</a>
</div>
</div>
</div>
</div>
</template>
<style scoped>
/* Component-specific styles moved to main.css as per project conventions */
</style>
<script>
export default {
name: "LandingView",
data() {
return {
version: "0.1.0",
commit: "9775290",
githubUrl: "https://github.com/Bardioc26/bamort"
}
},
mounted() {
// Fetch version and commit from API if available
this.fetchVersionInfo()
},
methods: {
async fetchVersionInfo() {
try {
// For now, using static values
// In future, could fetch from backend API endpoint
this.version = import.meta.env.VITE_APP_VERSION || "0.1.0"
this.commit = import.meta.env.VITE_GIT_COMMIT || "9775290"
} catch (error) {
console.warn("Could not fetch version info:", error)
}
}
}
}
</script>