diff --git a/src/entities/project/ui/prompt-card/PromptCard.tsx b/src/entities/project/ui/prompt-card/PromptCard.tsx
index 1c0bc5f..0b9c1ab 100644
--- a/src/entities/project/ui/prompt-card/PromptCard.tsx
+++ b/src/entities/project/ui/prompt-card/PromptCard.tsx
@@ -23,8 +23,8 @@ const PromptLine = ({ line }: { line: string }) => {
color={color}
display="block"
fontFamily="mono"
- fontSize="sm"
- lineHeight="1.4"
+ fontSize={{ base: "xs", md: "sm" }}
+ lineHeight="1.5"
>
{line}
@@ -47,28 +47,35 @@ export const PromptCard = ({
bg="neutral.50"
border="1px solid"
borderColor="neutral.50"
- borderRadius="2xl"
+ borderRadius={{ base: "xl", md: "2xl" }}
overflow="hidden"
w="full"
>
-
+
{label}
-
+
{copied ? "복사됨 ✓" : "복사하기"}
@@ -94,15 +101,15 @@ export const PromptCard = ({
-
+
{isPrompt ? (
lines.map((line, i) => )
) : (
{content}
diff --git a/src/features/upload/components/features/upload-step/UploadStepIndicator.tsx b/src/features/upload/components/features/upload-step/UploadStepIndicator.tsx
index 308ec3c..2f56ec2 100644
--- a/src/features/upload/components/features/upload-step/UploadStepIndicator.tsx
+++ b/src/features/upload/components/features/upload-step/UploadStepIndicator.tsx
@@ -9,77 +9,90 @@ type Props = {
export const UploadStepIndicator = ({ current, stepCodes }: Props) => {
return (
-
+
- {Array.from({ length: stepCodes.length - 1 }, (_, i) => (
-
- ))}
-
-
-
{stepCodes.map((code, i) => {
const stepId = i + 1;
const isActive = stepId === current;
const isDone = stepId < current;
+ const isLast = i === stepCodes.length - 1;
return (
-
+
-
-
+
- {stepId}
-
+
+ {stepId}
+
+
+
+
+ {ROADMAP_STEP_NAMES[code] ?? code}
+
-
- {ROADMAP_STEP_NAMES[code] ?? code}
-
+ {!isLast && (
+
+ )}
);
})}
diff --git a/src/features/upload/components/features/upload-step/UploadStepResultInput.tsx b/src/features/upload/components/features/upload-step/UploadStepResultInput.tsx
index fa20850..0f9bf86 100644
--- a/src/features/upload/components/features/upload-step/UploadStepResultInput.tsx
+++ b/src/features/upload/components/features/upload-step/UploadStepResultInput.tsx
@@ -7,10 +7,10 @@ type Props = {
export const UploadStepResultInput = ({ value, onChange }: Props) => {
return (
-
+
@@ -28,11 +28,11 @@ export const UploadStepResultInput = ({ value, onChange }: Props) => {
border="none"
borderRadius="xl"
color="neutral.900"
- fontSize="sm"
+ fontSize={{ base: "xs", md: "sm" }}
fontWeight="medium"
minH={60}
onChange={(e) => onChange(e.target.value)}
- p={6}
+ p={{ base: 4, md: 6 }}
placeholder="이전 단계 프롬프트로 얻은 AI의 답변을 여기에 붙여넣어 주세요. 정보를 입력하면 다음 단계 로드맵이 더욱 정교해집니다."
resize="vertical"
value={value}
@@ -41,14 +41,19 @@ export const UploadStepResultInput = ({ value, onChange }: Props) => {
backdropFilter="blur(2px)"
bg="rgba(255,255,255,0.6)"
borderRadius="4px"
- bottom="20px"
+ bottom={{ base: "16px", md: "20px" }}
position="absolute"
px={2}
py={1}
- right="20px"
+ right={{ base: "16px", md: "20px" }}
>
- Ctrl + V
+
+ Ctrl + V
+
+
+ 붙여넣기
+
diff --git a/src/features/upload/ui/section/UploadLoadingSection.tsx b/src/features/upload/ui/section/UploadLoadingSection.tsx
index 0e4023c..777cfe6 100644
--- a/src/features/upload/ui/section/UploadLoadingSection.tsx
+++ b/src/features/upload/ui/section/UploadLoadingSection.tsx
@@ -25,8 +25,8 @@ export const UploadLoadingSection = ({
-
+
AI가 과제의 핵심을
분석하고 있어요
-
+
분석이 완료되면 나만의 로드맵이 펼쳐집니다.
-
+
-
+
{currentStepMessage}
-
+
{Math.round(progress)}%
@@ -98,7 +110,11 @@ export const UploadLoadingSection = ({
/>
-
+
잠시만 기다려주세요, 거의 다 되었습니다.
diff --git a/src/features/upload/ui/section/UploadStepContentSection.tsx b/src/features/upload/ui/section/UploadStepContentSection.tsx
index a18ef33..962c6be 100644
--- a/src/features/upload/ui/section/UploadStepContentSection.tsx
+++ b/src/features/upload/ui/section/UploadStepContentSection.tsx
@@ -55,19 +55,35 @@ export const UploadStepContentSection = ({ projectId, stepNum }: Props) => {
-
-
+
+
Step {stepNum}
-
+
{stepName}
-
+
AI가 과제 주제를 분석하여 최적의 자료 조사를 위한 프롬프트를
생성했습니다.
이 프롬프트를 사용하여 고품질의 레퍼런스를 확보하세요.
@@ -83,7 +99,7 @@ export const UploadStepContentSection = ({ projectId, stepNum }: Props) => {
overflow="hidden"
w="full"
>
-
+
{
) : null}
{formatPrompt && (
-
+
결과 추출
-
+
이 프롬프트를 사용하여 ai와 함께 작업한 결과를 추출해주세요.
{
onChange={handleResultTextChange}
/>
-
+