user 41270a34f5 Refactor: 전체 에디터 UXML 전환 + 대시보드/런타임 UI + 한글화 + NanumGothic 폰트
- 모든 컨트롤러 에디터를 IMGUI → UI Toolkit(UXML/USS)으로 전환
  (Camera, Item, Event, Avatar, System, StreamDeck, OptiTrack, Facial)
- StreamingleCommon.uss 공통 테마 + 개별 에디터 USS 스타일시트
- SystemController 서브매니저 분리 (OptiTrack, Facial, Recording, Screenshot 등)
- 런타임 컨트롤 패널 (ESC 토글, 좌측 오버레이, 150% 스케일)
- 웹 대시보드 서버 (StreamingleDashboardServer) + 리타게팅 통합
- 설정 도구(StreamingleControllerSetupTool) UXML 재작성 + 원클릭 설정
- SimplePoseTransfer UXML 에디터 추가
- 전체 UXML 한글화 + NanumGothic 폰트 적용
- Streamingle.Debug → Streamingle.Debugging 네임스페이스 변경 (Debug.Log 충돌 해결)
- 불필요 코드 제거 (rawkey.cs, RetargetingHTTPServer, OptitrackSkeletonAnimator 등)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 02:51:43 +09:00

197 lines
3.6 KiB
Plaintext

/* Streamingle Common Theme - Shared styles for all Streamingle editor UIs */
/* Font — NanumGothic */
.section, .section Label, .section Button, .section Toggle, .section TextField {
-unity-font: resource('Fonts/NanumGothic');
}
.section .section-foldout > Toggle Label {
-unity-font: resource('Fonts/NanumGothicBold');
}
.section {
background-color: rgba(0, 0, 0, 0.1);
border-radius: 6px;
margin-top: 4px;
margin-bottom: 4px;
padding: 2px;
border-width: 1px;
border-color: rgba(255, 255, 255, 0.06);
}
.section-foldout > Toggle {
background-color: rgba(0, 0, 0, 0.15);
border-radius: 4px;
margin: 0;
padding: 4px 8px;
-unity-font-style: bold;
}
.section-foldout > Toggle:hover {
background-color: rgba(0, 0, 0, 0.25);
}
.section-foldout #unity-content {
padding: 8px 4px 4px 4px;
}
/* Primary Button */
.btn-primary {
background-color: #6366f1;
color: white;
border-radius: 4px;
border-width: 0;
padding: 5px 14px;
-unity-font-style: bold;
}
.btn-primary:hover {
background-color: #4f46e5;
}
.btn-primary:active {
background-color: #4338ca;
}
/* Danger Button */
.btn-danger {
background-color: #ef4444;
color: white;
border-radius: 4px;
border-width: 0;
padding: 2px 8px;
-unity-font-style: bold;
}
.btn-danger:hover {
background-color: #dc2626;
}
/* ---- Common List Styles ---- */
.list-section {
margin-top: 12px;
}
.list-header {
flex-direction: row;
justify-content: space-between;
align-items: center;
padding: 6px 8px;
background-color: rgba(0, 0, 0, 0.15);
border-radius: 4px;
margin-bottom: 4px;
}
.list-title {
-unity-font-style: bold;
font-size: 12px;
}
.list-add-btn {
background-color: #6366f1;
color: white;
border-radius: 4px;
border-width: 0;
padding: 3px 12px;
font-size: 11px;
-unity-font-style: bold;
}
.list-add-btn:hover {
background-color: #4f46e5;
}
.list-item {
background-color: rgba(0, 0, 0, 0.12);
border-radius: 6px;
padding: 8px;
margin-top: 3px;
margin-bottom: 3px;
border-width: 2px;
border-color: transparent;
}
.list-item--active {
border-color: #22c55e;
background-color: rgba(34, 197, 94, 0.08);
}
.list-item-header {
flex-direction: row;
align-items: center;
margin-bottom: 6px;
}
.list-index {
-unity-font-style: bold;
font-size: 12px;
min-width: 20px;
-unity-text-align: middle-center;
color: #94a3b8;
}
.list-name-field {
flex-grow: 1;
margin-left: 4px;
margin-right: 8px;
}
.list-active-label {
color: #22c55e;
font-size: 10px;
-unity-font-style: bold;
margin-right: 8px;
}
.list-reorder-btn {
width: 24px;
height: 20px;
padding: 0;
margin: 0 1px;
border-radius: 3px;
border-width: 0;
background-color: rgba(255, 255, 255, 0.08);
color: #d4d4d4;
font-size: 10px;
-unity-text-align: middle-center;
}
.list-reorder-btn:hover {
background-color: rgba(255, 255, 255, 0.18);
}
.list-reorder-btn:disabled {
opacity: 0.3;
}
.list-delete-btn {
width: 24px;
height: 20px;
padding: 0;
margin-left: 4px;
border-radius: 3px;
border-width: 0;
background-color: rgba(239, 68, 68, 0.2);
color: #ef4444;
font-size: 11px;
-unity-font-style: bold;
-unity-text-align: middle-center;
}
.list-delete-btn:hover {
background-color: rgba(239, 68, 68, 0.4);
}
.list-fields {
padding-left: 24px;
}
.list-empty {
padding: 12px;
-unity-text-align: middle-center;
color: #94a3b8;
font-size: 11px;
-unity-font-style: italic;
}