左: レイアウトエディタ / 中: 設定パネル(プロンプト・生成対象・モデル・サンプラーの上部タブ) / 右: 生成・結果。 選択中の設定タブはlocalStorageに保存。 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
217 lines
5.3 KiB
CSS
217 lines
5.3 KiB
CSS
/* ComfyUI連携スタイル (Nanobananaタブと共用) */
|
|
|
|
/* 接続設定 & ヘッダー */
|
|
.comfyui-header-row {
|
|
display: flex;
|
|
gap: 15px;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
padding-bottom: 15px;
|
|
border-bottom: 1px solid var(--border-color);
|
|
}
|
|
|
|
.comfyui-status {
|
|
padding: 4px 10px;
|
|
border-radius: 12px;
|
|
font-size: 13px;
|
|
font-weight: bold;
|
|
}
|
|
|
|
.comfyui-status.connected {
|
|
background-color: rgba(40, 167, 69, 0.2);
|
|
color: #28a745;
|
|
}
|
|
|
|
.comfyui-status.disconnected {
|
|
background-color: rgba(220, 53, 69, 0.2);
|
|
color: #dc3545;
|
|
}
|
|
|
|
.comfyui-url-group {
|
|
display: flex;
|
|
gap: 5px;
|
|
align-items: center;
|
|
}
|
|
|
|
/* メインエディタエリア */
|
|
.comfyui-editor-layout {
|
|
display: flex;
|
|
gap: 20px;
|
|
flex: 1;
|
|
min-height: 400px;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.comfyui-left-col {
|
|
flex: 1;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 10px;
|
|
overflow-y: auto;
|
|
padding-right: 10px;
|
|
}
|
|
|
|
.comfyui-right-col {
|
|
width: 320px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 15px;
|
|
border-left: 1px solid var(--border-color);
|
|
padding-left: 20px;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
/* サブタブ */
|
|
.comfyui-subtab-nav {
|
|
display: flex;
|
|
gap: 2px;
|
|
border-bottom: 1px solid var(--border-color);
|
|
}
|
|
|
|
.comfyui-subtab-btn {
|
|
background: none;
|
|
border: none;
|
|
padding: 8px 16px;
|
|
color: var(--text-color);
|
|
cursor: pointer;
|
|
opacity: 0.6;
|
|
border-bottom: 2px solid transparent;
|
|
}
|
|
|
|
.comfyui-subtab-btn:hover {
|
|
opacity: 1;
|
|
background-color: var(--hover-color);
|
|
}
|
|
|
|
.comfyui-subtab-btn.active {
|
|
opacity: 1;
|
|
border-bottom-color: var(--primary-color);
|
|
font-weight: bold;
|
|
}
|
|
|
|
.comfyui-subtab-content {
|
|
padding-top: 15px;
|
|
}
|
|
|
|
.comfyui-input {
|
|
width: 100%;
|
|
box-sizing: border-box;
|
|
padding: 4px 8px;
|
|
font-size: 12px;
|
|
border: 1px solid var(--border-color);
|
|
border-radius: 4px;
|
|
background: var(--bg-secondary, #1a1a1a);
|
|
color: var(--text-primary, #eee);
|
|
}
|
|
|
|
/* フィールドスタイル */
|
|
.comfyui-field-group {
|
|
background-color: rgba(255, 255, 255, 0.03);
|
|
padding: 12px;
|
|
border-radius: 6px;
|
|
margin-bottom: 15px;
|
|
border: 1px solid var(--border-color);
|
|
}
|
|
|
|
.comfyui-group-title {
|
|
margin: 0 0 10px 0;
|
|
font-size: 13px;
|
|
color: #aaa;
|
|
border-bottom: 1px solid rgba(255, 255, 255, 0.05);
|
|
padding-bottom: 5px;
|
|
}
|
|
|
|
.comfyui-field {
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.comfyui-field:last-child {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.comfyui-field-inline {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
}
|
|
|
|
.comfyui-label {
|
|
display: block;
|
|
font-size: 13px;
|
|
margin-bottom: 5px;
|
|
font-weight: bold;
|
|
}
|
|
|
|
.comfyui-label.positive { color: #88cc88; }
|
|
.comfyui-label.negative { color: #cc8888; }
|
|
|
|
.comfyui-select, .comfyui-number-input, .comfyui-text-input {
|
|
width: 100%;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
/* 生成プレビュー */
|
|
.comfyui-generate-panel {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 10px;
|
|
}
|
|
|
|
.comfyui-progress-container {
|
|
text-align: center;
|
|
}
|
|
|
|
.comfyui-result-container {
|
|
flex: 1;
|
|
background-color: #000;
|
|
border: 1px solid var(--border-color);
|
|
border-radius: 4px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
overflow: hidden;
|
|
position: relative;
|
|
min-height: 250px;
|
|
}
|
|
|
|
.comfyui-seed-panel {
|
|
background-color: rgba(255, 255, 255, 0.05);
|
|
padding: 10px;
|
|
border-radius: 4px;
|
|
margin-top: 10px;
|
|
border: 1px solid var(--border-color);
|
|
}
|
|
|
|
/* ── MOSS-Image タブ: レイアウトエディタ ── */
|
|
.moss-type-radio { display: inline-flex; align-items: center; gap: 3px; font-size: 12px; cursor: pointer; }
|
|
.moss-box { position: absolute; box-sizing: border-box; border: 2px solid var(--moss-c, #4aa3ff); background: color-mix(in srgb, var(--moss-c, #4aa3ff) 14%, transparent); cursor: move; overflow: visible; }
|
|
.moss-box[data-type="character"] { --moss-c: #4caf50; }
|
|
.moss-box[data-type="text"] { --moss-c: #ff9800; }
|
|
.moss-box.selected { border-width: 3px; box-shadow: 0 0 0 1px #fff inset; }
|
|
.moss-box .moss-badge { position: absolute; left: -2px; top: -2px; min-width: 16px; padding: 0 3px; font-size: 10px; line-height: 15px; background: var(--moss-c, #4aa3ff); color: #000; font-weight: 700; pointer-events: none; }
|
|
.moss-box .moss-label { position: absolute; left: 3px; top: 15px; right: 3px; bottom: 2px; overflow: hidden; font-size: 10px; color: #ddd; pointer-events: none; white-space: pre-wrap; word-break: break-all; }
|
|
.moss-box .moss-handle { position: absolute; width: 10px; height: 10px; background: #fff; border: 1px solid #000; display: none; }
|
|
.moss-box.selected .moss-handle { display: block; }
|
|
.moss-handle[data-h="nw"] { left: -6px; top: -6px; cursor: nwse-resize; }
|
|
.moss-handle[data-h="ne"] { right: -6px; top: -6px; cursor: nesw-resize; }
|
|
.moss-handle[data-h="sw"] { left: -6px; bottom: -6px; cursor: nesw-resize; }
|
|
.moss-handle[data-h="se"] { right: -6px; bottom: -6px; cursor: nwse-resize; }
|
|
.moss-panel-row { display: flex; gap: 6px; align-items: flex-start; margin-bottom: 6px; }
|
|
.moss-panel-row textarea { flex: 1; background: #111; color: #fff; box-sizing: border-box; }
|
|
|
|
/* ── MOSS-Image タブ: 3カラム(レイアウト | 設定 | 生成・結果) ── */
|
|
.moss-settings-col {
|
|
width: 360px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 10px;
|
|
overflow-y: auto;
|
|
border-left: 1px solid var(--border-color);
|
|
padding-left: 20px;
|
|
flex-shrink: 0;
|
|
}
|
|
@media (max-width: 1500px) {
|
|
#moss-tab .comfyui-editor-layout { flex-wrap: wrap; overflow: auto; }
|
|
#moss-tab .moss-layout-col { flex: 1 1 100%; }
|
|
}
|