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:
@@ -72,10 +72,10 @@
|
|||||||
</button>
|
</button>
|
||||||
<div class="user" id="user" hidden>
|
<div class="user" id="user" hidden>
|
||||||
<span class="user-dot" aria-hidden="true"></span>
|
<span class="user-dot" aria-hidden="true"></span>
|
||||||
<span class="user-text" id="userText">로그인 필요</span>
|
<span class="user-text" id="userText"></span>
|
||||||
</div>
|
</div>
|
||||||
<div class="sns-login" id="snsLogin" hidden>
|
<div class="sns-login" id="snsLogin" hidden>
|
||||||
<span class="sns-label">SNS 간편로그인</span>
|
<span class="sns-label">간편로그인</span>
|
||||||
<div class="sns-row">
|
<div class="sns-row">
|
||||||
<button class="sns-btn sns-naver" id="btnNaver" type="button" hidden aria-label="네이버로 로그인">
|
<button class="sns-btn sns-naver" id="btnNaver" type="button" hidden aria-label="네이버로 로그인">
|
||||||
<span class="sns-letter">N</span>
|
<span class="sns-letter">N</span>
|
||||||
|
|||||||
10
script.js
10
script.js
@@ -435,16 +435,18 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function updateAuthUi() {
|
function updateAuthUi() {
|
||||||
// 항상 상태를 보여주고, 버튼은 상태에 따라 비활성/숨김 처리
|
// 로그인 전에는 사용자 배지를 숨김(요청: "로그인 설정 필요" 영역 제거)
|
||||||
|
if (!auth.user) {
|
||||||
|
el.user.hidden = true;
|
||||||
|
} else {
|
||||||
el.user.hidden = false;
|
el.user.hidden = false;
|
||||||
const email = auth.user && auth.user.email ? String(auth.user.email) : "";
|
const email = auth.user && auth.user.email ? String(auth.user.email) : "";
|
||||||
const name = auth.user && auth.user.name ? String(auth.user.name) : "";
|
const name = auth.user && auth.user.name ? String(auth.user.name) : "";
|
||||||
let label = email ? email : name ? name : auth.user ? "로그인됨" : "로그인 필요";
|
const label = email ? email : name ? name : "로그인됨";
|
||||||
if (auth.mode === "misconfigured") label = "로그인 설정 필요";
|
|
||||||
if (auth.mode === "sdk_missing") label = "로그인 SDK 로드 실패";
|
|
||||||
el.userText.textContent = label;
|
el.userText.textContent = label;
|
||||||
if (auth.authorized) el.user.setAttribute("data-auth", "ok");
|
if (auth.authorized) el.user.setAttribute("data-auth", "ok");
|
||||||
else el.user.removeAttribute("data-auth");
|
else el.user.removeAttribute("data-auth");
|
||||||
|
}
|
||||||
|
|
||||||
// 로그인 기능이 활성(enabled)일 때만 로그인/로그아웃 버튼을 의미 있게 노출
|
// 로그인 기능이 활성(enabled)일 때만 로그인/로그아웃 버튼을 의미 있게 노출
|
||||||
const enabled = auth.mode === "enabled";
|
const enabled = auth.mode === "enabled";
|
||||||
|
|||||||
38
styles.css
38
styles.css
@@ -182,34 +182,34 @@ html[data-theme="light"] .topbar {
|
|||||||
|
|
||||||
.sns-login {
|
.sns-login {
|
||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
flex-direction: column;
|
flex-direction: row;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 10px;
|
gap: 10px;
|
||||||
padding: 10px 12px;
|
padding: 0;
|
||||||
border-radius: 18px;
|
border-radius: 12px;
|
||||||
border: 1px solid var(--border);
|
border: 0;
|
||||||
background: rgba(255, 255, 255, 0.03);
|
background: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sns-row {
|
.sns-row {
|
||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 14px;
|
gap: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sns-label {
|
.sns-label {
|
||||||
font-size: 15px;
|
font-size: 13px;
|
||||||
font-weight: 800;
|
font-weight: 800;
|
||||||
letter-spacing: -0.02em;
|
letter-spacing: -0.02em;
|
||||||
color: var(--text);
|
color: var(--muted2);
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sns-btn {
|
.sns-btn {
|
||||||
width: 56px;
|
width: 36px;
|
||||||
height: 56px;
|
height: 36px;
|
||||||
border-radius: 999px;
|
border-radius: 999px;
|
||||||
border: 2px solid rgba(0, 0, 0, 0.08);
|
border: 1px solid rgba(0, 0, 0, 0.10);
|
||||||
display: grid;
|
display: grid;
|
||||||
place-items: center;
|
place-items: center;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
@@ -244,7 +244,7 @@ html[data-theme="light"] .topbar {
|
|||||||
|
|
||||||
.sns-letter {
|
.sns-letter {
|
||||||
font-weight: 900;
|
font-weight: 900;
|
||||||
font-size: 24px;
|
font-size: 16px;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
letter-spacing: -0.02em;
|
letter-spacing: -0.02em;
|
||||||
}
|
}
|
||||||
@@ -255,21 +255,21 @@ html[data-theme="light"] .topbar {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.sns-kakao-bubble {
|
.sns-kakao-bubble {
|
||||||
width: 20px;
|
width: 14px;
|
||||||
height: 16px;
|
height: 11px;
|
||||||
background: rgba(0, 0, 0, 0.82);
|
background: rgba(0, 0, 0, 0.82);
|
||||||
border-radius: 8px;
|
border-radius: 6px;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sns-kakao-bubble::after {
|
.sns-kakao-bubble::after {
|
||||||
content: "";
|
content: "";
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: -5px;
|
bottom: -4px;
|
||||||
left: 6px;
|
left: 4px;
|
||||||
width: 0;
|
width: 0;
|
||||||
height: 0;
|
height: 0;
|
||||||
border: 5px solid transparent;
|
border: 4px solid transparent;
|
||||||
border-top-color: rgba(0, 0, 0, 0.82);
|
border-top-color: rgba(0, 0, 0, 0.82);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -280,7 +280,7 @@ html[data-theme="light"] .topbar {
|
|||||||
|
|
||||||
.sns-google-g {
|
.sns-google-g {
|
||||||
font-weight: 900;
|
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%);
|
background: conic-gradient(from 210deg, #ea4335 0 25%, #fbbc05 25% 50%, #34a853 50% 75%, #4285f4 75% 100%);
|
||||||
-webkit-background-clip: text;
|
-webkit-background-clip: text;
|
||||||
background-clip: text;
|
background-clip: text;
|
||||||
|
|||||||
Reference in New Issue
Block a user