@@ -245,44 +245,36 @@
continentHtml += `
`;
-
+
continentGroup.innerHTML = continentHtml;
container.appendChild(continentGroup);
});
-
+
const allContinents = container.querySelectorAll('.continent-group');
allContinents.forEach(continent => {
continent.classList.add('active');
- continent.querySelector('.continent-header .toggle-icon').textContent = '▲';
});
const allCountries = container.querySelectorAll('.country-group');
allCountries.forEach(country => {
country.classList.add('active');
- country.querySelector('.country-header .toggle-icon').textContent = '▲';
});
}
function toggleGroup(header) {
const group = header.parentElement;
- const icon = header.querySelector('.toggle-icon');
group.classList.toggle('active');
- if (group.classList.contains('active')) {
- icon.textContent = '▲';
- } else {
- icon.textContent = '▼';
- }
}
function toggleAccordion(header) {
const item = header.parentElement;
const container = item.parentElement;
-
+
const allItems = container.querySelectorAll('.accordion-item');
allItems.forEach(el => {
- if(el !== item) el.classList.remove('active');
+ if (el !== item) el.classList.remove('active');
});
-
+
item.classList.toggle('active');
}
@@ -290,11 +282,11 @@
const btn = document.getElementById('syncBtn');
const logConsole = document.getElementById('logConsole');
const logBody = document.getElementById('logBody');
-
+
btn.classList.add('loading');
btn.innerHTML = `
동기화 중 (진행 상황 확인 중...)`;
btn.disabled = true;
-
+
logConsole.style.display = 'block';
logBody.innerHTML = ''; // 이전 로그 삭제
@@ -307,7 +299,7 @@
try {
const response = await fetch(`/sync`);
-
+
const reader = response.body.getReader();
const decoder = new TextDecoder();
@@ -317,21 +309,21 @@
const chunk = decoder.decode(value);
const lines = chunk.split('\n');
-
+
for (const line of lines) {
if (line.startsWith('data: ')) {
const payload = JSON.parse(line.substring(6));
-
+
if (payload.type === 'log') {
addLog(payload.message);
} else if (payload.type === 'done') {
const newData = payload.data;
newData.forEach(scrapedItem => {
- const target = rawData.find(item =>
- item[0].replace(/\s/g,'').includes(scrapedItem.projectName.replace(/\s/g,'')) ||
- scrapedItem.projectName.replace(/\s/g,'').includes(item[0].replace(/\s/g,''))
+ const target = rawData.find(item =>
+ item[0].replace(/\s/g, '').includes(scrapedItem.projectName.replace(/\s/g, '')) ||
+ scrapedItem.projectName.replace(/\s/g, '').includes(item[0].replace(/\s/g, ''))
);
-
+
if (target) {
// 기존 데이터 유지 마커 확인
if (scrapedItem.recentLog !== "기존데이터유지") {
@@ -340,7 +332,7 @@
target[4] = scrapedItem.fileCount;
}
});
-
+
document.getElementById('projectAccordion').innerHTML = '';
init();
addLog(">>> 모든 동기화 작업이 완료되었습니다!");
@@ -364,4 +356,5 @@
init();
+
\ No newline at end of file
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..6847292
--- /dev/null
+++ b/index.html
@@ -0,0 +1,142 @@
+
+
+
+
+
+
+
Project Master Portal
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/mailTest.html b/mailTest.html
new file mode 100644
index 0000000..68d0f1f
--- /dev/null
+++ b/mailTest.html
@@ -0,0 +1,199 @@
+
+
+
+
+
+
Project Mail Manager
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 라오스 농림부
+ 오후 2:30
+
+
ITTC 교육센터 착공식 일정 협의
+
안녕하세요. 착공식 관련하여 첨부 드리는 공문을...
+
+
+
+
+
+
+
+ 안녕하세요. 이태훈 선임연구원님.
+ 라오스 ITTC 관개 교육센터 착공식과 관련하여 정부 측 인사의 일정을 반영한 최종 공문을 송부합니다.
+ 첨부파일의 세부 계획안을 검토하신 후, 프로젝트 대시보드의 '과업계획' 탭에 업로드 및 공유 부탁드립니다.
+
+
+
+
+
첨부파일 리스트
+
+ AI 판단
+
+
+
+
+
+
+
+
+
+
+
diff --git a/requirements.txt b/requirements.txt
index 23b8545..71c0078 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,4 +1,5 @@
fastapi==0.110.0
uvicorn==0.29.0
playwright==1.42.0
-python-dotenv==1.0.1
\ No newline at end of file
+python-dotenv==1.0.1
+pypdf==4.1.0
\ No newline at end of file
diff --git a/style/style.css b/style/style.css
index a59542c..1e08b79 100644
--- a/style/style.css
+++ b/style/style.css
@@ -1,412 +1,123 @@
:root {
- --primary-color: #1E5149;
- --bg-color: #FFFFFF;
- --text-main: #222222;
- --text-sub: #666666;
- --border-color: #E5E7EB;
- /* 매우 연한 회색 라인 */
- --hover-bg: #F9FAFB;
+ /* Design Tokens */
+ --primary-color: #1E5149; --primary-lv-0: #e9eeed; --primary-lv-1: #D2DCDB; --primary-lv-8: #193833;
+ --bg-default: #FFFFFF; --bg-muted: #F9FAFB;
+ --text-main: #2D3748; --text-sub: #718096; --border-color: #E2E8F0;
+ --header-gradient: linear-gradient(90deg, #193833 0%, #1e5149 100%);
+ --ai-gradient: linear-gradient(180deg, #da8cf1 0%, #8bb1f2 100%);
+ --space-xs: 4px; --space-sm: 8px; --space-md: 16px; --space-lg: 32px; --space-xl: 64px;
+ --radius-sm: 4px; --radius-lg: 8px;
+ --fz-h1: 20px; --fz-h2: 16px; --fz-body: 13px;
}
-* {
- margin: 0;
- padding: 0;
- box-sizing: border-box;
-}
+/* Base Reset */
+* { margin: 0; padding: 0; box-sizing: border-box; }
+body { font-family: 'Pretendard', sans-serif; font-size: var(--fz-body); color: var(--text-main); background: var(--bg-default); min-height: 100vh; }
+a { text-decoration: none; color: inherit; }
+button { cursor: pointer; border: none; font-family: inherit; }
-body {
- font-family: 'Pretendard', sans-serif;
- font-size: 13px;
- color: var(--text-main);
- background-color: var(--bg-color);
- display: flex;
- min-height: 100vh;
-}
+/* Components: Topbar */
+.topbar { width: 100%; background: var(--header-gradient); color: #fff; padding: 0 var(--space-lg); position: fixed; top: 0; height: 36px; display: flex; align-items: center; z-index: 1000; }
+.topbar-header { margin-right: 60px; font-weight: 700; }
+.nav-list { display: flex; list-style: none; gap: var(--space-sm); }
+.nav-item { padding: 4px 8px; border-radius: 4px; color: rgba(255,255,255,0.8); transition: 0.2s; font-size: 14px; }
+.nav-item:hover { background: var(--primary-lv-1); color: #fff; }
+.nav-item.active { background: var(--primary-lv-0); color: var(--primary-color) !important; font-weight: 700; }
-/* Topbar */
-.topbar {
- width: 100%;
- background-color: #1E5149;
- /* sample.png 탑바 다크 슬레이트 배경색 */
- color: #FFFFFF;
- padding: 0 1.5rem;
- position: fixed;
- top: 0;
- left: 0;
- height: 36px;
- display: flex;
- align-items: center;
- z-index: 100;
-}
+/* Global Layout */
+.main-content { margin-top: 36px; padding: var(--space-lg) var(--space-xl); max-width: 1400px; margin-left: auto; margin-right: auto; }
+header { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: var(--space-lg); padding-bottom: var(--space-sm); border-bottom: 1px solid var(--border-color); }
+header h1 { font-size: var(--fz-h1); color: var(--primary-color); }
-.topbar-header {
- margin-right: 2.5rem;
-}
+/* Portal (Index) */
+.portal-container { display: flex; flex-direction: column; align-items: center; justify-content: center; height: calc(100vh - 36px); background: var(--bg-muted); padding: var(--space-lg); }
+.portal-card { background: #fff; border: 1px solid var(--border-color); border-radius: 12px; padding: 40px; text-align: center; transition: 0.3s; width: 100%; max-width: 380px; box-shadow: 0 4px 6px rgba(0,0,0,0.05); }
+.portal-card:hover { transform: translateY(-5px); border-color: var(--primary-color); box-shadow: 0 10px 20px rgba(0,0,0,0.1); }
+.portal-card .icon { font-size: 32px; margin-bottom: 20px; width: 64px; height: 64px; background: var(--bg-muted); border-radius: 50%; display: flex; align-items: center; justify-content: center; transition: 0.3s; margin-left: auto; margin-right: auto; }
+.portal-card:hover .icon { background: var(--primary-color); color: #fff; }
-.topbar-header h2 {
- font-size: 15px;
- font-weight: 600;
- letter-spacing: -0.3px;
-}
+/* Dashboard List & Console */
+.log-console { background:#000; color:#0f0; font-family:monospace; padding:15px; margin-bottom:20px; border-radius:4px; max-height:200px; overflow-y:auto; font-size:12px; }
+.accordion-container { border-top: 1px solid var(--border-color); }
+.accordion-list-header, .accordion-header { display: grid; grid-template-columns: 2.5fr 1fr 1fr 0.8fr 2fr; gap: var(--space-md); padding: var(--space-md) var(--space-lg); align-items: center; }
+.accordion-list-header { font-size: 11px; font-weight: 700; color: var(--text-sub); border-bottom: 1px solid var(--text-main); }
+.accordion-item { border-bottom: 1px solid var(--border-color); }
+.accordion-item:hover { background: var(--primary-lv-0); }
+.repo-title { font-weight: 700; color: var(--primary-color); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
+.repo-files { text-align: center; font-weight: 600; }
+.repo-log { font-size: 11px; color: var(--text-sub); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
+.accordion-body { display: none; padding: var(--space-lg); background: var(--bg-muted); border-top: 1px solid var(--border-color); }
+.accordion-item.active .accordion-body { display: block; }
+.status-warning { background: #fff9e6; } .status-error { background: #fee9e7; }
+.warning-text { color: #f21d0d !important; font-weight: 700; }
-.nav-list {
- list-style: none;
- display: flex;
- align-items: center;
- height: 100%;
-}
+/* Mail Manager Refined */
+.mail-wrapper { display: flex; height: calc(100vh - 36px); margin-top: 36px; background: #fff; overflow: hidden; }
+.mail-sidebar { width: 240px; border-right: 1px solid var(--border-color); padding: var(--space-md); background: var(--bg-muted); }
+.project-select { width: 100%; padding: var(--space-sm); border-radius: var(--radius-sm); border: 1px solid var(--border-color); margin-bottom: var(--space-lg); font-weight: 700; background: #fff; }
+.folder-item { padding: var(--space-sm) var(--space-md); border-radius: 4px; cursor: pointer; margin-bottom: 2px; font-weight: 500; display: flex; justify-content: space-between; }
+.folder-item:hover { background: var(--primary-lv-0); }
+.folder-item.active { background: var(--primary-color); color: #fff; }
-.nav-item {
- padding: 0 1rem;
- height: 28px;
- border-radius: 4px;
- margin: 0 2px;
- cursor: pointer;
- transition: all 0.2s;
- color: rgba(255, 255, 255, 0.7);
- display: flex;
- justify-content: center;
- align-items: center;
- gap: 6px;
- font-size: 13px;
-}
+.mail-list-area { width: 380px; border-right: 1px solid var(--border-color); display: flex; flex-direction: column; }
+.search-bar { padding: var(--space-md); border-bottom: 1px solid var(--border-color); background: var(--bg-muted); }
+.search-bar input { width: 100%; padding: 8px; border-radius: 4px; border: 1px solid var(--border-color); margin-bottom: var(--space-sm); }
+.mail-item { padding: var(--space-md); border-bottom: 1px solid var(--border-color); cursor: pointer; transition: 0.2s; }
+.mail-item:hover { background: var(--bg-muted); }
+.mail-item.active { background: #E9EEED; border-left: 4px solid var(--primary-color); }
-.nav-item:hover,
-.nav-item.active {
- background-color: #E9EEED;
- color: #1E5149;
- font-weight: 500;
-}
+.mail-content-area { flex: 1; display: flex; flex-direction: column; overflow-y: auto; }
+.mail-content-header { padding: var(--space-lg); border-bottom: 1px solid var(--border-color); }
+.mail-body { padding: var(--space-lg); line-height: 1.6; min-height: 200px; }
-/* Main Content */
-.main-content {
- margin-top: 36px;
- flex: 1;
- padding: 2rem 2.5rem;
- width: 100%;
- max-width: 1400px;
- margin-left: auto;
- margin-right: auto;
-}
+.attachment-area { padding: var(--space-lg); border-top: 1px solid var(--border-color); background: var(--bg-muted); }
+.attachment-item { display: flex; align-items: center; justify-content: space-between; background: #fff; padding: var(--space-sm) var(--space-md); border-radius: var(--radius-lg); border: 1px solid var(--border-color); margin-bottom: var(--space-sm); }
+.file-info { display: flex; align-items: center; gap: var(--space-sm); flex: 1; }
+.ai-recommend { font-size: 11px; color: #6d3dc2; background: #f1ecf9; padding: 2px 6px; border-radius: 4px; font-weight: 700; margin-left: 10px; }
-header {
- margin-bottom: 2rem;
- display: flex;
- justify-content: space-between;
- align-items: flex-end;
- padding-bottom: 0.8rem;
- border-bottom: 1px solid var(--border-color);
- /* 선 굵기와 색상 얇게 */
-}
-
-header h1 {
- font-size: 18px;
- font-weight: 700;
- color: var(--primary-color);
-}
-
-.admin-info {
- color: var(--text-sub);
- font-size: 12px;
-}
-
-/* Multi-level Accordion (Minimalist/No Box Design) */
-.continent-group {
- margin-bottom: 3rem;
-}
-
-.continent-header {
- color: var(--text-main);
- padding: 0.5rem 0;
- font-size: 16px;
- font-weight: 700;
- cursor: pointer;
- display: flex;
- justify-content: flex-start;
- align-items: center;
- border-bottom: 2px solid var(--text-main);
- margin-bottom: 1rem;
-}
-
-.continent-body {
- display: none;
-}
-
-.continent-group.active > .continent-body {
- display: block;
-}
-
-.country-group {
- margin-bottom: 2rem;
- padding-bottom: 2rem;
- border-bottom: 1px dashed var(--border-color); /* 국가 사이 구분선 */
-}
-
-.country-group:last-child {
- margin-bottom: 1rem;
- padding-bottom: 0;
- border-bottom: none;
-}
-
-.country-header {
- color: var(--primary-color);
- padding: 0.5rem 0;
- font-size: 14px;
- font-weight: 700;
- cursor: pointer;
- display: flex;
- justify-content: flex-start;
- align-items: center;
- margin-bottom: 0.5rem;
-}
-
-.country-body {
- display: none;
- padding-left: 0.5rem; /* Slight indent instead of borders */
-}
-
-.country-group.active > .country-body {
- display: block;
-}
-
-.toggle-icon {
- font-size: 10px;
- margin-left: 8px;
- color: #999;
-}
-
-/* Accordion Styles (Projects - Row Based) */
-.accordion-container {
- display: flex;
- flex-direction: column;
- width: 100%;
-}
-
-.accordion-item {
- border-bottom: 1px solid var(--border-color);
-}
-
-.accordion-item:last-child {
- border-bottom: none;
-}
-
-.accordion-header {
- display: grid;
- grid-template-columns: 2.5fr 1fr 1fr 1fr 1fr 2fr;
- gap: 1rem;
- padding: 1rem 0;
- cursor: pointer;
- align-items: center;
- background-color: transparent;
- transition: opacity 0.2s;
-}
-
-.accordion-item:hover .accordion-header {
- opacity: 0.7;
-}
-
-.accordion-item.active .accordion-header {
- /* No border-bottom or background change for active */
-}
-
-.accordion-header > div {
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
-}
-
-.header-label {
+.ai-log-console {
+ margin-top: var(--space-md);
+ background: #1a202c; /* dark gray */
+ color: #a0aec0;
+ padding: var(--space-md);
+ border-radius: var(--radius-lg);
+ font-family: 'Courier New', Courier, monospace;
font-size: 11px;
- color: var(--text-sub);
- margin-bottom: 3px;
- display: block;
- font-weight: 400;
+ line-height: 1.5;
+ max-height: 150px;
+ overflow-y: auto;
}
+.ai-log-console .log-entry { margin-bottom: 4px; border-left: 2px solid #4a5568; padding-left: 8px; }
+.ai-log-console .highlight { color: #63b3ed; font-weight: 700; }
+.ai-log-console .success { color: #48bb78; }
-.header-value {
- font-weight: 500;
- font-size: 13px;
- color: var(--text-main);
-}
+.btn-group { display: flex; gap: var(--space-xs); }
+.btn-upload { padding: 6px 12px; border-radius: 4px; font-size: 11px; font-weight: 700; color: #fff; }
+.btn-ai { background: var(--ai-gradient); }
+.btn-normal { background: var(--primary-color); }
+.btn-upload:hover { opacity: 0.9; transform: translateY(-1px); }
-.accordion-body {
- display: none;
- padding: 1.5rem 0;
- background-color: transparent;
-}
+/* File-specific Log Accordion */
+.file-log-area { display: none; width: 100%; margin-top: 10px; background: #1a202c; border-radius: 4px; padding: 12px; font-family: monospace; font-size: 11px; color: #cbd5e0; }
+.file-log-area.active { display: block; }
+.log-line { margin-bottom: 2px; }
+.log-success { color: #48bb78; font-weight: 700; }
+.log-info { color: #63b3ed; }
-.accordion-item.active .accordion-body {
- display: block;
-}
+/* Toggle Switch */
+.switch { position: relative; display: inline-block; width: 34px; height: 20px; }
+.switch input { opacity: 0; width: 0; height: 0; }
+.slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: #ccc; transition: .4s; border-radius: 20px; }
+.slider:before { position: absolute; content: ""; height: 14px; width: 14px; left: 3px; bottom: 3px; background-color: white; transition: .4s; border-radius: 50%; }
+input:checked + .slider { background: var(--ai-gradient); }
+input:checked + .slider:before { transform: translateX(14px); }
-.detail-grid {
- display: grid;
- grid-template-columns: 1fr 1fr;
- gap: 3rem;
-}
+.ai-toggle-wrap { display: flex; align-items: center; gap: var(--space-sm); font-size: 12px; font-weight: 600; color: var(--text-sub); }
+input:checked ~ .ai-label { color: #6d3dc2; }
-.detail-section h4 {
- margin-bottom: 1rem;
- color: var(--text-main);
- font-size: 13px;
- font-weight: 600;
- border-bottom: 1px solid var(--border-color);
- padding-bottom: 0.5rem;
-}
+/* Utils */
+.sync-btn { background: var(--primary-color); color: #fff; padding: 8px 16px; border-radius: var(--radius-lg); font-weight: 700; }
+.badge { background: #eee; padding: 2px 6px; border-radius: 4px; font-size: 11px; }
+.toggle-icon { transition: 0.2s; }
+.active > .continent-header .toggle-icon, .active > .country-header .toggle-icon { transform: rotate(180deg); }
-/* Table Styles - Super Minimal Line Style */
-.data-table {
- width: 100%;
- border-collapse: collapse;
-}
-
-.data-table th,
-.data-table td {
- padding: 8px 4px;
- border-bottom: 1px solid var(--border-color);
- text-align: left;
-}
-
-.data-table th {
- color: var(--text-sub);
- font-weight: 400;
- font-size: 12px;
-}
-
-.data-table td {
- font-size: 12px;
- color: var(--text-main);
-}
-
-.data-table tr:last-child td {
- border-bottom: none;
-}
-
-/* General Utilities */
-.badge {
- background: #EEEEEE;
- color: #555555;
- padding: 2px 6px;
- border-radius: 2px;
- /* 라운드 거의 없앰 */
- font-size: 11px;
- font-weight: 500;
-}
-
-.status-up {
- color: #D32F2F;
- font-weight: 500;
-}
-
-.status-down {
- color: #1976D2;
- font-weight: 500;
-}
-
-/* Sync Button */
-.sync-btn {
- background-color: var(--primary-color);
- color: #FFFFFF;
- border: 1px solid var(--primary-color);
- padding: 6px 14px;
- border-radius: 4px;
- font-size: 12px;
- font-weight: 600;
- cursor: pointer;
- transition: background-color 0.2s, opacity 0.2s;
- margin-right: 1rem;
- display: flex;
- align-items: center;
- gap: 6px;
-}
-
-.sync-btn:hover {
- background-color: #153A34;
-}
-
-.sync-btn:disabled {
- background-color: #A0B2AF;
- border-color: #A0B2AF;
- cursor: not-allowed;
-}
-
-/* Spinner */
-.spinner {
- display: none;
- width: 12px;
- height: 12px;
- border: 2px solid rgba(255,255,255,0.3);
- border-radius: 50%;
- border-top-color: #fff;
- animation: spin 1s ease-in-out infinite;
-}
-
-@keyframes spin {
- to { transform: rotate(360deg); }
-}
-
-.sync-btn.loading .spinner {
- display: inline-block;
-}
-
-/* --- Responsive Design --- */
-@media screen and (max-width: 1024px) {
- .accordion-header {
- grid-template-columns: 2fr 1fr 1fr 1fr 1fr 1.5fr;
- }
-}
-
-@media screen and (max-width: 768px) {
- .topbar {
- overflow-x: auto;
- white-space: nowrap;
- padding: 0 1rem;
- }
- /* 스크롤바 숨김 */
- .topbar::-webkit-scrollbar {
- display: none;
- }
- .main-content {
- padding: 1.5rem 1rem;
- }
- header {
- flex-direction: column;
- align-items: flex-start;
- gap: 0.5rem;
- }
- .detail-grid {
- grid-template-columns: 1fr;
- gap: 1.5rem;
- }
- /* 모바일에서 아코디언 헤더를 다단으로 배치 */
- .accordion-header {
- grid-template-columns: 1fr 1fr;
- row-gap: 1rem;
- }
- /* 프로젝트 명과 최근 로그는 공간을 넓게 쓰도록 설정 */
- .accordion-header > div:nth-child(1),
- .accordion-header > div:nth-child(6) {
- grid-column: span 2;
- }
- .continent-header {
- font-size: 15px;
- }
-}
-
-@media screen and (max-width: 480px) {
- /* 아주 작은 화면에서는 1열로 배치 */
- .accordion-header {
- grid-template-columns: 1fr;
- }
- .accordion-header > div {
- grid-column: span 1 !important;
- }
- .topbar-header h2 {
- font-size: 13px;
- margin-right: 1rem;
- }
- .nav-item {
- padding: 0 0.5rem;
- font-size: 12px;
- }
-}
\ No newline at end of file
diff --git a/tokens.json b/tokens.json
new file mode 100644
index 0000000..6e99e9a
--- /dev/null
+++ b/tokens.json
@@ -0,0 +1,1229 @@
+{
+ "core": {
+ "dimension": {
+ "scale": {
+ "$value": "2",
+ "$type": "dimension"
+ },
+ "xs": {
+ "$value": "4",
+ "$type": "dimension"
+ },
+ "sm": {
+ "$value": "{dimension.xs} * {dimension.scale}",
+ "$type": "dimension"
+ },
+ "md": {
+ "$value": "{dimension.sm} * {dimension.scale}",
+ "$type": "dimension"
+ },
+ "lg": {
+ "$value": "{dimension.md} * {dimension.scale}",
+ "$type": "dimension"
+ },
+ "xl": {
+ "$value": "{dimension.lg} * {dimension.scale}",
+ "$type": "dimension"
+ }
+ },
+ "spacing": {
+ "xs": {
+ "$value": "{dimension.xs}",
+ "$type": "spacing"
+ },
+ "sm": {
+ "$value": "{dimension.sm}",
+ "$type": "spacing"
+ },
+ "md": {
+ "$value": "{dimension.md}",
+ "$type": "spacing"
+ },
+ "lg": {
+ "$value": "{dimension.lg}",
+ "$type": "spacing"
+ },
+ "xl": {
+ "$value": "{dimension.xl}",
+ "$type": "spacing"
+ },
+ "multi-value": {
+ "$value": "{dimension.sm} {dimension.xl}",
+ "$type": "spacing",
+ "$description": "You can have multiple values in a single spacing token. Read more on these: https://docs.tokens.studio/available-tokens/spacing-tokens#multi-value-spacing-tokens"
+ }
+ },
+ "borderRadius": {
+ "sm": {
+ "$value": "4",
+ "$type": "borderRadius"
+ },
+ "lg": {
+ "$value": "8",
+ "$type": "borderRadius"
+ },
+ "xl": {
+ "$value": "16",
+ "$type": "borderRadius"
+ },
+ "multi-value": {
+ "$value": "{borderRadius.sm} {borderRadius.lg}",
+ "$type": "borderRadius",
+ "$description": "You can have multiple values in a single radius token. Read more on these: https://docs.tokens.studio/available-tokens/border-radius-tokens#single--multiple-values"
+ }
+ },
+ "colors": {
+ "black": {
+ "$value": "#000000",
+ "$type": "color"
+ },
+ "white": {
+ "$value": "#ffffff",
+ "$type": "color"
+ },
+ "gray": {
+ "100": {
+ "$value": "#f7fafc",
+ "$type": "color"
+ },
+ "200": {
+ "$value": "#edf2f7",
+ "$type": "color"
+ },
+ "300": {
+ "$value": "#e2e8f0",
+ "$type": "color"
+ },
+ "400": {
+ "$value": "#cbd5e0",
+ "$type": "color"
+ },
+ "500": {
+ "$value": "#a0aec0",
+ "$type": "color"
+ },
+ "600": {
+ "$value": "#718096",
+ "$type": "color"
+ },
+ "700": {
+ "$value": "#4a5568",
+ "$type": "color"
+ },
+ "800": {
+ "$value": "#2d3748",
+ "$type": "color"
+ },
+ "900": {
+ "$value": "#1a202c",
+ "$type": "color"
+ }
+ },
+ "red": {
+ "100": {
+ "$value": "#fff5f5",
+ "$type": "color"
+ },
+ "200": {
+ "$value": "#fed7d7",
+ "$type": "color"
+ },
+ "300": {
+ "$value": "#feb2b2",
+ "$type": "color"
+ },
+ "400": {
+ "$value": "#fc8181",
+ "$type": "color"
+ },
+ "500": {
+ "$value": "#f56565",
+ "$type": "color"
+ },
+ "600": {
+ "$value": "#e53e3e",
+ "$type": "color"
+ },
+ "700": {
+ "$value": "#c53030",
+ "$type": "color"
+ },
+ "800": {
+ "$value": "#9b2c2c",
+ "$type": "color"
+ },
+ "900": {
+ "$value": "#742a2a",
+ "$type": "color"
+ }
+ },
+ "orange": {
+ "100": {
+ "$value": "#fffaf0",
+ "$type": "color"
+ },
+ "200": {
+ "$value": "#feebc8",
+ "$type": "color"
+ },
+ "300": {
+ "$value": "#fbd38d",
+ "$type": "color"
+ },
+ "400": {
+ "$value": "#f6ad55",
+ "$type": "color"
+ },
+ "500": {
+ "$value": "#ed8936",
+ "$type": "color"
+ },
+ "600": {
+ "$value": "#dd6b20",
+ "$type": "color"
+ },
+ "700": {
+ "$value": "#c05621",
+ "$type": "color"
+ },
+ "800": {
+ "$value": "#9c4221",
+ "$type": "color"
+ },
+ "900": {
+ "$value": "#7b341e",
+ "$type": "color"
+ }
+ },
+ "yellow": {
+ "100": {
+ "$value": "#fffff0",
+ "$type": "color"
+ },
+ "200": {
+ "$value": "#fefcbf",
+ "$type": "color"
+ },
+ "300": {
+ "$value": "#faf089",
+ "$type": "color"
+ },
+ "400": {
+ "$value": "#f6e05e",
+ "$type": "color"
+ },
+ "500": {
+ "$value": "#ecc94b",
+ "$type": "color"
+ },
+ "600": {
+ "$value": "#d69e2e",
+ "$type": "color"
+ },
+ "700": {
+ "$value": "#b7791f",
+ "$type": "color"
+ },
+ "800": {
+ "$value": "#975a16",
+ "$type": "color"
+ },
+ "900": {
+ "$value": "#744210",
+ "$type": "color"
+ }
+ },
+ "green": {
+ "100": {
+ "$value": "#f0fff4",
+ "$type": "color"
+ },
+ "200": {
+ "$value": "#c6f6d5",
+ "$type": "color"
+ },
+ "300": {
+ "$value": "#9ae6b4",
+ "$type": "color"
+ },
+ "400": {
+ "$value": "#68d391",
+ "$type": "color"
+ },
+ "500": {
+ "$value": "#48bb78",
+ "$type": "color"
+ },
+ "600": {
+ "$value": "#38a169",
+ "$type": "color"
+ },
+ "700": {
+ "$value": "#2f855a",
+ "$type": "color"
+ },
+ "800": {
+ "$value": "#276749",
+ "$type": "color"
+ },
+ "900": {
+ "$value": "#22543d",
+ "$type": "color"
+ }
+ },
+ "teal": {
+ "100": {
+ "$value": "#e6fffa",
+ "$type": "color"
+ },
+ "200": {
+ "$value": "#b2f5ea",
+ "$type": "color"
+ },
+ "300": {
+ "$value": "#81e6d9",
+ "$type": "color"
+ },
+ "400": {
+ "$value": "#4fd1c5",
+ "$type": "color"
+ },
+ "500": {
+ "$value": "#38b2ac",
+ "$type": "color"
+ },
+ "600": {
+ "$value": "#319795",
+ "$type": "color"
+ },
+ "700": {
+ "$value": "#2c7a7b",
+ "$type": "color"
+ },
+ "800": {
+ "$value": "#285e61",
+ "$type": "color"
+ },
+ "900": {
+ "$value": "#234e52",
+ "$type": "color"
+ }
+ },
+ "blue": {
+ "100": {
+ "$value": "#ebf8ff",
+ "$type": "color"
+ },
+ "200": {
+ "$value": "#bee3f8",
+ "$type": "color"
+ },
+ "300": {
+ "$value": "#90cdf4",
+ "$type": "color"
+ },
+ "400": {
+ "$value": "#63b3ed",
+ "$type": "color"
+ },
+ "500": {
+ "$value": "#4299e1",
+ "$type": "color"
+ },
+ "600": {
+ "$value": "#3182ce",
+ "$type": "color"
+ },
+ "700": {
+ "$value": "#2b6cb0",
+ "$type": "color"
+ },
+ "800": {
+ "$value": "#2c5282",
+ "$type": "color"
+ },
+ "900": {
+ "$value": "#2a4365",
+ "$type": "color"
+ }
+ },
+ "indigo": {
+ "100": {
+ "$value": "#ebf4ff",
+ "$type": "color"
+ },
+ "200": {
+ "$value": "#c3dafe",
+ "$type": "color"
+ },
+ "300": {
+ "$value": "#a3bffa",
+ "$type": "color"
+ },
+ "400": {
+ "$value": "#7f9cf5",
+ "$type": "color"
+ },
+ "500": {
+ "$value": "#667eea",
+ "$type": "color"
+ },
+ "600": {
+ "$value": "#5a67d8",
+ "$type": "color"
+ },
+ "700": {
+ "$value": "#4c51bf",
+ "$type": "color"
+ },
+ "800": {
+ "$value": "#434190",
+ "$type": "color"
+ },
+ "900": {
+ "$value": "#3c366b",
+ "$type": "color"
+ }
+ },
+ "purple": {
+ "100": {
+ "$value": "#faf5ff",
+ "$type": "color"
+ },
+ "200": {
+ "$value": "#e9d8fd",
+ "$type": "color"
+ },
+ "300": {
+ "$value": "#d6bcfa",
+ "$type": "color"
+ },
+ "400": {
+ "$value": "#b794f4",
+ "$type": "color"
+ },
+ "500": {
+ "$value": "#9f7aea",
+ "$type": "color"
+ },
+ "600": {
+ "$value": "#805ad5",
+ "$type": "color"
+ },
+ "700": {
+ "$value": "#6b46c1",
+ "$type": "color"
+ },
+ "800": {
+ "$value": "#553c9a",
+ "$type": "color"
+ },
+ "900": {
+ "$value": "#44337a",
+ "$type": "color"
+ }
+ },
+ "pink": {
+ "100": {
+ "$value": "#fff5f7",
+ "$type": "color"
+ },
+ "200": {
+ "$value": "#fed7e2",
+ "$type": "color"
+ },
+ "300": {
+ "$value": "#fbb6ce",
+ "$type": "color"
+ },
+ "400": {
+ "$value": "#f687b3",
+ "$type": "color"
+ },
+ "500": {
+ "$value": "#ed64a6",
+ "$type": "color"
+ },
+ "600": {
+ "$value": "#d53f8c",
+ "$type": "color"
+ },
+ "700": {
+ "$value": "#b83280",
+ "$type": "color"
+ },
+ "800": {
+ "$value": "#97266d",
+ "$type": "color"
+ },
+ "900": {
+ "$value": "#702459",
+ "$type": "color"
+ }
+ }
+ },
+ "opacity": {
+ "low": {
+ "$value": "10%",
+ "$type": "opacity"
+ },
+ "md": {
+ "$value": "50%",
+ "$type": "opacity"
+ },
+ "high": {
+ "$value": "90%",
+ "$type": "opacity"
+ }
+ },
+ "fontFamilies": {
+ "heading": {
+ "$value": "Inter",
+ "$type": "fontFamilies"
+ },
+ "body": {
+ "$value": "Roboto",
+ "$type": "fontFamilies"
+ },
+ "pretendard": {
+ "$value": "Pretendard",
+ "$type": "fontFamilies"
+ }
+ },
+ "lineHeights": {
+ "0": {
+ "$value": 20,
+ "$type": "lineHeights"
+ },
+ "1": {
+ "$value": 20,
+ "$type": "lineHeights"
+ },
+ "2": {
+ "$value": 20,
+ "$type": "lineHeights"
+ },
+ "3": {
+ "$value": 20,
+ "$type": "lineHeights"
+ },
+ "4": {
+ "$value": 20,
+ "$type": "lineHeights"
+ },
+ "5": {
+ "$value": 20,
+ "$type": "lineHeights"
+ },
+ "6": {
+ "$value": 20,
+ "$type": "lineHeights"
+ },
+ "heading": {
+ "$value": "110%",
+ "$type": "lineHeights"
+ },
+ "body": {
+ "$value": "140%",
+ "$type": "lineHeights"
+ }
+ },
+ "letterSpacing": {
+ "0": {
+ "$value": "-2%",
+ "$type": "letterSpacing"
+ },
+ "default": {
+ "$value": "0",
+ "$type": "letterSpacing"
+ },
+ "increased": {
+ "$value": "150%",
+ "$type": "letterSpacing"
+ },
+ "decreased": {
+ "$value": "-5%",
+ "$type": "letterSpacing"
+ }
+ },
+ "paragraphSpacing": {
+ "0": {
+ "$value": 0,
+ "$type": "paragraphSpacing"
+ },
+ "h1": {
+ "$value": "32",
+ "$type": "paragraphSpacing"
+ },
+ "h2": {
+ "$value": "26",
+ "$type": "paragraphSpacing"
+ }
+ },
+ "fontWeights": {
+ "headingRegular": {
+ "$value": "Regular",
+ "$type": "fontWeights"
+ },
+ "headingBold": {
+ "$value": "Bold",
+ "$type": "fontWeights"
+ },
+ "bodyRegular": {
+ "$value": "Regular",
+ "$type": "fontWeights"
+ },
+ "bodyBold": {
+ "$value": "Bold",
+ "$type": "fontWeights"
+ },
+ "pretendard-0": {
+ "$value": "ExtraBold",
+ "$type": "fontWeights"
+ },
+ "pretendard-1": {
+ "$value": "SemiBold",
+ "$type": "fontWeights"
+ },
+ "pretendard-2": {
+ "$value": "Regular",
+ "$type": "fontWeights"
+ }
+ },
+ "fontSizes": {
+ "h1": {
+ "$value": "roundTo({fontSizes.body}*1.25^5)",
+ "$type": "fontSizes"
+ },
+ "h2": {
+ "$value": "roundTo({fontSizes.body}*1.25^4)",
+ "$type": "fontSizes"
+ },
+ "h3": {
+ "$value": "roundTo({fontSizes.body}*1.25^3)",
+ "$type": "fontSizes"
+ },
+ "h4": {
+ "$value": "roundTo({fontSizes.body}*1.25^2)",
+ "$type": "fontSizes"
+ },
+ "h5": {
+ "$value": "roundTo({fontSizes.body}*1.25^1)",
+ "$type": "fontSizes"
+ },
+ "h6": {
+ "$value": "{fontSizes.body}",
+ "$type": "fontSizes"
+ },
+ "body": {
+ "$value": "16",
+ "$type": "fontSizes"
+ },
+ "sm": {
+ "$value": "{fontSizes.body} * 0.85",
+ "$type": "fontSizes"
+ },
+ "xs": {
+ "$value": "{fontSizes.body} * 0.65",
+ "$type": "fontSizes"
+ }
+ },
+ "ai_color": {
+ "$value": "linear-gradient(180deg, #da8cf1 0%, #8bb1f2 100%)",
+ "$type": "color"
+ },
+ "primary-lv-0": {
+ "$value": "#e9eeed",
+ "$type": "color"
+ },
+ "primary-lv-1": {
+ "$value": "#d2dcdb",
+ "$type": "color"
+ },
+ "primary-lv-2": {
+ "$value": "#a5b9b6",
+ "$type": "color"
+ },
+ "primary-lv-3": {
+ "$value": "#789792",
+ "$type": "color"
+ },
+ "primary-lv-4": {
+ "$value": "#4b746d",
+ "$type": "color"
+ },
+ "primary-lv-5": {
+ "$value": "#35635c",
+ "$type": "color"
+ },
+ "primary-lv-6": {
+ "$value": "#1e5149",
+ "$type": "color"
+ },
+ "primary-lv-7": {
+ "$value": "#1b443d",
+ "$type": "color"
+ },
+ "primary-lv-8": {
+ "$value": "#193833",
+ "$type": "color"
+ },
+ "primary-lv-9": {
+ "$value": "#162a27",
+ "$type": "color"
+ },
+ "color-red": {
+ "$value": "#f21d0d",
+ "$type": "color"
+ },
+ "color-pink": {
+ "$value": "#e8175e",
+ "$type": "color"
+ },
+ "color-magenta": {
+ "$value": "#b92ed1",
+ "$type": "color"
+ },
+ "color-purple": {
+ "$value": "#6d3dc2",
+ "$type": "color"
+ },
+ "color-navy": {
+ "$value": "#4255bd",
+ "$type": "color"
+ },
+ "color-blue": {
+ "$value": "#0d8df2",
+ "$type": "color"
+ },
+ "color-cyan": {
+ "$value": "#03aefc",
+ "$type": "color"
+ },
+ "color-green": {
+ "$value": "#4db251",
+ "$type": "color"
+ },
+ "color-yellow": {
+ "$value": "#ffbf00",
+ "$type": "color"
+ },
+ "color-orange": {
+ "$value": "#ff9800",
+ "$type": "color"
+ },
+ "color-dahong": {
+ "$value": "#ff3d00",
+ "$type": "color"
+ },
+ "color-brown": {
+ "$value": "#a0705f",
+ "$type": "color"
+ },
+ "color-iron": {
+ "$value": "#7f7f7f",
+ "$type": "color"
+ },
+ "color-steel": {
+ "$value": "#688897",
+ "$type": "color"
+ },
+ "color-red-light": {
+ "$value": "#fee9e7",
+ "$type": "color"
+ },
+ "color-pink-light": {
+ "$value": "#fde8ef",
+ "$type": "color"
+ },
+ "color-magenta-light": {
+ "$value": "#f8ebfb",
+ "$type": "color"
+ },
+ "color-purple-light": {
+ "$value": "#f1ecf9",
+ "$type": "color"
+ },
+ "color-navy-light": {
+ "$value": "#edeef9",
+ "$type": "color"
+ },
+ "color-blue-light": {
+ "$value": "#e7f4fe",
+ "$type": "color"
+ },
+ "color-cyan-light": {
+ "$value": "#e6f7ff",
+ "$type": "color"
+ },
+ "color-green-light": {
+ "$value": "#eef8ee",
+ "$type": "color"
+ },
+ "color-yellow-light": {
+ "$value": "#fff9e6",
+ "$type": "color"
+ },
+ "color-orange-light": {
+ "$value": "#fff5e6",
+ "$type": "color"
+ },
+ "color-dahong-light": {
+ "$value": "#ffece6",
+ "$type": "color"
+ },
+ "color-brown-light": {
+ "$value": "#f6f1ef",
+ "$type": "color"
+ },
+ "color-iron-light": {
+ "$value": "#f3f3f3",
+ "$type": "color"
+ },
+ "color-steel-light": {
+ "$value": "#f0f4f5",
+ "$type": "color"
+ },
+ "color-red-medium": {
+ "$value": "#faa59e",
+ "$type": "color"
+ },
+ "color-pink-medium": {
+ "$value": "#f6a2bf",
+ "$type": "color"
+ },
+ "color-magenta-medium": {
+ "$value": "#e3abec",
+ "$type": "color"
+ },
+ "color-purple-medium": {
+ "$value": "#c5b1e7",
+ "$type": "color"
+ },
+ "color-navy-medium": {
+ "$value": "#b3bbe5",
+ "$type": "color"
+ },
+ "color-blue-medium": {
+ "$value": "#9ed1fa",
+ "$type": "color"
+ },
+ "color-cyan-medium": {
+ "$value": "#9adffe",
+ "$type": "color"
+ },
+ "color-green-medium": {
+ "$value": "#b8e0b9",
+ "$type": "color"
+ },
+ "color-yellow-medium": {
+ "$value": "#ffe599",
+ "$type": "color"
+ },
+ "color-orange-medium": {
+ "$value": "#ffd699",
+ "$type": "color"
+ },
+ "color-dahong-medium": {
+ "$value": "#ffb199",
+ "$type": "color"
+ },
+ "color-brown-medium": {
+ "$value": "#d9c6bf",
+ "$type": "color"
+ },
+ "color-iron-medium": {
+ "$value": "#cccccc",
+ "$type": "color"
+ },
+ "color-steel-medium": {
+ "$value": "#c3cfd5",
+ "$type": "color"
+ },
+ "checked-color-background": {
+ "$value": "#03aefc1a",
+ "$type": "color"
+ },
+ "headercolor": {
+ "$value": "linear-gradient(90deg, #193833 0%, #1e5149 100%)",
+ "$type": "color"
+ },
+ "line-style": {
+ "$value": "linear-gradient(135deg, #ffffff 0%, #0000001a 50%, #ffffff 100%)",
+ "$type": "color"
+ },
+ "box__drop-shadow": {
+ "$value": {
+ "color": "#00000029",
+ "type": "dropShadow",
+ "x": 0,
+ "y": 8,
+ "blur": 24,
+ "spread": 0
+ },
+ "$type": "boxShadow"
+ },
+ "fontSize": {
+ "0": {
+ "$value": 12,
+ "$type": "fontSizes"
+ },
+ "1": {
+ "$value": 14,
+ "$type": "fontSizes"
+ },
+ "2": {
+ "$value": 16,
+ "$type": "fontSizes"
+ },
+ "3": {
+ "$value": 20,
+ "$type": "fontSizes"
+ }
+ },
+ "
": {
+ "$value": {
+ "fontFamily": "{fontFamilies.pretendard}",
+ "fontWeight": "{fontWeights.pretendard-0}",
+ "lineHeight": "{lineHeights.0}",
+ "fontSize": "{fontSize.3}",
+ "letterSpacing": "{letterSpacing.0}",
+ "paragraphSpacing": "{paragraphSpacing.0}",
+ "paragraphIndent": "{paragraphIndent.0}",
+ "textCase": "{textCase.none}",
+ "textDecoration": "{textDecoration.none}"
+ },
+ "$type": "typography"
+ },
+ "": {
+ "$value": {
+ "fontFamily": "{fontFamilies.pretendard}",
+ "fontWeight": "{fontWeights.pretendard-1}",
+ "lineHeight": "{lineHeights.0}",
+ "fontSize": "{fontSize.2}",
+ "letterSpacing": "{letterSpacing.0}",
+ "paragraphSpacing": "{paragraphSpacing.0}",
+ "paragraphIndent": "{paragraphIndent.0}",
+ "textCase": "{textCase.none}",
+ "textDecoration": "{textDecoration.none}"
+ },
+ "$type": "typography"
+ },
+ "": {
+ "$value": {
+ "fontFamily": "{fontFamilies.pretendard}",
+ "fontWeight": "{fontWeights.pretendard-1}",
+ "lineHeight": "{lineHeights.0}",
+ "fontSize": "{fontSize.1}",
+ "letterSpacing": "{letterSpacing.0}",
+ "paragraphSpacing": "{paragraphSpacing.0}",
+ "paragraphIndent": "{paragraphIndent.0}",
+ "textCase": "{textCase.none}",
+ "textDecoration": "{textDecoration.none}"
+ },
+ "$type": "typography"
+ },
+ "": {
+ "$value": {
+ "fontFamily": "{fontFamilies.pretendard}",
+ "fontWeight": "{fontWeights.pretendard-2}",
+ "lineHeight": "{lineHeights.0}",
+ "fontSize": "{fontSize.1}",
+ "letterSpacing": "{letterSpacing.0}",
+ "paragraphSpacing": "{paragraphSpacing.0}",
+ "paragraphIndent": "{paragraphIndent.0}",
+ "textCase": "{textCase.none}",
+ "textDecoration": "{textDecoration.none}"
+ },
+ "$type": "typography"
+ },
+ "": {
+ "$value": {
+ "fontFamily": "{fontFamilies.pretendard}",
+ "fontWeight": "{fontWeights.pretendard-1}",
+ "lineHeight": "{lineHeights.0}",
+ "fontSize": "{fontSize.0}",
+ "letterSpacing": "{letterSpacing.0}",
+ "paragraphSpacing": "{paragraphSpacing.0}",
+ "paragraphIndent": "{paragraphIndent.0}",
+ "textCase": "{textCase.none}",
+ "textDecoration": "{textDecoration.none}"
+ },
+ "$type": "typography"
+ },
+ "": {
+ "$value": {
+ "fontFamily": "{fontFamilies.pretendard}",
+ "fontWeight": "{fontWeights.pretendard-2}",
+ "lineHeight": "{lineHeights.0}",
+ "fontSize": "{fontSize.0}",
+ "letterSpacing": "{letterSpacing.0}",
+ "paragraphSpacing": "{paragraphSpacing.0}",
+ "paragraphIndent": "{paragraphIndent.0}",
+ "textCase": "{textCase.none}",
+ "textDecoration": "{textDecoration.none}"
+ },
+ "$type": "typography"
+ },
+ "
": {
+ "$value": {
+ "fontFamily": "{fontFamilies.pretendard}",
+ "fontWeight": "{fontWeights.pretendard-2}",
+ "lineHeight": "{lineHeights.0}",
+ "fontSize": "{fontSize.0}",
+ "letterSpacing": "{letterSpacing.0}",
+ "paragraphSpacing": "{paragraphSpacing.0}",
+ "paragraphIndent": "{paragraphIndent.0}",
+ "textCase": "{textCase.none}",
+ "textDecoration": "{textDecoration.none}"
+ },
+ "$type": "typography"
+ },
+ "textCase": {
+ "none": {
+ "$value": "none",
+ "$type": "textCase"
+ }
+ },
+ "textDecoration": {
+ "none": {
+ "$value": "none",
+ "$type": "textDecoration"
+ }
+ },
+ "paragraphIndent": {
+ "0": {
+ "$value": "0px",
+ "$type": "dimension"
+ }
+ }
+ },
+ "light": {
+ "fg": {
+ "default": {
+ "$value": "{colors.black}",
+ "$type": "color"
+ },
+ "muted": {
+ "$value": "{colors.gray.700}",
+ "$type": "color"
+ },
+ "subtle": {
+ "$value": "{colors.gray.500}",
+ "$type": "color"
+ }
+ },
+ "bg": {
+ "default": {
+ "$value": "{colors.white}",
+ "$type": "color"
+ },
+ "muted": {
+ "$value": "{colors.gray.100}",
+ "$type": "color"
+ },
+ "subtle": {
+ "$value": "{colors.gray.200}",
+ "$type": "color"
+ }
+ },
+ "accent": {
+ "default": {
+ "$value": "{colors.indigo.400}",
+ "$type": "color"
+ },
+ "onAccent": {
+ "$value": "{colors.white}",
+ "$type": "color"
+ },
+ "bg": {
+ "$value": "{colors.indigo.200}",
+ "$type": "color"
+ }
+ },
+ "shadows": {
+ "default": {
+ "$value": "{colors.gray.900}",
+ "$type": "color"
+ }
+ }
+ },
+ "dark": {
+ "fg": {
+ "default": {
+ "$value": "{colors.white}",
+ "$type": "color"
+ },
+ "muted": {
+ "$value": "{colors.gray.300}",
+ "$type": "color"
+ },
+ "subtle": {
+ "$value": "{colors.gray.500}",
+ "$type": "color"
+ }
+ },
+ "bg": {
+ "default": {
+ "$value": "{colors.gray.900}",
+ "$type": "color"
+ },
+ "muted": {
+ "$value": "{colors.gray.700}",
+ "$type": "color"
+ },
+ "subtle": {
+ "$value": "{colors.gray.600}",
+ "$type": "color"
+ }
+ },
+ "accent": {
+ "default": {
+ "$value": "{colors.indigo.600}",
+ "$type": "color"
+ },
+ "onAccent": {
+ "$value": "{colors.white}",
+ "$type": "color"
+ },
+ "bg": {
+ "$value": "{colors.indigo.800}",
+ "$type": "color"
+ }
+ },
+ "shadows": {
+ "default": {
+ "$value": "rgba({colors.black}, 0.3)",
+ "$type": "color"
+ }
+ }
+ },
+ "theme": {
+ "button": {
+ "primary": {
+ "background": {
+ "$value": "{accent.default}",
+ "$type": "color"
+ },
+ "text": {
+ "$value": "{accent.onAccent}",
+ "$type": "color"
+ }
+ },
+ "borderRadius": {
+ "$value": "{borderRadius.lg}",
+ "$type": "borderRadius"
+ },
+ "borderWidth": {
+ "$value": "{dimension.sm}",
+ "$type": "borderWidth"
+ }
+ },
+ "card": {
+ "borderRadius": {
+ "$value": "{borderRadius.lg}",
+ "$type": "borderRadius"
+ },
+ "background": {
+ "$value": "{bg.default}",
+ "$type": "color"
+ },
+ "padding": {
+ "$value": "{dimension.md}",
+ "$type": "dimension"
+ }
+ },
+ "boxShadow": {
+ "default": {
+ "$value": [
+ {
+ "x": 5,
+ "y": 5,
+ "spread": 3,
+ "color": "rgba({shadows.default}, 0.15)",
+ "blur": 5,
+ "$type": "dropShadow"
+ },
+ {
+ "x": 4,
+ "y": 4,
+ "spread": 6,
+ "color": "#00000033",
+ "blur": 5,
+ "$type": "innerShadow"
+ }
+ ],
+ "$type": "boxShadow"
+ }
+ },
+ "typography": {
+ "H1": {
+ "Bold": {
+ "$value": {
+ "fontFamily": "{fontFamilies.heading}",
+ "fontWeight": "{fontWeights.headingBold}",
+ "lineHeight": "{lineHeights.heading}",
+ "fontSize": "{fontSizes.h1}",
+ "paragraphSpacing": "{paragraphSpacing.h1}",
+ "letterSpacing": "{letterSpacing.decreased}"
+ },
+ "$type": "typography"
+ },
+ "Regular": {
+ "$value": {
+ "fontFamily": "{fontFamilies.heading}",
+ "fontWeight": "{fontWeights.headingRegular}",
+ "lineHeight": "{lineHeights.heading}",
+ "fontSize": "{fontSizes.h1}",
+ "paragraphSpacing": "{paragraphSpacing.h1}",
+ "letterSpacing": "{letterSpacing.decreased}"
+ },
+ "$type": "typography"
+ }
+ },
+ "H2": {
+ "Bold": {
+ "$value": {
+ "fontFamily": "{fontFamilies.heading}",
+ "fontWeight": "{fontWeights.headingBold}",
+ "lineHeight": "{lineHeights.heading}",
+ "fontSize": "{fontSizes.h2}",
+ "paragraphSpacing": "{paragraphSpacing.h2}",
+ "letterSpacing": "{letterSpacing.decreased}"
+ },
+ "$type": "typography"
+ },
+ "Regular": {
+ "$value": {
+ "fontFamily": "{fontFamilies.heading}",
+ "fontWeight": "{fontWeights.headingRegular}",
+ "lineHeight": "{lineHeights.heading}",
+ "fontSize": "{fontSizes.h2}",
+ "paragraphSpacing": "{paragraphSpacing.h2}",
+ "letterSpacing": "{letterSpacing.decreased}"
+ },
+ "$type": "typography"
+ }
+ },
+ "Body": {
+ "$value": {
+ "fontFamily": "{fontFamilies.body}",
+ "fontWeight": "{fontWeights.bodyRegular}",
+ "lineHeight": "{lineHeights.heading}",
+ "fontSize": "{fontSizes.body}",
+ "paragraphSpacing": "{paragraphSpacing.h2}"
+ },
+ "$type": "typography"
+ }
+ }
+ },
+ "$themes": [],
+ "$metadata": {
+ "tokenSetOrder": [
+ "core",
+ "light",
+ "dark",
+ "theme"
+ ]
+ }
+}
\ No newline at end of file