2-Legged 가이드 삭제 완료
- 관련 HTML 제거 - 메뉴 및 경로 수정
This commit is contained in:
@@ -18429,566 +18429,6 @@ body.commission-print-page .btn-primary:hover {
|
||||
font-size: 18px;
|
||||
}
|
||||
}
|
||||
.oauth2-guide {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
padding: 20px;
|
||||
background-color: #FFFFFF;
|
||||
color: #1A1A2E;
|
||||
font-family: "원신한", "OneShinhan", "Spoqa Han Sans Neo", sans-serif;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 24px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.oauth2-guide__eyebrow {
|
||||
display: inline-block;
|
||||
font-size: 14px;
|
||||
font-weight: 700;
|
||||
color: #0049b4;
|
||||
letter-spacing: 1.2px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
.oauth2-guide__h2 {
|
||||
margin: 0 0 12px;
|
||||
font-size: 26px;
|
||||
font-weight: 700;
|
||||
line-height: 1.3;
|
||||
color: #1A1A2E;
|
||||
}
|
||||
.oauth2-guide__hero {
|
||||
position: relative;
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 320px;
|
||||
gap: 32px;
|
||||
padding: 60px 80px;
|
||||
border-radius: 20px;
|
||||
border: 1px solid #E2E8F0;
|
||||
background: linear-gradient(135deg, #EDF9FE 0%, #FFFFFF 100%);
|
||||
}
|
||||
.oauth2-guide__hero-eyebrow {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
padding: 6px 16px;
|
||||
border-radius: 14px;
|
||||
background: #FFFFFF;
|
||||
border: 1px solid #c3dfea;
|
||||
color: #0049b4;
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.oauth2-guide__hero-eyebrow-dot {
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
border-radius: 50%;
|
||||
background: #0049b4;
|
||||
}
|
||||
.oauth2-guide__hero-title {
|
||||
margin: 0 0 16px;
|
||||
font-size: 44px;
|
||||
font-weight: 800;
|
||||
color: #1A1A2E;
|
||||
letter-spacing: -0.5px;
|
||||
line-height: 1.2;
|
||||
}
|
||||
.oauth2-guide__hero-lead {
|
||||
margin: 0;
|
||||
font-size: 17px;
|
||||
font-weight: 500;
|
||||
color: #64748B;
|
||||
line-height: 1.6;
|
||||
}
|
||||
.oauth2-guide__hero-lead + .oauth2-guide__hero-lead {
|
||||
margin-top: 2px;
|
||||
}
|
||||
.oauth2-guide__hero-chips {
|
||||
display: flex;
|
||||
gap: 12px;
|
||||
margin-top: 24px;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.oauth2-guide__chip {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
padding: 6px 18px;
|
||||
border-radius: 15px;
|
||||
background: #FFFFFF;
|
||||
border: 1px solid #E2E8F0;
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
color: #1A1A2E;
|
||||
}
|
||||
.oauth2-guide__hero-illust {
|
||||
align-self: center;
|
||||
background: #FFFFFF;
|
||||
border: 1px solid #c3dfea;
|
||||
border-radius: 24px;
|
||||
overflow: hidden;
|
||||
}
|
||||
.oauth2-guide__hero-illust svg {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
.oauth2-guide__definition {
|
||||
display: grid;
|
||||
grid-template-columns: 220px 1fr;
|
||||
border: 1px solid #E2E8F0;
|
||||
border-radius: 16px;
|
||||
background: #FFFFFF;
|
||||
overflow: hidden;
|
||||
}
|
||||
.oauth2-guide__definition-icon {
|
||||
background: #F8FAFC;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 40px;
|
||||
}
|
||||
.oauth2-guide__definition-icon svg {
|
||||
width: 120px;
|
||||
height: 80px;
|
||||
}
|
||||
.oauth2-guide__definition-body {
|
||||
padding: 32px 40px;
|
||||
}
|
||||
.oauth2-guide__definition-body .oauth2-guide__eyebrow {
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
.oauth2-guide__definition-body p {
|
||||
margin: 0;
|
||||
font-size: 15px;
|
||||
font-weight: 500;
|
||||
color: #64748B;
|
||||
line-height: 1.7;
|
||||
}
|
||||
.oauth2-guide__definition-body p + p {
|
||||
margin-top: 2px;
|
||||
}
|
||||
.oauth2-guide__parties-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 24px;
|
||||
}
|
||||
.oauth2-guide__party-card {
|
||||
display: grid;
|
||||
grid-template-columns: 88px 1fr;
|
||||
gap: 16px;
|
||||
align-items: center;
|
||||
padding: 24px 32px;
|
||||
background: #FFFFFF;
|
||||
border: 1px solid #E2E8F0;
|
||||
border-radius: 14px;
|
||||
}
|
||||
.oauth2-guide__party-icon svg {
|
||||
display: block;
|
||||
width: 56px;
|
||||
height: 44px;
|
||||
}
|
||||
.oauth2-guide__party-title {
|
||||
margin: 0 0 8px;
|
||||
font-size: 18px;
|
||||
font-weight: 800;
|
||||
color: #1A1A2E;
|
||||
}
|
||||
.oauth2-guide__party-body p {
|
||||
margin: 0;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
color: #64748B;
|
||||
line-height: 1.6;
|
||||
}
|
||||
.oauth2-guide__party-body p + p {
|
||||
margin-top: 2px;
|
||||
}
|
||||
.oauth2-guide__grant-sub {
|
||||
margin: 0 0 20px;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
color: #64748B;
|
||||
}
|
||||
.oauth2-guide__grant-sub strong {
|
||||
color: #0049b4;
|
||||
font-weight: 700;
|
||||
}
|
||||
.oauth2-guide__grant-card {
|
||||
position: relative;
|
||||
padding: 24px 32px;
|
||||
border-radius: 14px;
|
||||
background: linear-gradient(90deg, #0049b4 0%, #1f6fd0 100%);
|
||||
color: #FFFFFF;
|
||||
display: grid;
|
||||
grid-template-columns: 1fr auto;
|
||||
grid-template-areas: "badge endpoint" "title endpoint" "desc endpoint";
|
||||
column-gap: 32px;
|
||||
row-gap: 8px;
|
||||
overflow: hidden;
|
||||
}
|
||||
.oauth2-guide__grant-card::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
inset: 0 auto 0 0;
|
||||
width: 6px;
|
||||
background: #00D4FF;
|
||||
}
|
||||
.oauth2-guide__grant-badge {
|
||||
grid-area: badge;
|
||||
align-self: start;
|
||||
justify-self: start;
|
||||
padding: 5px 14px;
|
||||
border-radius: 13px;
|
||||
background: #FFFFFF;
|
||||
color: #0049b4;
|
||||
font-size: 12px;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.5px;
|
||||
}
|
||||
.oauth2-guide__grant-title {
|
||||
grid-area: title;
|
||||
margin: 0;
|
||||
font-size: 22px;
|
||||
font-weight: 800;
|
||||
color: #FFFFFF;
|
||||
line-height: 1.3;
|
||||
}
|
||||
.oauth2-guide__grant-desc {
|
||||
grid-area: desc;
|
||||
margin: 0;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
color: #c3dfea;
|
||||
line-height: 1.6;
|
||||
}
|
||||
.oauth2-guide__grant-endpoint {
|
||||
grid-area: endpoint;
|
||||
align-self: center;
|
||||
padding: 14px 18px;
|
||||
background: #1A1A2E;
|
||||
border-radius: 10px;
|
||||
min-width: 320px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 6px;
|
||||
}
|
||||
.oauth2-guide__endpoint-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 12px;
|
||||
}
|
||||
.oauth2-guide__method {
|
||||
display: inline-block;
|
||||
padding: 3px 12px;
|
||||
border-radius: 4px;
|
||||
background: #0049b4;
|
||||
color: #FFFFFF;
|
||||
font-size: 11px;
|
||||
font-weight: 800;
|
||||
letter-spacing: 0.5px;
|
||||
}
|
||||
.oauth2-guide__path {
|
||||
font-family: "Fira Code", monospace;
|
||||
font-size: 13px;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
.oauth2-guide__endpoint-params {
|
||||
font-family: "Fira Code", monospace;
|
||||
font-size: 11px;
|
||||
color: #94A3B8;
|
||||
}
|
||||
.oauth2-guide__sequence-diagram {
|
||||
padding: 16px;
|
||||
background: #FFFFFF;
|
||||
border: 1px solid #E2E8F0;
|
||||
border-radius: 14px;
|
||||
}
|
||||
.oauth2-guide__sequence-diagram svg {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
.oauth2-guide__bearer-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 24px;
|
||||
}
|
||||
.oauth2-guide__code-block {
|
||||
position: relative;
|
||||
margin: 0;
|
||||
padding: 28px 24px 28px 32px;
|
||||
border-radius: 14px;
|
||||
background: #1A1A2E;
|
||||
color: #FFFFFF;
|
||||
font-family: "Fira Code", monospace;
|
||||
font-size: 14px;
|
||||
line-height: 1.7;
|
||||
overflow-x: auto;
|
||||
}
|
||||
.oauth2-guide__code-block::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
inset: 0 auto 0 0;
|
||||
width: 6px;
|
||||
background: #0049b4;
|
||||
border-radius: 14px 0 0 14px;
|
||||
}
|
||||
.oauth2-guide__code-comment {
|
||||
display: block;
|
||||
color: #94A3B8;
|
||||
font-size: 13px;
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
.oauth2-guide__code-line {
|
||||
display: block;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
.oauth2-guide__code-line--highlight {
|
||||
color: #00D4FF;
|
||||
}
|
||||
.oauth2-guide__lifecycle {
|
||||
padding: 24px 28px;
|
||||
background: #FFFFFF;
|
||||
border: 1px solid #E2E8F0;
|
||||
border-radius: 14px;
|
||||
}
|
||||
.oauth2-guide__lifecycle-title {
|
||||
margin: 0 0 16px;
|
||||
font-size: 14px;
|
||||
font-weight: 700;
|
||||
color: #1A1A2E;
|
||||
}
|
||||
.oauth2-guide__lifecycle-steps {
|
||||
list-style: none;
|
||||
margin: 0 0 14px;
|
||||
padding: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 14px;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.oauth2-guide__lifecycle-step {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
position: relative;
|
||||
}
|
||||
.oauth2-guide__lifecycle-step:not(:last-child)::after {
|
||||
content: "";
|
||||
display: inline-block;
|
||||
width: 28px;
|
||||
height: 0;
|
||||
border-top: 1.5px dashed #94A3B8;
|
||||
margin-left: 6px;
|
||||
}
|
||||
.oauth2-guide__lifecycle-num {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
border-radius: 50%;
|
||||
background: #0049b4;
|
||||
color: #FFFFFF;
|
||||
font-size: 13px;
|
||||
font-weight: 700;
|
||||
}
|
||||
.oauth2-guide__lifecycle-step--muted .oauth2-guide__lifecycle-num {
|
||||
background: #94A3B8;
|
||||
}
|
||||
.oauth2-guide__lifecycle-step--muted .oauth2-guide__lifecycle-num {
|
||||
background: #94A3B8;
|
||||
}
|
||||
.oauth2-guide__lifecycle-step--muted .oauth2-guide__lifecycle-label {
|
||||
color: #64748B;
|
||||
}
|
||||
.oauth2-guide__lifecycle-label {
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
color: #1A1A2E;
|
||||
}
|
||||
.oauth2-guide__lifecycle-desc {
|
||||
margin: 0;
|
||||
font-size: 13px;
|
||||
color: #64748B;
|
||||
line-height: 1.6;
|
||||
}
|
||||
.oauth2-guide__lifecycle-desc + .oauth2-guide__lifecycle-desc {
|
||||
margin-top: 2px;
|
||||
}
|
||||
.oauth2-guide__security-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr 1fr;
|
||||
gap: 20px;
|
||||
}
|
||||
.oauth2-guide__security-card {
|
||||
padding: 24px 28px;
|
||||
background: #FFFFFF;
|
||||
border: 1px solid #E2E8F0;
|
||||
border-radius: 14px;
|
||||
}
|
||||
.oauth2-guide__security-icon {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
border-radius: 50%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-bottom: 14px;
|
||||
}
|
||||
.oauth2-guide__security-icon svg {
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
}
|
||||
.oauth2-guide__security-icon--blue {
|
||||
background: #EDF9FE;
|
||||
}
|
||||
.oauth2-guide__security-icon--yellow {
|
||||
background: #FFF9E6;
|
||||
}
|
||||
.oauth2-guide__security-icon--green {
|
||||
background: #E8F8EE;
|
||||
}
|
||||
.oauth2-guide__security-title {
|
||||
margin: 0 0 8px;
|
||||
font-size: 15px;
|
||||
font-weight: 700;
|
||||
color: #1A1A2E;
|
||||
}
|
||||
.oauth2-guide__security-card p {
|
||||
margin: 0;
|
||||
font-size: 13px;
|
||||
font-weight: 500;
|
||||
color: #64748B;
|
||||
line-height: 1.6;
|
||||
}
|
||||
.oauth2-guide__security-card p + p {
|
||||
margin-top: 2px;
|
||||
}
|
||||
.oauth2-guide__cta {
|
||||
position: relative;
|
||||
display: block;
|
||||
padding: 36px 48px;
|
||||
border-radius: 20px;
|
||||
background: linear-gradient(90deg, #0049b4 0%, #1f6fd0 100%);
|
||||
color: #FFFFFF;
|
||||
text-decoration: none;
|
||||
overflow: hidden;
|
||||
transition: transform 0.2s ease, box-shadow 0.2s ease;
|
||||
}
|
||||
.oauth2-guide__cta:hover {
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 12px 28px rgba(0, 73, 180, 0.25);
|
||||
}
|
||||
.oauth2-guide__cta-body {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
.oauth2-guide__cta-eyebrow {
|
||||
display: inline-block;
|
||||
font-size: 13px;
|
||||
font-weight: 700;
|
||||
color: #c3dfea;
|
||||
letter-spacing: 1.2px;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
.oauth2-guide__cta-title {
|
||||
margin: 0 0 10px;
|
||||
font-size: 26px;
|
||||
font-weight: 800;
|
||||
color: #FFFFFF;
|
||||
line-height: 1.3;
|
||||
}
|
||||
.oauth2-guide__cta-desc {
|
||||
margin: 0 0 18px;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
color: #c3dfea;
|
||||
}
|
||||
.oauth2-guide__cta-button {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
padding: 10px 24px;
|
||||
border-radius: 19px;
|
||||
background: #FFFFFF;
|
||||
color: #0049b4;
|
||||
font-size: 14px;
|
||||
font-weight: 700;
|
||||
}
|
||||
.oauth2-guide__cta-deco {
|
||||
position: absolute;
|
||||
border-radius: 50%;
|
||||
background: rgba(255, 255, 255, 0.08);
|
||||
}
|
||||
.oauth2-guide__cta-deco--lg {
|
||||
width: 120px;
|
||||
height: 120px;
|
||||
right: 80px;
|
||||
bottom: 30px;
|
||||
}
|
||||
.oauth2-guide__cta-deco--sm {
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
right: 20px;
|
||||
bottom: -10px;
|
||||
background: rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
|
||||
@media (max-width: 1024px) {
|
||||
.oauth2-guide__hero {
|
||||
grid-template-columns: 1fr;
|
||||
padding: 40px;
|
||||
}
|
||||
.oauth2-guide__hero-illust {
|
||||
max-width: 280px;
|
||||
}
|
||||
.oauth2-guide__definition {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
.oauth2-guide__definition-icon {
|
||||
padding: 24px;
|
||||
}
|
||||
.oauth2-guide__bearer-grid, .oauth2-guide__parties-grid {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
.oauth2-guide__security-grid {
|
||||
grid-template-columns: 1fr 1fr;
|
||||
}
|
||||
.oauth2-guide__grant-card {
|
||||
grid-template-areas: "badge" "title" "desc" "endpoint";
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
.oauth2-guide__grant-endpoint {
|
||||
min-width: 0;
|
||||
}
|
||||
}
|
||||
@media (max-width: 640px) {
|
||||
.oauth2-guide {
|
||||
padding: 16px;
|
||||
gap: 16px;
|
||||
}
|
||||
.oauth2-guide__hero {
|
||||
padding: 28px 24px;
|
||||
}
|
||||
.oauth2-guide__hero-title {
|
||||
font-size: 32px;
|
||||
}
|
||||
.oauth2-guide__hero-lead {
|
||||
font-size: 15px;
|
||||
}
|
||||
.oauth2-guide__h2 {
|
||||
font-size: 22px;
|
||||
}
|
||||
.oauth2-guide__security-grid {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
.oauth2-guide__cta {
|
||||
padding: 28px 24px;
|
||||
}
|
||||
.oauth2-guide__cta-title {
|
||||
font-size: 22px;
|
||||
}
|
||||
}
|
||||
.oauth2-2legged {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
|
||||
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -660,617 +660,6 @@ $service-card-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgb
|
||||
}
|
||||
|
||||
|
||||
// =============================================================================
|
||||
// OAuth2 인증 가이드 (Figma 367:1054 — OAuth2 인증가이드 V2)
|
||||
// =============================================================================
|
||||
|
||||
$oguide-primary: #0049b4;
|
||||
$oguide-secondary: #c3dfea;
|
||||
$oguide-bg-soft: #EDF9FE;
|
||||
$oguide-bg-light: #F8FAFC;
|
||||
$oguide-text-dark: #1A1A2E;
|
||||
$oguide-text-gray: #64748B;
|
||||
$oguide-text-mute: #94A3B8;
|
||||
$oguide-border: #E2E8F0;
|
||||
$oguide-accent-cyan: #00D4FF;
|
||||
$oguide-accent-yellow: #FFD93D;
|
||||
$oguide-accent-green: #6BCF7F;
|
||||
|
||||
.oauth2-guide {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
padding: 20px;
|
||||
background-color: #FFFFFF;
|
||||
color: $oguide-text-dark;
|
||||
font-family: '원신한', 'OneShinhan', 'Spoqa Han Sans Neo', sans-serif;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 24px;
|
||||
box-sizing: border-box;
|
||||
|
||||
// -- common eyebrow / heading -----------------------------------------------
|
||||
&__eyebrow {
|
||||
display: inline-block;
|
||||
font-size: 14px;
|
||||
font-weight: 700;
|
||||
color: $oguide-primary;
|
||||
letter-spacing: 1.2px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
&__h2 {
|
||||
margin: 0 0 12px;
|
||||
font-size: 26px;
|
||||
font-weight: 700;
|
||||
line-height: 1.3;
|
||||
color: $oguide-text-dark;
|
||||
}
|
||||
|
||||
// -- Section 1: Hero --------------------------------------------------------
|
||||
&__hero {
|
||||
position: relative;
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 320px;
|
||||
gap: 32px;
|
||||
padding: 60px 80px;
|
||||
border-radius: 20px;
|
||||
border: 1px solid $oguide-border;
|
||||
background: linear-gradient(135deg, $oguide-bg-soft 0%, #FFFFFF 100%);
|
||||
}
|
||||
|
||||
&__hero-eyebrow {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
padding: 6px 16px;
|
||||
border-radius: 14px;
|
||||
background: #FFFFFF;
|
||||
border: 1px solid $oguide-secondary;
|
||||
color: $oguide-primary;
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
&__hero-eyebrow-dot {
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
border-radius: 50%;
|
||||
background: $oguide-primary;
|
||||
}
|
||||
|
||||
&__hero-title {
|
||||
margin: 0 0 16px;
|
||||
font-size: 44px;
|
||||
font-weight: 800;
|
||||
color: $oguide-text-dark;
|
||||
letter-spacing: -0.5px;
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
&__hero-lead {
|
||||
margin: 0;
|
||||
font-size: 17px;
|
||||
font-weight: 500;
|
||||
color: $oguide-text-gray;
|
||||
line-height: 1.6;
|
||||
|
||||
& + & { margin-top: 2px; }
|
||||
}
|
||||
|
||||
&__hero-chips {
|
||||
display: flex;
|
||||
gap: 12px;
|
||||
margin-top: 24px;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
&__chip {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
padding: 6px 18px;
|
||||
border-radius: 15px;
|
||||
background: #FFFFFF;
|
||||
border: 1px solid $oguide-border;
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
color: $oguide-text-dark;
|
||||
}
|
||||
|
||||
&__hero-illust {
|
||||
align-self: center;
|
||||
background: #FFFFFF;
|
||||
border: 1px solid $oguide-secondary;
|
||||
border-radius: 24px;
|
||||
overflow: hidden;
|
||||
|
||||
svg {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
}
|
||||
|
||||
// -- Section 2: Definition --------------------------------------------------
|
||||
&__definition {
|
||||
display: grid;
|
||||
grid-template-columns: 220px 1fr;
|
||||
border: 1px solid $oguide-border;
|
||||
border-radius: 16px;
|
||||
background: #FFFFFF;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
&__definition-icon {
|
||||
background: $oguide-bg-light;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 40px;
|
||||
|
||||
svg { width: 120px; height: 80px; }
|
||||
}
|
||||
|
||||
&__definition-body {
|
||||
padding: 32px 40px;
|
||||
|
||||
.oauth2-guide__eyebrow { margin-bottom: 6px; }
|
||||
|
||||
p {
|
||||
margin: 0;
|
||||
font-size: 15px;
|
||||
font-weight: 500;
|
||||
color: $oguide-text-gray;
|
||||
line-height: 1.7;
|
||||
|
||||
& + p { margin-top: 2px; }
|
||||
}
|
||||
}
|
||||
|
||||
// -- Section 3: Core Parties ------------------------------------------------
|
||||
&__parties-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 24px;
|
||||
}
|
||||
|
||||
&__party-card {
|
||||
display: grid;
|
||||
grid-template-columns: 88px 1fr;
|
||||
gap: 16px;
|
||||
align-items: center;
|
||||
padding: 24px 32px;
|
||||
background: #FFFFFF;
|
||||
border: 1px solid $oguide-border;
|
||||
border-radius: 14px;
|
||||
}
|
||||
|
||||
&__party-icon svg {
|
||||
display: block;
|
||||
width: 56px;
|
||||
height: 44px;
|
||||
}
|
||||
|
||||
&__party-title {
|
||||
margin: 0 0 8px;
|
||||
font-size: 18px;
|
||||
font-weight: 800;
|
||||
color: $oguide-text-dark;
|
||||
}
|
||||
|
||||
&__party-body p {
|
||||
margin: 0;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
color: $oguide-text-gray;
|
||||
line-height: 1.6;
|
||||
|
||||
& + p { margin-top: 2px; }
|
||||
}
|
||||
|
||||
// -- Section 4: Grant Type --------------------------------------------------
|
||||
&__grant-sub {
|
||||
margin: 0 0 20px;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
color: $oguide-text-gray;
|
||||
|
||||
strong {
|
||||
color: $oguide-primary;
|
||||
font-weight: 700;
|
||||
}
|
||||
}
|
||||
|
||||
&__grant-card {
|
||||
position: relative;
|
||||
padding: 24px 32px;
|
||||
border-radius: 14px;
|
||||
background: linear-gradient(90deg, $oguide-primary 0%, #1f6fd0 100%);
|
||||
color: #FFFFFF;
|
||||
display: grid;
|
||||
grid-template-columns: 1fr auto;
|
||||
grid-template-areas:
|
||||
"badge endpoint"
|
||||
"title endpoint"
|
||||
"desc endpoint";
|
||||
column-gap: 32px;
|
||||
row-gap: 8px;
|
||||
overflow: hidden;
|
||||
|
||||
&::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
inset: 0 auto 0 0;
|
||||
width: 6px;
|
||||
background: $oguide-accent-cyan;
|
||||
}
|
||||
}
|
||||
|
||||
&__grant-badge {
|
||||
grid-area: badge;
|
||||
align-self: start;
|
||||
justify-self: start;
|
||||
padding: 5px 14px;
|
||||
border-radius: 13px;
|
||||
background: #FFFFFF;
|
||||
color: $oguide-primary;
|
||||
font-size: 12px;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.5px;
|
||||
}
|
||||
|
||||
&__grant-title {
|
||||
grid-area: title;
|
||||
margin: 0;
|
||||
font-size: 22px;
|
||||
font-weight: 800;
|
||||
color: #FFFFFF;
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
&__grant-desc {
|
||||
grid-area: desc;
|
||||
margin: 0;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
color: $oguide-secondary;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
&__grant-endpoint {
|
||||
grid-area: endpoint;
|
||||
align-self: center;
|
||||
padding: 14px 18px;
|
||||
background: $oguide-text-dark;
|
||||
border-radius: 10px;
|
||||
min-width: 320px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 6px;
|
||||
}
|
||||
|
||||
&__endpoint-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
&__method {
|
||||
display: inline-block;
|
||||
padding: 3px 12px;
|
||||
border-radius: 4px;
|
||||
background: $oguide-primary;
|
||||
color: #FFFFFF;
|
||||
font-size: 11px;
|
||||
font-weight: 800;
|
||||
letter-spacing: 0.5px;
|
||||
}
|
||||
|
||||
&__path {
|
||||
font-family: 'Fira Code', monospace;
|
||||
font-size: 13px;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
|
||||
&__endpoint-params {
|
||||
font-family: 'Fira Code', monospace;
|
||||
font-size: 11px;
|
||||
color: $oguide-text-mute;
|
||||
}
|
||||
|
||||
// -- Section 5: Sequence Diagram --------------------------------------------
|
||||
&__sequence-diagram {
|
||||
padding: 16px;
|
||||
background: #FFFFFF;
|
||||
border: 1px solid $oguide-border;
|
||||
border-radius: 14px;
|
||||
|
||||
svg {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
}
|
||||
|
||||
// -- Section 6: Bearer ------------------------------------------------------
|
||||
&__bearer-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 24px;
|
||||
}
|
||||
|
||||
&__code-block {
|
||||
position: relative;
|
||||
margin: 0;
|
||||
padding: 28px 24px 28px 32px;
|
||||
border-radius: 14px;
|
||||
background: $oguide-text-dark;
|
||||
color: #FFFFFF;
|
||||
font-family: 'Fira Code', monospace;
|
||||
font-size: 14px;
|
||||
line-height: 1.7;
|
||||
overflow-x: auto;
|
||||
|
||||
&::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
inset: 0 auto 0 0;
|
||||
width: 6px;
|
||||
background: $oguide-primary;
|
||||
border-radius: 14px 0 0 14px;
|
||||
}
|
||||
}
|
||||
|
||||
&__code-comment {
|
||||
display: block;
|
||||
color: $oguide-text-mute;
|
||||
font-size: 13px;
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
|
||||
&__code-line {
|
||||
display: block;
|
||||
color: #FFFFFF;
|
||||
|
||||
&--highlight { color: $oguide-accent-cyan; }
|
||||
}
|
||||
|
||||
&__lifecycle {
|
||||
padding: 24px 28px;
|
||||
background: #FFFFFF;
|
||||
border: 1px solid $oguide-border;
|
||||
border-radius: 14px;
|
||||
}
|
||||
|
||||
&__lifecycle-title {
|
||||
margin: 0 0 16px;
|
||||
font-size: 14px;
|
||||
font-weight: 700;
|
||||
color: $oguide-text-dark;
|
||||
}
|
||||
|
||||
&__lifecycle-steps {
|
||||
list-style: none;
|
||||
margin: 0 0 14px;
|
||||
padding: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 14px;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
&__lifecycle-step {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
position: relative;
|
||||
|
||||
&:not(:last-child)::after {
|
||||
content: "";
|
||||
display: inline-block;
|
||||
width: 28px;
|
||||
height: 0;
|
||||
border-top: 1.5px dashed $oguide-text-mute;
|
||||
margin-left: 6px;
|
||||
}
|
||||
}
|
||||
|
||||
&__lifecycle-num {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
border-radius: 50%;
|
||||
background: $oguide-primary;
|
||||
color: #FFFFFF;
|
||||
font-size: 13px;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
&__lifecycle-step--muted &__lifecycle-num { background: $oguide-text-mute; }
|
||||
// ↑ doesn't work in nesting; explicit modifier below:
|
||||
&__lifecycle-step--muted .oauth2-guide__lifecycle-num { background: $oguide-text-mute; }
|
||||
&__lifecycle-step--muted .oauth2-guide__lifecycle-label { color: $oguide-text-gray; }
|
||||
|
||||
&__lifecycle-label {
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
color: $oguide-text-dark;
|
||||
}
|
||||
|
||||
&__lifecycle-desc {
|
||||
margin: 0;
|
||||
font-size: 13px;
|
||||
color: $oguide-text-gray;
|
||||
line-height: 1.6;
|
||||
|
||||
& + & { margin-top: 2px; }
|
||||
}
|
||||
|
||||
// -- Section 7: Security ----------------------------------------------------
|
||||
&__security-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr 1fr;
|
||||
gap: 20px;
|
||||
}
|
||||
|
||||
&__security-card {
|
||||
padding: 24px 28px;
|
||||
background: #FFFFFF;
|
||||
border: 1px solid $oguide-border;
|
||||
border-radius: 14px;
|
||||
}
|
||||
|
||||
&__security-icon {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
border-radius: 50%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-bottom: 14px;
|
||||
|
||||
svg { width: 28px; height: 28px; }
|
||||
|
||||
&--blue { background: $oguide-bg-soft; }
|
||||
&--yellow { background: #FFF9E6; }
|
||||
&--green { background: #E8F8EE; }
|
||||
}
|
||||
|
||||
&__security-title {
|
||||
margin: 0 0 8px;
|
||||
font-size: 15px;
|
||||
font-weight: 700;
|
||||
color: $oguide-text-dark;
|
||||
}
|
||||
|
||||
&__security-card p {
|
||||
margin: 0;
|
||||
font-size: 13px;
|
||||
font-weight: 500;
|
||||
color: $oguide-text-gray;
|
||||
line-height: 1.6;
|
||||
|
||||
& + p { margin-top: 2px; }
|
||||
}
|
||||
|
||||
// -- Section 8: CTA ---------------------------------------------------------
|
||||
&__cta {
|
||||
position: relative;
|
||||
display: block;
|
||||
padding: 36px 48px;
|
||||
border-radius: 20px;
|
||||
background: linear-gradient(90deg, $oguide-primary 0%, #1f6fd0 100%);
|
||||
color: #FFFFFF;
|
||||
text-decoration: none;
|
||||
overflow: hidden;
|
||||
transition: transform 0.2s ease, box-shadow 0.2s ease;
|
||||
|
||||
&:hover {
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 12px 28px rgba(0, 73, 180, 0.25);
|
||||
}
|
||||
}
|
||||
|
||||
&__cta-body { position: relative; z-index: 1; }
|
||||
|
||||
&__cta-eyebrow {
|
||||
display: inline-block;
|
||||
font-size: 13px;
|
||||
font-weight: 700;
|
||||
color: $oguide-secondary;
|
||||
letter-spacing: 1.2px;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
&__cta-title {
|
||||
margin: 0 0 10px;
|
||||
font-size: 26px;
|
||||
font-weight: 800;
|
||||
color: #FFFFFF;
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
&__cta-desc {
|
||||
margin: 0 0 18px;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
color: $oguide-secondary;
|
||||
}
|
||||
|
||||
&__cta-button {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
padding: 10px 24px;
|
||||
border-radius: 19px;
|
||||
background: #FFFFFF;
|
||||
color: $oguide-primary;
|
||||
font-size: 14px;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
&__cta-deco {
|
||||
position: absolute;
|
||||
border-radius: 50%;
|
||||
background: rgba(255, 255, 255, 0.08);
|
||||
|
||||
&--lg {
|
||||
width: 120px;
|
||||
height: 120px;
|
||||
right: 80px;
|
||||
bottom: 30px;
|
||||
}
|
||||
|
||||
&--sm {
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
right: 20px;
|
||||
bottom: -10px;
|
||||
background: rgba(255, 255, 255, 0.10);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1024px) {
|
||||
.oauth2-guide {
|
||||
&__hero {
|
||||
grid-template-columns: 1fr;
|
||||
padding: 40px;
|
||||
}
|
||||
&__hero-illust { max-width: 280px; }
|
||||
&__definition { grid-template-columns: 1fr; }
|
||||
&__definition-icon { padding: 24px; }
|
||||
&__bearer-grid,
|
||||
&__parties-grid { grid-template-columns: 1fr; }
|
||||
&__security-grid { grid-template-columns: 1fr 1fr; }
|
||||
&__grant-card {
|
||||
grid-template-areas:
|
||||
"badge"
|
||||
"title"
|
||||
"desc"
|
||||
"endpoint";
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
&__grant-endpoint { min-width: 0; }
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 640px) {
|
||||
.oauth2-guide {
|
||||
padding: 16px;
|
||||
gap: 16px;
|
||||
|
||||
&__hero { padding: 28px 24px; }
|
||||
&__hero-title { font-size: 32px; }
|
||||
&__hero-lead { font-size: 15px; }
|
||||
&__h2 { font-size: 22px; }
|
||||
&__security-grid { grid-template-columns: 1fr; }
|
||||
&__cta { padding: 28px 24px; }
|
||||
&__cta-title { font-size: 22px; }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// =============================================================================
|
||||
// OAuth2 2-Legged 구현 가이드 (Figma 367:1564 - OAuth2 2-Legged 가이드 V3)
|
||||
|
||||
Reference in New Issue
Block a user