user 4a49ecd772 Refactor: 배경/프랍 브라우저 IMGUI→UI Toolkit 전환 + USS 리디자인
- BackgroundSceneLoaderWindow: OnGUI → CreateGUI (Toolbar + ToolbarSearchField)
- PropBrowserWindow: OnGUI → CreateGUI (Toolbar + ToolbarSearchField)
- StreamingleCommon.uss: 브라우저 공통 스타일 추가 (그리드/리스트/뷰토글/액션바/상태바)
- excludeFromWeb 상태 새로고침 시 보존 수정
- 삭제된 배경 리소스 정리

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 01:55:48 +09:00

605 lines
12 KiB
Plaintext

/* Streamingle Common Theme - Shared styles for all Streamingle editor UIs */
/* Tool Root — common font for all editor tool windows */
.tool-root {
-unity-font: resource('Fonts/NanumGothic');
padding: 8px;
}
.tool-root .tool-title {
-unity-font: resource('Fonts/NanumGothicBold');
-unity-font-style: bold;
font-size: 14px;
margin-bottom: 8px;
}
/* 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: 4px 14px;
-unity-font-style: bold;
font-size: 12px;
}
.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;
}
/* ---- Browser Common Styles ---- */
/* Search row — full-width, prominent */
.browser-search-row {
flex-direction: row;
align-items: center;
padding: 10px 12px;
background-color: rgba(0, 0, 0, 0.12);
border-bottom-width: 1px;
border-color: rgba(255, 255, 255, 0.06);
}
.browser-search-row .search-input {
flex-grow: 1;
flex-shrink: 1;
min-width: 50px;
margin-right: 8px;
}
.browser-search-row Button {
-unity-font: resource('Fonts/NanumGothic');
border-radius: 4px;
border-width: 0;
padding: 6px 16px;
background-color: rgba(255, 255, 255, 0.08);
font-size: 12px;
flex-shrink: 0;
}
.browser-search-row Button:hover {
background-color: rgba(255, 255, 255, 0.15);
}
/* Controls row — filters, view mode, etc */
.browser-controls-row {
flex-direction: row;
align-items: center;
padding: 8px 12px;
background-color: rgba(0, 0, 0, 0.06);
border-bottom-width: 1px;
border-color: rgba(255, 255, 255, 0.06);
}
.browser-controls-row Label {
-unity-font: resource('Fonts/NanumGothic');
font-size: 12px;
margin: 0 6px;
}
.browser-controls-row Button {
-unity-font: resource('Fonts/NanumGothic');
border-radius: 4px;
border-width: 0;
padding: 6px 16px;
margin: 0 3px;
background-color: rgba(255, 255, 255, 0.08);
font-size: 12px;
}
.browser-controls-row Button:hover {
background-color: rgba(255, 255, 255, 0.15);
}
/* View mode toggle group */
.view-toggle-group {
flex-direction: row;
align-items: center;
background-color: rgba(0, 0, 0, 0.2);
border-radius: 5px;
padding: 2px;
margin-left: 8px;
}
.view-toggle-group .view-btn {
-unity-font: resource('Fonts/NanumGothic');
border-radius: 4px;
border-width: 0;
padding: 5px 16px;
margin: 0;
background-color: transparent;
font-size: 12px;
color: #94a3b8;
}
.view-toggle-group .view-btn:hover {
background-color: rgba(255, 255, 255, 0.08);
color: #d4d4d4;
}
.view-toggle-group .view-btn--active {
background-color: #6366f1;
color: white;
-unity-font-style: bold;
}
/* Action bar — bottom actions */
.browser-action-bar {
flex-direction: row;
align-items: center;
padding: 8px 12px;
background-color: rgba(0, 0, 0, 0.15);
border-top-width: 1px;
border-color: rgba(255, 255, 255, 0.08);
}
.browser-action-bar Label {
-unity-font: resource('Fonts/NanumGothic');
font-size: 12px;
margin: 0 6px;
}
.browser-action-bar Button {
-unity-font: resource('Fonts/NanumGothic');
border-radius: 4px;
border-width: 0;
padding: 6px 16px;
margin: 0 4px;
background-color: rgba(255, 255, 255, 0.08);
font-size: 12px;
}
.browser-action-bar Button:hover {
background-color: rgba(255, 255, 255, 0.15);
}
.browser-scroll {
flex-grow: 1;
}
.browser-empty {
padding: 24px;
-unity-text-align: middle-center;
color: #94a3b8;
font-size: 12px;
-unity-font-style: italic;
-unity-font: resource('Fonts/NanumGothic');
}
/* Grid View */
.grid-container {
flex-direction: row;
flex-wrap: wrap;
padding: 8px;
}
.grid-item {
width: 138px;
margin: 5px;
padding: 4px;
border-radius: 6px;
border-width: 2px;
border-color: transparent;
}
.grid-item:hover {
background-color: rgba(255, 255, 255, 0.08);
}
.grid-item--active {
background-color: rgba(99, 102, 241, 0.15);
border-color: #6366f1;
}
.grid-thumbnail {
width: 128px;
height: 128px;
border-radius: 4px;
background-color: rgba(0, 0, 0, 0.3);
overflow: hidden;
-unity-background-scale-mode: scale-and-crop;
}
.grid-thumbnail Image {
width: 100%;
height: 100%;
}
.grid-thumbnail .no-thumbnail {
width: 100%;
height: 100%;
-unity-text-align: middle-center;
color: #64748b;
font-size: 10px;
-unity-font: resource('Fonts/NanumGothic');
}
.grid-label {
-unity-text-align: upper-center;
font-size: 10px;
margin-top: 4px;
height: 28px;
overflow: hidden;
-unity-font: resource('Fonts/NanumGothic');
white-space: normal;
}
/* List View */
.list-row {
flex-direction: row;
align-items: center;
padding: 4px 8px;
border-bottom-width: 1px;
border-color: rgba(255, 255, 255, 0.04);
}
.list-row:hover {
background-color: rgba(255, 255, 255, 0.05);
}
.list-row--active {
background-color: rgba(99, 102, 241, 0.1);
}
.list-thumbnail {
width: 40px;
height: 40px;
border-radius: 4px;
background-color: rgba(0, 0, 0, 0.3);
margin-right: 8px;
overflow: hidden;
-unity-background-scale-mode: scale-and-crop;
}
.list-row-info {
flex-grow: 1;
}
.list-row-name {
-unity-font-style: bold;
font-size: 12px;
-unity-font: resource('Fonts/NanumGothic');
}
.list-row-name--active {
color: #818cf8;
}
.list-row-detail {
font-size: 10px;
color: #94a3b8;
-unity-font: resource('Fonts/NanumGothic');
}
.list-row-buttons {
flex-direction: row;
align-items: center;
}
.list-row-buttons Button {
-unity-font: resource('Fonts/NanumGothic');
border-radius: 3px;
border-width: 0;
padding: 3px 10px;
margin: 0 2px;
background-color: rgba(255, 255, 255, 0.08);
font-size: 11px;
}
.list-row-buttons Button:hover {
background-color: rgba(255, 255, 255, 0.15);
}
.list-row-buttons .btn-loaded {
background-color: rgba(99, 102, 241, 0.3);
color: #a5b4fc;
}
/* Badges */
.exclude-badge {
position: absolute;
right: 4px;
top: 4px;
background-color: rgba(239, 68, 68, 0.9);
color: white;
font-size: 9px;
-unity-font-style: bold;
padding: 1px 5px;
border-radius: 3px;
-unity-text-align: middle-center;
}
.folder-badge {
position: absolute;
bottom: 2px;
left: 4px;
right: 4px;
background-color: rgba(0, 0, 0, 0.75);
color: rgba(255, 255, 255, 0.9);
font-size: 9px;
-unity-text-align: middle-center;
padding: 1px 2px;
border-radius: 2px;
-unity-font: resource('Fonts/NanumGothic');
}
/* Category Foldout */
.category-foldout > Toggle {
background-color: rgba(0, 0, 0, 0.15);
border-radius: 4px;
margin: 4px 8px 0 8px;
padding: 4px 8px;
-unity-font-style: bold;
-unity-font: resource('Fonts/NanumGothicBold');
}
.category-foldout > Toggle:hover {
background-color: rgba(0, 0, 0, 0.25);
}
.category-foldout #unity-content {
padding: 0;
}
/* Status Bar */
.status-bar {
flex-direction: row;
align-items: center;
padding: 8px 12px;
background-color: rgba(0, 0, 0, 0.18);
border-top-width: 1px;
border-color: rgba(255, 255, 255, 0.08);
}
.status-bar Label {
-unity-font: resource('Fonts/NanumGothic');
font-size: 12px;
}
.status-bar .status-label {
-unity-font-style: bold;
color: #a5b4fc;
}
.status-bar .status-spacer {
flex-grow: 1;
}
.status-bar Button {
-unity-font: resource('Fonts/NanumGothic');
border-radius: 4px;
border-width: 0;
padding: 6px 16px;
margin: 0 4px;
background-color: rgba(255, 255, 255, 0.08);
font-size: 12px;
}
.status-bar Button:hover {
background-color: rgba(255, 255, 255, 0.15);
}
/* Lighting Options */
.lighting-options {
padding: 8px;
margin: 4px 8px;
background-color: rgba(0, 0, 0, 0.1);
border-radius: 6px;
border-width: 1px;
border-color: rgba(255, 255, 255, 0.06);
}
.lighting-options Toggle {
-unity-font: resource('Fonts/NanumGothic');
margin: 2px 0;
}
.lighting-options .sub-toggles {
padding-left: 20px;
}
.lighting-options .lighting-buttons {
flex-direction: row;
margin-top: 6px;
}
.lighting-options .lighting-buttons Button {
-unity-font: resource('Fonts/NanumGothic');
border-radius: 4px;
border-width: 0;
padding: 4px 12px;
margin: 0 4px 0 0;
flex-grow: 1;
}
.lighting-options .backup-info {
background-color: rgba(99, 102, 241, 0.1);
border-radius: 4px;
padding: 6px 8px;
margin-top: 4px;
font-size: 11px;
color: #a5b4fc;
-unity-font: resource('Fonts/NanumGothic');
}