fix: replace text-secondary with text-muted-foreground in branching components
In Tailwind v4, text-secondary resolves to --color-secondary (#2e3140), a dark surface color — NOT --color-text-secondary (#848b9b). This made all secondary text invisible on dark backgrounds. The correct class is text-muted-foreground which maps to #848b9b. This matches the pattern used by existing FlowPilot components. Also reverts the unnecessary index.css variable bump from prior commit. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -19,7 +19,7 @@ export function BranchRevivalCard({ branch, evidenceSource }: BranchRevivalCardP
|
|||||||
<p className="text-xs text-primary mt-1">{branch.evidence_description}</p>
|
<p className="text-xs text-primary mt-1">{branch.evidence_description}</p>
|
||||||
)}
|
)}
|
||||||
{evidenceSource && (
|
{evidenceSource && (
|
||||||
<p className="text-xs text-secondary mt-0.5">Evidence from: {evidenceSource.label}</p>
|
<p className="text-xs text-muted-foreground mt-0.5">Evidence from: {evidenceSource.label}</p>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ export function HandoffModal({ onClose, onSubmit }: HandoffModalProps) {
|
|||||||
'flex-1 rounded-[5px] border px-3 py-2 text-sm font-medium transition-colors',
|
'flex-1 rounded-[5px] border px-3 py-2 text-sm font-medium transition-colors',
|
||||||
intent === 'park'
|
intent === 'park'
|
||||||
? 'border-accent bg-accent-dim text-accent-text'
|
? 'border-accent bg-accent-dim text-accent-text'
|
||||||
: 'border-default bg-transparent text-secondary hover:bg-elevated hover:text-primary'
|
: 'border-default bg-transparent text-muted-foreground hover:bg-elevated hover:text-primary'
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
Park
|
Park
|
||||||
@@ -91,13 +91,13 @@ export function HandoffModal({ onClose, onSubmit }: HandoffModalProps) {
|
|||||||
'flex-1 rounded-[5px] border px-3 py-2 text-sm font-medium transition-colors',
|
'flex-1 rounded-[5px] border px-3 py-2 text-sm font-medium transition-colors',
|
||||||
intent === 'escalate'
|
intent === 'escalate'
|
||||||
? 'border-accent bg-accent-dim text-accent-text'
|
? 'border-accent bg-accent-dim text-accent-text'
|
||||||
: 'border-default bg-transparent text-secondary hover:bg-elevated hover:text-primary'
|
: 'border-default bg-transparent text-muted-foreground hover:bg-elevated hover:text-primary'
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
Escalate
|
Escalate
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<p className="text-xs text-secondary">
|
<p className="text-xs text-muted-foreground">
|
||||||
{intent === 'park'
|
{intent === 'park'
|
||||||
? 'Park this session to resume later or hand to another engineer.'
|
? 'Park this session to resume later or hand to another engineer.'
|
||||||
: 'Escalate to a senior engineer with full context and branch history.'}
|
: 'Escalate to a senior engineer with full context and branch history.'}
|
||||||
@@ -148,7 +148,7 @@ export function HandoffModal({ onClose, onSubmit }: HandoffModalProps) {
|
|||||||
type="button"
|
type="button"
|
||||||
onClick={onClose}
|
onClick={onClose}
|
||||||
disabled={isSubmitting}
|
disabled={isSubmitting}
|
||||||
className="rounded-[5px] border border-default px-4 py-2 text-sm text-secondary hover:bg-elevated hover:text-primary transition-colors disabled:opacity-50"
|
className="rounded-[5px] border border-default px-4 py-2 text-sm text-muted-foreground hover:bg-elevated hover:text-primary transition-colors disabled:opacity-50"
|
||||||
>
|
>
|
||||||
Cancel
|
Cancel
|
||||||
</button>
|
</button>
|
||||||
|
|||||||
@@ -130,7 +130,7 @@ export function ResolutionOutputPanel({ sessionId, className }: ResolutionOutput
|
|||||||
'flex items-center gap-1.5 px-3 py-2.5 text-xs font-medium transition-colors border-b-2 -mb-px',
|
'flex items-center gap-1.5 px-3 py-2.5 text-xs font-medium transition-colors border-b-2 -mb-px',
|
||||||
isActive
|
isActive
|
||||||
? 'border-accent text-accent-text'
|
? 'border-accent text-accent-text'
|
||||||
: 'border-transparent text-secondary hover:text-primary hover:border-hover'
|
: 'border-transparent text-muted-foreground hover:text-primary hover:border-hover'
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
<Icon size={13} />
|
<Icon size={13} />
|
||||||
@@ -184,7 +184,7 @@ export function ResolutionOutputPanel({ sessionId, className }: ResolutionOutput
|
|||||||
type="button"
|
type="button"
|
||||||
onClick={handleEditToggle}
|
onClick={handleEditToggle}
|
||||||
disabled={isSaving}
|
disabled={isSaving}
|
||||||
className="rounded-[5px] border border-default px-3 py-1.5 text-xs text-secondary hover:bg-elevated hover:text-primary transition-colors disabled:opacity-50"
|
className="rounded-[5px] border border-default px-3 py-1.5 text-xs text-muted-foreground hover:bg-elevated hover:text-primary transition-colors disabled:opacity-50"
|
||||||
>
|
>
|
||||||
Cancel
|
Cancel
|
||||||
</button>
|
</button>
|
||||||
@@ -196,7 +196,7 @@ export function ResolutionOutputPanel({ sessionId, className }: ResolutionOutput
|
|||||||
onClick={handleEditToggle}
|
onClick={handleEditToggle}
|
||||||
disabled={!activeOutput}
|
disabled={!activeOutput}
|
||||||
className={cn(
|
className={cn(
|
||||||
'flex items-center gap-1.5 rounded-[5px] border border-default px-3 py-1.5 text-xs text-secondary',
|
'flex items-center gap-1.5 rounded-[5px] border border-default px-3 py-1.5 text-xs text-muted-foreground',
|
||||||
'hover:bg-elevated hover:text-primary transition-colors disabled:opacity-40'
|
'hover:bg-elevated hover:text-primary transition-colors disabled:opacity-40'
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
@@ -211,7 +211,7 @@ export function ResolutionOutputPanel({ sessionId, className }: ResolutionOutput
|
|||||||
'flex items-center gap-1.5 rounded-[5px] border border-default px-3 py-1.5 text-xs transition-colors disabled:opacity-40',
|
'flex items-center gap-1.5 rounded-[5px] border border-default px-3 py-1.5 text-xs transition-colors disabled:opacity-40',
|
||||||
copied
|
copied
|
||||||
? 'border-success text-success'
|
? 'border-success text-success'
|
||||||
: 'text-secondary hover:bg-elevated hover:text-primary'
|
: 'text-muted-foreground hover:bg-elevated hover:text-primary'
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
{copied ? <Check size={12} /> : <Copy size={12} />}
|
{copied ? <Check size={12} /> : <Copy size={12} />}
|
||||||
@@ -225,7 +225,7 @@ export function ResolutionOutputPanel({ sessionId, className }: ResolutionOutput
|
|||||||
'flex items-center gap-1.5 rounded-[5px] border border-default px-3 py-1.5 text-xs transition-colors disabled:opacity-40',
|
'flex items-center gap-1.5 rounded-[5px] border border-default px-3 py-1.5 text-xs transition-colors disabled:opacity-40',
|
||||||
activeOutput?.status === 'pushed'
|
activeOutput?.status === 'pushed'
|
||||||
? 'border-success text-success'
|
? 'border-success text-success'
|
||||||
: 'text-secondary hover:bg-elevated hover:text-primary'
|
: 'text-muted-foreground hover:bg-elevated hover:text-primary'
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
<Send size={12} />
|
<Send size={12} />
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
/* ── Text colors ───────────────────────────────── */
|
/* ── Text colors ───────────────────────────────── */
|
||||||
--color-text-heading: #f0f2f5;
|
--color-text-heading: #f0f2f5;
|
||||||
--color-text-primary: #e2e5eb;
|
--color-text-primary: #e2e5eb;
|
||||||
--color-text-secondary: #a0a7b8;
|
--color-text-secondary: #848b9b;
|
||||||
--color-text-muted: #4f5666;
|
--color-text-muted: #4f5666;
|
||||||
--color-text-rail-label: #e2e5eb;
|
--color-text-rail-label: #e2e5eb;
|
||||||
|
|
||||||
@@ -54,7 +54,7 @@
|
|||||||
--color-secondary: #2e3140;
|
--color-secondary: #2e3140;
|
||||||
--color-secondary-foreground: #e2e5eb;
|
--color-secondary-foreground: #e2e5eb;
|
||||||
--color-muted: #2e3140;
|
--color-muted: #2e3140;
|
||||||
--color-muted-foreground: #a0a7b8;
|
--color-muted-foreground: #848b9b;
|
||||||
--color-accent-tw: #2e3140;
|
--color-accent-tw: #2e3140;
|
||||||
--color-accent-foreground: #e2e5eb;
|
--color-accent-foreground: #e2e5eb;
|
||||||
--color-destructive: #f87171;
|
--color-destructive: #f87171;
|
||||||
|
|||||||
@@ -324,7 +324,7 @@ function MockResolutionPanel({ outputs }: { outputs: ResolutionOutputResponse[]
|
|||||||
'flex items-center gap-1.5 px-3 py-2.5 text-xs font-medium transition-colors border-b-2 -mb-px',
|
'flex items-center gap-1.5 px-3 py-2.5 text-xs font-medium transition-colors border-b-2 -mb-px',
|
||||||
isActive
|
isActive
|
||||||
? 'border-accent text-accent-text'
|
? 'border-accent text-accent-text'
|
||||||
: 'border-transparent text-secondary hover:text-primary hover:border-hover'
|
: 'border-transparent text-muted-foreground hover:text-primary hover:border-hover'
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
<Icon size={13} />
|
<Icon size={13} />
|
||||||
@@ -371,7 +371,7 @@ function MockResolutionPanel({ outputs }: { outputs: ResolutionOutputResponse[]
|
|||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
onClick={handleEditToggle}
|
onClick={handleEditToggle}
|
||||||
className="rounded-[5px] border border-default px-3 py-1.5 text-xs text-secondary hover:bg-elevated hover:text-primary transition-colors"
|
className="rounded-[5px] border border-default px-3 py-1.5 text-xs text-muted-foreground hover:bg-elevated hover:text-primary transition-colors"
|
||||||
>
|
>
|
||||||
Cancel
|
Cancel
|
||||||
</button>
|
</button>
|
||||||
@@ -382,7 +382,7 @@ function MockResolutionPanel({ outputs }: { outputs: ResolutionOutputResponse[]
|
|||||||
type="button"
|
type="button"
|
||||||
onClick={handleEditToggle}
|
onClick={handleEditToggle}
|
||||||
disabled={!activeOutput}
|
disabled={!activeOutput}
|
||||||
className="flex items-center gap-1.5 rounded-[5px] border border-default px-3 py-1.5 text-xs text-secondary hover:bg-elevated hover:text-primary transition-colors disabled:opacity-40"
|
className="flex items-center gap-1.5 rounded-[5px] border border-default px-3 py-1.5 text-xs text-muted-foreground hover:bg-elevated hover:text-primary transition-colors disabled:opacity-40"
|
||||||
>
|
>
|
||||||
<Pencil size={12} /> Edit
|
<Pencil size={12} /> Edit
|
||||||
</button>
|
</button>
|
||||||
@@ -392,7 +392,7 @@ function MockResolutionPanel({ outputs }: { outputs: ResolutionOutputResponse[]
|
|||||||
disabled={!activeOutput}
|
disabled={!activeOutput}
|
||||||
className={cn(
|
className={cn(
|
||||||
'flex items-center gap-1.5 rounded-[5px] border border-default px-3 py-1.5 text-xs transition-colors disabled:opacity-40',
|
'flex items-center gap-1.5 rounded-[5px] border border-default px-3 py-1.5 text-xs transition-colors disabled:opacity-40',
|
||||||
copied ? 'border-success text-success' : 'text-secondary hover:bg-elevated hover:text-primary'
|
copied ? 'border-success text-success' : 'text-muted-foreground hover:bg-elevated hover:text-primary'
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
{copied ? <Check size={12} /> : <Copy size={12} />}
|
{copied ? <Check size={12} /> : <Copy size={12} />}
|
||||||
@@ -402,7 +402,7 @@ function MockResolutionPanel({ outputs }: { outputs: ResolutionOutputResponse[]
|
|||||||
type="button"
|
type="button"
|
||||||
onClick={() => toast.success('Pushed to PSA (mock)')}
|
onClick={() => toast.success('Pushed to PSA (mock)')}
|
||||||
disabled={!activeOutput}
|
disabled={!activeOutput}
|
||||||
className="flex items-center gap-1.5 rounded-[5px] border border-default px-3 py-1.5 text-xs text-secondary hover:bg-elevated hover:text-primary transition-colors disabled:opacity-40"
|
className="flex items-center gap-1.5 rounded-[5px] border border-default px-3 py-1.5 text-xs text-muted-foreground hover:bg-elevated hover:text-primary transition-colors disabled:opacity-40"
|
||||||
>
|
>
|
||||||
<Send size={12} /> Push to PSA
|
<Send size={12} /> Push to PSA
|
||||||
</button>
|
</button>
|
||||||
@@ -469,7 +469,7 @@ export default function DevBranchingPage() {
|
|||||||
toBranch={activeBranch}
|
toBranch={activeBranch}
|
||||||
/>
|
/>
|
||||||
) : (
|
) : (
|
||||||
<p className="text-xs text-secondary">Click a branch in the sidebar to see the transition bar.</p>
|
<p className="text-xs text-muted-foreground">Click a branch in the sidebar to see the transition bar.</p>
|
||||||
)}
|
)}
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
@@ -519,34 +519,34 @@ export default function DevBranchingPage() {
|
|||||||
<div className="bg-card border border-default rounded-lg p-4 text-sm">
|
<div className="bg-card border border-default rounded-lg p-4 text-sm">
|
||||||
<div className="grid grid-cols-2 gap-2">
|
<div className="grid grid-cols-2 gap-2">
|
||||||
<div>
|
<div>
|
||||||
<span className="text-secondary">Label:</span>{' '}
|
<span className="text-muted-foreground">Label:</span>{' '}
|
||||||
<span className="text-heading">{activeBranch.label}</span>
|
<span className="text-heading">{activeBranch.label}</span>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<span className="text-secondary">Status:</span>{' '}
|
<span className="text-muted-foreground">Status:</span>{' '}
|
||||||
<span className="text-heading">{activeBranch.status}</span>
|
<span className="text-heading">{activeBranch.status}</span>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<span className="text-secondary">Steps:</span>{' '}
|
<span className="text-muted-foreground">Steps:</span>{' '}
|
||||||
<span className="text-heading">{activeBranch.step_count}</span>
|
<span className="text-heading">{activeBranch.step_count}</span>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<span className="text-secondary">Order:</span>{' '}
|
<span className="text-muted-foreground">Order:</span>{' '}
|
||||||
<span className="text-heading">{activeBranch.branch_order}</span>
|
<span className="text-heading">{activeBranch.branch_order}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{activeBranch.status_reason && (
|
{activeBranch.status_reason && (
|
||||||
<div className="mt-2 pt-2 border-t border-default">
|
<div className="mt-2 pt-2 border-t border-default">
|
||||||
<span className="text-secondary">Reason:</span>{' '}
|
<span className="text-muted-foreground">Reason:</span>{' '}
|
||||||
<span className="text-primary">{activeBranch.status_reason}</span>
|
<span className="text-primary">{activeBranch.status_reason}</span>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
{activeBranch.context_summary && (
|
{activeBranch.context_summary && (
|
||||||
<div className="mt-2 pt-2 border-t border-default">
|
<div className="mt-2 pt-2 border-t border-default">
|
||||||
<span className="text-secondary">Tried:</span>{' '}
|
<span className="text-muted-foreground">Tried:</span>{' '}
|
||||||
<span className="text-primary">{activeBranch.context_summary.tried.join(', ')}</span>
|
<span className="text-primary">{activeBranch.context_summary.tried.join(', ')}</span>
|
||||||
<br />
|
<br />
|
||||||
<span className="text-secondary">Concluded:</span>{' '}
|
<span className="text-muted-foreground">Concluded:</span>{' '}
|
||||||
<span className="text-primary">{activeBranch.context_summary.concluded}</span>
|
<span className="text-primary">{activeBranch.context_summary.concluded}</span>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
@@ -570,7 +570,7 @@ export default function DevBranchingPage() {
|
|||||||
|
|
||||||
function SectionLabel({ children }: { children: React.ReactNode }) {
|
function SectionLabel({ children }: { children: React.ReactNode }) {
|
||||||
return (
|
return (
|
||||||
<span className="text-[10px] font-semibold uppercase tracking-wider text-secondary mb-2 block">
|
<span className="text-[10px] font-semibold uppercase tracking-wider text-muted-foreground mb-2 block">
|
||||||
{children}
|
{children}
|
||||||
</span>
|
</span>
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ export default function SessionQueuePage() {
|
|||||||
<span className="text-sm font-medium text-heading">{item.problem_summary || 'Untitled session'}</span>
|
<span className="text-sm font-medium text-heading">{item.problem_summary || 'Untitled session'}</span>
|
||||||
{item.priority === 'elevated' && <span className="text-[10px] px-1.5 py-0.5 rounded-full bg-danger-dim text-danger">Elevated</span>}
|
{item.priority === 'elevated' && <span className="text-[10px] px-1.5 py-0.5 rounded-full bg-danger-dim text-danger">Elevated</span>}
|
||||||
</div>
|
</div>
|
||||||
{item.engineer_notes && <p className="text-xs text-secondary">{item.engineer_notes}</p>}
|
{item.engineer_notes && <p className="text-xs text-muted-foreground">{item.engineer_notes}</p>}
|
||||||
<div className="flex items-center gap-2 mt-1 text-xs text-muted">
|
<div className="flex items-center gap-2 mt-1 text-xs text-muted">
|
||||||
<Clock size={10} />
|
<Clock size={10} />
|
||||||
<span>{new Date(item.created_at).toLocaleString()}</span>
|
<span>{new Date(item.created_at).toLocaleString()}</span>
|
||||||
|
|||||||
Reference in New Issue
Block a user