add support for mobile navbar

This commit is contained in:
2025-09-22 18:14:25 +07:00
parent 0bc3fddf20
commit 7180bc0de2
2 changed files with 42 additions and 20 deletions
+28 -10
View File
@@ -55,17 +55,32 @@ body {
.navbar-nav { .navbar-nav {
@apply md:float-left md:m-0; @apply md:float-left md:m-0;
} }
.navbar-nav-mobile {
@apply bg-(--ui-primary-light) border-t border-(--ui-primary);
}
.navbar-nav > li { .navbar-nav > li {
float: left; float: left;
display: flex; display: flex;
} }
.navbar-nav > li > a { .navbar-nav-mobile > li {
display: flex;
flex-direction: column;
}
.navbar-nav > li > a,
.navbar-nav-mobile > li > a {
padding: 10.5px 14px; padding: 10.5px 14px;
} }
.navbar-nav > li > a.router-link-active, .navbar-nav > li > a.router-link-active:hover { .navbar-nav-mobile > li > a {
@apply text-(--ui-primary-container);
}
.navbar-nav > li > a.router-link-active,
.navbar-nav > li > a.router-link-active:hover,
.navbar-nav-mobile > li > a.router-link-active,
.navbar-nav-mobile > li > a.router-link-active:hover {
@apply bg-linear-[to_bottom,rgba(0,0,0,0.3)_10%,rgba(0,0,0,0)_100%]; @apply bg-linear-[to_bottom,rgba(0,0,0,0.3)_10%,rgba(0,0,0,0)_100%];
} }
.navbar-nav > li > a:hover { .navbar-nav > li > a:hover,
.navbar-nav-mobile > li > a:hover {
@apply bg-linear-[to_bottom,rgba(255,255,255,0)_0%,rgba(255,255,255,0.3)_10%,rgba(255,255,255,0)_100%]; @apply bg-linear-[to_bottom,rgba(255,255,255,0)_0%,rgba(255,255,255,0.3)_10%,rgba(255,255,255,0)_100%];
} }
.site-title { .site-title {
@@ -83,6 +98,9 @@ body {
height: auto; height: auto;
@apply bg-linear-[to_bottom,var(--ui-primary)_0%,var(--ui-primary-light)_90%] text-white; @apply bg-linear-[to_bottom,var(--ui-primary)_0%,var(--ui-primary-light)_90%] text-white;
} }
/* .site-navbar > .container {
@apply items-end;
} */
.hero-section { .hero-section {
@apply py-16 drop-shadow-md bg-(--ui-primary-container) text-(--ui-on-primary-container) bg-cover bg-center; @apply py-16 drop-shadow-md bg-(--ui-primary-container) text-(--ui-on-primary-container) bg-cover bg-center;
} }
@@ -90,11 +108,11 @@ body {
@apply my-4; @apply my-4;
} }
.hero-section > .container > .title { .hero-section > .container > .title {
@apply text-4xl font-bold my-4; @apply text-2xl md:text-3xl lg:text-4xl font-bold my-4;
line-height: 1.4em; line-height: 1.4em;
} }
.hero-section > .container > .subtitle { .hero-section > .container > .subtitle {
@apply text-xl my-4; @apply text-lg md:text-xl my-4;
line-height: 1.4em; line-height: 1.4em;
} }
.page-section { .page-section {
@@ -107,18 +125,18 @@ body {
@apply my-[0.75rem]; @apply my-[0.75rem];
} }
.page-section.page-section-alt { .page-section.page-section-alt {
@apply my-0; @apply my-16 md:my-0;
} }
.page-section.page-section-alt > .container { .page-section.page-section-alt > .container {
@apply my-0 flex justify-between items-center; @apply my-0 flex flex-col md:flex-row justify-between items-center;
} }
.page-section.page-section-alt > .container > .section { .page-section.page-section-alt > .container > .section {
@apply mb-4; @apply md:mb-4;
} }
.page-section.page-section-alt > .container > .section-img { .page-section.page-section-alt > .container > .section-img {
@apply w-[45%]; @apply w-full md:w-[45%];
img { img {
@apply my-16; @apply md:my-16;
} }
} }
.footer { .footer {
+14 -10
View File
@@ -33,9 +33,9 @@
</div> </div>
<nav class="site-navbar"> <nav class="site-navbar">
<div class="container"> <div class="container">
<div class="hidden sm:flex"> <div class="hidden sm:flex w-full">
<ul class="nav navbar-nav"> <ul class="nav navbar-nav">
<li class="nav-link"> <li class="nav-link" @click="toggleMobileNavbar">
<NuxtLink href="/">หนาหล</NuxtLink> <NuxtLink href="/">หนาหล</NuxtLink>
</li> </li>
<li class="nav-link"> <li class="nav-link">
@@ -46,19 +46,22 @@
</li> </li>
</ul> </ul>
</div> </div>
<div class="flex sm:hidden w-fit float-right">
<UButton @click="toggleMobileNavbar" size="sm" variant="subtle" color="neutral" icon="i-lucide-menu"/>
</div>
</div> </div>
</nav> </nav>
<nav v-if="mobileNavbar"> <nav v-if="mobileNavbar">
<div class="hidden sm:flex"> <div class="flex flex-col">
<ul class="nav navbar-nav"> <ul class="nav navbar-nav-mobile">
<li class="nav-link"> <li class="nav-link">
<NuxtLinkLocale href="/">หนาหล</NuxtLinkLocale> <NuxtLink href="/">หนาหล</NuxtLink>
</li> </li>
<li class="nav-link"> <li class="nav-link">
<NuxtLinkLocale href="/about">เกยวก</NuxtLinkLocale> <NuxtLink href="/about">เกยวก</NuxtLink>
</li> </li>
<li class="nav-link"> <li class="nav-link">
<NuxtLinkLocale href="/contact">ดต</NuxtLinkLocale> <NuxtLink href="/contact">ดต</NuxtLink>
</li> </li>
</ul> </ul>
</div> </div>
@@ -94,7 +97,8 @@ const mobileNavbar = ref(false);
function toggleMobileNavbar() { function toggleMobileNavbar() {
mobileNavbar.value = !mobileNavbar.value mobileNavbar.value = !mobileNavbar.value
} }
function closeMobileNavbar() { const route = useRoute()
mobileNavbar.value = false watch(() => route.fullPath, () => {
} mobileNavbar.value = false
})
</script> </script>