refactor: stacked wordmark — EARTH WALKER over DESIGN, no frame

Drops the rectangular border treatment and the mobile/desktop split.
Wordmark is now a single stacked column at every breakpoint: EARTH
WALKER set in serif semibold on top, DESIGN tucked underneath in
serif light with wider tracking and reduced size, centered.

Two sizes: 'sm' (header, footer, mobile drawer) scales text-sm →
text-base at md; 'lg' (home hero overlay) scales text-2xl → text-3xl
→ text-4xl across md / lg breakpoints. Whitespace-nowrap holds the
shape together regardless of container width.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Padreug 2026-05-27 12:37:53 +02:00
commit d84a0a3bed
3 changed files with 19 additions and 37 deletions

View file

@ -33,15 +33,10 @@ const mobileOpen = ref(false)
> >
<RouterLink <RouterLink
to="/" to="/"
class="text-foreground" class="text-foreground inline-flex items-center"
:aria-label="t('brand')" :aria-label="t('brand')"
> >
<span <Wordmark size="sm" />
class="font-serif text-sm font-semibold uppercase tracking-[0.22em] md:hidden"
>
Earth Walker
</span>
<Wordmark size="sm" class="hidden md:inline-flex" />
</RouterLink> </RouterLink>
<nav class="hidden items-center gap-8 md:flex"> <nav class="hidden items-center gap-8 md:flex">

View file

@ -1,55 +1,42 @@
<script setup lang="ts"> <script setup lang="ts">
type Size = 'sm' | 'md' | 'lg' type Size = 'sm' | 'lg'
const props = withDefaults( const props = withDefaults(
defineProps<{ defineProps<{
/** Visual size — controls type scale + frame padding. */ /** Visual size — controls type scale. 'sm' for header/footer, 'lg' for hero. */
size?: Size size?: Size
}>(), }>(),
{ size: 'md' }, { size: 'sm' },
) )
const frameClasses: Record<Size, string> = {
sm: 'px-2.5 py-1.5 gap-2',
md: 'px-4 py-2.5 gap-3',
lg: 'px-6 py-3.5 gap-4',
}
const earthClasses: Record<Size, string> = { const earthClasses: Record<Size, string> = {
sm: 'text-[0.7rem] tracking-[0.28em]', sm: 'text-sm tracking-[0.22em] md:text-base md:tracking-[0.24em]',
md: 'text-sm tracking-[0.32em] md:text-base', lg: 'text-2xl tracking-[0.24em] md:text-3xl lg:text-4xl md:tracking-[0.26em]',
lg: 'text-base tracking-[0.34em] md:text-xl',
} }
const designClasses: Record<Size, string> = { const designClasses: Record<Size, string> = {
sm: 'text-[0.55rem] tracking-[0.28em]', sm: 'text-[0.55rem] tracking-[0.42em] md:text-[0.65rem] md:tracking-[0.46em]',
md: 'text-[0.7rem] tracking-[0.32em] md:text-xs', lg: 'text-xs tracking-[0.46em] md:text-sm md:tracking-[0.5em] lg:text-base',
lg: 'text-xs tracking-[0.34em] md:text-sm', }
const gapClasses: Record<Size, string> = {
sm: 'gap-[0.2em]',
lg: 'gap-[0.25em]',
} }
</script> </script>
<template> <template>
<span <span
:class="[ :class="[
'inline-flex flex-nowrap items-baseline whitespace-nowrap border border-current uppercase', 'inline-flex flex-col items-center whitespace-nowrap uppercase leading-none',
frameClasses[props.size], gapClasses[props.size],
]" ]"
aria-label="Earth Walker Design" aria-label="Earth Walker Design"
> >
<span <span :class="['font-serif font-semibold', earthClasses[props.size]]">
:class="[
'whitespace-nowrap font-serif font-semibold',
earthClasses[props.size],
]"
>
Earth Walker Earth Walker
</span> </span>
<span <span :class="['font-serif font-light opacity-90', designClasses[props.size]]">
:class="[
'whitespace-nowrap font-serif font-light opacity-90',
designClasses[props.size],
]"
>
Design Design
</span> </span>
</span> </span>

View file

@ -35,7 +35,7 @@ const projectCards = computed(() =>
<div <div
class="absolute right-0 bottom-14 left-0 mx-auto max-w-[1400px] px-6 text-white md:bottom-20 md:px-10" class="absolute right-0 bottom-14 left-0 mx-auto max-w-[1400px] px-6 text-white md:bottom-20 md:px-10"
> >
<Wordmark size="md" class="text-white/95" /> <Wordmark size="lg" class="text-white/95" />
<h1 <h1
class="mt-6 max-w-3xl font-serif text-4xl font-light leading-[1.05] tracking-tight md:text-6xl lg:text-7xl" class="mt-6 max-w-3xl font-serif text-4xl font-light leading-[1.05] tracking-tight md:text-6xl lg:text-7xl"
> >