Files
Claude-Code-Workflow/ccw/src/templates/dashboard-css/04-lite-tasks.css
catlog22 edef937822 feat(v6.1.4): dashboard lite-fix enhancements and workflow docs update
- fix(dashboard): enhance lite-fix session parsing and plan rendering
- docs(workflow): add task status update command example for ccw dashboard

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 22:32:39 +08:00

1172 lines
21 KiB
CSS

/* ===================================
Lite Task Detail Page Additions
=================================== */
/* Path Tags */
.path-tags {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
}
.path-tag {
padding: 0.25rem 0.5rem;
background: hsl(var(--muted));
border-radius: 0.25rem;
font-family: var(--font-mono);
font-size: 0.8rem;
color: hsl(var(--foreground));
}
/* JSON Content */
.json-content {
background: hsl(var(--muted));
padding: 1rem;
border-radius: 0.5rem;
overflow-x: auto;
font-size: 0.75rem;
line-height: 1.6;
color: hsl(var(--foreground));
max-height: 500px;
overflow-y: auto;
white-space: pre-wrap;
word-break: break-word;
}
/* Button View JSON */
.btn-view-json {
padding: 0.25rem 0.5rem;
background: hsl(var(--muted));
border: 1px solid hsl(var(--border));
border-radius: 0.25rem;
font-size: 0.7rem;
font-family: var(--font-mono);
color: hsl(var(--muted-foreground));
cursor: pointer;
transition: all 0.15s;
}
.btn-view-json:hover {
background: hsl(var(--hover));
color: hsl(var(--foreground));
}
/* Context Fields */
.context-fields {
display: flex;
flex-direction: column;
gap: 1rem;
}
.context-section {
padding: 1rem;
background: hsl(var(--muted) / 0.3);
border: 1px solid hsl(var(--border));
border-radius: 0.5rem;
}
.context-section-title {
font-size: 1rem;
font-weight: 600;
color: hsl(var(--foreground));
margin-bottom: 0.75rem;
padding-bottom: 0.5rem;
border-bottom: 1px solid hsl(var(--border));
}
.context-field {
display: flex;
flex-direction: column;
gap: 0.25rem;
}
.context-label {
font-size: 0.75rem;
font-weight: 600;
color: hsl(var(--muted-foreground));
text-transform: uppercase;
letter-spacing: 0.025em;
}
.context-value {
font-size: 0.875rem;
color: hsl(var(--foreground));
line-height: 1.6;
}
.context-field label {
display: block;
font-size: 0.75rem;
font-weight: 600;
color: hsl(var(--muted-foreground));
margin-bottom: 0.5rem;
text-transform: uppercase;
}
.context-field p {
margin: 0;
font-size: 0.875rem;
color: hsl(var(--foreground));
line-height: 1.5;
}
.context-field ul {
margin: 0;
padding-left: 1.25rem;
font-size: 0.875rem;
color: hsl(var(--foreground));
}
.context-field ul li {
margin-bottom: 0.25rem;
}
/* Modification Points */
.mod-points {
display: flex;
flex-direction: column;
gap: 0.5rem;
}
.mod-point {
padding: 0.5rem;
background: hsl(var(--card));
border: 1px solid hsl(var(--border));
border-radius: 0.25rem;
}
.mod-target {
font-size: 0.75rem;
color: hsl(var(--muted-foreground));
margin-left: 0.5rem;
}
.mod-change {
margin: 0.5rem 0 0 0;
font-size: 0.8rem;
color: hsl(var(--foreground));
}
/* Implementation Steps */
.impl-steps {
margin: 0;
padding-left: 1.25rem;
font-size: 0.875rem;
color: hsl(var(--foreground));
}
.impl-steps li {
margin-bottom: 0.5rem;
line-height: 1.5;
}
/* Implementation Steps List (Drawer) */
.impl-steps-list {
display: flex;
flex-direction: column;
gap: 1rem;
}
.impl-step-item {
background: hsl(var(--muted) / 0.3);
border: 1px solid hsl(var(--border));
border-radius: 0.5rem;
padding: 1rem;
transition: border-color 0.2s;
}
.impl-step-item:hover {
border-color: hsl(var(--primary) / 0.5);
}
.impl-step-header {
display: flex;
align-items: center;
gap: 0.75rem;
margin-bottom: 0.5rem;
}
.impl-step-number {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 1.75rem;
height: 1.75rem;
padding: 0 0.5rem;
background: hsl(var(--primary));
color: hsl(var(--primary-foreground));
border-radius: 0.375rem;
font-size: 0.75rem;
font-weight: 600;
white-space: nowrap;
}
.impl-step-title {
font-weight: 600;
font-size: 0.9rem;
color: hsl(var(--foreground));
flex: 1;
}
.impl-step-desc {
font-size: 0.85rem;
color: hsl(var(--muted-foreground));
line-height: 1.5;
margin-bottom: 0.75rem;
padding-left: 2.5rem;
}
.impl-step-columns {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 1rem;
margin-top: 0.75rem;
padding-top: 0.75rem;
border-top: 1px solid hsl(var(--border));
}
.impl-step-mods,
.impl-step-flow {
font-size: 0.8rem;
}
.impl-step-mods strong,
.impl-step-flow strong {
display: block;
font-size: 0.7rem;
text-transform: uppercase;
letter-spacing: 0.05em;
color: hsl(var(--muted-foreground));
margin-bottom: 0.5rem;
}
.impl-step-mods ul,
.impl-step-flow ol {
margin: 0;
padding-left: 1.25rem;
color: hsl(var(--foreground));
}
.impl-step-mods li,
.impl-step-flow li {
margin-bottom: 0.375rem;
line-height: 1.4;
}
.impl-step-mods code {
font-size: 0.75rem;
padding: 0.125rem 0.375rem;
background: hsl(var(--muted));
border-radius: 0.25rem;
color: hsl(var(--primary));
}
.impl-step-deps {
margin-top: 0.75rem;
padding-top: 0.5rem;
border-top: 1px dashed hsl(var(--border));
font-size: 0.75rem;
color: hsl(var(--muted-foreground));
}
.dep-badge {
display: inline-block;
padding: 0.125rem 0.5rem;
background: hsl(var(--muted));
border-radius: 0.25rem;
font-size: 0.7rem;
margin-left: 0.25rem;
}
/* Field Groups */
.field-group {
display: flex;
flex-direction: column;
gap: 0.5rem;
}
.field-row {
display: flex;
gap: 0.5rem;
font-size: 0.875rem;
}
.field-label {
font-weight: 500;
color: hsl(var(--muted-foreground));
min-width: 100px;
}
.field-value {
color: hsl(var(--foreground));
flex: 1;
}
.json-value-null {
color: hsl(var(--muted-foreground));
font-style: italic;
}
.json-value-boolean {
color: hsl(220 80% 60%);
}
.json-value-number {
color: hsl(142 71% 45%);
}
.json-value-string {
color: hsl(var(--foreground));
}
/* Array Items */
.array-value {
display: flex;
flex-wrap: wrap;
gap: 0.375rem;
}
.array-item {
padding: 0.125rem 0.375rem;
background: hsl(var(--muted));
border-radius: 0.25rem;
font-size: 0.8rem;
}
.array-item.path-item {
font-family: var(--font-mono);
background: hsl(var(--accent));
}
/* Nested Array */
.nested-array {
display: flex;
flex-direction: column;
gap: 0.5rem;
margin-top: 0.25rem;
}
.array-object {
padding: 0.5rem;
background: hsl(var(--card));
border: 1px solid hsl(var(--border));
border-radius: 0.25rem;
}
.array-object-header {
font-size: 0.7rem;
font-weight: 600;
color: hsl(var(--muted-foreground));
margin-bottom: 0.25rem;
}
/* Collapsible Sections */
.collapsible-section {
border-top: 1px solid hsl(var(--border));
}
.collapsible-header {
display: flex;
align-items: center;
gap: 0.5rem;
padding: 0.75rem 1rem;
cursor: pointer;
transition: background 0.15s;
}
.collapsible-header:hover {
background: hsl(var(--hover));
}
.collapse-icon {
font-size: 0.75rem;
color: hsl(var(--muted-foreground));
transition: transform 0.2s;
}
.collapsible-header.expanded .collapse-icon {
transform: rotate(90deg);
}
.section-label {
font-size: 0.75rem;
font-weight: 600;
color: hsl(var(--foreground));
text-transform: uppercase;
}
.section-preview {
flex: 1;
font-size: 0.75rem;
color: hsl(var(--muted-foreground));
text-align: right;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.collapsible-content {
padding: 1rem;
background: hsl(var(--muted));
}
.collapsible-content.collapsed {
display: none;
}
/* Summary Tab */
.summary-tab-content {
display: flex;
flex-direction: column;
gap: 1rem;
}
.summary-item-collapsible {
border: 1px solid hsl(var(--border));
border-radius: 0.5rem;
overflow: hidden;
}
.summary-collapsible-header {
display: flex;
align-items: center;
gap: 0.5rem;
padding: 0.75rem 1rem;
background: hsl(var(--card));
cursor: pointer;
transition: background 0.15s;
}
.summary-collapsible-header:hover {
background: hsl(var(--hover));
}
.summary-name {
font-weight: 600;
color: hsl(var(--foreground));
}
.summary-preview {
flex: 1;
font-size: 0.75rem;
color: hsl(var(--muted-foreground));
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.summary-collapsible-content {
padding: 1rem;
background: hsl(var(--muted));
}
.summary-collapsible-content.collapsed {
display: none;
}
.summary-content-pre {
margin: 0;
white-space: pre-wrap;
word-break: break-word;
font-size: 0.8rem;
line-height: 1.6;
}
/* Summary Item Direct (No collapse) */
.summary-item-direct {
border: 1px solid hsl(var(--border));
border-radius: 0.5rem;
padding: 1rem;
background: hsl(var(--card));
}
.summary-item-direct .summary-content-pre {
margin-top: 0.5rem;
padding: 0.75rem;
background: hsl(var(--muted));
border-radius: 0.375rem;
}
.markdown-content {
background: hsl(var(--muted));
padding: 1rem;
border-radius: 0.5rem;
overflow-x: auto;
font-size: 0.8rem;
line-height: 1.6;
color: hsl(var(--foreground));
max-height: 600px;
overflow-y: auto;
white-space: pre-wrap;
word-break: break-word;
margin: 0;
}
/* JSON Modal */
.json-modal-overlay {
position: fixed;
inset: 0;
background: rgba(0, 0, 0, 0.5);
display: flex;
align-items: center;
justify-content: center;
z-index: 100;
opacity: 0;
transition: opacity 0.2s;
}
.json-modal-overlay.active {
opacity: 1;
}
.json-modal {
background: hsl(var(--card));
border-radius: 0.5rem;
width: 90%;
max-width: 700px;
max-height: 80vh;
display: flex;
flex-direction: column;
box-shadow: 0 8px 24px rgb(0 0 0 / 0.2);
}
.json-modal-header {
display: flex;
align-items: center;
justify-content: space-between;
padding: 1rem;
border-bottom: 1px solid hsl(var(--border));
}
.json-modal-title {
display: flex;
align-items: center;
gap: 0.5rem;
font-weight: 600;
color: hsl(var(--foreground));
}
.json-modal-close {
width: 2rem;
height: 2rem;
display: flex;
align-items: center;
justify-content: center;
background: none;
border: none;
font-size: 1.5rem;
color: hsl(var(--muted-foreground));
cursor: pointer;
border-radius: 0.25rem;
}
.json-modal-close:hover {
background: hsl(var(--hover));
color: hsl(var(--foreground));
}
.json-modal-body {
flex: 1;
overflow: auto;
padding: 1rem;
}
.json-modal-content {
margin: 0;
white-space: pre-wrap;
word-break: break-word;
font-size: 0.75rem;
line-height: 1.6;
color: hsl(var(--foreground));
}
.json-modal-footer {
padding: 1rem;
border-top: 1px solid hsl(var(--border));
display: flex;
justify-content: flex-end;
}
.btn-copy-json {
padding: 0.5rem 1rem;
background: hsl(var(--primary));
color: hsl(var(--primary-foreground));
border: none;
border-radius: 0.375rem;
font-size: 0.875rem;
cursor: pointer;
transition: opacity 0.15s;
}
.btn-copy-json:hover {
opacity: 0.9;
}
/* Flowchart Fallback */
.flowchart-fallback {
display: flex;
align-items: center;
justify-content: center;
height: 200px;
color: hsl(var(--muted-foreground));
font-size: 0.875rem;
}
/* ===================================
Markdown Modal
=================================== */
.markdown-modal.hidden {
display: none;
}
.md-tab-btn {
color: hsl(var(--muted-foreground));
}
.md-tab-btn.active {
background: hsl(var(--background));
color: hsl(var(--foreground));
font-weight: 500;
}
.md-tab-btn:hover:not(.active) {
color: hsl(var(--foreground));
}
/* Markdown Preview Prose Styles */
.markdown-preview {
color: hsl(var(--foreground));
line-height: 1.7;
}
.markdown-preview h1,
.markdown-preview h2,
.markdown-preview h3,
.markdown-preview h4,
.markdown-preview h5,
.markdown-preview h6 {
color: hsl(var(--foreground));
font-weight: 600;
margin-top: 1.5em;
margin-bottom: 0.5em;
line-height: 1.3;
}
.markdown-preview h1 { font-size: 1.75rem; border-bottom: 1px solid hsl(var(--border)); padding-bottom: 0.3em; }
.markdown-preview h2 { font-size: 1.5rem; border-bottom: 1px solid hsl(var(--border)); padding-bottom: 0.3em; }
.markdown-preview h3 { font-size: 1.25rem; }
.markdown-preview h4 { font-size: 1.1rem; }
.markdown-preview p {
margin-bottom: 1em;
}
.markdown-preview ul,
.markdown-preview ol {
margin-bottom: 1em;
padding-left: 1.5em;
}
.markdown-preview li {
margin-bottom: 0.25em;
}
.markdown-preview code {
background: hsl(var(--muted));
padding: 0.125rem 0.375rem;
border-radius: 0.25rem;
font-size: 0.875em;
color: hsl(var(--primary));
}
.markdown-preview pre {
background: hsl(var(--muted));
padding: 1rem;
border-radius: 0.5rem;
overflow-x: auto;
margin-bottom: 1em;
}
.markdown-preview pre code {
background: none;
padding: 0;
color: hsl(var(--foreground));
}
.markdown-preview blockquote {
border-left: 3px solid hsl(var(--primary));
padding-left: 1rem;
margin-left: 0;
margin-bottom: 1em;
color: hsl(var(--muted-foreground));
font-style: italic;
}
.markdown-preview table {
width: 100%;
border-collapse: collapse;
margin-bottom: 1em;
}
.markdown-preview th,
.markdown-preview td {
border: 1px solid hsl(var(--border));
padding: 0.5rem 0.75rem;
text-align: left;
}
.markdown-preview th {
background: hsl(var(--muted));
font-weight: 600;
}
.markdown-preview a {
color: hsl(var(--primary));
text-decoration: underline;
}
.markdown-preview hr {
border: none;
border-top: 1px solid hsl(var(--border));
margin: 1.5em 0;
}
/* View Details Button */
.btn-view-details {
display: inline-flex;
align-items: center;
gap: 0.375rem;
padding: 0.375rem 0.75rem;
background: hsl(var(--primary));
color: hsl(var(--primary-foreground));
border: none;
border-radius: 0.375rem;
font-size: 0.8rem;
cursor: pointer;
transition: opacity 0.15s;
}
.btn-view-details:hover {
opacity: 0.9;
}
.summary-item-card {
background: hsl(var(--muted) / 0.3);
border: 1px solid hsl(var(--border));
border-radius: 0.5rem;
padding: 1rem;
margin-bottom: 0.75rem;
}
.summary-item-header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 1rem;
}
.summary-item-name {
font-weight: 500;
color: hsl(var(--foreground));
display: flex;
align-items: center;
gap: 0.5rem;
}
.summary-item-title {
font-weight: 600;
font-size: 0.95rem;
color: hsl(var(--foreground));
margin: 0;
}
.summary-item-preview {
font-size: 0.8rem;
color: hsl(var(--muted-foreground));
margin-top: 0.5rem;
line-height: 1.5;
}
.summary-preview-text {
margin: 0;
padding: 0.75rem;
background: hsl(var(--muted) / 0.5);
border-radius: 0.25rem;
font-size: 0.75rem;
line-height: 1.4;
white-space: pre-wrap;
word-break: break-word;
max-height: 80px;
overflow: hidden;
}
.impl-plan-card {
background: hsl(var(--muted) / 0.3);
border: 1px solid hsl(var(--border));
border-radius: 0.5rem;
padding: 1rem;
}
.impl-plan-header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 0.75rem;
}
.impl-plan-title {
font-weight: 600;
color: hsl(var(--foreground));
display: flex;
align-items: center;
gap: 0.5rem;
}
.impl-plan-preview {
font-size: 0.8rem;
color: hsl(var(--muted-foreground));
line-height: 1.5;
}
.impl-plan-preview-text {
margin: 0;
padding: 0.75rem;
background: hsl(var(--muted) / 0.5);
border-radius: 0.25rem;
font-size: 0.75rem;
line-height: 1.4;
white-space: pre-wrap;
word-break: break-word;
max-height: 100px;
overflow: hidden;
}
/* ===================================
Fix Plan Enhanced Styles
=================================== */
.plan-root-cause-text,
.plan-strategy-text,
.plan-requirements-text {
font-size: 0.875rem;
line-height: 1.6;
color: hsl(var(--foreground));
background: hsl(var(--muted) / 0.3);
padding: 0.75rem;
border-radius: 0.375rem;
border-left: 3px solid hsl(var(--primary));
}
.severity-badge,
.risk-badge {
display: inline-block;
padding: 0.125rem 0.5rem;
border-radius: 0.25rem;
font-size: 0.75rem;
font-weight: 500;
text-transform: uppercase;
}
.severity-badge.critical,
.risk-badge.high {
background: hsl(0 70% 50% / 0.15);
color: hsl(0 70% 45%);
}
.severity-badge.high,
.risk-badge.medium {
background: hsl(30 90% 50% / 0.15);
color: hsl(30 90% 40%);
}
.severity-badge.medium {
background: hsl(45 90% 50% / 0.15);
color: hsl(45 80% 35%);
}
.severity-badge.low,
.risk-badge.low {
background: hsl(142 70% 50% / 0.15);
color: hsl(142 70% 35%);
}
.fix-tasks-summary {
display: flex;
flex-direction: column;
gap: 0.5rem;
}
.fix-task-summary-item {
background: hsl(var(--card));
border: 1px solid hsl(var(--border));
border-radius: 0.5rem;
overflow: hidden;
}
.fix-task-summary-item .collapsible-header {
padding: 0.75rem 1rem;
}
.task-num {
font-weight: 600;
color: hsl(var(--primary));
font-size: 0.85rem;
}
.task-title-brief {
font-size: 0.875rem;
color: hsl(var(--foreground));
flex: 1;
}
.task-scope-badge {
padding: 0.125rem 0.5rem;
background: hsl(var(--muted));
border-radius: 0.25rem;
font-size: 0.7rem;
color: hsl(var(--muted-foreground));
}
.task-detail-section {
margin-bottom: 1rem;
}
.task-detail-section:last-child {
margin-bottom: 0;
}
.task-detail-section strong {
display: block;
font-size: 0.75rem;
text-transform: uppercase;
letter-spacing: 0.025em;
color: hsl(var(--muted-foreground));
margin-bottom: 0.5rem;
}
.mod-points-list,
.verify-list {
margin: 0;
padding-left: 1rem;
font-size: 0.8rem;
}
.mod-points-list li,
.verify-list li {
margin-bottom: 0.375rem;
line-height: 1.5;
}
.mod-points-list code {
font-size: 0.75rem;
padding: 0.125rem 0.375rem;
background: hsl(var(--muted));
border-radius: 0.25rem;
color: hsl(var(--primary));
}
.func-name {
color: hsl(var(--muted-foreground));
font-size: 0.75rem;
}
.change-type {
color: hsl(var(--muted-foreground));
font-size: 0.7rem;
font-style: italic;
}
/* ===================================
Diagnoses Tab Styles
=================================== */
.diagnoses-tab-content {
display: flex;
flex-direction: column;
gap: 1.5rem;
}
.diagnoses-section-title {
font-size: 1rem;
font-weight: 600;
color: hsl(var(--foreground));
margin-bottom: 0.75rem;
display: flex;
align-items: center;
gap: 0.5rem;
}
.diagnoses-manifest-section {
background: hsl(var(--muted) / 0.3);
border: 1px solid hsl(var(--border));
border-radius: 0.5rem;
padding: 1rem;
}
.manifest-meta-grid {
display: flex;
flex-wrap: wrap;
gap: 1rem;
}
.diagnoses-grid {
display: flex;
flex-direction: column;
gap: 0.75rem;
}
.diagnosis-card {
background: hsl(var(--card));
border: 1px solid hsl(var(--border));
border-radius: 0.5rem;
overflow: hidden;
}
.diagnosis-header {
background: hsl(var(--muted) / 0.3);
}
.diagnosis-id {
font-weight: 600;
color: hsl(var(--foreground));
flex: 1;
display: flex;
align-items: center;
gap: 0.5rem;
}
.diag-section {
margin-bottom: 1rem;
padding-bottom: 1rem;
border-bottom: 1px solid hsl(var(--border) / 0.5);
}
.diag-section:last-child {
margin-bottom: 0;
padding-bottom: 0;
border-bottom: none;
}
.diag-section strong {
display: block;
font-size: 0.75rem;
text-transform: uppercase;
letter-spacing: 0.025em;
color: hsl(var(--muted-foreground));
margin-bottom: 0.5rem;
}
.diag-section p {
margin: 0;
font-size: 0.875rem;
line-height: 1.6;
color: hsl(var(--foreground));
}
.issues-list {
margin: 0;
padding-left: 1rem;
font-size: 0.85rem;
}
.issue-item {
margin-bottom: 0.5rem;
padding: 0.5rem;
background: hsl(var(--muted) / 0.3);
border-radius: 0.25rem;
}
.issue-title {
font-weight: 500;
color: hsl(var(--foreground));
}
.issue-location {
font-size: 0.75rem;
margin-top: 0.25rem;
}
.issue-location code {
padding: 0.125rem 0.375rem;
background: hsl(var(--muted));
border-radius: 0.25rem;
color: hsl(var(--primary));
}
.contracts-list {
display: flex;
flex-direction: column;
gap: 0.5rem;
}
.contract-item {
padding: 0.75rem;
background: hsl(var(--muted) / 0.3);
border: 1px solid hsl(var(--border));
border-radius: 0.375rem;
}
.contract-header {
display: flex;
align-items: center;
gap: 0.5rem;
margin-bottom: 0.25rem;
}
.contract-endpoint {
font-weight: 500;
color: hsl(var(--foreground));
}
.contract-method {
padding: 0.125rem 0.375rem;
background: hsl(var(--primary) / 0.15);
color: hsl(var(--primary));
border-radius: 0.25rem;
font-size: 0.7rem;
font-weight: 600;
}
.contract-desc {
font-size: 0.8rem;
color: hsl(var(--muted-foreground));
}
.contract-issues {
font-size: 0.75rem;
color: hsl(0 70% 50%);
margin-top: 0.25rem;
}
.dataflow-details {
display: flex;
flex-direction: column;
gap: 0.5rem;
}
.df-item {
font-size: 0.85rem;
}
.df-label {
font-weight: 500;
color: hsl(var(--muted-foreground));
}
.df-transforms {
margin: 0.25rem 0 0 1rem;
padding-left: 0;
}
.recommendations-list {
margin: 0;
padding-left: 1.25rem;
font-size: 0.85rem;
}
.recommendations-list li {
margin-bottom: 0.375rem;
line-height: 1.5;
}