Files
prautoblogger/assets/css/pipeline-settings.css
peptiderepo 2569b08862 feat: Pipeline Settings M3 — assembled-instructions preview + prompt version history/diff (#173, v0.25.0)
Read-only assembled-instructions preview (last-run rendered prompt) with Template-vs-Preview guardrail; per-prompt version history + LCS diff. Stage-list-driven. QA APPROVE df92ed3; CI green.

Agent-Session: pipeline-settings-m3-merge
2026-06-23 13:33:18 +07:00

380 lines
11 KiB
CSS

/**
* Pipeline Settings page styles.
*
* Design language: light mode, teal #1B8A92 accent, IBM Plex Mono for
* numerics/code, wp-admin card shadow pattern. Extends admin.css.
*
* @see admin/class-pipeline-settings-page.php — Enqueues this file.
*/
/* ── Layout ── */
.pab-pipeline-wrap { max-width: 1200px; }
.pab-pipeline-layout {
display: grid;
grid-template-columns: 200px 1fr;
gap: 0;
background: #fff;
border: 1px solid #e0e0e0;
border-radius: 6px;
box-shadow: 0 1px 4px rgba(0,0,0,.06);
margin-top: 16px;
overflow: hidden;
}
/* ── Step rail ── */
.pab-step-rail {
background: #f7f9fa;
border-right: 1px solid #e0e0e0;
padding: 8px 0;
}
.pab-step-btn {
display: flex;
align-items: center;
gap: 8px;
padding: 10px 14px;
text-decoration: none;
color: #3c434a;
font-size: 13px;
border-left: 3px solid transparent;
transition: background .12s, border-color .12s;
}
.pab-step-btn:hover {
background: #edf5f6;
color: #1B8A92;
border-left-color: #a8d8db;
}
.pab-step-btn--active {
background: #e6f4f5;
color: #1B8A92;
font-weight: 600;
border-left-color: #1B8A92;
}
.pab-step-num {
display: inline-flex;
align-items: center;
justify-content: center;
width: 22px;
height: 22px;
background: #1B8A92;
color: #fff;
border-radius: 50%;
font-size: 11px;
font-family: 'IBM Plex Mono', 'Courier New', monospace;
flex-shrink: 0;
}
.pab-step-btn:not(.pab-step-btn--active) .pab-step-num {
background: #c3cdd4;
}
.pab-step-icon { color: inherit; font-size: 16px !important; flex-shrink: 0; }
.pab-step-label { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* ── Step panel ── */
.pab-step-panel {
padding: 24px 28px;
overflow-y: auto;
}
.pab-panel-header { margin-bottom: 20px; border-bottom: 1px solid #e8ecef; padding-bottom: 14px; }
.pab-panel-header h2 { margin: 0 0 4px; font-size: 18px; color: #1d2327; }
.pab-panel-desc { margin: 4px 0 0; color: #646970; font-size: 13px; }
/* ── Sections ── */
.pab-section { margin-bottom: 28px; }
.pab-section:not(:last-child) { border-bottom: 1px solid #f0f0f1; padding-bottom: 24px; }
.pab-section-title {
font-size: 14px;
font-weight: 600;
color: #1d2327;
margin: 0 0 10px;
display: flex;
align-items: center;
gap: 8px;
}
/* ── Model picker section ── */
.pab-model-picker-wrap { margin-bottom: 10px; }
.pab-model-form { max-width: 520px; }
/* ── Prompt editors ── */
.pab-prompt-editor {
width: 100%;
font-family: 'IBM Plex Mono', 'Courier New', monospace;
font-size: 12px;
line-height: 1.6;
background: #fafbfc;
border: 1px solid #d0d5dd;
border-radius: 4px;
padding: 10px 12px;
resize: vertical;
box-sizing: border-box;
color: #1d2327;
}
.pab-prompt-editor:focus {
border-color: #1B8A92;
box-shadow: 0 0 0 2px rgba(27,138,146,.12);
outline: none;
}
.pab-prompt-form { max-width: 820px; }
.pab-prompt-actions { display: flex; gap: 8px; margin-top: 8px; align-items: center; }
.pab-btn-reset { color: #9b1c1c; border-color: #f5c6c6; }
.pab-btn-reset:hover { background: #fef2f2; border-color: #e53e3e; color: #9b1c1c; }
/* ── Params table ── */
.pab-params-table { border-collapse: collapse; font-size: 13px; }
.pab-params-table th, .pab-params-table td { text-align: left; padding: 4px 12px 4px 0; vertical-align: top; }
.pab-params-table th { color: #646970; font-weight: 500; min-width: 140px; }
.pab-mono {
font-family: 'IBM Plex Mono', 'Courier New', monospace;
font-size: 12px;
background: #f3f4f6;
padding: 2px 6px;
border-radius: 3px;
}
/* ── Badges ── */
.pab-version-badge {
display: inline-flex;
align-items: center;
background: #e6f4f5;
color: #1B8A92;
font-size: 11px;
font-family: 'IBM Plex Mono', 'Courier New', monospace;
font-weight: 600;
padding: 1px 6px;
border-radius: 10px;
border: 1px solid #b2e0e3;
}
.pab-badge { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; padding: 2px 8px; border-radius: 10px; font-weight: 500; }
.pab-badge-ok { background: #ecfdf5; color: #065f46; border: 1px solid #a7f3d0; }
.pab-badge-warn { background: #fffbeb; color: #92400e; border: 1px solid #fcd34d; }
/* ── Global context note ── */
.pab-global-context-note {
display: flex;
align-items: center;
gap: 8px;
background: #f0f9fa;
border: 1px solid #b2e0e3;
border-radius: 4px;
padding: 8px 14px;
margin: 12px 0 0;
font-size: 13px;
color: #1d4f52;
}
/* ── Misc ── */
.pab-field-note { color: #646970; font-size: 12px; margin: 6px 0 10px; }
.pab-version-meta { color: #646970; font-size: 12px; margin: -4px 0 8px; }
.pab-inactive-note {
display: flex;
align-items: center;
gap: 6px;
color: #a18a2f;
background: #fffde7;
border: 1px solid #ffe082;
border-radius: 4px;
padding: 6px 12px;
font-size: 12px;
margin-bottom: 8px;
}
/* ── M3: Template / Preview toggle ────────────────────────────────────────── */
.pab-tp-toggle-row {
display: flex;
align-items: center;
gap: 12px;
margin-bottom: 12px;
}
.pab-tp-toggle {
display: flex;
border: 1px solid #d0d5dd;
border-radius: 4px;
overflow: hidden;
flex-shrink: 0;
}
.pab-tp-btn {
padding: 6px 14px;
font-size: 12px;
font-weight: 600;
color: #646970;
background: #fff;
border: none;
border-right: 1px solid #d0d5dd;
cursor: pointer;
font-family: inherit;
transition: background .12s, color .12s;
}
.pab-tp-btn:last-child { border-right: none; }
.pab-tp-btn--active { background: #1B8A92; color: #fff; }
.pab-tp-btn:not(.pab-tp-btn--active):hover { background: #f5f9fa; color: #1d2327; }
.pab-tp-hint { font-size: 12px; color: #646970; }
/* ── M3: Prompt editor toolbar ─────────────────────────────────────────────── */
.pab-prompt-editor-wrap { margin-bottom: 8px; }
.pab-prompt-editor-toolbar {
display: flex;
align-items: center;
background: #f7f9fa;
border: 1px solid #d0d5dd;
border-bottom: none;
border-radius: 4px 4px 0 0;
padding: 6px 12px;
}
.pab-prompt-editor-title {
font-size: 11px;
font-family: 'IBM Plex Mono', 'Courier New', monospace;
font-weight: 600;
color: #646970;
}
.pab-prompt-form .pab-prompt-editor { border-radius: 0 0 4px 4px; }
/* ── M3: Preview block ─────────────────────────────────────────────────────── */
.pab-preview-block {
border: 1px solid #d0d5dd;
border-radius: 4px;
overflow: hidden;
background: #f7f9fa;
max-width: 820px;
margin-bottom: 8px;
}
.pab-preview-header {
display: flex;
align-items: center;
gap: 10px;
padding: 8px 14px;
background: #f0f4f5;
border-bottom: 1px solid #d0d5dd;
}
.pab-preview-label {
font-size: 11px;
font-weight: 600;
color: #646970;
text-transform: uppercase;
letter-spacing: .04em;
}
.pab-preview-readonly-badge {
font-size: 11px;
font-family: 'IBM Plex Mono', 'Courier New', monospace;
font-weight: 600;
color: #646970;
background: #fff;
border: 1px solid #d0d5dd;
padding: 1px 8px;
border-radius: 10px;
}
.pab-preview-source-note {
font-size: 11px;
color: #646970;
margin-left: auto;
}
.pab-preview-body {
padding: 14px;
font-family: 'IBM Plex Mono', 'Courier New', monospace;
font-size: 12px;
line-height: 1.7;
color: #3d3d3d;
background: #f7f9fa;
white-space: pre-wrap;
word-break: break-word;
margin: 0;
max-height: 400px;
overflow-y: auto;
}
.pab-preview-loading { color: #9ca3af; font-style: italic; }
.pab-preview-notice {
display: flex;
align-items: flex-start;
gap: 8px;
padding: 8px 14px;
background: #fffbeb;
border-top: 1px solid #fde68a;
font-size: 12px;
color: #78350f;
}
.pab-preview-notice .dashicons { font-size: 14px; flex-shrink: 0; margin-top: 1px; color: #92400e; }
/* ── M3: Version history accordion ─────────────────────────────────────────── */
.pab-history-accordion { margin-top: 12px; }
.pab-history-trigger {
display: flex;
align-items: center;
gap: 6px;
background: none;
border: none;
font-size: 12px;
font-weight: 600;
color: #646970;
cursor: pointer;
padding: 4px 0;
font-family: inherit;
}
.pab-history-trigger:hover { color: #1B8A92; }
.pab-history-arrow { font-size: 14px !important; transition: transform .15s; }
.pab-history-body {
margin-top: 6px;
border: 1px solid #e0e0e0;
border-radius: 4px;
overflow: hidden;
}
.pab-version-row {
display: flex;
align-items: center;
gap: 10px;
padding: 9px 14px;
border-bottom: 1px solid #f0f0f1;
font-size: 12px;
}
.pab-version-row:last-child { border-bottom: none; }
.pab-version-num {
font-family: 'IBM Plex Mono', 'Courier New', monospace;
font-weight: 600;
color: #1B8A92;
min-width: 28px;
}
.pab-version-author { color: #1d2327; font-weight: 500; }
.pab-version-date { font-family: 'IBM Plex Mono', 'Courier New', monospace; font-size: 11px; color: #646970; }
.pab-version-current { margin-left: 4px; }
/* ── M3: Diff panel ─────────────────────────────────────────────────────────── */
.pab-diff-panel {
margin-top: 12px;
background: #f7f9fa;
border: 1px solid #e0e0e0;
border-radius: 4px;
overflow: hidden;
max-width: 820px;
}
.pab-diff-header {
font-size: 12px;
font-weight: 600;
color: #1d2327;
padding: 8px 14px;
border-bottom: 1px solid #e0e0e0;
background: #f0f4f5;
font-family: 'IBM Plex Mono', 'Courier New', monospace;
}
.pab-diff-block {
font-family: 'IBM Plex Mono', 'Courier New', monospace;
font-size: 12px;
line-height: 1.5;
padding: 4px 0;
max-height: 360px;
overflow-y: auto;
}
.pab-diff-line {
display: block;
padding: 1px 14px;
white-space: pre-wrap;
word-break: break-word;
}
.pab-diff-line--added { background: #ecfdf5; color: #065f46; }
.pab-diff-line--removed { background: #fef2f2; color: #9b1c1c; }
.pab-diff-line--context { color: #3d3d3d; }
.pab-diff-line--omitted { color: #9ca3af; font-style: italic; }
.pab-diff-close {
display: block;
margin: 8px 14px 10px;
}