Tài khoản 놀아
한국어KO EnglishEN Tiếng ViệtVI
Mục lục

Tạo nút đăng nhập

Mã HTML và kiểu dáng cho nút đăng nhập đúng theo hướng dẫn thương hiệu.

Xem trước

Kết hợp 4 loại nền (light / dark / filled / icon) × 3 chiều cao (40 / 44 / 48px). Trong một dịch vụ, hãy chọn một chiều cao và dùng thống nhất.

light
dark
filled
icon

Sao chép mã nút

href của nút bắt buộc phải trỏ tới điểm cuối (endpoint) bắt đầu đăng nhập của riêng bạn, nơi máy chủ của bạn chuyển hướng (redirect) tới URL xác thực của Tài khoản 놀아 (/login/nolaa trong ví dụ). Hãy xem mục «URL yêu cầu xác thực» bên dưới để chuyển hướng người dùng từ điểm cuối đó.

Cách A. Liên kết tệp CSS

Đây là cách đơn giản nhất. Bạn có thể tải tệp về tự lưu trữ (host), hoặc tải trực tiếp bằng đường dẫn tuyệt đối như bên dưới.

<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>

Cách B. Dán toàn bộ CSS

Nếu muốn dùng hoàn toàn độc lập, không cần yêu cầu bên ngoài, hãy dán trực tiếp toàn bộ CSS vào trang của bạn.

<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>

URL yêu cầu xác thực

Từ điểm cuối bắt đầu đăng nhập, hãy chuyển hướng người dùng tới URL có dạng bên dưới. YOUR_CLIENT_ID / YOUR_REDIRECT_URI là giá trị khác nhau ở mỗi dịch vụ, còn state và code_challenge (PKCE, S256) phải được máy chủ tạo mới cho mỗi yêu cầu.

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

Quy cách kích thước

MụcGiá trị
Chiều cao40 / 44 / 48px — thống nhất một giá trị trong một dịch vụ
Bán kính góc8px
Đệm trái phải (padding)16px
Kích thước biểu tượng (mark)Cao 40 → 20px · 44 → 22px · 48 → 24px
Khoảng cách biểu tượng – chữ10px
Phông chữKế thừa (phông mặc định của trang chủ), weight 700, size 14px
Xuống dòngCấm (white-space: nowrap)

Những điều không được làm

  • Đổi chữ trên nút sang bất kỳ chữ nào ngoài 3 chữ đã quy định (놀아로 계속하기 / 놀아 계정으로 로그인 / Continue with Nolaa)
  • Thay biểu tượng (mark, logo) bằng icon hoặc hình ảnh khác
  • Đổi màu nền nút sang màu ngoài các màu thương hiệu quy định (light/dark/filled/icon)
  • Đặt nút này nhỏ hơn các nút đăng nhập bằng phương thức khác
  • Thu hẹp khoảng cách giữa biểu tượng và chữ xuống dưới 6px

Tải toàn bộ tài nguyên thương hiệu

Tệp ZIP chứa cả 3 tệp SVG biểu tượng, PNG, tệp CSS này và README.