From 0fa84c74a86b445ec8f15f29c05814d1f57f443f Mon Sep 17 00:00:00 2001 From: geun <1416geun@naver.com> Date: Thu, 4 Jun 2026 11:28:10 +0900 Subject: [PATCH] =?UTF-8?q?=EC=A0=81=EC=9A=A9=EB=B6=84=EC=95=BC=20=20css?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/css/common.css | 25 +-- src/pages/solution/FlightControlPage.jsx | 230 ++++------------------- 2 files changed, 47 insertions(+), 208 deletions(-) diff --git a/src/css/common.css b/src/css/common.css index 171b405..237939e 100644 --- a/src/css/common.css +++ b/src/css/common.css @@ -735,21 +735,24 @@ body{overflow-x:hidden;} 5. 적용 분야 ════════════════ */ .fc-domains { margin-bottom: 8rem; } -.fc-domains__grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1.25rem; } +.fc-domains__grid { display: flex; gap: 1.25rem; height: 420px; } -.fc-domain-card { display: flex; flex-direction: column; border: 1px solid var(--color-primary-soft-border); border-radius: 1rem; background: #fff; overflow: hidden; transition: border-color .2s, box-shadow .2s; cursor: default; } -.fc-domain-card:hover { border-color: var(--color-primary-border); box-shadow: 0 8px 28px var(--color-primary-shadow); } +.fc-domain-card { position: relative; border-radius: 1rem; overflow: hidden; flex: 1; cursor: default; transition: flex 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94); } +.fc-domain-card:hover { flex: 1.6; } -.fc-domain-card__img { width: 100%; aspect-ratio: 16/10; overflow: hidden; } -.fc-domain-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; } -.fc-domain-card:hover .fc-domain-card__img img { transform: scale(1.05); } +.fc-domain-card__img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.5s ease; } +.fc-domain-card:hover .fc-domain-card__img { transform: scale(1.08); } -.fc-domain-card__body { display: flex; flex-direction: column; gap: .5rem; padding: 1.25rem 1.25rem 1.5rem; } -.fc-domain-card__label { font-size: .88rem; font-weight: 700; color: var(--color-primary); line-height: 1.3; } -.fc-domain-card__desc { font-size: .78rem; line-height: 1.65; color: #888; margin: 0; } +.fc-domain-card__overlay { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; padding: 1.25rem; background: linear-gradient(to top, rgba(0,0,0,.72) 0%, rgba(0,0,0,.18) 45%, transparent 100%); transition: background 0.4s ease; } +.fc-domain-card:hover .fc-domain-card__overlay { background: linear-gradient(to top, rgba(0,0,0,.88) 0%, rgba(0,0,0,.5) 50%, rgba(0,0,0,.15) 100%); } -@media (max-width: 1024px) { .fc-domains__grid { grid-template-columns: repeat(3, 1fr); } } -@media (max-width: 640px) { .fc-domains__grid { grid-template-columns: repeat(2, 1fr); } } +.fc-domain-card__label { font-size: 1.125rem; font-weight: 700; color: #fff; line-height: 1.3; } + +.fc-domain-card__desc { font-size: .8rem; line-height: 1.65; color: rgba(255,255,255,.85); margin: .5rem 0 0; max-height: 0; opacity: 0; overflow: hidden; transform: translateY(8px); transition: max-height 0.4s ease, opacity 0.35s ease, transform 0.35s ease; } +.fc-domain-card:hover .fc-domain-card__desc { max-height: 6rem; opacity: 1; transform: translateY(0); } + +@media (max-width: 1024px) { .fc-domains__grid { flex-wrap: wrap; height: auto; } .fc-domain-card { flex: 0 0 calc(33.33% - 1rem); aspect-ratio: 3/4; } } +@media (max-width: 640px) { .fc-domain-card { flex: 0 0 calc(50% - 0.625rem); } } /* ════════════════ 6. 주요기능 ════════════════ */ diff --git a/src/pages/solution/FlightControlPage.jsx b/src/pages/solution/FlightControlPage.jsx index f75f61c..a777ede 100644 --- a/src/pages/solution/FlightControlPage.jsx +++ b/src/pages/solution/FlightControlPage.jsx @@ -1,18 +1,6 @@ import { useRef, useState } from "react"; import { motion, useInView, AnimatePresence } from "framer-motion"; -import { - Radio, - Puzzle, - Network, - Expand, - Shield, - ArrowUpRight, - Package, - Wind, - AlertTriangle, - Ship, - Plane, -} from "lucide-react"; +import { Radio, Puzzle, Network, Expand, Shield, ArrowUpRight, Package, Wind, AlertTriangle, Ship, Plane } from "lucide-react"; import SubHero from "../../components/SubHero"; import useFadeIn from "../../hooks/useFadeIn"; @@ -100,12 +88,7 @@ const ease = [0.22, 1, 0.36, 1]; function RevealText({ children, delay = 0, className }) { return (
- + {children}
@@ -115,10 +98,7 @@ function RevealText({ children, delay = 0, className }) { function StaggerWords({ text, delay = 0, className }) { const words = text.split(" "); return ( - + {words.map((word, i) => ( - Flight Management} - navItems={SOLUTION_NAV} - /> + Flight Management} navItems={SOLUTION_NAV} />
@@ -245,40 +221,19 @@ function FlightControlPage() { {/* 개요 인트로 */}
- + Overview - + 모든 이동체 정보를
하나의 플랫폼에서
- - 항공기, 무인기, 선박, 지상 이동체의 실시간 정보를 통합 - 모니터링하고
+ + 항공기, 무인기, 선박, 지상 이동체의 실시간 정보를 통합 모니터링하고
상황을 인식하여 신속하고 안전한 운영 의사결정을 지원합니다.
- + {[ { img: "fc_aircraft.png", label: "항공기" }, { img: "fc_drone.png", label: "무인기" }, @@ -286,27 +241,15 @@ function FlightControlPage() { { img: "fc_car.png", label: "차량 등" }, ].map((item, i) => (
- {item.label} + {item.label} {item.label}
))}
- - 비행상황관리 시스템 + + 비행상황관리 시스템
@@ -359,13 +302,7 @@ function FlightControlPage() { icons: null, }, ].map((item, i) => ( - +
{item.tag}

@@ -380,11 +317,7 @@ function FlightControlPage() {

- {item.tag} + {item.tag} {item.icons && item.icons.map((icon, j) => ( - - - + + + )}
@@ -459,28 +367,14 @@ function FlightControlPage() { {/* 3. 적용 분야 */}
- + 적용 분야
{DOMAINS.map(({ icon: Icon, img, label, desc }, i) => ( - -
- {label} -
-
+ + {label} +
{label}

{desc}

@@ -488,81 +382,34 @@ function FlightControlPage() { ))}
+ {/* 4. 주요기능 */}
- + 주요기능
    {FUNCTIONS.map(({ num, label }, i) => ( - setActiveIdx(i)} - initial={{ opacity: 0, y: 16 }} - animate={funcInView ? { opacity: 1, y: 0 } : {}} - transition={{ duration: 0.5, ease, delay: 0.05 * i }} - > + setActiveIdx(i)} initial={{ opacity: 0, y: 16 }} animate={funcInView ? { opacity: 1, y: 0 } : {}} transition={{ duration: 0.5, ease, delay: 0.05 * i }}> {num} {label} - + - + ))}
- - {FUNCTIONS[activeIdx].label} + + {FUNCTIONS[activeIdx].label}
- + {FUNCTIONS[activeIdx].num} - + {FUNCTIONS[activeIdx].label}
@@ -574,23 +421,12 @@ function FlightControlPage() { {/* 5. 시스템 구성 흐름 */}
- + 시스템 구성
{FLOW.map(({ step, label, desc }, i) => ( - + {step} {label}

{desc}