Initial commit: OpenClaw Agent Fleet Dashboard
- Kanban board with 5 columns (Backlog, Todo, In Progress, Review, Done) - Agent assignment for all OpenClaw agents - Priority levels and tags - Wiki auto-generation on task completion - REST API for agent heartbeat integration - Real-time updates via WebSocket - SQLite database for task storage - Docker deployment configuration - Traefik ingress configuration
This commit is contained in:
182
public/styles.css
Normal file
182
public/styles.css
Normal file
@@ -0,0 +1,182 @@
|
||||
:root {
|
||||
--bg: #0e1117;
|
||||
--panel: #161b22;
|
||||
--muted: #98a6b3;
|
||||
--text: #e6edf3;
|
||||
--border: #2d333b;
|
||||
--accent: #2f81f7;
|
||||
--critical: #f85149;
|
||||
--high: #db6d28;
|
||||
--medium: #d29922;
|
||||
--low: #238636;
|
||||
}
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
|
||||
background: radial-gradient(circle at top, #1c2431, var(--bg) 55%);
|
||||
color: var(--text);
|
||||
}
|
||||
|
||||
.topbar {
|
||||
padding: 1.2rem;
|
||||
border-bottom: 1px solid var(--border);
|
||||
background: rgba(22, 27, 34, 0.9);
|
||||
}
|
||||
|
||||
.topbar h1 {
|
||||
margin: 0;
|
||||
font-size: 1.4rem;
|
||||
}
|
||||
|
||||
.topbar p {
|
||||
margin: 0.25rem 0 0;
|
||||
color: var(--muted);
|
||||
}
|
||||
|
||||
.composer {
|
||||
padding: 1rem 1.2rem;
|
||||
}
|
||||
|
||||
.composer h2 {
|
||||
margin: 0 0 0.7rem;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
#task-form {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
|
||||
gap: 0.6rem;
|
||||
}
|
||||
|
||||
input,
|
||||
select,
|
||||
textarea,
|
||||
button {
|
||||
border: 1px solid var(--border);
|
||||
background: var(--panel);
|
||||
color: var(--text);
|
||||
border-radius: 8px;
|
||||
padding: 0.55rem 0.7rem;
|
||||
}
|
||||
|
||||
textarea {
|
||||
grid-column: 1 / -1;
|
||||
min-height: 70px;
|
||||
resize: vertical;
|
||||
}
|
||||
|
||||
button {
|
||||
cursor: pointer;
|
||||
background: linear-gradient(90deg, #1f6feb, var(--accent));
|
||||
border: none;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.board {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(5, minmax(220px, 1fr));
|
||||
gap: 1rem;
|
||||
padding: 0 1.2rem 1.2rem;
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
.column {
|
||||
background: rgba(22, 27, 34, 0.9);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: 10px;
|
||||
min-height: 220px;
|
||||
padding: 0.7rem;
|
||||
}
|
||||
|
||||
.column h2 {
|
||||
font-size: 0.95rem;
|
||||
margin: 0 0 0.6rem;
|
||||
color: var(--muted);
|
||||
}
|
||||
|
||||
.cards {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.6rem;
|
||||
}
|
||||
|
||||
.card {
|
||||
background: #202632;
|
||||
border: 1px solid #334055;
|
||||
border-radius: 8px;
|
||||
padding: 0.6rem;
|
||||
}
|
||||
|
||||
.card-head {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
gap: 0.4rem;
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.card-title {
|
||||
margin: 0;
|
||||
font-size: 0.95rem;
|
||||
}
|
||||
|
||||
.card-desc {
|
||||
margin: 0.5rem 0;
|
||||
font-size: 0.85rem;
|
||||
color: #c7d3df;
|
||||
}
|
||||
|
||||
.meta {
|
||||
margin: 0.2rem 0;
|
||||
color: var(--muted);
|
||||
font-size: 0.78rem;
|
||||
}
|
||||
|
||||
.badge {
|
||||
border-radius: 999px;
|
||||
font-size: 0.72rem;
|
||||
padding: 0.18rem 0.45rem;
|
||||
border: 1px solid transparent;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.priority.low {
|
||||
color: var(--low);
|
||||
border-color: var(--low);
|
||||
}
|
||||
|
||||
.priority.medium {
|
||||
color: var(--medium);
|
||||
border-color: var(--medium);
|
||||
}
|
||||
|
||||
.priority.high {
|
||||
color: var(--high);
|
||||
border-color: var(--high);
|
||||
}
|
||||
|
||||
.priority.critical {
|
||||
color: var(--critical);
|
||||
border-color: var(--critical);
|
||||
}
|
||||
|
||||
.status-select {
|
||||
width: 100%;
|
||||
margin-top: 0.2rem;
|
||||
}
|
||||
|
||||
@media (max-width: 980px) {
|
||||
.board {
|
||||
grid-template-columns: repeat(2, minmax(240px, 1fr));
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 620px) {
|
||||
.board {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user