Foundation
디자인의 기본 원칙과 토큰입니다.
Simple & Clear
여백을 넉넉히 두고 요소를 최소화합니다. 링크 생성이라는 핵심 작업에 집중하도록 시각적 잡음을 줄입니다.
Trustworthy
블루 중심의 팔레트와 명확한 상태 피드백으로 데이터 정확성과 전문성에 대한 신뢰를 전달합니다.
Consistent
4px 배수 간격, 통일된 radius·shadow 토큰으로 모든 화면에서 일관된 리듬을 유지합니다.
Radius
--r-sm · 6px--r-md · 8px--r-card · 14px--r-full · pillShadow
--sh-card--sh-float--sh-focusSpacing (4px 배수)
8px16px24px32pxIcons
공통 아이콘 세트입니다. Lucide/Feather 계열 24×24 스트로크 아이콘으로, 색은 currentColor(부모 글자색)를, 크기는 CSS를 상속합니다. 아래 타일을 클릭하면 <use> 스니펫이 복사됩니다.
사용법스프라이트 파일 하나만 참조하면 어느 페이지에서든 <use>로 가져다 씁니다 — 펼쳐서 보기
1. 스프라이트 경로 — 이 파일 하나만 참조
/design-source/asset/icons/icons.svg # 루트 기준 · 어느 페이지에서든 (권장)
https://lucy-dev.conbus.co.kr/design-source/asset/icons/icons.svg # 전체 URL
2. 기본 삽입 — # 뒤 아이콘 이름만 교체
<svg class="icon"><use href="/design-source/asset/icons/icons.svg#save"/></svg>
3. 크기 — 클래스로 조절. 버튼·인풋 안에서는 그 컨텍스트 규칙(16px)을 자동으로 따름
.icon-sm · 16
.icon · 20
.icon-lg · 24
style · 32
4. 색상 — currentColor라 부모 글자색을 그대로 따라감
5. 버튼 · 로딩 — 로더는 .icon-spin을 붙이면 회전
<button class="btn btn-primary"><svg class="icon"><use href="/design-source/asset/icons/icons.svg#plus"/></svg>추가</button>
<svg class="icon icon-spin"><use href="/design-source/asset/icons/icons.svg#loader"/></svg> <!-- 회전 -->
6. 접근성
장식용 아이콘은 aria-hidden="true", 아이콘만으로 의미를 전달하면 role="img" + aria-label을 붙입니다. 아이콘만 있는 버튼은 <button>에 aria-label을 답니다.
Color Palette
브랜드 컬러 + 중립 Slate + 시맨틱 컬러. 우측 패널에서 라이트/다크 테마와 SaaS 프리셋·컬러피커(신뢰 블루)로 전체 UI를 미리볼 수 있습니다.
Brand · --brand-600 Primary
50
100
200
300
400
500
600
700
800
900
950
Neutral · --ink (Slate)
50
100
200
300
400
500
600
700
800
900
Semantic
Success
#059669Warning
#D97706Danger
#DC2626Info
#0284C7Typography
본문·UI 전반에 Pretendard GOV Variable, 링크/파라미터 코드 표기에는 monospace.
Display · 36/800
.text-displayHeading 1 · 24/700
.text-h1Heading 2 · 18/600
.text-h2Body · 16/400 — UTM 파라미터를 입력하고 즉시 링크를 생성합니다.
.text-bodySmall · 14/400 — 보조 설명 텍스트에 사용합니다.
.text-smCaption · 12/400 — 헬퍼/메타 정보.
.text-xshttps://app.appsflyer.com/id123?pid=google&c=summer_sale
.mono / .codeblock + .code-copy · 생성된 링크·파라미터
Form Controls
모든 입력 요소 — Input · Textarea · Select · Checkbox · Radio · Toggle · Search · File.
Text Input
utm_campaign 값으로 사용됩니다.
올바른 URL 형식이 아닙니다.
Search · Textarea · Select · File
선택 항목은 칩으로 표시(× 로 제거), hidden 값은 콤마로 결합됩니다.
Checkbox
Radio
Toggle Switch
Segmented Control
Date Picker (Air Datepicker · 브랜드 테마 · 공휴일 표시)
캠페인 시작일 등 단일 날짜 입력.
히스토리 조회·리포트 기간 필터에 사용.
Links, Badges & Feedback
텍스트 링크, 상태 배지, 알림 배너.
Tabs, Tooltip & Pagination
콘텐츠 전환 탭, 보조 설명 툴팁, 목록/히스토리용 페이지네이션.
Tabs (언더라인 · 패널 전환, ← → 키 지원)
GA4에서 추적 가능한 UTM 파라미터로 링크를 생성합니다. Source·Medium·Campaign을 입력하세요.
AppsFlyer OneLink(원링크)를 생성합니다. 딥링크·리다이렉트 옵션을 설정할 수 있습니다.
CSV/Excel 업로드로 대량 링크를 한 번에 생성합니다.
최근 생성한 링크 기록을 검색·재사용합니다.
Tooltip (hover / 키보드 focus)
요소에 class="tooltip" + data-tooltip="...". 방향은 tooltip-bottom/right/left.
Pagination
숫자 버튼 + 맨앞/이전/다음/맨뒤 이동, 현재 위치는 현재/총로 축약 표시.
Listbox
계층 선택(캐스케이딩) · 검색 · 단일/다중 선택 리스트 패널. 좁은 폭에서 옵션을 항상 노출하고 드릴다운(매체 › 캠페인 › 광고그룹 › 소재)할 때 사용합니다. 여러 개를 .listbox-grid로 나열하면 왼쪽 선택이 오른쪽 열을 채우는 캐스케이딩 구성이 됩니다.
- YouTube — Google Ads
- Instagram — Meta
- summer_sale_2026
- brand_always_on
- retargeting_q3 — YouTube
- 로딩 중
- 캠페인을 먼저 선택하세요
Tree
계층 구조를 펼침/접힘으로 탐색. 폴더/리프 노드, 선택 하이라이트, 가이드 라인(.tree-lines), 체크박스형(.tree.checkable)을 지원합니다. 펼침·선택은 앱 JS로 클래스 토글해 연결합니다.
-
2026 여름 캠페인 12
-
YouTube 8
- 15초 세로 소재
- 15초 와이드 소재
-
Instagram 4
- 피드 소재
-
-
전체 매체
- YouTube
- Instagram
- TikTok
Summary Cards
대시보드 상단 지표 요약 카드 — 라벨·값·증감 트렌드.
Table
헤더 고정(sticky) 테이블 — 히스토리·대량생성 결과 목록용. 스크롤해도 헤더가 상단에 유지됩니다.
생성 히스토리
총 24건| 생성일 | 유형 | Campaign | 링크 | 상태 | 클릭 | 액션 | |
|---|---|---|---|---|---|---|---|
| 2026-07-21 | UTM | summer_sale_2026 | https://ex.com/?utm_source=google&utm_medium=cpc | ✓ 검증됨 | 1,204 | ||
| 2026-07-20 | OneLink | app_install_kr | https://app.appsflyer.com/id123?pid=google&c=install | ✓ 검증됨 | 876 | ||
| 2026-07-19 | UTM | newsletter_july | https://ex.com/?utm_source=newsletter&utm_medium=email | 대기 | 0 | ||
| 2026-07-18 | UTM | retargeting_meta | https://ex.com/?utm_source=facebook&utm_medium=paid_social | 오류 | 342 | ||
| 2026-07-17 | OneLink | event_signup | https://app.appsflyer.com/id456?pid=naver&c=event | ✓ 검증됨 | 2,051 | ||
| 2026-07-16 | UTM | blog_post_seo | https://ex.com/?utm_source=blog&utm_medium=organic | ✓ 검증됨 | 158 | ||
| 2026-07-15 | OneLink | push_reengage | https://app.appsflyer.com/id789?pid=kakao&c=push | ✓ 검증됨 | 640 | ||
| 2026-07-14 | UTM | promo_coupon | https://ex.com/?utm_source=sms&utm_medium=message | ✓ 검증됨 | 993 |
헤더 고정: .table-wrap(max-height) + thead th { position: sticky }. 정렬: data-sortable + th[data-sort] 클릭 시 오름/내림 전환.
Composition Example
위 컴포넌트를 조합한 실제 링크 생성 카드 예시.
UTM 링크 생성
https://example.com/landing?utm_source=google&utm_medium=cpc&utm_campaign=summer_sale_2026