generated from Paul.Kim/tpl-superclaude
feat(ui): 모바일 UI/UX 개선 및 스크롤 기능 수정
주요 변경 사항: - 모바일 화면 하단에 플로팅 CTA 버튼을 추가하여 사용자 접근성을 높였습니다. 이 버튼은 '문의·신청' 섹션이 보일 때는 자동으로 숨겨집니다. - 내비게이션 메뉴 링크 클릭 시, 고정된 헤더에 의해 섹션 제목이 가려지는 문제를 `scroll-margin-top` 속성을 사용하여 해결했습니다. - 모바일 메뉴가 열린 상태에서 스크롤하면 자동으로 닫히도록 수정하여 사용성을 개선했습니다. - 일부 제목과 로고의 폰트 크기를 반응형으로 조정하여 가독성을 높였습니다. - 새로운 디자인 버전(airoum_1_6) 파일을 추가했습니다.
This commit is contained in:
@ -157,6 +157,13 @@
|
||||
::-webkit-scrollbar-thumb:hover {
|
||||
background: var(--pumpkin);
|
||||
}
|
||||
html {
|
||||
scroll-behavior: smooth;
|
||||
}
|
||||
/* Set scroll margin on sections to prevent them from being covered by the fixed nav */
|
||||
section[id] {
|
||||
scroll-margin-top: 5rem; /* 80px */
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body class="bg-white">
|
||||
@ -170,8 +177,8 @@
|
||||
<div class="flex justify-between items-center h-16 sm:h-20">
|
||||
<!-- Logo -->
|
||||
<div class="flex-shrink-0 flex items-center space-x-4">
|
||||
<img src="images/logo.png" alt="AIROUM Logo" class="h-10">
|
||||
<h1 class="text-2xl sm:text-3xl font-bold" style="color: var(--dark-green);">
|
||||
<img src="images/logo.png" alt="AIROUM Logo" class="h-8 sm:h-10">
|
||||
<h1 class="text-xl sm:text-3xl font-bold" style="color: var(--dark-green);">
|
||||
AIROUM
|
||||
</h1>
|
||||
</div>
|
||||
@ -197,14 +204,11 @@
|
||||
</div>
|
||||
|
||||
<!-- Mobile Menu -->
|
||||
<div class="md:hidden glass transform -translate-y-full transition-transform duration-300" id="mobile-menu">
|
||||
<div class="md:hidden glass overflow-hidden transition-all duration-300 ease-in-out" id="mobile-menu" style="max-height: 0px;">
|
||||
<div class="px-4 py-4 space-y-3">
|
||||
<a href="#about" class="block px-4 py-2 text-gray-700 hover:text-[var(--pumpkin)]">회사소개</a>
|
||||
<a href="#programs" class="block px-4 py-2 text-gray-700 hover:text-[var(--pumpkin)]">교육 프로그램</a>
|
||||
<a href="#contact" class="block px-4 py-2 text-white rounded-full text-center"
|
||||
style="background: var(--pumpkin);">
|
||||
문의·신청
|
||||
</a>
|
||||
<a href="#contact" class="block px-4 py-2 text-gray-700 hover:text-[var(--pumpkin)]">문의·신청</a>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
@ -224,11 +228,11 @@
|
||||
<div class="container mx-auto px-4 sm:px-6 lg:px-8 relative z-10 flex-grow flex flex-col justify-center">
|
||||
<!-- Slider Container -->
|
||||
<div id="hero-slider-container" class="relative w-full max-w-4xl mx-auto overflow-hidden">
|
||||
<div id="hero-slider" class="flex transition-transform duration-700 ease-in-out">
|
||||
<div id="hero-slider" class="flex items-center transition-transform duration-700 ease-in-out" style="min-height: 40vh;">
|
||||
<!-- Slide 1: Hero Content -->
|
||||
<div class="w-full flex-shrink-0">
|
||||
<div class="text-center">
|
||||
<h1 class="text-4xl sm:text-5xl lg:text-6xl font-bold mb-6 animate-fade-in-up" style="color: var(--dark-green);">
|
||||
<h1 class="text-3xl sm:text-5xl lg:text-6xl font-bold mb-6 animate-fade-in-up" style="color: var(--dark-green);">
|
||||
생성형 AI 시대,<br>
|
||||
<span class="gradient-text">기술을 넘어 미래를</span><br>
|
||||
설계하는 사람을 키웁니다.
|
||||
@ -260,7 +264,7 @@
|
||||
|
||||
<!-- CTA Buttons (Static) -->
|
||||
<div class="flex flex-col sm:flex-row gap-4 justify-center mt-8 animate-fade-in-up" style="animation-delay: 0.4s;">
|
||||
<button class="magnetic-btn px-8 py-3 rounded-full text-white font-semibold transition-all" style="background: var(--pumpkin);">
|
||||
<button class="magnetic-btn px-8 py-3 rounded-full text-white font-semibold transition-all hidden sm:block" style="background: var(--pumpkin);">
|
||||
무료 상담 신청
|
||||
</button>
|
||||
<button class="magnetic-btn px-8 py-3 rounded-full font-semibold transition-all" style="border: 2px solid var(--dark-green); color: var(--dark-green);">
|
||||
@ -289,7 +293,7 @@
|
||||
</section>
|
||||
|
||||
<!-- Why AIROUM Section -->
|
||||
<section class="py-20 bg-gray-50" id="about">
|
||||
<section class="py-20 bg-gray-50 scroll-mt-16 sm:scroll-mt-20" id="about">
|
||||
<div class="container mx-auto px-4 sm:px-6 lg:px-8">
|
||||
<div class="text-center mb-16 animate-on-scroll">
|
||||
<h2 class="text-3xl sm:text-4xl lg:text-5xl font-bold mb-4" style="color: var(--dark-green);">
|
||||
@ -424,7 +428,7 @@
|
||||
</section>
|
||||
|
||||
<!-- Programs Section -->
|
||||
<section class="py-20" id="programs">
|
||||
<section class="py-20 scroll-mt-16 sm:scroll-mt-20" id="programs">
|
||||
<div class="container mx-auto px-4 sm:px-6 lg:px-8">
|
||||
<div class="text-center mb-16 animate-on-scroll">
|
||||
<h2 class="text-3xl sm:text-4xl lg:text-5xl font-bold mb-4" style="color: var(--dark-green);">
|
||||
@ -729,7 +733,7 @@
|
||||
|
||||
<div class="container mx-auto px-4 sm:px-6 lg:px-8 relative z-10">
|
||||
<div class="text-center text-white mb-12">
|
||||
<h2 class="text-3xl sm:text-4xl lg:text-5xl font-bold mb-6">
|
||||
<h2 class="text-2xl sm:text-3xl lg:text-4xl font-bold mb-6">
|
||||
생성형 AI는 단순한 유행이 아니라<br>
|
||||
미래 교육의 기본값입니다.
|
||||
</h2>
|
||||
@ -754,9 +758,9 @@
|
||||
</div>
|
||||
|
||||
<!-- Contact Form -->
|
||||
<div class="max-w-2xl mx-auto" id="contact">
|
||||
<div class="max-w-2xl mx-auto scroll-mt-16 sm:scroll-mt-20" id="contact">
|
||||
<div class="bg-white rounded-3xl p-8 sm:p-12 shadow-2xl">
|
||||
<h3 class="text-2xl sm:text-3xl font-bold text-center mb-8" style="color: var(--dark-green);">
|
||||
<h3 class="text-xl sm:text-2xl font-bold text-center mb-8" style="color: var(--dark-green);">
|
||||
무료 상담 및 교육 문의
|
||||
</h3>
|
||||
|
||||
@ -807,7 +811,7 @@
|
||||
<path d="M16.273 12.845L7.376 0H0v24h7.726V11.156L16.624 24H24V0h-7.727v12.845z"/>
|
||||
</svg>
|
||||
</a>
|
||||
<a href="https://instagram.com/aiyi\_choi" class="text-white hover:text-[var(--pumpkin)] transition-colors">
|
||||
<a href="https://instagram.com/aiyi_choi" class="text-white hover:text-[var(--pumpkin)] transition-colors">
|
||||
<span class="sr-only">Instagram</span>
|
||||
<svg class="w-8 h-8" fill="currentColor" viewBox="0 0 24 24">
|
||||
<path d="M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 0-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zM5.838 12a6.162 6.162 0 1112.324 0 6.162 6.162 0 01-12.324 0zM12 16a4 4 0 110-8 4 4 0 010 8zm4.965-10.405a1.44 1.44 0 112.881.001 1.44 1.44 0 01-2.881-.001z"/>
|
||||
@ -821,6 +825,14 @@
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<!-- Mobile Floating CTA -->
|
||||
<div id="mobile-cta" class="md:hidden fixed bottom-0 left-0 right-0 p-4 bg-white/80 backdrop-blur-xl z-40 transition-transform duration-500" style="box-shadow: 0 -2px 10px rgba(0,0,0,0.1);">
|
||||
<a href="#contact" class="w-full block text-center px-6 py-3 rounded-full text-white font-semibold transition-all"
|
||||
style="background: var(--pumpkin);">
|
||||
무료 상담 및 교육 문의
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- Scripts -->
|
||||
<script>
|
||||
@ -894,23 +906,30 @@
|
||||
document.querySelector('.scroll-progress').style.transform = `scaleX(${scrollPercent})`;
|
||||
});
|
||||
|
||||
// Navbar Background on Scroll
|
||||
// Navbar Background on Scroll & Mobile Menu management
|
||||
const navbar = document.getElementById('navbar');
|
||||
const mobileMenu = document.getElementById('mobile-menu');
|
||||
const mobileMenuBtn = document.getElementById('mobile-menu-btn');
|
||||
|
||||
window.addEventListener('scroll', () => {
|
||||
if (window.scrollY > 50) {
|
||||
navbar.classList.add('bg-white', 'shadow-lg');
|
||||
} else {
|
||||
navbar.classList.remove('bg-white', 'shadow-lg');
|
||||
}
|
||||
// Close mobile menu on scroll
|
||||
if (mobileMenu && !mobileMenu.classList.contains('-translate-y-full')) {
|
||||
mobileMenu.classList.add('-translate-y-full');
|
||||
}
|
||||
});
|
||||
|
||||
// Mobile Menu Toggle
|
||||
const mobileMenuBtn = document.getElementById('mobile-menu-btn');
|
||||
const mobileMenu = document.getElementById('mobile-menu');
|
||||
|
||||
mobileMenuBtn.addEventListener('click', () => {
|
||||
mobileMenu.classList.toggle('-translate-y-full');
|
||||
});
|
||||
if (mobileMenuBtn) {
|
||||
mobileMenuBtn.addEventListener('click', () => {
|
||||
if (mobileMenu) {
|
||||
mobileMenu.classList.toggle('-translate-y-full');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Smooth Scroll for Anchor Links
|
||||
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
||||
@ -942,6 +961,24 @@
|
||||
document.querySelectorAll('.animate-on-scroll').forEach(el => {
|
||||
observer.observe(el);
|
||||
});
|
||||
|
||||
// Mobile CTA visibility
|
||||
const mobileCta = document.getElementById('mobile-cta');
|
||||
const contactSection = document.getElementById('contact');
|
||||
|
||||
const ctaObserver = new IntersectionObserver((entries) => {
|
||||
entries.forEach(entry => {
|
||||
if (entry.isIntersecting) {
|
||||
mobileCta.classList.add('translate-y-full');
|
||||
} else {
|
||||
mobileCta.classList.remove('translate-y-full');
|
||||
}
|
||||
});
|
||||
}, { threshold: 0.1 });
|
||||
|
||||
if (contactSection) {
|
||||
ctaObserver.observe(contactSection);
|
||||
}
|
||||
|
||||
// Parallax Effect
|
||||
const parallaxElements = document.querySelectorAll('.parallax-layer');
|
||||
|
||||
Reference in New Issue
Block a user