모든 도구 디자인 시스템 갤러리

TMAP (티맵)

도로 모양 그라디언트 T 로고와 흰 화면 위 단색 TMAP 블루 #0064FF 경로선

한국모빌리티소비자차가운modern-minimal고딕comfortableroundsubtle라이트한글 지원출시 2021개정 2021

갤러리에서 열기 — 적용 예시 · 가이드 다운로드

Brand DNA

브랜드 DNA

  • 브랜드명: TMAP (티맵, 운영사 티맵모빌리티㈜ — 2020년 12월 SK텔레콤에서 분사)
  • 한 줄 정체성: 내비게이션에서 출발해 대리운전·주차·전기차 충전·대중교통·렌터카까지 묶은 한국 대표 모빌리티 앱
  • 공식 디자인 철학: 2021년 6월 28일, 서비스 20주년에 맞춰 새 BI 를 적용했다. 이름을 「T map」에서 「TMAP」으로 바꾸고 SK텔레콤 T 로고를 떼어 냈다. 새 T 아이콘은 도로의 형상(직선도로·교차로·로터리)을 본떴고, 색을 끊김 없는 그라디언트로 이어 「실시간 데이터로 끊김 없는 최적 경로와 실시간 매칭을 제공한다」는 뜻을 담았다. 색마다 의미가 있다 — 녹색=친환경, 파랑=스마트, 보라=탐험, 분홍=알림.
  • 시그니처 요소 1개: 분홍→보라 가로획과 민트→파랑으로 휘어 내려오는 세로획이 만나는 그라디언트 T(도로 모양 T). 이 로고 색은 로고·브랜드 장면에만 쓰고, 실제 화면은 흰 바탕 위 단색 TMAP 블루 `#0064FF` 한 가지로 누를 곳을 알려 준다.

Tone & Mood

톤 & 무드

  • 핵심 키워드 3개: 스마트함, 역동성, 명료함
  • 무드 설명: 흰 바탕과 옅은 회청색(#F3F5F7) 면 위에 파랑 #0064FF 한 가지만 강조색으로 쓰고, 운전 중에도 한눈에 읽히도록 거리·시간 숫자를 크고 굵게 세운다. 길안내 화면은 지도가 주인공이라 UI 는 짙은 회전 안내 패널과 흰 하단 시트 두 판으로만 지도 위에 띄운다. 브랜드 그라디언트는 로고와 캠페인에서만 나와 화면이 소란스럽지 않다.
  • 비주얼 스타일: 모던 미니멀
  • 밀도(Density): Comfortable — 운전자가 짧게 흘끗 보는 화면이라 한 화면의 정보를 줄이고 터치 영역을 넉넉하게 둔다.
  • 모서리 성향: Round (카드·하단 시트 20px 가 가장 넓은 면적, 버튼·입력은 8px)
  • 평면성: Subtle — 목록은 1px #DBDBDB 선, 지도 위에 뜨는 요소만 짧은 그림자

Color System

컬러 시스템 (CSS 변수)

tmapmobility.com 의 CSS 변수(--brand-blue·--brand-purple·--brand-pink·--bg-*·--line-*·--text-*)와 hex 사용 빈도를 실측했다(2026-09-19, CSS 청크 40여 개 합산). 로고 색은 공식 심볼마크 파일 안의 그라디언트 이미지를 픽셀 샘플링했다. 실측이 없는 단계는 (추정).

:root {
  /* Primary - TMAP Blue (--brand-blue / --state-active 실측 #0064FF) */
  --color-primary-50:  #F1F8FF;  /* --bg-light-blue 실측 — 선택 행·안내 박스 */
  --color-primary-100: #D3E8FF;  /* 실측 — 칩 호버·강조 면 */
  --color-primary-200: #A6CBFF;  /* (추정) 보간 */
  --color-primary-300: #6FA7FF;  /* (추정) 보간 */
  --color-primary-400: #3884FF;  /* (추정) 보간 */
  --color-primary-500: #0064FF;  /* --brand-blue — 기본 버튼·경로선·활성 상태 */
  --color-primary-600: #0052D6;  /* (추정) hover/pressed */
  --color-primary-700: #0041AA;  /* (추정) 보간 */
  --color-primary-800: #00317F;  /* --text-dark-blue 실측 — 진한 파랑 제목 */
  --color-primary-900: #232F7A;  /* 실측(사용 빈도 낮음) — 네이비 면 */

  /* Secondary - 로고 그라디언트 색 (로고·캠페인 전용) */
  --color-secondary-500: #783CFF;  /* --brand-purple — 탐험 */
  --color-accent-pink:   #FF46B2;  /* --brand-pink — 알림 */
  --color-accent-mint:   #32E6AF;  /* 심볼 세로획 윗부분 샘플 — 친환경 */
  --gradient-brand-wordmark: linear-gradient(90deg, #994AFF 0%, #6943FF 20%, #0064FF 50%, #00AAFF 80%, #2AD6EC 100%);  /* TMAP MOBILITY 워드마크 SVG 원본 값 */

  /* Neutral - 실측 회색 */
  --color-neutral-0:    #FFFFFF;  /* --bg-white */
  --color-neutral-50:   #FAFAFA;  /* 실측 156회 — 섹션 바탕 */
  --color-neutral-100:  #F3F5F7;  /* --bg-light-grey — 입력·보조 버튼 면 */
  --color-neutral-200:  #E5E5E5;  /* --line-border / --state-disabled */
  --color-neutral-300:  #DBDBDB;  /* --line-grey 실측 490회 — 구분선 */
  --color-neutral-400:  #BEC5CC;  /* --line-medium-grey */
  --color-neutral-500:  #A0A3A6;  /* --label-disc — 비활성 아이콘 */
  --color-neutral-700:  #6E747A;  /* --text-font-grey 실측 157회 — 보조 글자 */
  --color-neutral-800:  #464646;  /* --text-deep-grey */
  --color-neutral-900:  #111111;  /* (추정) 앱 본문 */
  --color-neutral-1000: #000000;  /* --text-black / --bg-dark-base */

  /* Semantic - 교통 흐름 색과 겸용 (추정) */
  --color-success-bg: #E6F8EE;  /* (추정) */
  --color-success-fg: #0FA958;  /* (추정) 원활 */
  --color-warning-bg: #FFF4E0;  /* (추정) */
  --color-warning-fg: #FF9F0A;  /* (추정) 서행 */
  --color-error-bg:   #FEECEC;  /* (추정) */
  --color-error-fg:   #F23C3C;  /* (추정) 정체·과속 경고 */
  --color-info-bg:    #F1F8FF;  /* --bg-light-blue */
  --color-info-fg:    #0064FF;  /* --brand-blue */

  /* Surface (배경 위계) */
  --bg-base:     #FFFFFF;            /* 페이지·하단 시트 */
  --bg-subtle:   #F3F5F7;            /* --bg-light-grey — 섹션·검색창 */
  --bg-elevated: #FFFFFF;            /* 카드 */
  --bg-overlay:  rgba(0,0,0,0.5);    /* (추정) 모달 딤 */
  --bg-guidance: #1C1F26;            /* (추정) 길안내 회전 안내 패널 */
  --bg-map:      #EFEFEA;            /* (추정) 주간 지도 바탕 */

  /* Text 위계 */
  --text-primary:    #000000;  /* --text-black */
  --text-secondary:  #464646;  /* --text-deep-grey */
  --text-tertiary:   #6E747A;  /* --text-font-grey */
  --text-on-primary: #FFFFFF;  /* --label-primary-dark */
  --text-disabled:   #A0A3A6;  /* --label-disc */

  /* Border */
  --border-default: #DBDBDB;  /* --line-grey */
  --border-subtle:  #E5E5E5;  /* --line-border */
  --border-strong:  #BEC5CC;  /* --line-medium-grey */
  --border-focus:   #0064FF;  /* --brand-blue */
}

Typography

타이포그래피

  • 폰트 페어링:
    • 한글: Pretendard (SIL OFL) — tmapmobility.com 의 @font-face 가 Pretendard 한 가족뿐(가변 굵기 45~920). 앱 본문 글꼴도 같은 계열로 본다 (추정)
    • 영문: Pretendard 내장 라틴 (SIL OFL). 로고타입(TMAP MOBILITY)은 둥근 모서리 기하학 전용 레터링이라 본문에 쓰지 않는다
  • 위계 (웹 실측 크기 빈도 기준, 행간은 (추정)):
    • Display: 46px / 700 / 1.3 / -2%
    • H1: 36px / 700 / 1.35 / -2%
    • H2: 30px / 700 / 1.4 / -2%
    • H3: 20px / 600 / 1.45 / -2%
    • Body Large: 18px / 500 / 1.55 / -2% (추정)
    • Body: 16px / 500 / 1.6 / -2% — 크기 최빈(1,642회), 굵기 500 최빈(1,083회)
    • Body Small: 14px / 400 / 1.5 / -2%
    • Caption: 12px / 400 / 1.4 / 0
    • 길안내 숫자(앱 전용): 거리·남은 시간은 800 굵기로 크게 (추정)
  • 자간: 거의 모든 글자에 letter-spacing: -2% (실측 1,496회)

Spacing

스페이싱

  • Base unit: 4px (추정)
  • 토큰: ``css --space-xs: 4px; --space-sm: 8px; --space-md: 16px; --space-lg: 24px; --space-xl: 32px; --space-2xl: 48px; --space-3xl: 64px; ``
  • Container: 웹 본문 max-width 1500px(실측, 바깥 1920px), 좁은 본문 852px. 앱은 화면 폭 전체, 좌우 20px (추정)

Border Radius

Border Radius

--radius-none: 0;
--radius-sm: 4px;       /* 실측 — 태그·스켈레톤 */
--radius-md: 8px;       /* 실측 86회 — 버튼·입력 */
--radius-lg: 12px;      /* 실측 — 작은 카드·회전 안내 패널 */
--radius-xl: 20px;      /* 실측 109회 — 카드·하단 시트 */
--radius-pill: 45px;    /* 실측 — 필터 칩·CTA 알약 */
--radius-full: 9999px;  /* 원형 아이콘·현위치 마커 */

Shadow / Elevation

Shadow / Elevation

--shadow-none: none;
--shadow-sm: 0 3px 5px rgba(0,0,0,0.08);       /* 실측 #00000014 — 목록 카드 */
--shadow-md: 0 4px 20px rgba(0,100,255,0.08);  /* 실측 #0064ff14 — 강조 카드(파랑 기운 그림자) */
--shadow-lg: 0 5px 15px rgba(0,0,0,0.16);      /* 실측 #00000029 — 드롭다운·지도 위 버튼 */
--shadow-xl: 0 10px 15px rgba(0,0,0,0.15);     /* 실측 #00000026 — 모달·하단 시트 */

Iconography

Iconography

  • 스타일: Outline 중심, 활성 탭만 Filled (추정)
  • Stroke 굵기: 1.5~2px (추정)
  • 모서리 처리: Round
  • 추천 라이브러리: 공식 아이콘 세트는 공개되지 않았다. 대체로 Lucide(2px, round). 길안내 회전 화살표는 굵은 면 화살표로 따로 그린다

Component Guide

컴포넌트 가이드 (상태별 CSS)

Button (Primary / Secondary / Ghost / Danger)

.tm-btn { height: 48px; padding: 0 20px; border: 0; border-radius: var(--radius-md); font: 600 16px/1 Pretendard, sans-serif; letter-spacing: -0.02em; display: inline-flex; align-items: center; justify-content: center; gap: 6px; cursor: pointer; transition: background-color var(--duration-base), color var(--duration-base); }
.tm-btn--primary { background: var(--color-primary-500); color: var(--text-on-primary); }
.tm-btn--primary:hover { background: var(--color-primary-600); }
.tm-btn--primary:active { background: var(--color-primary-700); }
.tm-btn--secondary { background: var(--bg-subtle); color: var(--text-primary); }
.tm-btn--secondary:hover { background: var(--color-neutral-200); }
.tm-btn--ghost { background: transparent; color: var(--color-primary-500); }
.tm-btn--ghost:hover { background: var(--color-primary-50); }
.tm-btn--danger { background: var(--color-error-fg); color: #fff; }
.tm-btn:disabled { background: var(--color-neutral-200); color: var(--text-disabled); cursor: not-allowed; }  /* --state-disabled */
.tm-btn.is-loading { color: transparent; position: relative; pointer-events: none; }
.tm-btn.is-loading::after { content: ""; position: absolute; width: 18px; height: 18px; border: 2px solid rgba(255,255,255,.4); border-top-color: #fff; border-radius: 50%; animation: tm-spin .8s linear infinite; }
@keyframes tm-spin { to { transform: rotate(360deg); } }

Input (목적지 검색창)

.tm-search { height: 48px; padding: 0 16px; border: 1px solid transparent; border-radius: var(--radius-md); background: var(--bg-subtle); color: var(--text-primary); font: 500 16px/1 Pretendard, sans-serif; }
.tm-search::placeholder { color: var(--text-disabled); }
.tm-search:focus { outline: none; background: var(--bg-base); border-color: var(--border-focus); }
.tm-search.is-error { border-color: var(--color-error-fg); }
.tm-search:disabled { color: var(--text-disabled); }

Card

.tm-card { background: var(--bg-elevated); border-radius: var(--radius-xl); padding: 24px; box-shadow: var(--shadow-sm); }
.tm-card--accent { background: var(--color-primary-50); box-shadow: none; }
.tm-card--outlined { box-shadow: none; border: 1px solid var(--border-default); }
.tm-sheet { background: var(--bg-base); border-radius: var(--radius-xl) var(--radius-xl) 0 0; box-shadow: var(--shadow-xl); }  /* 길안내 하단 시트 */

Badge / Tag

.tm-badge { display: inline-flex; align-items: center; height: 22px; padding: 0 8px; border-radius: var(--radius-sm); font: 600 12px/1 Pretendard, sans-serif; }
.tm-badge--solid { background: var(--color-primary-500); color: #fff; }
.tm-badge--subtle { background: var(--color-primary-50); color: var(--color-primary-500); }
.tm-badge--outline { border: 1px solid var(--border-default); color: var(--text-tertiary); }
.tm-traffic { height: 6px; border-radius: 3px; }  /* 경로 교통 흐름 막대: 원활·서행·정체 */

Navigation (앱 길안내 회전 안내 패널 + 하단 탭)

.tm-tbt { background: var(--bg-guidance); color: #fff; border-radius: var(--radius-lg); padding: 12px 16px; display: flex; align-items: center; gap: 14px; box-shadow: var(--shadow-lg); }
.tm-tbt__dist { font: 800 32px/1 Pretendard, sans-serif; }
.tm-tabbar { display: flex; height: 56px; background: var(--bg-base); border-top: 1px solid var(--border-subtle); }
.tm-tabbar__item { flex: 1; display: grid; place-items: center; font: 500 11px/1 Pretendard, sans-serif; color: var(--text-disabled); }
.tm-tabbar__item.is-active { color: var(--text-primary); font-weight: 700; }

Motion

Motion

웹 CSS 실측은 .3s(폭·위치·높이), 색 전환 .5s, 스켈레톤 1.8s 가 전부다.

--duration-fast: 150ms;   /* (추정) 버튼 눌림 */
--duration-base: 300ms;   /* 실측 — width/left/height .3s, 탭 인디케이터 */
--duration-slow: 500ms;   /* 실측 — color/background-color .5s */
--ease-out: ease-out;                           /* 실측 height .3s ease-out */
--ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);    /* (추정) 지도 카메라 이동 */

Anti-patterns

Anti-patterns

1. 로고 그라디언트(분홍·보라·민트·파랑)를 버튼·본문 배경에 깔지 않는다 — 그라디언트는 로고와 캠페인 전용이고, 누를 곳은 단색 #0064FF 한 가지다. 2. 그라디언트 T 의 색 순서나 획 모양을 바꾸지 않는다 — 가로획은 분홍→보라, 세로획은 민트→파랑이며 도로의 곡선(로터리)을 본뜬 형태다. 3. 길안내 중 화면에 작은 글자·긴 문장을 늘어놓지 않는다 — 거리·시간 숫자를 크게, 문장은 한 줄로. 4. 교통 흐름 색(초록·주황·빨강)을 장식 색으로 쓰지 않는다 — 운전자가 정체 신호로 오해한다. 5. 지도 위를 불투명한 넓은 판으로 덮지 않는다 — 회전 안내 패널과 하단 시트 두 판만 띄우고 나머지는 지도에 양보한다.

Sources

출처

  1. https://www.tmapmobility.com/
  2. https://www.tmapmobility.com/_next/static/media/ico_gnb_logo.0i8ev1an8-9n3.svg
  3. https://www.tmapmobility.com/_next/static/media/frame-logo-symbolmark.0n_7d2dynvozr.svg
  4. https://www.tmapmobility.com/story/microtip/detail/135
  5. https://www.koit.co.kr/news/articleView.html?idxno=85980
  6. https://www.digitaltoday.co.kr/news/articleView.html?idxno=406621
  7. http://biz.newdaily.co.kr/site/data/html/2021/06/21/2021062100189.html
  8. https://namu.wiki/w/TMAP