feat: enhance accessibility with skip to main content button and improve navigation handling

🔧 fix: update navigation href resolution to include localized paths

🆕 feat: add new FeatureIcon component for feature boxes

🎨 style: improve styling for prose elements in richtext blocks

🛠️ refactor: streamline medialib image loading and caching logic

📦 chore: update mock data handling to support new medialib entries

🔄 chore: synchronize i18n initialization and locale management

📝 docs: update video tour descriptions to reflect recent changes
This commit is contained in:
2026-05-12 13:55:32 +00:00
parent 8fb26fdeba
commit e84b87ed16
41 changed files with 1523 additions and 338 deletions
View File
+29
View File
@@ -0,0 +1,29 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1600 900" role="img" aria-labelledby="title desc">
<title id="title">Tibi Starter admin preview</title>
<desc id="desc">Abstract admin preview illustration for the Tibi starter project.</desc>
<defs>
<linearGradient id="bg" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%" stop-color="#0f2d45" />
<stop offset="50%" stop-color="#1f5f7a" />
<stop offset="100%" stop-color="#d9e7f1" />
</linearGradient>
<linearGradient id="card" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%" stop-color="#ffffff" stop-opacity="0.95" />
<stop offset="100%" stop-color="#dfeaf2" stop-opacity="0.92" />
</linearGradient>
</defs>
<rect width="1600" height="900" fill="url(#bg)" />
<circle cx="1320" cy="140" r="160" fill="#ffffff" fill-opacity="0.14" />
<circle cx="260" cy="760" r="220" fill="#ffffff" fill-opacity="0.09" />
<rect x="180" y="150" width="1240" height="600" rx="36" fill="url(#card)" />
<rect x="240" y="210" width="280" height="480" rx="24" fill="#10324a" fill-opacity="0.92" />
<rect x="570" y="230" width="780" height="74" rx="18" fill="#1f5f7a" fill-opacity="0.18" />
<rect x="570" y="340" width="360" height="250" rx="24" fill="#1f5f7a" fill-opacity="0.16" />
<rect x="970" y="340" width="380" height="110" rx="24" fill="#1f5f7a" fill-opacity="0.13" />
<rect x="970" y="480" width="380" height="110" rx="24" fill="#1f5f7a" fill-opacity="0.13" />
<path d="M300 300h160M300 360h160M300 420h160M300 480h110" stroke="#e7f0f6" stroke-width="22" stroke-linecap="round" />
<path d="M635 470l92-92 78 78 142-142 180 180" fill="none" stroke="#0f2d45" stroke-width="28" stroke-linecap="round" stroke-linejoin="round" />
<circle cx="748" cy="330" r="34" fill="#0f2d45" />
<text x="570" y="275" fill="#10324a" font-family="Georgia, serif" font-size="42" font-weight="700">Tibi Admin Nova Starter</text>
<text x="570" y="655" fill="#10324a" font-family="Arial, sans-serif" font-size="34">Lean starter base with content, media, i18n, and SSR.</text>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

+16
View File
@@ -0,0 +1,16 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 900" role="img" aria-labelledby="title desc">
<title id="title">Placeholder image</title>
<desc id="desc">Neutral placeholder graphic for missing media assets.</desc>
<defs>
<linearGradient id="bg" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%" stop-color="#e5eef6" />
<stop offset="100%" stop-color="#cfdcea" />
</linearGradient>
</defs>
<rect width="1200" height="900" fill="url(#bg)" />
<g fill="none" stroke="#7c97b2" stroke-width="28" stroke-linecap="round" stroke-linejoin="round">
<rect x="120" y="120" width="960" height="660" rx="36" />
<path d="M220 650l190-190 140 140 170-210 260 260" />
<circle cx="410" cy="310" r="70" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 752 B

@@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<rect width="64" height="64" rx="12" fill="#10324a" />
<path d="M18 20h28v8H36v20h-8V28H18z" fill="#ffffff" />
</svg>

After

Width:  |  Height:  |  Size: 183 B

+8
View File
@@ -0,0 +1,8 @@
{
"name": "Tibi Svelte Starter",
"short_name": "Tibi Starter",
"icons": [],
"theme_color": "#ffffff",
"background_color": "#ffffff",
"display": "standalone"
}