Place
All checks were successful
Build and Deploy Nuxt / build (push) Successful in 2m1s

This commit is contained in:
2026-06-11 23:47:37 +02:00
parent 887e8c80af
commit 6e4a9ac967
15 changed files with 689 additions and 158 deletions

View File

@@ -3,7 +3,7 @@ import TableHeader from '~/components/parts/TableHeader.vue';
import FixedLayout from '~/components/layouts/FixedLayout.vue';
import { useSeo } from '~/composables/seo';
const { get, post } = api();
const { get, post } = useApi();
const { locale } = useI18n();
useSeo({
@@ -79,4 +79,4 @@ p {
.no-sprite .undertable-wrapper {
display: none;
}
</style>
</style>

View File

@@ -2,10 +2,12 @@
import FixedLayout from '~/components/layouts/FixedLayout.vue';
import TableHeader from '~/components/parts/TableHeader.vue';
import ServerStatus from '~/components/parts/ServerStatus.vue';
import api from '~/composables/api'
import { useSeo } from '~/composables/seo'
const { get, post } = api();
import Place from '~/components/widgets/Place.vue';
const { get, post } = useApi();
const { locale } = useI18n();
const { t } = useI18n();
@@ -180,7 +182,14 @@ const sectionTargets = {
</div>
</section>
<section class="projects-section" id="scroll-projects" v-if="projects && projects.length > 0">
<section class="normal-section" id="place">
<Container>
<h2 class="section-title">Place things!</h2>
<Place></Place>
</Container>
</section>
<section class="normal-section projects-section" id="scroll-projects" v-if="projects && projects.length > 0">
<Container>
<h2 class="section-title">{{ t('pages.projects_heading') }}</h2>
@@ -217,101 +226,7 @@ const sectionTargets = {
</Container>
</section>
<!--
<section class="stats-section" id="scroll-stats">
<Container>
<h2 class="section-title">{{ t('pages.stats_heading') }}</h2>
<div class="stats-grid">
<div class="stat-card">
<span class="stat-card-corner tl"></span>
<span class="stat-card-corner tr"></span>
<span class="stat-card-corner bl"></span>
<span class="stat-card-corner br"></span>
<span class="stat-card-frame-top"></span>
<span class="stat-card-frame-bottom"></span>
<div class="stat-card-header">CODE</div>
<div class="stat-card-content">
<svg class="stat-pixel-art" viewBox="0 0 16 16" aria-hidden="true"><path d="M3 3h2v2H3V3zm4 0h2v2H7V3zm4 0h2v2h-2V3zM3 7h2v2H3V7zm6 0h2v2H9V7zm4 0h2v2h-2V7zM3 11h2v2H3v-2zm4 0h2v2H7v-2zm4 0h2v2h-2v-2z"/></svg>
<span class="stat-number">50K+</span>
<span class="stat-label">{{ t('pages.stat_lines_of_code') }}</span>
</div>
</div>
<div class="stat-card">
<span class="stat-card-corner tl"></span>
<span class="stat-card-corner tr"></span>
<span class="stat-card-corner bl"></span>
<span class="stat-card-corner br"></span>
<span class="stat-card-frame-top"></span>
<span class="stat-card-frame-bottom"></span>
<div class="stat-card-header">WORK</div>
<div class="stat-card-content">
<svg class="stat-pixel-art" viewBox="0 0 16 16" aria-hidden="true"><path d="M4 3h8v2H6v2h6v2H8v2h4v2H4V3z"/></svg>
<span class="stat-number">12+</span>
<span class="stat-label">{{ t('pages.stat_projects') }}</span>
</div>
</div>
<div class="stat-card">
<span class="stat-card-corner tl"></span>
<span class="stat-card-corner tr"></span>
<span class="stat-card-corner bl"></span>
<span class="stat-card-corner br"></span>
<span class="stat-card-frame-top"></span>
<span class="stat-card-frame-bottom"></span>
<div class="stat-card-header">CAFFE</div>
<div class="stat-card-content">
<svg class="stat-pixel-art" viewBox="0 0 16 16" aria-hidden="true"><path d="M4 5h8v2H4V5zm-2 2h2v1H2V7zm10 0h2v1h-2V7zM3 9h1v3h1v-1h3v1h1V9h1v3h1v-1h2v1h1v-4H3z"/></svg>
<span class="stat-number"></span>
<span class="stat-label">{{ t('pages.stat_coffee') }}</span>
</div>
</div>
<div class="stat-card">
<span class="stat-card-corner tl"></span>
<span class="stat-card-corner tr"></span>
<span class="stat-card-corner bl"></span>
<span class="stat-card-corner br"></span>
<span class="stat-card-frame-top"></span>
<span class="stat-card-frame-bottom"></span>
<div class="stat-card-header">PLAY</div>
<div class="stat-card-content">
<svg class="stat-pixel-art" viewBox="0 0 16 16" aria-hidden="true"><path d="M2 4h3v2H3v1h2v2H8v-2h2V6h-1V4h3v2h-2v3H5V6H4V4zm7 2h2v2h-2V6z"/></svg>
<span class="stat-number">28</span>
<span class="stat-label">{{ t('pages.stat_board_games') }}</span>
</div>
</div>
<div class="stat-card">
<span class="stat-card-corner tl"></span>
<span class="stat-card-corner tr"></span>
<span class="stat-card-corner bl"></span>
<span class="stat-card-corner br"></span>
<span class="stat-card-frame-top"></span>
<span class="stat-card-frame-bottom"></span>
<div class="stat-card-header">TIME</div>
<div class="stat-card-content">
<svg class="stat-pixel-art" viewBox="0 0 16 16" aria-hidden="true"><path d="M5 2h6v2H5V2zm-2 4h10v1H3V6zm1 2h8v1H4V8zm2 2h4v1H6v-1zM6 2h4v12H6V2z"/></svg>
<span class="stat-number">8+</span>
<span class="stat-label">{{ t('pages.stat_years_programming') }}</span>
</div>
</div>
<div class="stat-card">
<span class="stat-card-corner tl"></span>
<span class="stat-card-corner tr"></span>
<span class="stat-card-corner bl"></span>
<span class="stat-card-corner br"></span>
<span class="stat-card-frame-top"></span>
<span class="stat-card-frame-bottom"></span>
<div class="stat-card-header">DEPLOY</div>
<div class="stat-card-content">
<svg class="stat-pixel-art" viewBox="0 0 16 16" aria-hidden="true"><path d="M4 3h8v2H9v2h2v2h-2v2h-2v2h6v2H2v-2h2v-2H2V7h2V5H2V3z"/></svg>
<span class="stat-number">150+</span>
<span class="stat-label">{{ t('pages.stat_deployments') }}</span>
</div>
</div>
</div>
</Container>
</section>
-->
<section class="blog-section" id="scroll-blog">
<section class="normal-section" id="scroll-blog">
<Container>
<h2 class="section-title">{{ t('pages.blog_heading') }}</h2>
<ul class="tui-list">
@@ -328,7 +243,7 @@ const sectionTargets = {
</Container>
</section>
<section class="art-section" id="scroll-art">
<section class="normal-section" id="scroll-art">
<Container>
<h2 class="section-title">{{ t('pages.art_heading') }}</h2>
<div class="grid">
@@ -351,7 +266,7 @@ const sectionTargets = {
</Container>
</section>
<section class="contact-section" id="scroll-contact">
<section class="normal-section" id="scroll-contact">
<Container>
<h2 class="section-title">{{ t('pages.contact_heading') }}</h2>
<ContentRenderer v-if="contactMarkdown" :value="contactMarkdown"></ContentRenderer>
@@ -422,12 +337,8 @@ const sectionTargets = {
}
}
.projects-section,
.stats-section,
.blog-section,
.contact-section,
.art-section {
margin-top: 16px;
.normal-section {
margin-top: 24px;
.tui-frame:last-child {
margin-bottom: 0;
@@ -713,11 +624,6 @@ const sectionTargets = {
opacity: 0.8;
}
/* Blog section */
.blog-section {
margin-top: 32px;
}
.tui-list {
list-style: none;
margin: 0;
@@ -779,16 +685,6 @@ const sectionTargets = {
}
}
/* Contact section */
.contact-section {
margin-top: 32px;
}
/* Art section */
.art-section {
margin-top: 32px;
}
.grid {
display: grid;
grid-template-columns: repeat(3, minmax(250px, 1fr));