로그인 버튼 만들기
브랜드 가이드라인에 맞는 로그인 버튼 마크업과 스타일을 안내합니다.
미리보기
배경 4종(light / dark / filled / icon) × 높이 3종(40 / 44 / 48px) 조합입니다. 서비스 안에서는 높이 하나만 골라 통일해서 쓰세요.
light
dark
filled
icon
버튼 코드 복사
버튼의 href는 반드시 여러분의 서버가 놀아 계정 인증 URL로 리다이렉트하는 자체 로그인 시작 엔드포인트(예시의 /login/nolaa)를 가리켜야 합니다. 아래 「인증 요청 URL」 절을 참고해 그 엔드포인트에서 사용자를 리다이렉트하세요.
방법 A. CSS 파일 링크
가장 간단한 방법입니다. 파일을 내려받아 직접 호스팅하거나, 아래처럼 절대경로로 바로 불러올 수 있습니다.
<link rel="stylesheet" href="https://account.nola.kr/brand/nolaa-button.css">
<a class="nolaa-btn nolaa-btn--light nolaa-btn--44" href="/login/nolaa">놀아로 계속하기</a>
방법 B. CSS 전체 붙여넣기
외부 요청 없이 완전히 독립적으로 쓰고 싶다면 CSS 전문을 페이지에 직접 붙여넣으세요.
<style>
/* ============================================================
* 놀아 계정 — 로그인 버튼 (Sign in with Nolaa) 독립 실행 CSS
* devplan12 차수6
*
* 사용법
* 1) 이 파일을 그대로 여러분의 사이트에 포함하세요: <link rel="stylesheet" href="nolaa-button.css">
* 2) <a class="nolaa-btn nolaa-btn--light nolaa-btn--44" href="...">놀아로 계속하기</a> 처럼
* 배경 클래스(--light/--dark/--filled/--icon) 1개 + 높이 클래스(--40/--44/--48) 1개를 함께 붙이세요.
* 3) 이 파일은 이 프로젝트의 CSS 변수(--brand-primary 등)에 의존하지 않습니다. 값은 모두 고정 HEX이며
* 임의로 바꾸면 안 됩니다. 자세한 규정은 /developers/brand, /developers/button 문서를 참고하세요.
* ============================================================ */
.nolaa-btn {
/* nolaa-mark.svg 를 인라인 data URI로 내장 — 외부 서버 요청 없이 항상 렌더됩니다. */
--nolaa-mark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Crect x='1.5' y='1.5' width='45' height='45' rx='11' fill='%23FFFFFF' stroke='%2315120F' stroke-width='2.8'/%3E%3Cg transform='translate(24 24) scale(.7) translate(-26.35 -23.75)'%3E%3Cpath d='M14.6 8.4c-2.3 0-3.9 1.8-3.9 4.2v19.6c0 5 3.7 8.6 8.9 8.6h16.1c2.3 0 3.9-1.5 3.9-3.7s-1.7-3.8-4-3.9l-15.1-.6c-1.4 0-2-.8-2-2.3V12.6c0-2.4-1.6-4.2-3.9-4.2z' fill='%2315120F'/%3E%3Crect x='32' y='6.6' width='10' height='10' rx='2.4' fill='%23D6342C'/%3E%3C/g%3E%3C/svg%3E");
box-sizing: border-box;
display: inline-flex;
align-items: center;
justify-content: center;
gap: 10px;
padding: 0 16px;
border-radius: 8px;
border: 1px solid transparent;
font-family: inherit;
font-weight: 700;
font-size: 14px;
line-height: 1;
white-space: nowrap;
text-decoration: none;
cursor: pointer;
-webkit-appearance: none;
appearance: none;
-webkit-font-smoothing: antialiased;
transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease, color .15s ease;
}
.nolaa-btn::before {
content: "";
flex: none;
display: inline-block;
background-image: var(--nolaa-mark);
background-repeat: no-repeat;
background-position: center;
background-size: contain;
}
/* 높이 3종 — 서비스 내에서는 하나만 골라 통일해서 쓰세요. 마크 크기는 높이에 비례합니다. */
.nolaa-btn--40 { height: 40px; }
.nolaa-btn--40::before { width: 20px; height: 20px; }
.nolaa-btn--44 { height: 44px; }
.nolaa-btn--44::before { width: 22px; height: 22px; }
.nolaa-btn--48 { height: 48px; }
.nolaa-btn--48::before { width: 24px; height: 24px; }
/* 배경 4종 */
.nolaa-btn--light {
background-color: #FFFFFF;
border-color: #DADDE3;
color: #15120F;
}
.nolaa-btn--light:hover { background-color: #F5F6F8; }
.nolaa-btn--light:active { background-color: #EBEDF1; }
.nolaa-btn--dark {
background-color: #20242C;
border-color: #333944;
color: #F2F4F7;
}
.nolaa-btn--dark:hover { background-color: #282D36; }
.nolaa-btn--dark:active { background-color: #171A20; }
.nolaa-btn--filled {
background-color: #D6342C;
border-color: transparent;
color: #FFFFFF;
}
.nolaa-btn--filled:hover { background-color: #B22A23; }
.nolaa-btn--filled:active { background-color: #8E211B; }
/* 아이콘 전용(정사각, 글자 없음) — 마크만 표시합니다. 마크 크기는 높이 클래스가 그대로 결정합니다. */
.nolaa-btn--icon {
background-color: transparent;
border-color: transparent;
padding: 0;
gap: 0;
}
.nolaa-btn--icon.nolaa-btn--40 { width: 40px; }
.nolaa-btn--icon.nolaa-btn--44 { width: 44px; }
.nolaa-btn--icon.nolaa-btn--48 { width: 48px; }
.nolaa-btn--icon:hover { background-color: rgba(21, 18, 15, .06); }
.nolaa-btn--icon:active { background-color: rgba(21, 18, 15, .12); }
/* 포커스 상태 — 키보드 사용자를 위한 필수 표시 */
.nolaa-btn:focus-visible {
outline: 2px solid #D6342C;
outline-offset: 2px;
}
@media (max-width:768px){
.doc-section table,.spec-table{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.doc-section table th,.doc-section table td,.spec-table th,.spec-table td{min-width:96px}
}
</style>
<a class="nolaa-btn nolaa-btn--light nolaa-btn--44" href="/login/nolaa">놀아로 계속하기</a>
인증 요청 URL
로그인 시작 엔드포인트에서 사용자를 아래 형식의 URL로 리다이렉트하세요. YOUR_CLIENT_ID / YOUR_REDIRECT_URI 는 서비스마다 다른 값이며, state와 code_challenge(PKCE, S256)는 매 요청마다 서버에서 새로 생성해야 합니다.
https://account.nola.kr/oauth/authorize?response_type=code&client_id=YOUR_CLIENT_ID&redirect_uri=YOUR_REDIRECT_URI&scope=profile.basic%20profile.avatar&state=RANDOM_STATE&code_challenge=CODE_CHALLENGE&code_challenge_method=S256
내 client_id / redirect_uri는 마이페이지에서 확인하세요 →
PKCE(state, code_challenge) 생성 방법을 포함한 전체 연동 흐름은 OAuth 가이드 →
치수 규격
| 항목 | 값 |
|---|---|
| 높이 | 40 / 44 / 48px — 서비스 안에서는 하나로 통일 |
| 모서리 반경 | 8px |
| 좌우 패딩 | 16px |
| 마크 크기 | 높이 40 → 20px · 44 → 22px · 48 → 24px |
| 마크·글자 간격 | 10px |
| 글꼴 | 상속(호스트 사이트 기본 글꼴), weight 700, size 14px |
| 줄바꿈 | 금지 (white-space: nowrap) |
하면 안 되는 것
- 버튼 문구를 정해진 3개(놀아로 계속하기 / 놀아 계정으로 로그인 / Continue with Nolaa) 외로 바꾸기
- 마크(로고)를 다른 아이콘이나 이미지로 교체하기
- 버튼 배경색을 브랜드 지정 색(light/dark/filled/icon) 외의 색으로 바꾸기
- 이 버튼을 다른 로그인 수단 버튼보다 작게 배치하기
- 마크와 글자 사이 간격을 6px 미만으로 좁히기
브랜드 애셋 전체 내려받기
마크 SVG 3종, PNG, 이 CSS 파일, README를 모두 담은 ZIP입니다.