.asset-browser { display: flex; flex-direction: column; height: 100%; background: var(--color-bg-base); border-top: 1px solid var(--color-border-default); container-type: inline-size; container-name: asset-browser; } .asset-browser-header { padding: 12px 15px; background: #252526; border-bottom: 1px solid #333; } .asset-browser-header h3 { margin: 0; font-size: var(--font-size-md); font-weight: 600; color: #cccccc; } .view-mode-buttons { display: flex; gap: 0; margin-left: auto; } .view-mode-btn { padding: 6px 12px; background: transparent; border: 1px solid #3e3e3e; color: #cccccc; cursor: pointer; transition: all 0.2s ease; display: flex; align-items: center; justify-content: center; gap: 6px; font-size: 12px; font-weight: normal; border-radius: 0; } .view-mode-btn:first-child { border-top-left-radius: 3px; border-bottom-left-radius: 3px; border-right: none; } .view-mode-btn:last-child { border-top-right-radius: 3px; border-bottom-right-radius: 3px; } .view-mode-btn:hover:not(.active) { background: #2a2d2e; } .view-mode-btn.active { background: #0e639c; border-color: #0e639c; color: #ffffff; font-weight: 500; } /* 响应式:小宽度时只显示图标 - 使用容器查询 */ @container asset-browser (max-width: 400px) { .view-mode-text { display: none; } .view-mode-btn { padding: 6px 8px; } } .asset-browser-content { flex: 1; overflow: hidden; display: flex; flex-direction: column; } .asset-browser-tree, .asset-browser-tree-only { height: 100%; overflow: hidden; display: flex; flex-direction: column; } .asset-browser-list { height: 100%; overflow: hidden; display: flex; flex-direction: column; container-type: inline-size; container-name: asset-list-container; } .asset-browser-breadcrumb { padding: 8px 12px; background: #2d2d30; border-bottom: 1px solid #3e3e3e; display: flex; align-items: center; flex-wrap: wrap; gap: 4px; font-size: var(--font-size-sm); min-height: 32px; } .breadcrumb-item { color: #cccccc; cursor: pointer; padding: 2px 6px; border-radius: 3px; transition: all 0.2s ease; user-select: none; } .breadcrumb-item:hover { background: #3e3e3e; color: #ffffff; } .breadcrumb-item:active { background: #094771; } .breadcrumb-separator { color: #858585; pointer-events: none; } .asset-browser-toolbar { padding: 8px; background: #252526; border-bottom: 1px solid #3e3e3e; } .asset-search { width: 100%; padding: 6px 10px; background: #3c3c3c; border: 1px solid #3e3e3e; border-radius: 3px; color: #cccccc; font-size: var(--font-size-base); outline: none; } .asset-search:focus { border-color: #007acc; background: #3e3e3e; } .asset-search::placeholder { color: #858585; } .asset-browser-loading, .asset-browser-empty { display: flex; align-items: center; justify-content: center; height: 200px; color: #858585; font-size: var(--font-size-base); } .asset-list { flex: 1; display: grid; grid-template-columns: repeat(auto-fill, minmax(80px, 1fr)); gap: 8px; padding: 10px; overflow-y: auto; align-content: start; } /* 容器查询:根据容器宽度调整布局 */ @container asset-list-container (max-width: 400px) { .asset-list { grid-template-columns: repeat(auto-fill, minmax(70px, 1fr)); gap: 6px; } } @container asset-list-container (max-width: 250px) { .asset-list { grid-template-columns: repeat(auto-fill, minmax(60px, 1fr)); gap: 4px; padding: 6px; } } @container asset-list-container (max-width: 150px) { .asset-list { grid-template-columns: 1fr; gap: 2px; } .asset-item { flex-direction: row; justify-content: flex-start; padding: 6px 8px; gap: 8px; } .asset-icon { width: 24px; height: 24px; margin-bottom: 0; } .asset-name { text-align: left; margin-bottom: 0; } .asset-type { display: none; } } /* 中等窄度优化 */ @container asset-list-container (max-width: 250px) { .asset-item { padding: 8px 6px; } .asset-icon { width: 36px; height: 36px; } .asset-name { font-size: 11px; } .asset-type { font-size: 9px; } } .asset-item { display: flex; flex-direction: column; align-items: center; padding: 12px 8px; border-radius: 4px; cursor: pointer; transition: background-color 0.2s ease; user-select: none; } .asset-item:hover { background: #2a2d2e; } .asset-item.selected { background: #094771; } .asset-item.selected:hover { background: #0e6caa; } .asset-icon { width: 48px; height: 48px; color: #cccccc; margin-bottom: 8px; stroke-width: 1.5; } .asset-icon.folder { color: #dcb67a; } /* 系统文件夹特殊标记 */ .asset-icon.system-folder { filter: drop-shadow(0 0 3px rgba(66, 165, 245, 0.5)); animation: subtle-pulse 3s ease-in-out infinite; } @keyframes subtle-pulse { 0%, 100% { filter: drop-shadow(0 0 3px rgba(66, 165, 245, 0.5)); } 50% { filter: drop-shadow(0 0 6px rgba(66, 165, 245, 0.7)); } } .asset-info { flex: 1; width: 100%; display: flex; flex-direction: column; align-items: center; } .asset-name { font-size: var(--font-size-sm); color: #cccccc; text-align: center; width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin-bottom: 4px; } .asset-type { font-size: var(--font-size-xs); color: #858585; text-transform: uppercase; } .asset-browser-list, .asset-list { overflow-y: auto; } .asset-browser-list::-webkit-scrollbar, .asset-list::-webkit-scrollbar, .file-tree::-webkit-scrollbar { width: 10px; } .asset-browser-list::-webkit-scrollbar-track, .asset-list::-webkit-scrollbar-track, .file-tree::-webkit-scrollbar-track { background: #1e1e1e; } .asset-browser-list::-webkit-scrollbar-thumb, .asset-list::-webkit-scrollbar-thumb, .file-tree::-webkit-scrollbar-thumb { background: #424242; border-radius: 5px; } .asset-browser-list::-webkit-scrollbar-thumb:hover, .asset-list::-webkit-scrollbar-thumb:hover, .file-tree::-webkit-scrollbar-thumb:hover { background: #4e4e4e; }