feat: build dark fantasy application shell

This commit is contained in:
Bastian Wagner
2026-08-18 22:36:21 +02:00
parent 6304703d67
commit b9e5c66c8e
28 changed files with 633 additions and 362 deletions

View File

@@ -0,0 +1,53 @@
<nav class="side-navigation" aria-label="Spielnavigation">
<button
class="side-navigation__item side-navigation__item--active"
type="button"
routerLink="/world"
data-navigation="world"
aria-current="page"
>
<img src="/images/hud/MapsIcon.png" alt="" />
<span>Karte</span>
</button>
<button
class="side-navigation__item"
type="button"
data-navigation="hunt"
disabled
aria-label="Jagd ist noch nicht verfügbar"
>
<img src="/images/hud/HuntIcon.png" alt="" />
<span>Jagd</span>
</button>
<button
class="side-navigation__item"
type="button"
data-navigation="quests"
disabled
aria-label="Quests sind noch nicht verfügbar"
>
<img src="/images/hud/QuestsIcon.png" alt="" />
<span>Quests</span>
</button>
<button
class="side-navigation__item"
type="button"
data-navigation="inventory"
disabled
aria-label="Inventar ist noch nicht verfügbar"
>
<img src="/images/hud/InventoryIcon.png" alt="" />
<span>Inventar</span>
</button>
<button
class="side-navigation__item"
type="button"
data-navigation="character"
disabled
aria-label="Charakter ist noch nicht verfügbar"
>
<img src="/images/hud/CharacterIcon.png" alt="" />
<span>Charakter</span>
</button>
</nav>

View File

@@ -0,0 +1,73 @@
:host {
display: block;
background: var(--ar-panel);
}
.side-navigation {
display: grid;
align-content: start;
padding-block: var(--ar-space-3);
}
.side-navigation__item {
display: flex;
align-items: center;
gap: var(--ar-space-3);
inline-size: 100%;
min-block-size: 4.3rem;
padding: var(--ar-space-3) var(--ar-space-4);
border: 0;
border-block-end: 1px solid color-mix(in srgb, var(--ar-border) 65%, transparent);
border-inline-start: 3px solid transparent;
color: var(--ar-text-muted);
background: transparent;
font: inherit;
text-align: start;
text-decoration: none;
transition:
color var(--ar-motion-fast),
background var(--ar-motion-fast),
border-color var(--ar-motion-fast);
}
.side-navigation__item img {
inline-size: 2.25rem;
block-size: 2.25rem;
object-fit: cover;
border-radius: 50%;
}
.side-navigation__item--active {
border-inline-start-color: var(--ar-blue);
color: var(--ar-text);
background: linear-gradient(90deg, rgb(92 169 216 / 0.2), transparent);
box-shadow: inset 0 0 1.25rem rgb(92 169 216 / 0.08);
}
.side-navigation__item:not(:disabled):hover,
.side-navigation__item:not(:disabled):focus-visible {
color: var(--ar-text);
background: rgb(255 255 255 / 0.04);
}
.side-navigation__item:disabled {
cursor: not-allowed;
opacity: 0.52;
}
@media (width < 620px) {
.side-navigation {
grid-template-columns: repeat(5, minmax(0, 1fr));
padding: 0;
}
.side-navigation__item {
justify-content: center;
min-block-size: 3.5rem;
padding: var(--ar-space-2);
}
.side-navigation__item span {
display: none;
}
}

View File

@@ -0,0 +1,10 @@
import { Component } from '@angular/core';
import { RouterLink } from '@angular/router';
@Component({
selector: 'app-side-navigation',
imports: [RouterLink],
templateUrl: './side-navigation.component.html',
styleUrl: './side-navigation.component.scss',
})
export class SideNavigationComponent {}