UI 전면 리디자인: Vivid Blue 모던 SaaS 스타일 전환
- globals.css: primary를 dark navy(11.2%)에서 vivid blue(#3B82F6)로 전환 - button.tsx: default variant를 진짜 CTA(bg-primary)로 변경 - login: AI 패턴 제거 (장식원, backdrop-blur, 무의미한 그라데이션) - dashboard: 그라데이션 배너 → 간결한 헤더, 카드별 고유 색상 - sidebar: 활성메뉴 좌측 인디케이터바, bg-primary/10 남용 제거 Made-with: Cursor
This commit is contained in:
@@ -407,11 +407,11 @@ function AppLayoutInner({ children }: AppLayoutProps) {
|
||||
return (
|
||||
<div key={menu.id}>
|
||||
<div
|
||||
className={`group flex min-h-[44px] sm:min-h-[40px] cursor-pointer items-center justify-between rounded-lg px-3 py-2 text-sm font-medium transition-colors duration-150 ease-in-out ${
|
||||
className={`group flex min-h-[44px] sm:min-h-[40px] cursor-pointer items-center justify-between rounded-md px-3 py-2 text-sm font-medium transition-colors duration-150 ease-in-out ${
|
||||
pathname === menu.url
|
||||
? "bg-primary/10 text-primary font-semibold"
|
||||
? "border-l-3 border-primary bg-primary/8 text-primary font-semibold"
|
||||
: isExpanded
|
||||
? "bg-accent text-foreground"
|
||||
? "bg-accent/60 text-foreground"
|
||||
: "text-muted-foreground hover:bg-accent hover:text-foreground"
|
||||
} ${level > 0 ? "ml-6" : ""}`}
|
||||
onClick={() => handleMenuClick(menu)}
|
||||
@@ -435,9 +435,9 @@ function AppLayoutInner({ children }: AppLayoutProps) {
|
||||
{menu.children?.map((child: any) => (
|
||||
<div
|
||||
key={child.id}
|
||||
className={`flex min-h-[44px] sm:min-h-[40px] cursor-pointer items-center rounded-lg px-3 py-2 text-sm transition-colors duration-150 hover:cursor-pointer ${
|
||||
className={`flex min-h-[44px] sm:min-h-[40px] cursor-pointer items-center rounded-md px-3 py-2 text-sm transition-colors duration-150 hover:cursor-pointer ${
|
||||
pathname === child.url
|
||||
? "bg-primary/10 text-primary font-semibold"
|
||||
? "border-l-3 border-primary bg-primary/8 text-primary font-semibold"
|
||||
: "text-muted-foreground hover:bg-accent hover:text-foreground"
|
||||
}`}
|
||||
onClick={() => handleMenuClick(child)}
|
||||
@@ -552,7 +552,7 @@ function AppLayoutInner({ children }: AppLayoutProps) {
|
||||
isMobile
|
||||
? (sidebarOpen ? "translate-x-0" : "-translate-x-full") + " fixed top-14 left-0 z-40 h-[calc(100vh-56px)]"
|
||||
: "relative z-auto h-screen translate-x-0"
|
||||
} flex w-[260px] sm:w-[220px] lg:w-[240px] flex-col border-r border-border bg-background transition-transform duration-300`}
|
||||
} flex w-[260px] sm:w-[220px] lg:w-[240px] flex-col border-r border-sidebar-border bg-sidebar transition-transform duration-300`}
|
||||
>
|
||||
{/* 사이드바 최상단 - 로고 (데스크톱에서만 표시) */}
|
||||
{!isMobile && (
|
||||
@@ -563,7 +563,7 @@ function AppLayoutInner({ children }: AppLayoutProps) {
|
||||
|
||||
{/* WACE 관리자: 현재 관리 회사 표시 */}
|
||||
{(user as ExtendedUserInfo)?.userType === "SUPER_ADMIN" && (
|
||||
<div className="mx-3 mt-3 rounded-lg border bg-gradient-to-r from-primary/10 to-primary/5 p-3">
|
||||
<div className="mx-3 mt-3 rounded-md border border-border bg-muted/50 p-3">
|
||||
<div className="flex items-center gap-2">
|
||||
<Building2 className="h-4 w-4 shrink-0 text-primary" />
|
||||
<div className="min-w-0 flex-1">
|
||||
@@ -584,10 +584,10 @@ function AppLayoutInner({ children }: AppLayoutProps) {
|
||||
{/* 관리자/사용자 메뉴 전환 */}
|
||||
<Button
|
||||
onClick={handleModeSwitch}
|
||||
className={`flex w-full items-center justify-center gap-2 rounded-lg px-3 py-2 text-sm font-medium transition-colors duration-150 hover:cursor-pointer ${
|
||||
className={`flex w-full items-center justify-center gap-2 rounded-md px-3 py-2 text-sm font-medium transition-colors duration-150 hover:cursor-pointer ${
|
||||
isAdminMode
|
||||
? "border border-warning/20 bg-warning/10 text-warning hover:bg-warning/20"
|
||||
: "border border-primary/20 bg-primary/10 text-primary hover:bg-primary/20"
|
||||
? "border border-amber-200 bg-amber-50 text-amber-700 hover:bg-amber-100 dark:border-amber-800 dark:bg-amber-950 dark:text-amber-400"
|
||||
: "border border-primary/20 bg-primary/5 text-primary hover:bg-primary/10"
|
||||
}`}
|
||||
>
|
||||
{isAdminMode ? (
|
||||
@@ -607,7 +607,7 @@ function AppLayoutInner({ children }: AppLayoutProps) {
|
||||
{(user as ExtendedUserInfo)?.userType === "SUPER_ADMIN" && (
|
||||
<Button
|
||||
onClick={() => { console.log("🔴 회사 선택 버튼 클릭!"); setShowCompanySwitcher(true); }}
|
||||
className="flex w-full items-center justify-center gap-2 rounded-lg border border-primary/20 bg-primary/10 px-3 py-2 text-sm font-medium text-primary transition-colors duration-150 hover:cursor-pointer hover:bg-primary/20"
|
||||
className="flex w-full items-center justify-center gap-2 rounded-md border border-primary/20 bg-primary/5 px-3 py-2 text-sm font-medium text-primary transition-colors duration-150 hover:cursor-pointer hover:bg-primary/10"
|
||||
>
|
||||
<Building2 className="h-4 w-4" />
|
||||
회사 선택
|
||||
|
||||
Reference in New Issue
Block a user