mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-18 16:41:45 -06:00
2ac723282c
* feat(ui): add settings design-language foundation (tokens, settings.css, helpers) * refactor(ui): move settings workspace shell styles into settings.css * refactor(ui): migrate all settings surfaces to the unified settings design language Every settings surface (General quick+advanced schema form, Appearance, Communications, Automation, MCP, Infrastructure, AI Agents, Channels, Connection, About, Profile, Model Providers, Plugins, Skills, Skill Workshop chrome, Devices, Worktrees, Debug, Logs, Activity, Automations, Sessions, Usage chrome) now renders through the settings-ui helpers and settings.css: sections as plain uppercase headings outside one flat group surface, hairline-divided rows, a single toggle/segmented/status vocabulary, status dots instead of pills, and no cards-in-cards or enter animations. Deletes the qs-*/cfg-*/config-section-card/account-card/ plugins-row/cron-editor-card/session-badge/agent-pill families and orphaned shared rules. * style(ui-docs): format design-system docs * fix(ui): make activity statusKind lookup exhaustive for consistent-return lint * fix(ui): address settings design-language review findings Label-wrapped toggle rows with required accessible names, named selects and cron form controls, busy-disabled segmented controls with restored theme-transition anchors, collapsible skill groups, semantic plugin headings, gateway connected status, paired-devices empty state, logs subtitle, cron prompt help, and keyboard-accessible session goal objectives. * fix(ui): harden settings primitives per review round two Wrap row action clusters, fully-inset nav focus ring, restore number steppers in the schema form, cap node capability lines, keep the named Activity region landmark, and associate cron help text via the row label. * fix(ui): skip empty section headings and fix the toggle doc example * docs(ui): import renderSettingsToggleRow in the settings example * fix(ui): rename number stepper delta to avoid shadowing
97 lines
2.1 KiB
CSS
97 lines
2.1 KiB
CSS
/* Nodes page: inventory-entry extras that the settings row primitives cannot
|
|
express — the device form-factor tile, inline Details disclosure, collapsed
|
|
older-pairing duplicates, and token action rows inside the disclosure. */
|
|
|
|
/* Rows can grow multi-line (Details disclosure); keep tile/control pinned top. */
|
|
.nodes-entry {
|
|
align-items: flex-start;
|
|
}
|
|
|
|
.nodes-entry__tile {
|
|
width: 38px;
|
|
height: 38px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
flex: none;
|
|
border-radius: var(--radius-md);
|
|
border: 1px solid var(--border);
|
|
background: var(--bg-elevated);
|
|
color: var(--muted);
|
|
}
|
|
|
|
.nodes-entry__tile-icon {
|
|
display: flex;
|
|
}
|
|
|
|
.nodes-entry__tile-icon svg {
|
|
width: 18px;
|
|
height: 18px;
|
|
stroke: currentColor;
|
|
fill: none;
|
|
stroke-width: 1.5px;
|
|
stroke-linecap: round;
|
|
stroke-linejoin: round;
|
|
}
|
|
|
|
.nodes-entry__details {
|
|
margin-top: var(--space-1);
|
|
font-size: var(--control-ui-text-sm);
|
|
}
|
|
|
|
.nodes-entry__details > summary {
|
|
color: var(--muted);
|
|
user-select: none;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.nodes-entry__details > summary:hover {
|
|
color: var(--fg);
|
|
}
|
|
|
|
.nodes-entry__details > .muted {
|
|
margin-top: var(--space-2);
|
|
overflow-wrap: anywhere;
|
|
}
|
|
|
|
.nodes-entry__token {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
flex-wrap: wrap;
|
|
gap: var(--space-2);
|
|
margin-top: var(--space-2);
|
|
}
|
|
|
|
.nodes-entry__token-actions {
|
|
display: inline-flex;
|
|
gap: var(--space-2);
|
|
}
|
|
|
|
/* Older pairings collapse under the primary machine row; the wrapper sits
|
|
between .settings-row siblings, so it re-adds the hairline dividers. */
|
|
.nodes-group__dups {
|
|
border-top: 1px solid color-mix(in srgb, var(--border) 60%, transparent);
|
|
}
|
|
|
|
.nodes-group__dups + .settings-row {
|
|
border-top: 1px solid color-mix(in srgb, var(--border) 60%, transparent);
|
|
}
|
|
|
|
.nodes-group__dups > summary {
|
|
padding: var(--space-2) var(--space-4);
|
|
font-size: var(--control-ui-text-sm);
|
|
color: var(--muted);
|
|
user-select: none;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.nodes-group__dups > summary:hover {
|
|
color: var(--fg);
|
|
}
|
|
|
|
.nodes-group__dups .settings-row {
|
|
opacity: 0.75;
|
|
padding-left: var(--space-7);
|
|
}
|