Skip to content

Commit deef53c

Browse files
authored
Merge pull request #11 from TrivialOkay/cyh
캐릭터 짤림 및 말풍선 불일치 수정
2 parents 6f7c9d0 + f6ac39c commit deef53c

7 files changed

Lines changed: 40 additions & 201 deletions

File tree

app/byeoril-ui.tsx

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,21 @@ export function Mascot({ className = "", resting = false, waiting = false }: { c
2727
return <img className={`mascot ${className}`.trim()} src={source} alt="" aria-hidden="true" />;
2828
}
2929

30+
export function SpeechBubble({ children, className = "", tail = "left" }: { children: ReactNode; className?: string; tail?: "left" | "right" }) {
31+
return (
32+
<div className={`speech-bubble ${className}`.trim()}>
33+
<svg className="speech-bubble-outline" viewBox="0 0 116 82" preserveAspectRatio="none" aria-hidden="true">
34+
<path
35+
d="M58 1 C91 1 115 11 115 31 C115 46 94 57 62 60 L31 78 L35 58 C14 54 1 44 1 31 C1 11 25 1 58 1 Z"
36+
transform={tail === "right" ? "translate(116 0) scale(-1 1)" : undefined}
37+
vectorEffect="non-scaling-stroke"
38+
/>
39+
</svg>
40+
<div className="speech-bubble-copy">{children}</div>
41+
</div>
42+
);
43+
}
44+
3045
const characterArtSources: Record<CharacterArt, string> = {
3146
umbrella: "/mascot-poses/mascot-umbrella.png",
3247
coffee: "/mascot-poses/mascot-coffee.png",
@@ -126,7 +141,7 @@ export function FortuneScene({ kind, speech, card = false, characterArt }: { kin
126141
<span className="scene-spark spark-a"/><span className="scene-spark spark-b"/><span className="scene-spark spark-c"/>
127142
<FortuneObject kind={kind} characterArt={characterArt} />
128143
{!characterArt && kind !== "mascot" && <Mascot className="scene-character" resting={kind === "book" || kind === "laundry"} waiting={kind === "elevator"} />}
129-
<span className="scene-speech">{speech.split("\n").map((line, index) => <span key={`${line}-${index}`}>{line}</span>)}</span>
144+
<SpeechBubble className="scene-speech">{speech.split("\n").map((line, index) => <span key={`${line}-${index}`}>{line}</span>)}</SpeechBubble>
130145
</div>
131146
);
132147
}

app/globals.css

Lines changed: 11 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/page.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import {
2121
type Tab,
2222
type View,
2323
} from "./byeoril-data";
24-
import { BottomNav, FortuneObject, FortuneScene, Icon, Mascot, OutcomeFace, Stars, StatusBar } from "./byeoril-ui";
24+
import { BottomNav, FortuneObject, FortuneScene, Icon, Mascot, OutcomeFace, SpeechBubble, Stars, StatusBar } from "./byeoril-ui";
2525

2626
const FortuneBall = lazy(() => import("./fortune-ball").then((module) => ({ default: module.FortuneBall })));
2727

@@ -393,7 +393,7 @@ function GuideScreen({ onBack }: { onBack: () => void }) {
393393

394394
function AboutScreen({ onGuide, onExamples, onReset, confirming }: { onGuide: () => void; onExamples: () => void; onReset: () => void; confirming: boolean }) {
395395
return (
396-
<><Header title="별일 관측국은?"/><section className="screen-content about-screen"><div className="brand-lockup"><strong>별일</strong><i></i><span>관측국</span></div><p className="about-lead">아무 일도 아닌 일을<br/>쓸데없이 관측하고, 보도하고, 시상합니다.</p><h2>이 앱은?</h2><p>오늘의 하찮은 예보가 실제로 관측되면 속보 카드가 만들어지고, 공식 보관소에 저장돼요. 아주 가끔은 상도 줍니다.</p><h2>관측 절차</h2><ol><li><b>1</b>미세한 우주 개입 예보 확인</li><li><b>2</b>실제로 일어났는지 관측</li><li><b>3</b>별일 속보 카드 발행</li><li><b>4</b>하찮은 수상작으로 보관</li></ol><div className="about-actions"><button onClick={onGuide}>우주 개입 농도 안내<Icon name="chevron-right"/></button><button onClick={onExamples}>하찮은 수상작 보기<Icon name="chevron-right"/></button><button className={confirming ? "danger" : ""} onClick={onReset}>{confirming ? "한 번 더 누르면 기록이 삭제돼요" : "내 기록 초기화"}</button></div><div className="about-character"><span>우주가 도운 건 3%.<br/>기록한 건 우리.</span><Mascot/></div></section></>
396+
<><Header title="별일 관측국은?"/><section className="screen-content about-screen"><div className="brand-lockup"><strong>별일</strong><i></i><span>관측국</span></div><p className="about-lead">아무 일도 아닌 일을<br/>쓸데없이 관측하고, 보도하고, 시상합니다.</p><h2>이 앱은?</h2><p>오늘의 하찮은 예보가 실제로 관측되면 속보 카드가 만들어지고, 공식 보관소에 저장돼요. 아주 가끔은 상도 줍니다.</p><h2>관측 절차</h2><ol><li><b>1</b>미세한 우주 개입 예보 확인</li><li><b>2</b>실제로 일어났는지 관측</li><li><b>3</b>별일 속보 카드 발행</li><li><b>4</b>하찮은 수상작으로 보관</li></ol><div className="about-actions"><button onClick={onGuide}>우주 개입 농도 안내<Icon name="chevron-right"/></button><button onClick={onExamples}>하찮은 수상작 보기<Icon name="chevron-right"/></button><button className={confirming ? "danger" : ""} onClick={onReset}>{confirming ? "한 번 더 누르면 기록이 삭제돼요" : "내 기록 초기화"}</button></div><div className="about-character"><SpeechBubble className="about-speech" tail="right">우주가 도운 건 3%.<br/>기록한 건 우리.</SpeechBubble><Mascot/></div></section></>
397397
);
398398
}
399399

0 commit comments

Comments
 (0)