Tighten header quick login layout

Shrink SNS circular buttons, move '간편로그인' label to the left, and hide the user/status badge until authenticated.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dsyoon
2026-02-07 18:17:21 +09:00
parent e6a8e23217
commit 3370ca562e
3 changed files with 33 additions and 31 deletions

View File

@@ -72,10 +72,10 @@
</button>
<div class="user" id="user" hidden>
<span class="user-dot" aria-hidden="true"></span>
<span class="user-text" id="userText">로그인 필요</span>
<span class="user-text" id="userText"></span>
</div>
<div class="sns-login" id="snsLogin" hidden>
<span class="sns-label">SNS 간편로그인</span>
<span class="sns-label">간편로그인</span>
<div class="sns-row">
<button class="sns-btn sns-naver" id="btnNaver" type="button" hidden aria-label="네이버로 로그인">
<span class="sns-letter">N</span>

View File

@@ -435,16 +435,18 @@
}
function updateAuthUi() {
// 항상 상태를 보여주고, 버튼은 상태에 따라 비활성/숨김 처리
// 로그인 전에는 사용자 배지를 숨김(요청: "로그인 설정 필요" 영역 제거)
if (!auth.user) {
el.user.hidden = true;
} else {
el.user.hidden = false;
const email = auth.user && auth.user.email ? String(auth.user.email) : "";
const name = auth.user && auth.user.name ? String(auth.user.name) : "";
let label = email ? email : name ? name : auth.user ? "로그인됨" : "로그인 필요";
if (auth.mode === "misconfigured") label = "로그인 설정 필요";
if (auth.mode === "sdk_missing") label = "로그인 SDK 로드 실패";
const label = email ? email : name ? name : "로그인됨";
el.userText.textContent = label;
if (auth.authorized) el.user.setAttribute("data-auth", "ok");
else el.user.removeAttribute("data-auth");
}
// 로그인 기능이 활성(enabled)일 때만 로그인/로그아웃 버튼을 의미 있게 노출
const enabled = auth.mode === "enabled";

View File

@@ -182,34 +182,34 @@ html[data-theme="light"] .topbar {
.sns-login {
display: inline-flex;
flex-direction: column;
flex-direction: row;
align-items: center;
gap: 10px;
padding: 10px 12px;
border-radius: 18px;
border: 1px solid var(--border);
background: rgba(255, 255, 255, 0.03);
padding: 0;
border-radius: 12px;
border: 0;
background: transparent;
}
.sns-row {
display: inline-flex;
align-items: center;
gap: 14px;
gap: 10px;
}
.sns-label {
font-size: 15px;
font-size: 13px;
font-weight: 800;
letter-spacing: -0.02em;
color: var(--text);
color: var(--muted2);
white-space: nowrap;
}
.sns-btn {
width: 56px;
height: 56px;
width: 36px;
height: 36px;
border-radius: 999px;
border: 2px solid rgba(0, 0, 0, 0.08);
border: 1px solid rgba(0, 0, 0, 0.10);
display: grid;
place-items: center;
cursor: pointer;
@@ -244,7 +244,7 @@ html[data-theme="light"] .topbar {
.sns-letter {
font-weight: 900;
font-size: 24px;
font-size: 16px;
color: #fff;
letter-spacing: -0.02em;
}
@@ -255,21 +255,21 @@ html[data-theme="light"] .topbar {
}
.sns-kakao-bubble {
width: 20px;
height: 16px;
width: 14px;
height: 11px;
background: rgba(0, 0, 0, 0.82);
border-radius: 8px;
border-radius: 6px;
position: relative;
}
.sns-kakao-bubble::after {
content: "";
position: absolute;
bottom: -5px;
left: 6px;
bottom: -4px;
left: 4px;
width: 0;
height: 0;
border: 5px solid transparent;
border: 4px solid transparent;
border-top-color: rgba(0, 0, 0, 0.82);
}
@@ -280,7 +280,7 @@ html[data-theme="light"] .topbar {
.sns-google-g {
font-weight: 900;
font-size: 24px;
font-size: 16px;
background: conic-gradient(from 210deg, #ea4335 0 25%, #fbbc05 25% 50%, #34a853 50% 75%, #4285f4 75% 100%);
-webkit-background-clip: text;
background-clip: text;