diff --git a/frontend/src/components/WTFModal.vue b/frontend/src/components/WTFModal.vue new file mode 100644 index 0000000..b2641ce --- /dev/null +++ b/frontend/src/components/WTFModal.vue @@ -0,0 +1,250 @@ + + + + + diff --git a/frontend/src/pages/HomePage.vue b/frontend/src/pages/HomePage.vue index 2e8e297..b964a7c 100644 --- a/frontend/src/pages/HomePage.vue +++ b/frontend/src/pages/HomePage.vue @@ -4,6 +4,7 @@ import { RouterLink } from 'vue-router' import PixelGlove from '../components/PixelGlove.vue' import SpritePreview from '../components/SpritePreview.vue' import HumanPreview from '../components/HumanPreview.vue' +import WTFModal from '../components/WTFModal.vue' interface FightResult { id: string @@ -231,6 +232,7 @@ const taglines = [ const tagline = ref('') const isTypingDone = ref(false) +const showWTF = ref(false) const recentFights = ref([]) function shuffle(arr: T[]): T[] { @@ -456,7 +458,7 @@ onUnmounted(() => { -
+
+ +
+

@@ -508,6 +523,9 @@ onUnmounted(() => {

+ + + @@ -557,4 +575,13 @@ onUnmounted(() => { 0%, 100% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } } + +.wtf-glow { + animation: wtfPulse 2s ease-in-out infinite; +} + +@keyframes wtfPulse { + 0%, 100% { box-shadow: 0 0 8px rgba(168, 85, 247, 0.2); } + 50% { box-shadow: 0 0 20px rgba(168, 85, 247, 0.4), 0 0 40px rgba(168, 85, 247, 0.15); } +}