From a3f1c8f882fa1d80871a5e97eb4f24350096829d Mon Sep 17 00:00:00 2001 From: manNomi Date: Tue, 2 Jun 2026 14:53:07 +0900 Subject: [PATCH 1/3] =?UTF-8?q?refactor:=20=ED=95=98=EB=93=9C=EC=BD=94?= =?UTF-8?q?=EB=94=A9=20=EC=83=89=EC=83=81=20magic=20=ED=86=A0=ED=81=B0?= =?UTF-8?q?=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../features/bruno/BrunoApiPageContent.tsx | 18 +++--- .../MentorApplicationsPageContent.tsx | 8 +-- .../RegionsCountriesPageContent.tsx | 4 +- .../features/scores/ScoreVerifyButton.tsx | 6 +- .../features/scores/StatusBadge.tsx | 4 +- apps/admin/src/components/ui/button.tsx | 2 +- apps/admin/src/styles.css | 27 +++++++++ .../[boardCode]/[postId]/CommentSection.tsx | 2 +- .../ui/BottomNavigation/index.tsx | 6 +- .../ui/BottomNavigation/ui/DegreeHat.tsx | 2 +- .../ui/BottomNavigation/ui/EditTwo.tsx | 2 +- .../ui/BottomNavigation/ui/Home.tsx | 2 +- .../ui/BottomNavigation/ui/Human.tsx | 2 +- .../ui/BottomNavigation/ui/WhatsNew.tsx | 2 +- .../ui/BottomNavigation/ui/World.tsx | 10 ++-- apps/web/src/components/modal/SurveyModal.tsx | 24 ++++---- .../src/components/ui/icon/star-filled.tsx | 4 +- apps/web/tailwind.config.ts | 57 +++++++++++++++++++ 18 files changed, 136 insertions(+), 46 deletions(-) diff --git a/apps/admin/src/components/features/bruno/BrunoApiPageContent.tsx b/apps/admin/src/components/features/bruno/BrunoApiPageContent.tsx index 7cf45cfa..77c1b54e 100644 --- a/apps/admin/src/components/features/bruno/BrunoApiPageContent.tsx +++ b/apps/admin/src/components/features/bruno/BrunoApiPageContent.tsx @@ -147,11 +147,11 @@ const getEndpointKey = (endpoint: EndpointItem) => `${endpoint.domain}:${endpoin const getMethodClassName = (method: DefinitionMethod) => cn( "rounded px-1.5 py-0.5 typo-regular-4", - method === "GET" && "bg-[#E8F3FF] text-[#1D4ED8]", - method === "POST" && "bg-[#ECFDF3] text-[#047857]", - method === "PUT" && "bg-[#FFF7ED] text-[#C2410C]", - method === "PATCH" && "bg-[#FEF3C7] text-[#B45309]", - method === "DELETE" && "bg-[#FEE2E2] text-[#B91C1C]", + method === "GET" && "bg-magic-http-get-surface text-magic-http-get-text", + method === "POST" && "bg-magic-http-post-surface text-magic-http-post-text", + method === "PUT" && "bg-magic-http-put-surface text-magic-http-put-text", + method === "PATCH" && "bg-magic-http-patch-surface text-magic-http-patch-text", + method === "DELETE" && "bg-magic-http-delete-surface text-magic-http-delete-text", (method === "HEAD" || method === "OPTIONS") && "bg-k-100 text-k-700", ); @@ -385,7 +385,7 @@ export function BrunoApiPageContent() {
{showRemoteWarning ? ( -
+

원격 API 서버에 연결되어 있습니다.

@@ -437,7 +437,7 @@ export function BrunoApiPageContent() {
) : null} {editorError ? ( -
+
{editorError}
) : null} @@ -501,8 +501,8 @@ export function BrunoApiPageContent() { className={cn( "rounded px-2 py-1", requestResult.status >= 200 && requestResult.status < 300 - ? "bg-[#ECFDF3] text-[#047857]" - : "bg-[#FEF2F2] text-[#B91C1C]", + ? "bg-magic-api-success-surface text-magic-api-success-text" + : "bg-magic-error-surface text-magic-error", )} > HTTP {requestResult.status} diff --git a/apps/admin/src/components/features/mentor-applications/MentorApplicationsPageContent.tsx b/apps/admin/src/components/features/mentor-applications/MentorApplicationsPageContent.tsx index c9615163..429f019a 100644 --- a/apps/admin/src/components/features/mentor-applications/MentorApplicationsPageContent.tsx +++ b/apps/admin/src/components/features/mentor-applications/MentorApplicationsPageContent.tsx @@ -28,8 +28,8 @@ const STATUS_OPTIONS: { value: MentorApplicationStatus; label: string }[] = [ const statusStyles: Record = { PENDING: "bg-primary-100 text-primary", - APPROVED: "bg-[#E9F7EC] text-[#15A861]", - REJECTED: "bg-[#FFD9D9] text-[#E22A2D]", + APPROVED: "bg-magic-success-surface text-magic-success", + REJECTED: "bg-magic-danger-surface text-magic-danger", }; const statusLabels: Record = { @@ -254,7 +254,7 @@ function MentorApplicationHistoryRow({ colSpan, siteUserId }: { colSpan: number; 이력을 불러오는 중...
) : isError ? ( -

신청 이력을 불러오지 못했습니다.

+

신청 이력을 불러오지 못했습니다.

) : historyItems.length === 0 ? (

신청 이력이 없습니다.

) : ( @@ -595,7 +595,7 @@ export function MentorApplicationsPageContent() { ) : isError ? ( - + 멘토 승격 요청을 불러오지 못했습니다. diff --git a/apps/admin/src/components/features/regions-countries/RegionsCountriesPageContent.tsx b/apps/admin/src/components/features/regions-countries/RegionsCountriesPageContent.tsx index c011b1db..41b9d752 100644 --- a/apps/admin/src/components/features/regions-countries/RegionsCountriesPageContent.tsx +++ b/apps/admin/src/components/features/regions-countries/RegionsCountriesPageContent.tsx @@ -300,7 +300,7 @@ export function RegionsCountriesPageContent() { ) : regionsQuery.isError ? ( - + 권역을 불러오지 못했습니다. @@ -431,7 +431,7 @@ export function RegionsCountriesPageContent() { ) : countriesQuery.isError ? ( - + 지역을 불러오지 못했습니다. diff --git a/apps/admin/src/components/features/scores/ScoreVerifyButton.tsx b/apps/admin/src/components/features/scores/ScoreVerifyButton.tsx index 3a12e780..e19321c6 100644 --- a/apps/admin/src/components/features/scores/ScoreVerifyButton.tsx +++ b/apps/admin/src/components/features/scores/ScoreVerifyButton.tsx @@ -33,7 +33,7 @@ export function ScoreVerifyButton({ currentStatus, onVerifyChange }: Props) { @@ -50,7 +50,7 @@ export function ScoreVerifyButton({ currentStatus, onVerifyChange }: Props) { @@ -59,7 +59,7 @@ export function ScoreVerifyButton({ currentStatus, onVerifyChange }: Props) { diff --git a/apps/admin/src/components/features/scores/StatusBadge.tsx b/apps/admin/src/components/features/scores/StatusBadge.tsx index 2949e357..e8a23618 100644 --- a/apps/admin/src/components/features/scores/StatusBadge.tsx +++ b/apps/admin/src/components/features/scores/StatusBadge.tsx @@ -2,8 +2,8 @@ import type { VerifyStatus } from "@/types/scores"; const statusStyles = { PENDING: "bg-primary-100 text-primary", - APPROVED: "bg-[#E9F7EC] text-[#15A861]", - REJECTED: "bg-[#FFD9D9] text-[#E22A2D]", + APPROVED: "bg-magic-success-surface text-magic-success", + REJECTED: "bg-magic-danger-surface text-magic-danger", }; const statusLabels = { diff --git a/apps/admin/src/components/ui/button.tsx b/apps/admin/src/components/ui/button.tsx index bf9301ee..ceaa353e 100644 --- a/apps/admin/src/components/ui/button.tsx +++ b/apps/admin/src/components/ui/button.tsx @@ -10,7 +10,7 @@ const buttonVariants = cva( variants: { variant: { default: "bg-primary text-k-0 shadow-sm hover:bg-primary-600", - destructive: "bg-[#E22A2D] text-k-0 shadow-sm hover:bg-[#BA1E21]", + destructive: "bg-magic-danger text-k-0 shadow-sm hover:bg-magic-danger-hover", outline: "border border-k-200 bg-k-0 text-k-700 shadow-sm hover:bg-k-50", secondary: "bg-k-50 text-k-700 shadow-sm hover:bg-k-100", ghost: "text-k-600 hover:bg-k-50 hover:text-k-800", diff --git a/apps/admin/src/styles.css b/apps/admin/src/styles.css index 2fe9bc3d..a30028a9 100644 --- a/apps/admin/src/styles.css +++ b/apps/admin/src/styles.css @@ -1,5 +1,32 @@ @import "tailwindcss"; +@theme { + --color-magic-success: #15a861; + --color-magic-success-hover: #10814a; + --color-magic-success-surface: #e9f7ec; + --color-magic-danger: #e22a2d; + --color-magic-danger-hover: #ba1e21; + --color-magic-danger-surface: #ffd9d9; + --color-magic-error: #b91c1c; + --color-magic-error-border: #fca5a5; + --color-magic-error-surface: #fef2f2; + --color-magic-warning: #854d0e; + --color-magic-warning-border: #facc15; + --color-magic-warning-surface: #fefce8; + --color-magic-api-success-surface: #ecfdf3; + --color-magic-api-success-text: #047857; + --color-magic-http-get-surface: #e8f3ff; + --color-magic-http-get-text: #1d4ed8; + --color-magic-http-post-surface: #ecfdf3; + --color-magic-http-post-text: #047857; + --color-magic-http-put-surface: #fff7ed; + --color-magic-http-put-text: #c2410c; + --color-magic-http-patch-surface: #fef3c7; + --color-magic-http-patch-text: #b45309; + --color-magic-http-delete-surface: #fee2e2; + --color-magic-http-delete-text: #b91c1c; +} + body { @apply m-0; font-family: "Pretendard", system-ui, -apple-system, sans-serif; diff --git a/apps/web/src/app/community/[boardCode]/[postId]/CommentSection.tsx b/apps/web/src/app/community/[boardCode]/[postId]/CommentSection.tsx index 0a3e4aab..8899caa3 100644 --- a/apps/web/src/app/community/[boardCode]/[postId]/CommentSection.tsx +++ b/apps/web/src/app/community/[boardCode]/[postId]/CommentSection.tsx @@ -78,7 +78,7 @@ const Comment = ({
{ href={route} aria-current={isActive ? "page" : undefined} aria-label={`${text} 페이지로 이동`} - className="flex flex-[1_0_0] flex-col items-center self-stretch px-3 pb-2 pt-1.5 no-underline" + className={`flex flex-[1_0_0] flex-col items-center self-stretch px-3 pb-2 pt-1.5 no-underline ${ + isActive ? "text-primary" : "text-magic-nav-inactive" + }`} > {(() => { const IconComp = ICON_COMPONENTS[iconType]; - return ; + return ; })()} diff --git a/apps/web/src/components/layout/GlobalLayout/ui/BottomNavigation/ui/EditTwo.tsx b/apps/web/src/components/layout/GlobalLayout/ui/BottomNavigation/ui/EditTwo.tsx index 2e62a4fc..b8939e3c 100644 --- a/apps/web/src/components/layout/GlobalLayout/ui/BottomNavigation/ui/EditTwo.tsx +++ b/apps/web/src/components/layout/GlobalLayout/ui/BottomNavigation/ui/EditTwo.tsx @@ -1,5 +1,5 @@ // eslint-disable-next-line -export default function EditTwo({ color = "#707070" }) { +export default function EditTwo({ color = "currentColor" }) { return ( diff --git a/apps/web/src/components/layout/GlobalLayout/ui/BottomNavigation/ui/Home.tsx b/apps/web/src/components/layout/GlobalLayout/ui/BottomNavigation/ui/Home.tsx index 642fead6..5dc1ddd0 100644 --- a/apps/web/src/components/layout/GlobalLayout/ui/BottomNavigation/ui/Home.tsx +++ b/apps/web/src/components/layout/GlobalLayout/ui/BottomNavigation/ui/Home.tsx @@ -1,5 +1,5 @@ // eslint-disable-next-line -export default function Home({ color = "#707070" }) { +export default function Home({ color = "currentColor" }) { return ( ( +const World = ({ color = "currentColor" }) => ( diff --git a/apps/web/src/components/modal/SurveyModal.tsx b/apps/web/src/components/modal/SurveyModal.tsx index 4c9c0f65..b98b7ff2 100644 --- a/apps/web/src/components/modal/SurveyModal.tsx +++ b/apps/web/src/components/modal/SurveyModal.tsx @@ -68,25 +68,25 @@ const SurveyModal = ({ isOpen, onClose, onCloseForWeek }: SurveyModalProps) => { />
-

+

솔리드 커넥션,

-

+

26-2학기

-

+

만족도 조사

-

+

1분 설문조사하고 멘토링과 커피쿠폰 받아가세요!

-
+

2026년 3월 14일~ 3월 31일

추첨을 통해 커피 쿠폰 또는 멘토링 기회를 제공해요🍀

-
+
-
diff --git a/apps/web/src/components/ui/icon/star-filled.tsx b/apps/web/src/components/ui/icon/star-filled.tsx index 096cab9a..092f0331 100644 --- a/apps/web/src/components/ui/icon/star-filled.tsx +++ b/apps/web/src/components/ui/icon/star-filled.tsx @@ -10,8 +10,8 @@ interface StarFilledIconProps { const StarFilledIcon = ({ size = "20", - leftColor = "#000000", - rightColor = "#000000", + leftColor = "currentColor", + rightColor = "currentColor", leftOpacity = "1", rightOpacity = "1", onClick, diff --git a/apps/web/tailwind.config.ts b/apps/web/tailwind.config.ts index 7e5bb8a5..35c08aa4 100644 --- a/apps/web/tailwind.config.ts +++ b/apps/web/tailwind.config.ts @@ -263,6 +263,63 @@ const config: Config = { "1": "#f2f2f2", "2": "#e5e5e5", }, + magic: { + success: "#15A861", + "success-hover": "#10814A", + "success-surface": "#E9F7EC", + danger: "#E22A2D", + "danger-hover": "#BA1E21", + "danger-surface": "#FFD9D9", + error: "#B91C1C", + "error-border": "#FCA5A5", + "error-surface": "#FEF2F2", + warning: "#854D0E", + "warning-border": "#FACC15", + "warning-surface": "#FEFCE8", + api: { + success: { + surface: "#ECFDF3", + text: "#047857", + }, + }, + http: { + get: { + surface: "#E8F3FF", + text: "#1D4ED8", + }, + post: { + surface: "#ECFDF3", + text: "#047857", + }, + put: { + surface: "#FFF7ED", + text: "#C2410C", + }, + patch: { + surface: "#FEF3C7", + text: "#B45309", + }, + delete: { + surface: "#FEE2E2", + text: "#B91C1C", + }, + }, + survey: { + blue: "#007AFF", + "blue-hover": "#006CE0", + purple: "#51298A", + "purple-dark": "#430895", + navy: "#29428A", + muted: "#5F6268", + divider: "#D0D0D0", + }, + nav: { + inactive: "#707070", + }, + comment: { + "reply-bg": "#fafafa", + }, + }, foreground: "hsl(var(--foreground))", card: { DEFAULT: "hsl(var(--card))", From 099698a38f950735ba28162fbf57968b54a4e47d Mon Sep 17 00:00:00 2001 From: manNomi Date: Tue, 2 Jun 2026 14:58:10 +0900 Subject: [PATCH 2/3] =?UTF-8?q?refactor:=20=EB=B3=B5=ED=95=A9=20=EC=83=89?= =?UTF-8?q?=EC=83=81=20=ED=91=9C=ED=98=84=EC=9D=84=20=EB=94=94=EC=9E=90?= =?UTF-8?q?=EC=9D=B8=20=ED=86=A0=ED=81=B0=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/layout/AdminLayout.tsx | 6 +++--- apps/admin/src/styles.css | 21 +++++++++++++++++++ .../community/[boardCode]/PostWriteButton.tsx | 2 +- .../mentor/chat/_ui/ChatPageClient/index.tsx | 2 +- .../UniversityDetail/_ui/UniversityBtns.tsx | 6 +++--- .../score/example/gpa-cert/page.tsx | 3 +-- .../ui/BottomNavigation/index.tsx | 2 +- .../login/signup/SignupPrepareScreen.tsx | 2 +- apps/web/src/components/modal/SurveyModal.tsx | 2 +- apps/web/src/components/ui/Dropdown/index.tsx | 2 +- apps/web/src/components/ui/SlimDropdown.tsx | 2 +- apps/web/src/lib/toast/showIconToast.tsx | 13 ++---------- apps/web/tailwind.config.ts | 21 +++++++++++++++++++ 13 files changed, 58 insertions(+), 26 deletions(-) diff --git a/apps/admin/src/components/layout/AdminLayout.tsx b/apps/admin/src/components/layout/AdminLayout.tsx index 1bf3a8c3..f4ceb538 100644 --- a/apps/admin/src/components/layout/AdminLayout.tsx +++ b/apps/admin/src/components/layout/AdminLayout.tsx @@ -38,9 +38,9 @@ export function AdminLayout({ children, activeMenu, title, description }: AdminL }; return ( -
+
-
+
SC @@ -67,7 +67,7 @@ export function AdminLayout({ children, activeMenu, title, description }: AdminL
-
+

{title}

{description ?

{description}

: null} {children} diff --git a/apps/admin/src/styles.css b/apps/admin/src/styles.css index a30028a9..ecf1319a 100644 --- a/apps/admin/src/styles.css +++ b/apps/admin/src/styles.css @@ -25,6 +25,10 @@ --color-magic-http-patch-text: #b45309; --color-magic-http-delete-surface: #fee2e2; --color-magic-http-delete-text: #b91c1c; + --color-magic-admin-shell-spotlight: #eef2ff; + --color-magic-admin-shell-mid: #fafafa; + --color-magic-admin-shell-base: #f5f5f5; + --color-magic-admin-panel-shadow: rgba(26, 31, 39, 0.45); } body { @@ -127,6 +131,23 @@ code { box-shadow: 0 4px 40px 0 rgba(26, 31, 39, 0.12); } + .bg-magic-admin-shell { + background-image: radial-gradient( + circle at top, + var(--color-magic-admin-shell-spotlight) 0%, + var(--color-magic-admin-shell-mid) 48%, + var(--color-magic-admin-shell-base) 100% + ); + } + + .shadow-magic-admin-header { + box-shadow: 0 10px 30px -24px var(--color-magic-admin-panel-shadow); + } + + .shadow-magic-admin-panel { + box-shadow: 0 8px 24px -22px var(--color-magic-admin-panel-shadow); + } + .typo-bold-1 { font-size: 24px; line-height: 140%; diff --git a/apps/web/src/app/community/[boardCode]/PostWriteButton.tsx b/apps/web/src/app/community/[boardCode]/PostWriteButton.tsx index 43a243a2..bd0478ac 100644 --- a/apps/web/src/app/community/[boardCode]/PostWriteButton.tsx +++ b/apps/web/src/app/community/[boardCode]/PostWriteButton.tsx @@ -32,7 +32,7 @@ const PostWriteButton = ({ onClick }: PostWriteButtonProps) => { className={`fixed bottom-16 flex w-full max-w-app flex-col items-center transition-transform duration-300 ease-in-out ${isVisible ? "translate-y-0" : "translate-y-[calc(100%+66px)]"} `} > diff --git a/apps/web/src/app/university/score/example/gpa-cert/page.tsx b/apps/web/src/app/university/score/example/gpa-cert/page.tsx index afa10381..bfb74691 100644 --- a/apps/web/src/app/university/score/example/gpa-cert/page.tsx +++ b/apps/web/src/app/university/score/example/gpa-cert/page.tsx @@ -12,7 +12,6 @@ const GpaCertExamplePage = () => { const divStyle = { padding: "33px 20px 36px 20px", - borderBottom: "1px solid rgb(236, 236, 236)", fontFamily: "Pretendard", fontSize: "14px", lineHeight: "150%", @@ -48,7 +47,7 @@ const GpaCertExamplePage = () => { return (
-
+
학번과 직전학기가 표시된 증명서만 승인됩니다.

diff --git a/apps/web/src/components/layout/GlobalLayout/ui/BottomNavigation/index.tsx b/apps/web/src/components/layout/GlobalLayout/ui/BottomNavigation/index.tsx index 4f57a80f..139664e0 100644 --- a/apps/web/src/components/layout/GlobalLayout/ui/BottomNavigation/index.tsx +++ b/apps/web/src/components/layout/GlobalLayout/ui/BottomNavigation/index.tsx @@ -27,7 +27,7 @@ const BottomNavigation = () => { } return ( -