Build the sign-in button
Markup and styles for a sign-in button that follows the brand guidelines.
Preview
Four backgrounds (light / dark / filled / icon) × three heights (40 / 44 / 48px). Pick one height and use it consistently within your service.
Copy the button code
The button's href must point to your own sign-in start endpoint, which redirects the user from your server to the 놀아 Account authorization URL (/login/nolaa in the example). See the “Authorization request URL” section below and redirect the user from that endpoint.
Option A. Link the CSS file
This is the simplest way. Download the file and host it yourself, or load it directly by absolute path as shown below.
<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">Continue with Nolaa</a>
Option B. Paste the full CSS
If you want to be fully self-contained with no external request, paste the whole CSS straight into your page.
<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">Continue with Nolaa</a>
Authorization request URL
From your sign-in start endpoint, redirect the user to a URL of the form below. YOUR_CLIENT_ID / YOUR_REDIRECT_URI are different for each service, and state and code_challenge (PKCE, S256) must be newly generated on your server for every request.
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
Find your client_id / redirect_uri in My account →
For the full integration flow, including how to generate the PKCE values (state, code_challenge), see the OAuth guide →
Dimensions
| Item | Value |
|---|---|
| Height | 40 / 44 / 48px — use one consistently within a service |
| Corner radius | 8px |
| Horizontal padding | 16px |
| Mark size | Height 40 → 20px · 44 → 22px · 48 → 24px |
| Gap between mark and text | 10px |
| Font | Inherited (the host site's default font), weight 700, size 14px |
| Line breaks | Not allowed (white-space: nowrap) |
Don'ts
- Changing the button text to anything other than the three approved labels (“Continue with Nolaa” in English, and the Korean labels “놀아로 계속하기” and “놀아 계정으로 로그인”)
- Replacing the mark (logo) with another icon or image
- Changing the button background to a color other than the brand-specified ones (light/dark/filled/icon)
- Placing this button smaller than your other sign-in buttons
- Narrowing the gap between the mark and the text to less than 6px
Download all brand assets
A ZIP containing the three mark SVGs, the PNG, this CSS file and a README.