feat: cleanup deprecated components and background texture
This commit is contained in:
parent
2c5986a32e
commit
27d8f678ad
5 changed files with 0 additions and 181 deletions
|
|
@ -1,31 +0,0 @@
|
|||
<template>
|
||||
<footer class="mt-32 pb-16 px-8 md:px-12 lg:px-16">
|
||||
<!-- Minimal footer content -->
|
||||
<div class="max-w-4xl">
|
||||
<div
|
||||
class="flex flex-col md:flex-row justify-between items-start md:items-end gap-8"
|
||||
>
|
||||
<!-- Left: Copyright and minimal info -->
|
||||
<div>
|
||||
<p class="text-guild-500 text-xs mb-2">
|
||||
© {{ currentYear }} Ghost Guild
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<!-- Right: Contact links -->
|
||||
<div class="flex flex-wrap gap-6 text-xs">
|
||||
<a
|
||||
href="mailto:hello@ghostguild.org"
|
||||
class="text-guild-500 hover:text-guild-300 transition-colors"
|
||||
>
|
||||
Contact
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
const currentYear = new Date().getFullYear();
|
||||
</script>
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
<template>
|
||||
<div :class="['guild-divider', spacing]" role="separator" aria-hidden="true">
|
||||
<!-- Woodcut: irregular hand-drawn line -->
|
||||
<svg
|
||||
v-if="variant === 'woodcut'"
|
||||
viewBox="0 0 800 12"
|
||||
preserveAspectRatio="none"
|
||||
class="w-full h-3 text-guild-600"
|
||||
>
|
||||
<path
|
||||
d="M0,6 Q50,3 100,7 T200,5 T300,8 T400,4 T500,7 T600,5 T700,8 T800,6"
|
||||
stroke="currentColor"
|
||||
stroke-width="1.5"
|
||||
fill="none"
|
||||
stroke-dasharray="8,3,15,4,6,5"
|
||||
/>
|
||||
</svg>
|
||||
|
||||
<!-- Dither: warm amber dithered line -->
|
||||
<div v-else-if="variant === 'dither'" class="h-px dithered-warm opacity-60" />
|
||||
|
||||
<!-- Dots: halftone dot row -->
|
||||
<div
|
||||
v-else-if="variant === 'dots'"
|
||||
class="h-2 halftone-texture opacity-30"
|
||||
/>
|
||||
|
||||
<!-- Simple: plain rule -->
|
||||
<hr v-else class="border-guild-700" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
const props = defineProps({
|
||||
variant: {
|
||||
type: String,
|
||||
default: 'simple',
|
||||
validator: (v) => ['simple', 'woodcut', 'dither', 'dots'].includes(v),
|
||||
},
|
||||
compact: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
})
|
||||
|
||||
const spacing = computed(() => props.compact ? 'my-4' : 'my-8')
|
||||
</script>
|
||||
|
|
@ -1,61 +0,0 @@
|
|||
<template>
|
||||
<div class="section-header" :class="[spacing]">
|
||||
<p v-if="overline" class="text-ui-label text-candlelight-500 mb-2">
|
||||
{{ overline }}
|
||||
</p>
|
||||
<component :is="tag" :class="[sizeClass, 'text-guild-100']">
|
||||
<slot>{{ title }}</slot>
|
||||
</component>
|
||||
<p v-if="subtitle" class="mt-3 text-guild-400 text-lg leading-relaxed">
|
||||
{{ subtitle }}
|
||||
</p>
|
||||
<GuildDivider v-if="divider" :variant="divider" compact class="mt-4" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
const props = defineProps({
|
||||
title: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
subtitle: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
overline: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
size: {
|
||||
type: String,
|
||||
default: 'md',
|
||||
validator: (v) => ['xl', 'lg', 'md', 'sm'].includes(v),
|
||||
},
|
||||
tag: {
|
||||
type: String,
|
||||
default: 'h2',
|
||||
},
|
||||
divider: {
|
||||
type: String,
|
||||
default: '',
|
||||
validator: (v) => ['', 'simple', 'woodcut', 'dither', 'dots'].includes(v),
|
||||
},
|
||||
compact: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
})
|
||||
|
||||
const sizeClass = computed(() => {
|
||||
const sizes = {
|
||||
xl: 'text-display-xl',
|
||||
lg: 'text-display-lg',
|
||||
md: 'text-display',
|
||||
sm: 'text-display-sm',
|
||||
}
|
||||
return sizes[props.size]
|
||||
})
|
||||
|
||||
const spacing = computed(() => props.compact ? 'mb-4' : 'mb-8')
|
||||
</script>
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
<template>
|
||||
<!-- Hidden SVG filter definitions available to entire app -->
|
||||
<svg class="absolute w-0 h-0 overflow-hidden" aria-hidden="true">
|
||||
<defs>
|
||||
<!-- Fine grain noise - for ink-grain effect -->
|
||||
<filter id="grain-fine" x="0" y="0" width="100%" height="100%">
|
||||
<feTurbulence
|
||||
type="fractalNoise"
|
||||
baseFrequency="0.65"
|
||||
numOctaves="3"
|
||||
stitchTiles="stitch"
|
||||
result="noise"
|
||||
/>
|
||||
<feColorMatrix type="saturate" values="0" in="noise" result="mono" />
|
||||
</filter>
|
||||
|
||||
<!-- Paper fiber texture - for paper-texture effect -->
|
||||
<filter id="grain-paper" x="0" y="0" width="100%" height="100%">
|
||||
<feTurbulence
|
||||
type="fractalNoise"
|
||||
baseFrequency="0.04"
|
||||
numOctaves="5"
|
||||
stitchTiles="stitch"
|
||||
result="noise"
|
||||
/>
|
||||
<feColorMatrix type="saturate" values="0" in="noise" result="mono" />
|
||||
</filter>
|
||||
|
||||
<!-- Coarse grain - for workshop/craft surface textures -->
|
||||
<filter id="grain-coarse" x="0" y="0" width="100%" height="100%">
|
||||
<feTurbulence
|
||||
type="turbulence"
|
||||
baseFrequency="0.3"
|
||||
numOctaves="2"
|
||||
stitchTiles="stitch"
|
||||
result="noise"
|
||||
/>
|
||||
<feColorMatrix type="saturate" values="0" in="noise" result="mono" />
|
||||
</filter>
|
||||
</defs>
|
||||
</svg>
|
||||
</template>
|
||||
Loading…
Add table
Add a link
Reference in a new issue