From 4ae7ea739a4d4f60f116652abed3738fe2181ce9 Mon Sep 17 00:00:00 2001 From: cherry2250 Date: Mon, 27 Oct 2025 16:37:43 +0900 Subject: [PATCH 1/2] =?UTF-8?q?=EB=A1=9C=EB=94=A9=20=EC=8A=A4=ED=94=BC?= =?UTF-8?q?=EB=84=88=20=EB=94=94=EC=9E=90=EC=9D=B8=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ContentPreviewStep과 DrawPage의 로딩 스피너를 그라데이션 디자인으로 변경 - 보라색-핑크-파란색 그라데이션 회전 애니메이션 적용 - 중앙 아이콘에 펄스 애니메이션 추가 - DrawPage 다이얼로그 배경을 밝은 배경으로 변경하여 일관성 향상 --- src/app/(main)/events/[eventId]/draw/page.tsx | 47 +++++++++++++++---- .../create/steps/ContentPreviewStep.tsx | 39 ++++++++++++--- 2 files changed, 70 insertions(+), 16 deletions(-) diff --git a/src/app/(main)/events/[eventId]/draw/page.tsx b/src/app/(main)/events/[eventId]/draw/page.tsx index 4f10d86..e9d09fe 100644 --- a/src/app/(main)/events/[eventId]/draw/page.tsx +++ b/src/app/(main)/events/[eventId]/draw/page.tsx @@ -604,28 +604,55 @@ export default function DrawPage() { fullWidth PaperProps={{ sx: { - bgcolor: 'rgba(0, 0, 0, 0.9)', - color: 'white', + bgcolor: 'background.paper', borderRadius: 4, }, }} > - + > + + {animationText} - + {animationSubtext} diff --git a/src/app/(main)/events/create/steps/ContentPreviewStep.tsx b/src/app/(main)/events/create/steps/ContentPreviewStep.tsx index b210c5d..5a2f7df 100644 --- a/src/app/(main)/events/create/steps/ContentPreviewStep.tsx +++ b/src/app/(main)/events/create/steps/ContentPreviewStep.tsx @@ -122,18 +122,45 @@ export default function ContentPreviewStep({ - + > + + AI 이미지 생성 중 From 08777aa00d20472b98d3ff9c3864443c2926e664 Mon Sep 17 00:00:00 2001 From: cherry2250 Date: Mon, 27 Oct 2025 17:38:25 +0900 Subject: [PATCH 2/2] =?UTF-8?q?=EC=8B=A4=EC=8B=9C=EA=B0=84=20=ED=98=84?= =?UTF-8?q?=ED=99=A9=20=EC=B9=B4=EB=93=9C=20=EC=9A=94=EC=86=8C=20=EC=A4=91?= =?UTF-8?q?=EC=95=99=20=EC=A0=95=EB=A0=AC=20(320px=20=EC=B5=9C=EC=A0=81?= =?UTF-8?q?=ED=99=94)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/(main)/analytics/page.tsx | 206 ++-- src/app/(main)/events/[eventId]/page.tsx | 292 +++--- src/app/(main)/events/page.tsx | 1171 ++++++++++++---------- src/app/(main)/page.tsx | 166 +-- src/shared/lib/button-styles.ts | 40 +- 5 files changed, 1014 insertions(+), 861 deletions(-) diff --git a/src/app/(main)/analytics/page.tsx b/src/app/(main)/analytics/page.tsx index a94244f..0703425 100644 --- a/src/app/(main)/analytics/page.tsx +++ b/src/app/(main)/analytics/page.tsx @@ -135,24 +135,24 @@ export default function AnalyticsPage() { minHeight: '100vh', }} > - + {/* Title with Real-time Indicator */} 📊 요약 (실시간) - + {/* Summary KPI Cards */} - + - + 참여자 수 - + {summary.participants} - ↑ {summary.participantsDelta}명 (오늘) + ↑ {summary.participantsDelta}명 @@ -212,27 +212,26 @@ export default function AnalyticsPage() { borderColor: 'transparent', }} > - + 총 비용 - + {Math.floor(summary.totalCost / 10000)}만 - 경품 {Math.floor(roiDetail.prizeCost / 10000)}만 + 채널{' '} - {Math.floor(roiDetail.channelCost / 10000)}만 + 경품+채널 @@ -246,27 +245,26 @@ export default function AnalyticsPage() { borderColor: 'transparent', }} > - + 예상 수익 - + {Math.floor(summary.expectedRevenue / 10000)}만 - 매출 {Math.floor(roiDetail.salesIncrease / 10000)}만 + LTV{' '} - {Math.floor(roiDetail.newCustomerLTV / 10000)}만 + 매출+LTV @@ -280,26 +278,26 @@ export default function AnalyticsPage() { borderColor: 'transparent', }} > - + - 투자대비수익률 + ROI - + {summary.roi}% - 목표 {summary.targetRoi}% 달성 + 목표 {summary.targetRoi}% @@ -307,16 +305,16 @@ export default function AnalyticsPage() { {/* Charts Grid */} - + {/* Channel Performance */} - - + + - + - + 채널별 성과 @@ -335,9 +333,9 @@ export default function AnalyticsPage() { {/* Legend */} - + {channelPerformance.map((item) => ( - + {item.channel} - + {item.percentage}% ({item.participants}명) @@ -412,12 +410,12 @@ export default function AnalyticsPage() { {/* Time Trend */} - - + + - + - + 시간대별 참여 추이 @@ -436,11 +434,11 @@ export default function AnalyticsPage() { - + 피크 시간: {timePerformance.peakTime} ({timePerformance.peakParticipants}명) - + 평균 시간당: {timePerformance.avgPerHour}명 @@ -527,16 +525,16 @@ export default function AnalyticsPage() { {/* ROI Detail & Participant Profile */} - + {/* ROI Detail */} - - + + - + - - 투자대비수익률 상세 + + ROI 상세 - + - + 총 비용: {Math.floor(roiDetail.totalCost / 10000)}만원 - + - + • 경품 비용 - + {Math.floor(roiDetail.prizeCost / 10000)}만원 - + • 채널 비용 - + {Math.floor(roiDetail.channelCost / 10000)}만원 @@ -577,23 +575,23 @@ export default function AnalyticsPage() { - + 예상 수익: {Math.floor(roiDetail.expectedRevenue / 10000)}만원 - + - + • 매출 증가 - + {Math.floor(roiDetail.salesIncrease / 10000)}만원 - + • 신규 고객 LTV - + {Math.floor(roiDetail.newCustomerLTV / 10000)}만원 @@ -601,26 +599,26 @@ export default function AnalyticsPage() { - + 투자대비수익률 - + (수익 - 비용) ÷ 비용 × 100 - + ({Math.floor(roiDetail.expectedRevenue / 10000)}만 -{' '} {Math.floor(roiDetail.totalCost / 10000)}만) ÷{' '} {Math.floor(roiDetail.totalCost / 10000)}만 × 100 - + = {summary.roi}% @@ -633,12 +631,12 @@ export default function AnalyticsPage() { {/* Participant Profile */} - - + + - + - + 참여자 프로필 {/* Age Distribution */} - - + + 연령별 - + {participantProfile.age.map((item) => ( - - + + {item.label} {item.percentage}% @@ -701,20 +699,20 @@ export default function AnalyticsPage() { {/* Gender Distribution */} - + 성별 - + {participantProfile.gender.map((item) => ( - - + + {item.label} {item.percentage}% diff --git a/src/app/(main)/events/[eventId]/page.tsx b/src/app/(main)/events/[eventId]/page.tsx index 578ecd4..fed6ccd 100644 --- a/src/app/(main)/events/[eventId]/page.tsx +++ b/src/app/(main)/events/[eventId]/page.tsx @@ -254,12 +254,12 @@ export default function EventDetailPage() { }; return ( - - + + {/* Event Header */} - - - + + + {event.title} @@ -282,61 +282,62 @@ export default function EventDetailPage() { - + {event.isAIRecommended && ( - + )} {event.isUrgent && ( } + icon={} label="마감임박" size="medium" - sx={{ bgcolor: '#FEF3C7', color: '#92400E' }} + sx={{ bgcolor: '#FEF3C7', color: '#92400E', fontSize: { xs: '0.75rem', sm: '0.875rem' }, height: { xs: 24, sm: 32 } }} /> )} {event.isPopular && ( } + icon={} label="인기" size="medium" - sx={{ bgcolor: '#FEE2E2', color: '#991B1B' }} + sx={{ bgcolor: '#FEE2E2', color: '#991B1B', fontSize: { xs: '0.75rem', sm: '0.875rem' }, height: { xs: 24, sm: 32 } }} /> )} {event.isHighROI && ( } + icon={} label="높은 ROI" size="medium" - sx={{ bgcolor: '#DCFCE7', color: '#166534' }} + sx={{ bgcolor: '#DCFCE7', color: '#166534', fontSize: { xs: '0.75rem', sm: '0.875rem' }, height: { xs: 24, sm: 32 } }} /> )} {event.isNew && ( } + icon={} label="신규" size="medium" - sx={{ bgcolor: '#DBEAFE', color: '#1E40AF' }} + sx={{ bgcolor: '#DBEAFE', color: '#1E40AF', fontSize: { xs: '0.75rem', sm: '0.875rem' }, height: { xs: 24, sm: 32 } }} /> )} - + 📅 {event.startDate} ~ {event.endDate} {/* 진행률 바 (진행중인 이벤트만) */} {event.status === 'active' && ( - - + + 이벤트 진행률 - + {Math.round(calculateProgress(event))}% @@ -344,7 +345,7 @@ export default function EventDetailPage() { variant="determinate" value={calculateProgress(event)} sx={{ - height: 10, + height: { xs: 6, sm: 10 }, borderRadius: 5, bgcolor: colors.gray[100], '& .MuiLinearProgress-bar': { @@ -358,16 +359,16 @@ export default function EventDetailPage() { {/* Real-time KPIs */} - - - + + + 실시간 현황 - + - + 실시간 업데이트 - + - - - + + + 참여자 - + {event.participants}명 - - 목표: {event.targetParticipants}명 ( - {Math.round((event.participants / event.targetParticipants) * 100)}%) + + 목표: {event.targetParticipants}명
+ ({Math.round((event.participants / event.targetParticipants) * 100)}%)
@@ -412,19 +422,29 @@ export default function EventDetailPage() { - - - + + + 조회수 - + {event.views} +
@@ -432,19 +452,29 @@ export default function EventDetailPage() { - - - + + + ROI - + {event.roi}% +
@@ -452,19 +482,29 @@ export default function EventDetailPage() { - - - + + + 전환율 - + {event.conversion}% +
@@ -472,18 +512,18 @@ export default function EventDetailPage() {
{/* Chart Section - 참여 추이 */} - - + + 📈 참여 추이 - - - + + + @@ -491,7 +531,7 @@ export default function EventDetailPage() { size="medium" variant={chartPeriod === '30d' ? 'contained' : 'outlined'} onClick={() => setChartPeriod('30d')} - sx={{ borderRadius: 2 }} + sx={{ borderRadius: 2, fontSize: { xs: '0.75rem', sm: '0.875rem' }, py: { xs: 0.5, sm: 1 }, px: { xs: 1.5, sm: 2 } }} > 30일 @@ -499,13 +539,13 @@ export default function EventDetailPage() { size="medium" variant={chartPeriod === 'all' ? 'contained' : 'outlined'} onClick={() => setChartPeriod('all')} - sx={{ borderRadius: 2 }} + sx={{ borderRadius: 2, fontSize: { xs: '0.75rem', sm: '0.875rem' }, py: { xs: 0.5, sm: 1 }, px: { xs: 1.5, sm: 2 } }} > 전체 - + {/* Chart Section - 채널별 성과 & ROI 추이 */} - + - + 📊 채널별 참여자 - - - + + + - + 💰 ROI 추이 - - - + + + {/* Event Details */} - - + + 🎯 이벤트 정보 - - - - + + + + - + 경품 - + {event.prize} - - + + {getMethodIcon(event.method)} - + 참여 방법 - + {event.method} - - - + + + - + 예상 비용 - + {event.cost.toLocaleString()}원 - - - + + + - + 배포 채널 - + {event.channels.map((channel) => ( ))} @@ -710,17 +752,17 @@ export default function EventDetailPage() { {/* Quick Actions */} - - + + ⚡ 빠른 작업 - + router.push(`/events/${eventId}/participants`)} > - - - + + + 참여자 목록 @@ -743,7 +785,7 @@ export default function EventDetailPage() { elevation={0} sx={{ cursor: 'pointer', - borderRadius: 4, + borderRadius: { xs: 3, sm: 4 }, boxShadow: '0 2px 8px rgba(0, 0, 0, 0.08)', transition: 'all 0.2s', '&:hover': { @@ -752,9 +794,9 @@ export default function EventDetailPage() { }, }} > - - - + + + 이벤트 수정 @@ -765,7 +807,7 @@ export default function EventDetailPage() { elevation={0} sx={{ cursor: 'pointer', - borderRadius: 4, + borderRadius: { xs: 3, sm: 4 }, boxShadow: '0 2px 8px rgba(0, 0, 0, 0.08)', transition: 'all 0.2s', '&:hover': { @@ -774,9 +816,9 @@ export default function EventDetailPage() { }, }} > - - - + + + 공유하기 @@ -787,7 +829,7 @@ export default function EventDetailPage() { elevation={0} sx={{ cursor: 'pointer', - borderRadius: 4, + borderRadius: { xs: 3, sm: 4 }, boxShadow: '0 2px 8px rgba(0, 0, 0, 0.08)', transition: 'all 0.2s', '&:hover': { @@ -796,9 +838,9 @@ export default function EventDetailPage() { }, }} > - - - + + + 데이터 다운 @@ -808,32 +850,32 @@ export default function EventDetailPage() { {/* Recent Participants */} - - - + + + 👥 최근 참여자 - - + + {recentParticipants.map((participant, index) => ( - {index > 0 && } + {index > 0 && } - + - + - + {participant.name} - + {participant.phone} - + {participant.time} diff --git a/src/app/(main)/events/page.tsx b/src/app/(main)/events/page.tsx index 1a2dea4..bf80422 100644 --- a/src/app/(main)/events/page.tsx +++ b/src/app/(main)/events/page.tsx @@ -36,11 +36,7 @@ import { Star, } from '@mui/icons-material'; import Header from '@/shared/ui/Header'; -import { - cardStyles, - colors, - responsiveText, -} from '@/shared/lib/button-styles'; +import { cardStyles, colors, responsiveText } from '@/shared/lib/button-styles'; // Mock 데이터 const mockEvents = [ @@ -208,7 +204,7 @@ export default function EventsPage() { } }; - const calculateProgress = (event: typeof mockEvents[0]) => { + const calculateProgress = (event: (typeof mockEvents)[0]) => { if (event.status !== 'active') return 0; const total = new Date(event.endDate).getTime() - new Date(event.startDate).getTime(); const elapsed = Date.now() - new Date(event.startDate).getTime(); @@ -237,552 +233,647 @@ export default function EventsPage() { minHeight: '100vh', }} > - - {/* Summary Statistics */} - - - - - - - {stats.total} - - - 전체 이벤트 - - - - - - - - - - {stats.active} - - - 진행중 - - - - - - - - - - {stats.totalParticipants} - - - 총 참여자 - - - - - - - - - - {stats.avgROI}% - - - 평균 ROI - - - - - - - {/* Search Section */} - - setSearchTerm(e.target.value)} - InputProps={{ - startAdornment: ( - - - - ), - }} - sx={{ - '& .MuiOutlinedInput-root': { - borderRadius: 3, - bgcolor: 'white', - '& fieldset': { - borderColor: colors.gray[200], - }, - '&:hover fieldset': { - borderColor: colors.gray[300], - }, - '&.Mui-focused fieldset': { - borderColor: colors.purple, - }, - }, - }} - /> - - - {/* Filters */} - - - - - 상태 - - - - 기간 - - - - - - {/* Sorting */} - - - - 정렬 - - - - - - - - {/* Event List */} - - {pageEvents.length === 0 ? ( - - - - - event_busy - - - - 검색 결과가 없습니다 - - - 다른 검색 조건으로 다시 시도해보세요 - - - - ) : ( - - {pageEvents.map((event) => ( - handleEventClick(event.id)} + - - {/* Header with Badges */} - - - - {event.title} - - - {getStatusText(event.status)} - {event.status === 'active' - ? ` | D-${event.daysLeft}` - : event.status === 'scheduled' - ? ` | D+${event.daysLeft}` - : ''} - - + + + {stats.total} + + + 전체 이벤트 + + + + + + + + + + {stats.active} + + + 진행중 + + + + + + + + + + {stats.totalParticipants} + + + 총 참여자 + + + + + + + + + + {stats.avgROI}% + + + 평균 ROI + + + + + - {/* Status Badges */} - - {event.isUrgent && ( - } - label="마감임박" - size="small" - sx={{ - bgcolor: '#FEF3C7', - color: '#92400E', - fontWeight: 600, - fontSize: '0.75rem', - '& .MuiChip-icon': { color: '#92400E' }, - }} - /> - )} - {event.isPopular && ( - } - label="인기" - size="small" - sx={{ - bgcolor: '#FEE2E2', - color: '#991B1B', - fontWeight: 600, - fontSize: '0.75rem', - '& .MuiChip-icon': { color: '#991B1B' }, - }} - /> - )} - {event.isHighROI && ( - } - label="높은 ROI" - size="small" - sx={{ - bgcolor: '#DCFCE7', - color: '#166534', - fontWeight: 600, - fontSize: '0.75rem', - '& .MuiChip-icon': { color: '#166534' }, - }} - /> - )} - {event.isNew && ( - } - label="신규" - size="small" - sx={{ - bgcolor: '#DBEAFE', - color: '#1E40AF', - fontWeight: 600, - fontSize: '0.75rem', - '& .MuiChip-icon': { color: '#1E40AF' }, - }} - /> - )} - - - - {/* Progress Bar for Active Events */} - {event.status === 'active' && ( - - - - 이벤트 진행률 - - - {Math.round(calculateProgress(event))}% - - - - - )} - - {/* Event Info and Stats Container */} - - {/* Left: Event Info */} - - - - - - {event.prize} - - - - {getMethodIcon(event.method)} - - {event.method} - - - - - {/* Date */} - - 📅 - - {event.startDate} ~ {event.endDate} - - - - - {/* Right: Stats */} - - - - 참여자 - - - {event.participants.toLocaleString()} - - 명 - - - {event.targetParticipants > 0 && ( - - 목표: {event.targetParticipants}명 ({Math.round((event.participants / event.targetParticipants) * 100)}%) - - )} - - - - ROI - - = 400 ? colors.mint : event.roi >= 200 ? colors.orange : colors.gray[500] }}> - {event.roi}% - - - - - - - ))} - - )} - - - {/* Pagination */} - {totalPages > 1 && ( - - setCurrentPage(page)} - size="large" + {/* Search Section */} + + setSearchTerm(e.target.value)} + InputProps={{ + startAdornment: ( + + + + ), + }} sx={{ - '& .MuiPaginationItem-root': { - color: colors.gray[700], - fontWeight: 600, - '&.Mui-selected': { - background: `linear-gradient(135deg, ${colors.purple} 0%, ${colors.blue} 100%)`, - color: 'white', - '&:hover': { - background: `linear-gradient(135deg, ${colors.purpleLight} 0%, ${colors.blueLight} 100%)`, - }, + '& .MuiOutlinedInput-root': { + borderRadius: 3, + bgcolor: 'white', + fontSize: { xs: '0.875rem', sm: '1rem' }, + '& fieldset': { + borderColor: colors.gray[200], }, - '&:hover': { - bgcolor: colors.gray[100], + '&:hover fieldset': { + borderColor: colors.gray[300], + }, + '&.Mui-focused fieldset': { + borderColor: colors.purple, }, }, }} /> - )} -
+ + {/* Filters */} + + + + 상태 + + + + 기간 + + + + + + {/* Sorting */} + + + + 정렬 + + + + + + + + {/* Event List */} + + {pageEvents.length === 0 ? ( + + + + + event_busy + + + + 검색 결과가 없습니다 + + + 다른 검색 조건으로 다시 시도해보세요 + + + + ) : ( + + {pageEvents.map((event) => ( + handleEventClick(event.id)} + > + + {/* Header with Badges */} + + + + {event.title} + + + {getStatusText(event.status)} + {event.status === 'active' + ? ` | D-${event.daysLeft}` + : event.status === 'scheduled' + ? ` | D+${event.daysLeft}` + : ''} + + + + {/* Status Badges */} + + {event.isUrgent && ( + } + label="마감임박" + size="small" + sx={{ + bgcolor: '#FEF3C7', + color: '#92400E', + fontWeight: 600, + fontSize: { xs: '0.6875rem', sm: '0.75rem' }, + height: { xs: 24, sm: 28 }, + '& .MuiChip-icon': { color: '#92400E' }, + }} + /> + )} + {event.isPopular && ( + } + label="인기" + size="small" + sx={{ + bgcolor: '#FEE2E2', + color: '#991B1B', + fontWeight: 600, + fontSize: { xs: '0.6875rem', sm: '0.75rem' }, + height: { xs: 24, sm: 28 }, + '& .MuiChip-icon': { color: '#991B1B' }, + }} + /> + )} + {event.isHighROI && ( + } + label="높은 ROI" + size="small" + sx={{ + bgcolor: '#DCFCE7', + color: '#166534', + fontWeight: 600, + fontSize: { xs: '0.6875rem', sm: '0.75rem' }, + height: { xs: 24, sm: 28 }, + '& .MuiChip-icon': { color: '#166534' }, + }} + /> + )} + {event.isNew && ( + } + label="신규" + size="small" + sx={{ + bgcolor: '#DBEAFE', + color: '#1E40AF', + fontWeight: 600, + fontSize: { xs: '0.6875rem', sm: '0.75rem' }, + height: { xs: 24, sm: 28 }, + '& .MuiChip-icon': { color: '#1E40AF' }, + }} + /> + )} + + + + {/* Progress Bar for Active Events */} + {event.status === 'active' && ( + + + + 이벤트 진행률 + + + {Math.round(calculateProgress(event))}% + + + + + )} + + {/* Event Info and Stats Container */} + + {/* Left: Event Info */} + + + + + + {event.prize} + + + + {getMethodIcon(event.method)} + + {event.method} + + + + + {/* Date */} + + 📅 + + {event.startDate} ~ {event.endDate} + + + + + {/* Right: Stats */} + + + + 참여자 + + + {event.participants.toLocaleString()} + + 명 + + + {event.targetParticipants > 0 && ( + + 목표: {event.targetParticipants}명 ( + {Math.round((event.participants / event.targetParticipants) * 100)} + %) + + )} + + + + ROI + + = 400 + ? colors.mint + : event.roi >= 200 + ? colors.orange + : colors.gray[500], + }} + > + {event.roi}% + + + + + + + ))} + + )} + + + {/* Pagination */} + {totalPages > 1 && ( + + setCurrentPage(page)} + size="large" + sx={{ + '& .MuiPaginationItem-root': { + color: colors.gray[700], + fontWeight: 600, + '&.Mui-selected': { + background: `linear-gradient(135deg, ${colors.purple} 0%, ${colors.blue} 100%)`, + color: 'white', + '&:hover': { + background: `linear-gradient(135deg, ${colors.purpleLight} 0%, ${colors.blueLight} 100%)`, + }, + }, + '&:hover': { + bgcolor: colors.gray[100], + }, + }, + }} + /> + + )} +
); diff --git a/src/app/(main)/page.tsx b/src/app/(main)/page.tsx index a6888e0..dc04e81 100644 --- a/src/app/(main)/page.tsx +++ b/src/app/(main)/page.tsx @@ -88,14 +88,14 @@ export default function HomePage() { minHeight: '100vh', }} > - + {/* Welcome Section */} - + 안녕하세요, {mockUser.name}님! 👋 @@ -106,7 +106,7 @@ export default function HomePage() { {/* KPI Cards */} - + - + @@ -139,10 +139,10 @@ export default function HomePage() { @@ -153,7 +153,7 @@ export default function HomePage() { sx={{ fontWeight: 700, color: colors.gray[900], - fontSize: '2.25rem', + fontSize: { xs: '1.5rem', sm: '2.25rem' }, textShadow: '0px 2px 4px rgba(0,0,0,0.15)', }} > @@ -171,22 +171,22 @@ export default function HomePage() { borderColor: 'transparent', }} > - + @@ -194,10 +194,10 @@ export default function HomePage() { @@ -208,7 +208,7 @@ export default function HomePage() { sx={{ fontWeight: 700, color: colors.gray[900], - fontSize: '2.25rem', + fontSize: { xs: '1.5rem', sm: '2.25rem' }, textShadow: '0px 2px 4px rgba(0,0,0,0.15)', }} > @@ -226,22 +226,22 @@ export default function HomePage() { borderColor: 'transparent', }} > - + @@ -249,10 +249,10 @@ export default function HomePage() { @@ -263,7 +263,7 @@ export default function HomePage() { sx={{ fontWeight: 700, color: colors.gray[900], - fontSize: '2.25rem', + fontSize: { xs: '1.5rem', sm: '2.25rem' }, textShadow: '0px 2px 4px rgba(0,0,0,0.15)', }} > @@ -275,11 +275,11 @@ export default function HomePage() { {/* Quick Actions */} - - + + 빠른 시작 - + - + - + - + 새 이벤트 @@ -319,24 +319,24 @@ export default function HomePage() { }} onClick={handleViewAnalytics} > - + - + - + 성과분석 @@ -346,20 +346,21 @@ export default function HomePage() { {/* Active Events */} - + 진행 중인 이벤트