diff --git a/app/app.config.ts b/app/app.config.ts index e934ee4..7505cb0 100644 --- a/app/app.config.ts +++ b/app/app.config.ts @@ -1,6 +1,6 @@ export default defineAppConfig({ ui: { - primary: 'orange', - gray: 'stone' + primary: 'cyan', + gray: 'slate' } }) \ No newline at end of file diff --git a/app/assets/cap.jpg b/app/assets/cap.jpg new file mode 100644 index 0000000..79853aa Binary files /dev/null and b/app/assets/cap.jpg differ diff --git a/app/assets/cap.png b/app/assets/cap.png new file mode 100644 index 0000000..967c728 Binary files /dev/null and b/app/assets/cap.png differ diff --git a/app/assets/css/tailwind.css b/app/assets/css/tailwind.css new file mode 100644 index 0000000..aa638d7 --- /dev/null +++ b/app/assets/css/tailwind.css @@ -0,0 +1,63 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +@keyframes typing { + from { width: 0 } + to { width: 100% } +} + + +.animate-typing { + overflow: hidden; + white-space: nowrap; + border-right: 0.15em solid #fff; + animation: + typing 3.5s steps(40, end); +} + +/* Adjust the animation duration based on text length */ +.animate-typing[data-length="short"] { animation-duration: 2s; } +.animate-typing[data-length="medium"] { animation-duration: 3.5s; } +.animate-typing[data-length="long"] { animation-duration: 5s; } + +.text-glow { + text-shadow: 0 0 5px #fff, 0 0 10px #fff, 0 0 15px #fff, 0 0 20px #fff; +} + +/* Or for colored glow */ +.text-glow-purple { + text-shadow: 0 0 5px #8a2be2, 0 0 10px #8a2be2, 0 0 15px #8a2be2, 0 0 20px #8a2be2; +} + +.fade-in-from-top { + animation: fadeInFromTop 1s ease-in-out; + animation-fill-mode: forwards; +} + +@keyframes fadeInFromTop { + from { + opacity: 0; + transform: translateY(-20px); /* Move slightly above */ + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.fade-in-from-bottom { + animation: fadeInFromBottom 1s ease-in-out; + animation-fill-mode: forwards; +} + +@keyframes fadeInFromBottom { + from { + opacity: 0; + transform: translateY(20px); /* Move slightly above */ + } + to { + opacity: 1; + transform: translateY(0); + } +} \ No newline at end of file diff --git a/app/components/WebsiteFooter.vue b/app/components/WebsiteFooter.vue index a10f90a..51551cc 100644 --- a/app/components/WebsiteFooter.vue +++ b/app/components/WebsiteFooter.vue @@ -11,12 +11,15 @@ const props = defineProps({ diff --git a/app/components/WebsiteHeader.vue b/app/components/WebsiteHeader.vue index 4a538df..1ca6820 100644 --- a/app/components/WebsiteHeader.vue +++ b/app/components/WebsiteHeader.vue @@ -20,9 +20,6 @@ const props = defineProps({ - diff --git a/app/layouts/MainLayout.vue b/app/layouts/MainLayout.vue index 7dc8f49..43109bd 100644 --- a/app/layouts/MainLayout.vue +++ b/app/layouts/MainLayout.vue @@ -5,24 +5,34 @@ const route = useRoute() const links = [ { - label: 'Articles', - icon: 'i-lucide-newspaper', - to: '/articles' - }, - { - label: 'Matches', - icon: 'i-lucide-radio', - to: `/matches` - }, - { - label: 'Tables', - icon: 'i-lucide-users', - to: `/tables` - }, - { - label: 'Galleries', - icon: 'i-lucide-album', - to: `/galleries` + label: "From Us", + icon: 'i-lucide-info', + children: [ + { + label: 'Articles', + icon: 'i-lucide-newspaper', + to: '/articles', + description: 'Our articles that records matches, fun facts, and more information regarding the sport of Frisbee.' + }, + { + label: 'Matches', + icon: 'i-lucide-radio', + to: `/matches`, + description: 'The matches we have hosted in this league.' + }, + { + label: 'Tables', + icon: 'i-lucide-users', + to: `/tables`, + description: 'The statistics of the teams in this league. Updated Real-time.' + }, + { + label: 'Media', + icon: 'i-lucide-album', + to: `/medias`, + description: 'Collections of photos, videos, and media recorded in the league.' + } + ] }, { label: 'Rules', @@ -35,7 +45,7 @@ const links = [