Skip to content

Commit a98100c

Browse files
committed
Enhance website with professional styling and i18n layer
- Update footer attribution to Sheet Metal Connect e.U. / Luke van Enkhuizen - Add link to creator at vanenkhuizen.com - Shrink fonts site-wide for cleaner, more professional appearance - Add i18n localization layer with EN, NL, DE translations - Tone down animations and hover effects for calmer UX - Standardize button styling across all components - Reduce visual noise with subtle background effects
1 parent 6ce5a2c commit a98100c

File tree

7 files changed

+1091
-22
lines changed

7 files changed

+1091
-22
lines changed

website/astro.config.mjs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ export default defineConfig({
1313
resolve: {
1414
alias: {
1515
'@components': '/src/components',
16-
'@layouts': '/src/layouts'
16+
'@layouts': '/src/layouts',
17+
'@i18n': '/src/i18n'
1718
}
1819
},
1920
build: {

website/src/components/Hero.astro

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,20 +47,20 @@
4747
<!-- Subtext -->
4848
<p class="text-lg sm:text-xl text-muted-foreground mb-8 max-w-3xl mx-auto">
4949
Real-time production tracking, QRM capacity management, and operator terminals.
50-
Built from hands-on experience with SMB metal shops in Europe.
50+
Built from hands-on experience with SMB metal shops.
5151
A starting point for your unique shop.
5252
</p>
5353

5454
<!-- CTA Buttons -->
5555
<div
56-
class="flex flex-col sm:flex-row items-center justify-center gap-4 mb-12"
56+
class="flex flex-col sm:flex-row items-center justify-center gap-3 mb-12"
5757
>
5858
<a
5959
href="#get-started"
60-
class="inline-flex items-center gap-2 px-8 py-4 rounded-xl bg-accent hover:bg-accent/90 text-white font-semibold text-lg transition-all duration-300 hover:shadow-[0_0_20px_rgba(59,130,246,0.6)] hover:-translate-y-1 hover:scale-105 group"
60+
class="inline-flex items-center gap-2 px-6 py-3 rounded-lg bg-accent hover:bg-blue-600 text-white font-medium transition-all duration-200 hover:shadow-lg hover:shadow-accent/20 group"
6161
>
6262
<svg
63-
class="w-5 h-5 text-white group-hover:rotate-12 transition-transform duration-300"
63+
class="w-4 h-4 text-white"
6464
fill="none"
6565
stroke="currentColor"
6666
viewBox="0 0 24 24"
@@ -77,10 +77,10 @@
7777
href="https://github.com/SheetMetalConnect/eryxon-flow"
7878
target="_blank"
7979
rel="noopener noreferrer"
80-
class="inline-flex items-center gap-2 px-8 py-4 rounded-xl border border-border/50 hover:border-accent/50 text-foreground font-semibold text-lg transition-all duration-300 glass group"
80+
class="inline-flex items-center gap-2 px-6 py-3 rounded-lg border border-white/10 hover:border-white/20 hover:bg-white/5 text-foreground font-medium transition-all duration-200 group"
8181
>
8282
<svg
83-
class="w-5 h-5 group-hover:scale-110 transition-transform duration-300"
83+
class="w-4 h-4"
8484
fill="currentColor"
8585
viewBox="0 0 24 24"
8686
>

website/src/components/HowItWorks.astro

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,9 +147,9 @@
147147
</p>
148148
<a
149149
href="#get-started"
150-
class="inline-flex items-center gap-2 px-6 py-3 rounded-xl bg-blue-600 hover:bg-blue-500 text-white font-semibold transition-all duration-300 hover:shadow-[0_0_20px_rgba(37,99,235,0.4)] hover:-translate-y-1 hover:scale-105"
150+
class="inline-flex items-center gap-2 px-5 py-2.5 rounded-lg bg-accent hover:bg-blue-600 text-white font-medium transition-all duration-200 hover:shadow-lg hover:shadow-accent/20"
151151
>
152-
<svg class="w-5 h-5 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
152+
<svg class="w-4 h-4 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
153153
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 10V3L4 14h7v7l9-11h-7z" />
154154
</svg>
155155
Get Started Now

website/src/i18n/index.ts

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
// Re-export everything from translations for easy imports
2+
export {
3+
translations,
4+
defaultLocale,
5+
supportedLocales,
6+
getTranslations,
7+
type Locale,
8+
type TranslationKeys,
9+
} from './translations';
10+
11+
// Helper to get current locale from URL or default
12+
export function getLocaleFromUrl(url: URL): import('./translations').Locale {
13+
const pathname = url.pathname;
14+
const segments = pathname.split('/').filter(Boolean);
15+
16+
// Check if first segment is a valid locale
17+
const { supportedLocales } = require('./translations');
18+
if (segments[0] && supportedLocales.includes(segments[0])) {
19+
return segments[0] as import('./translations').Locale;
20+
}
21+
22+
return 'en';
23+
}
24+
25+
// Helper to create localized URLs
26+
export function localizeUrl(url: string, locale: import('./translations').Locale): string {
27+
if (locale === 'en') {
28+
return url; // Default locale doesn't need prefix
29+
}
30+
return `/${locale}${url}`;
31+
}

0 commit comments

Comments
 (0)