Design Specification — NAVER CLOUD PLATFORM 네이버 클라우드 플랫폼
| Field | Value |
| Site / Project | https://www.ncloud.com/ |
| Analyzed on | 2026-11-01 |
| Analysis mode | Automated code extraction (no AI) |
Overview
This design system was extracted programmatically from the source page. It is built on a light canvas (#FFFFFF), ink text (#000000), a vivid accent (#14ADEA). All type is set in icon-portal!important. Detected font weights: 400, 500, 600, 700. Detected style signatures: rounded / pill-heavy.
Logo asset(s): https://xv-ncloud.pstatic.net/images/customerCase/seoul_fire_logo_hs_1781569413778.png · https://xv-ncloud.pstatic.net/images/customerCase/lg_logo_new_1734080933196.png
Color System
Detected palette (by frequency)
| Hex | RGB | HSL | Count |
#000000 | 0, 0, 0 | 0° 0% 0% | 90 |
#FFFFFF | 255, 255, 255 | 0° 0% 100% | 83 |
#117CE9 | 17, 124, 233 | 210° 86% 49% | 64 |
#F6F7F8 | 246, 247, 248 | 210° 13% 97% | 59 |
#222222 | 34, 34, 34 | 0° 0% 13% | 12 |
#DADADA | 218, 218, 218 | 0° 0% 85% | 11 |
#707070 | 112, 112, 112 | 0° 0% 44% | 9 |
#666666 | 102, 102, 102 | 0° 0% 40% | 3 |
#AAAAAA | 170, 170, 170 | 0° 0% 67% | 3 |
#14ADEA | 20, 173, 234 | 197° 84% 50% | 2 |
#0F6DCD | 15, 109, 205 | 210° 86% 43% | 2 |
#E2E2E2 | 226, 226, 226 | 0° 0% 89% | 2 |
#93C5FD | 147, 197, 253 | 212° 96% 78% | 1 |
#ECECEC | 236, 236, 236 | 0° 0% 93% | 1 |
#F0F0F0 | 240, 240, 240 | 0° 0% 94% | 1 |
#888888 | 136, 136, 136 | 0° 0% 53% | 1 |
#DBDBDB | 219, 219, 219 | 0° 0% 86% | 1 |
#DDE6EA | 221, 230, 234 | 198° 24% 89% | 1 |
#00E4B4 | 0, 228, 180 | 167° 100% 45% | 1 |
#1D80D7 | 29, 128, 215 | 208° 76% 48% | 1 |
Assigned roles
Roles are taken from the page's own semantic CSS custom properties when present, otherwise inferred from usage frequency + luminance/saturation.
| Token | Hex | RGB | HSL |
--color-primary | #117CE9 | 17, 124, 233 | 210° 86% 49% |
--color-accent | #14ADEA | 20, 173, 234 | 197° 84% 50% |
--color-background | #FFFFFF | 255, 255, 255 | 0° 0% 100% |
--color-surface | #F6F7F8 | 246, 247, 248 | 210° 13% 97% |
--color-text-primary | #000000 | 0, 0, 0 | 0° 0% 0% |
--color-secondary | #000000 | 0, 0, 0 | 0° 0% 0% |
--color-text-secondary | #DADADA | 218, 218, 218 | 0° 0% 85% |
--color-border | #707070 | 112, 112, 112 | 0° 0% 44% |
--color-on-primary | #FFFFFF | 255, 255, 255 | 0° 0% 100% |
--color-on-secondary | #FFFFFF | 255, 255, 255 | 0° 0% 100% |
--color-on-accent | #FFFFFF | 255, 255, 255 | 0° 0% 100% |
Surface ramp (derived from detected light neutrals)
| Token | Hex |
--color-surface-container-lowest | #FFFFFF |
--color-surface-container-low | #F6F7F8 |
--color-surface-container | #F0F0F0 |
--color-surface-container-high | #ECECEC |
--color-surface-container-highest | #DDE6EA |
Gradients
linear-gradient(44deg,#00e4b4,#1d80d7)
linear-gradient(225deg,#00e4cc,#2ea3d4 39% 0,#4680d8 61%,#753fe0)
Typography
Primary typeface: icon-portal!important — stack: icon-portal!important
Font stacks (most used first)
sans-serif
icon-portal!important
Calibre,sans-serif
'icon-portal'
'icon-portal' !important
'swiper-icons'
"cms-icon"
icomoon!important
icomoon
icon-portal
Derived type scale
| Token | Size |
| display | 50px |
| headline-lg | 42px |
| headline-md | 28px |
| title-lg | 20px |
| body-lg | 18px |
| body-md | 16px |
| label-md | 14px |
| label-sm | 12px |
Font sizes (by frequency)
| Size | Count |
| 1.5625rem | 29 |
| .875rem | 11 |
| 1.25rem | 10 |
| 1rem | 9 |
| 1.125rem | 6 |
| 2.625rem | 5 |
| 12px | 5 |
| 2.25rem | 4 |
| 16px | 3 |
| 14px | 3 |
| 13px | 2 |
| 15px | 2 |
| 50px | 2 |
| .75rem | 2 |
| 1.5em | 1 |
| 1.75rem | 1 |
| 28px | 1 |
| 20px | 1 |
| .9375rem | 1 |
| .8125rem | 1 |
Weights in use: 400, 500, 600, 700
Line heights (by frequency)
| Value | Count |
| 1.5 | 35 |
| 30px | 31 |
| 1 | 9 |
| 1.2 | 5 |
| 1.75 | 4 |
| 24px | 3 |
| .6667 | 2 |
| 28px | 2 |
| 18px | 2 |
| 20px | 1 |
Letter spacing (by frequency)
| Value | Count |
| -.42px | 11 |
| -.6px | 10 |
| -.48px | 8 |
| -.54px | 6 |
| -1.26px | 5 |
| -1.08px | 4 |
| -.5px | 2 |
| -.36px | 2 |
Spacing
Derived spacing scale
| Token | Value |
| xs | 4px |
| sm | 8px |
| md | 20px |
| lg | 40px |
| xl | 60px |
Raw values (by frequency)
| Value | Count |
| 70px | 58 |
| 40px | 34 |
| 80px | 29 |
| 100px | 8 |
| 30px | 5 |
| 25px | 4 |
| 71px | 4 |
| 46px | 4 |
| 10px | 2 |
| 20px | 2 |
| 8px | 1 |
| 60px | 1 |
| 50px | 1 |
| 76px | 1 |
| 12px | 1 |
| 4px | 1 |
Borders & Radius
Derived radius tokens
| Token | Value |
| sm | 2px |
| lg | 20px |
| pill | 50% |
Raw values (resolved, by frequency)
| Radius | Count |
20px | 31 |
2px | 5 |
50% | 3 |
6px | 3 |
0 | 2 |
16px | 1 |
Shadows
Derived elevation
| Token | Value |
| md | 0 1px 7px #00000017 |
All detected shadows
Animation & Motion
Transitions
all .3s
all .2s ease-in-out
opacity .3s
all .2s
Easing curves
var(--swiper-wrapper-transition-timing-function,initial)
Keyframes
@keyframes circleMove-8d7775fc { 0%{transform:rotate(0)}to{transform:rotate(359deg)} }
@keyframes fadeindown-be44c5e9 { 0%{opacity:0;transform:translateY(-5%)}to{opacity:1;transform:none} }
@keyframes fadeindownMobile-be44c5e9 { 0%{opacity:0;transform:translateY(10%)}to{opacity:1;transform:none} }
@keyframes fadein-be44c5e9 { 0%{opacity:0}to{opacity:1} }
@keyframes fadeindown-6b8ec58a { 0%{opacity:0;transform:translateY(-5%)}to{opacity:1;transform:none} }
@keyframes fadeindownMobile-6b8ec58a { 0%{opacity:0;transform:translateY(10%)}to{opacity:1;transform:none} }
@keyframes fadein-6b8ec58a { 0%{opacity:0}to{opacity:1} }
@keyframes fadeindown-d42f3b58 { 0%{opacity:0;transform:translateY(-5%)}to{opacity:1;transform:none} }
@keyframes fadeindownMobile-d42f3b58 { 0%{opacity:0;transform:translateY(10%)}to{opacity:1;transform:none} }
@keyframes fadein-d42f3b58 { 0%{opacity:0}to{opacity:1} }
@keyframes fadeindown-81360e43 { 0%{opacity:0;transform:translateY(-5%)}to{opacity:1;transform:none} }
@keyframes fadeindownMobile-81360e43 { 0%{opacity:0;transform:translateY(10%)}to{opacity:1;transform:none} }
@keyframes fadein-81360e43 { 0%{opacity:0}to{opacity:1} }
@keyframes fadeindown-afc4d136 { 0%{opacity:0;transform:translateY(-5%)}to{opacity:1;transform:none} }
@keyframes fadeindownMobile-afc4d136 { 0%{opacity:0;transform:translateY(10%)}to{opacity:1;transform:none} }
@keyframes fadein-afc4d136 { 0%{opacity:0}to{opacity:1} }
@keyframes fadeindown-ac49cd62 { 0%{opacity:0;transform:translateY(-5%)}to{opacity:1;transform:none} }
@keyframes fadeindownMobile-ac49cd62 { 0%{opacity:0;transform:translateY(10%)}to{opacity:1;transform:none} }
Animations
.2s ease-in-out fadeindownMobile-be44c5e9
.2s ease-in-out fadeindown-be44c5e9
.2s ease-in-out fadeindownMobile-6b8ec58a
.2s ease-in-out fadeindown-6b8ec58a
.2s ease-in-out fadeindownMobile-d42f3b58
.2s ease-in-out fadeindown-d42f3b58
.2s ease-in-out fadeindownMobile-81360e43
.2s ease-in-out fadeindown-81360e43
.2s ease-in-out fadeindownMobile-afc4d136
.2s ease-in-out fadeindown-afc4d136
CTA labels found on page
- Contact Us
- Console
- Languages
- Learn More
- See All Service List
- See All Solution List
Source Design Tokens (CSS custom properties)
:root {
--un-rotate: 0;
--un-rotate-x: 0;
--un-rotate-y: 0;
--un-rotate-z: 0;
--un-scale-x: 1;
--un-scale-y: 1;
--un-scale-z: 1;
--un-skew-x: 0;
--un-skew-y: 0;
--un-translate-x: 0;
--un-translate-y: 0;
--un-translate-z: 0;
--un-ring-offset-shadow: 0 0 transparent;
--un-ring-shadow: 0 0 transparent;
--un-shadow: 0 0 transparent;
--un-ring-offset-width: 0px;
--un-ring-offset-color: #fff;
--un-ring-width: 0px;
--un-ring-color: #93c5fd80;
--swiper-theme-color: #007aff;
--swiper-navigation-size: 44px;
}
Do's and Don'ts
Do
- Do reserve the accent
#14ADEA for interactive highlights and key moments — it is used sparingly on the source page.
- Do keep the canvas at
#FFFFFF; surfaces should stay within the detected neutral ramp.
- Do stick to the detected font weight(s): 400, 500, 600, 700.
Don't
- Don't introduce colors outside the detected palette — every hue above was found in the source.
Design Tokens (copy-paste)
:root {
--color-primary: #117CE9;
--color-accent: #14ADEA;
--color-background: #FFFFFF;
--color-surface: #F6F7F8;
--color-text-primary: #000000;
--color-secondary: #000000;
--color-text-secondary: #DADADA;
--color-border: #707070;
--color-on-primary: #FFFFFF;
--color-on-secondary: #FFFFFF;
--color-on-accent: #FFFFFF;
--color-surface-container-lowest: #FFFFFF;
--color-surface-container-low: #F6F7F8;
--color-surface-container: #F0F0F0;
--color-surface-container-high: #ECECEC;
--color-surface-container-highest: #DDE6EA;
--font-sans: icon-portal!important;
--font-size-display: 50px;
--font-size-headline-lg: 42px;
--font-size-headline-md: 28px;
--font-size-title-lg: 20px;
--font-size-body-lg: 18px;
--font-size-body-md: 16px;
--font-size-label-md: 14px;
--font-size-label-sm: 12px;
--radius-sm: 2px;
--radius-lg: 20px;
--radius-pill: 50%;
--shadow-md: 0 1px 7px #00000017;
--space-xs: 4px;
--space-sm: 8px;
--space-md: 20px;
--space-lg: 40px;
--space-xl: 60px;
--tracking-display: -.42px;
}