qwen-code/packages/web-shell/client/components/messages/AgentsMessage.module.css
ytahdn a384c4a21a
feat(web-shell): polish chat UI (#5893)
* style(web-shell): polish chat UI

* fix(web-shell): address chat polish review feedback

---------

Co-authored-by: ytahdn <ytahdn@gmail.com>
2026-06-26 15:38:23 +00:00

607 lines
9.3 KiB
CSS

.panel {
margin: 0px 0 12px 14px;
padding: 10px 14px;
border: 1px solid var(--border);
border-radius: 4px;
font-family: var(--font-mono);
font-size: 13px;
color: var(--foreground);
background: var(--background);
max-width: min(var(--chat-regular-content-width, 1000px), calc(100vw - 64px));
}
.embedded {
max-width: none;
margin: 0;
padding: 0;
border: 0;
background: transparent;
}
.embedded .footer {
display: none;
}
.titleLine {
display: flex;
align-items: center;
gap: 8px;
margin-bottom: 10px;
}
.icon {
display: none;
color: var(--agent-blue-500);
font-weight: bold;
font-size: 14px;
}
.title {
font-weight: bold;
color: var(--foreground);
}
.subtitle {
display: none;
color: var(--muted-foreground);
}
.text {
font-size: 13px;
color: var(--foreground);
margin-bottom: 12px;
}
.options {
display: flex;
flex-direction: column;
gap: 2px;
margin-left: 0;
}
.option {
display: flex;
align-items: center;
gap: 8px;
min-height: 32px;
border: 1px solid transparent;
border-radius: 6px;
padding: 5px 8px;
cursor: pointer;
}
.option:hover {
background: var(--secondary);
}
.optionActive {
background: var(--secondary);
}
.optionActive .optionLabel,
.optionSelected .optionLabel {
color: var(--agent-blue-500);
}
.optionIcon {
position: relative;
flex: 0 0 auto;
width: 14px;
height: 14px;
border: 1.5px solid currentColor;
border-radius: 4px;
color: var(--muted-foreground);
}
.optionIcon::before,
.optionIcon::after {
position: absolute;
left: 3px;
right: 3px;
height: 1.5px;
border-radius: 999px;
background: currentColor;
content: '';
}
.optionIcon::before {
top: 4px;
}
.optionIcon::after {
top: 8px;
}
.optionNum {
display: none;
}
.optionContent {
display: flex;
flex-direction: column;
gap: 1px;
}
.optionLabel {
color: var(--foreground);
}
.optionDesc {
font-size: 12px;
color: var(--muted-foreground);
padding-left: 0;
}
.badge {
font-size: 13px;
color: var(--muted-foreground);
border: none;
border-radius: 0;
padding: 0;
margin-left: 4px;
}
.detail {
margin: 8px;
padding: 8px;
border-radius: 4px;
background: var(--background);
}
.detailTitle {
font-weight: bold;
color: var(--foreground);
margin-bottom: 4px;
}
.detailMeta {
font-size: 12px;
color: var(--muted-foreground);
margin-bottom: 6px;
}
.detailBody {
font-size: 12px;
color: var(--foreground);
white-space: pre-wrap;
word-break: break-word;
}
.toolDetail {
margin: 8px;
color: var(--muted-foreground);
}
.toolDetailTitle {
color: var(--muted-foreground);
margin-bottom: 4px;
}
.toolDetailBody,
.toolList {
color: var(--foreground);
white-space: pre-wrap;
word-break: break-word;
}
.toolList {
max-height: 120px;
overflow-y: auto;
padding-left: 12px;
}
.textInput {
width: 100%;
padding: 4px 8px;
background: transparent;
border: none;
border-bottom: 1px solid var(--agent-blue-500);
color: var(--foreground);
font-family: var(--font-mono);
font-size: 13px;
outline: none;
margin-bottom: 8px;
box-sizing: border-box;
}
.textInput:focus {
border-bottom-color: var(--agent-blue-500);
}
.textArea {
width: 100%;
min-height: 80px;
padding: 6px 8px;
background: transparent;
border: 1px solid var(--border);
border-radius: 4px;
color: var(--foreground);
font-family: var(--font-mono);
font-size: 13px;
outline: none;
resize: vertical;
margin-bottom: 8px;
box-sizing: border-box;
}
.textArea:focus {
border-color: var(--agent-blue-500);
}
.summary {
margin: 8px;
padding: 8px;
border-radius: 4px;
background: var(--background);
}
.summaryRow {
display: flex;
gap: 8px;
padding: 4px 6px;
}
.summaryLabel {
color: var(--muted-foreground);
flex-shrink: 0;
min-width: 80px;
}
.summaryValue {
color: var(--agent-blue-500);
font-weight: bold;
}
.summaryBlockTitle {
color: var(--foreground);
margin-top: 10px;
}
.summaryBlock {
color: var(--foreground);
white-space: pre-wrap;
word-break: break-word;
padding: 6px 10px 0;
max-height: 160px;
overflow: auto;
}
.groupLabel {
font-size: 13px;
font-weight: bold;
color: var(--foreground);
text-transform: none;
letter-spacing: 0;
margin: 10px 0 6px 0;
}
.groupLabel:first-child {
margin-top: 0;
}
.footer {
margin-top: 14px;
padding-top: 8px;
border-top: 1px solid var(--border);
font-size: 12px;
color: var(--muted-foreground);
}
.agentCount {
margin-top: 10px;
color: var(--muted-foreground);
}
.manageList {
display: flex;
flex-direction: column;
gap: 3px;
}
.manageItem {
display: flex;
flex-direction: column;
border-radius: 8px;
}
.manageItemExpanded {
background: var(--secondary);
padding: 4px;
}
.manageRow {
display: flex;
align-items: center;
gap: 8px;
min-height: 34px;
width: 100%;
border: 0;
border-radius: 6px;
background: transparent;
color: var(--foreground);
cursor: pointer;
font: inherit;
padding: 5px 8px;
text-align: left;
}
.manageRow:hover,
.manageRowActive {
background: var(--secondary);
}
.manageIcon {
position: relative;
flex: 0 0 auto;
width: 14px;
height: 14px;
border: 1.5px solid currentColor;
border-radius: 4px;
color: var(--muted-foreground);
}
.manageIcon::before,
.manageIcon::after {
position: absolute;
left: 3px;
right: 3px;
height: 1.5px;
border-radius: 999px;
background: currentColor;
content: '';
}
.manageIcon::before {
top: 4px;
}
.manageIcon::after {
top: 8px;
}
.manageName {
min-width: 0;
flex: 1 1 auto;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.levelTag {
flex: 0 0 auto;
border-radius: 4px;
background: var(--muted);
color: var(--muted-foreground);
font-size: 12px;
padding: 1px 5px;
white-space: nowrap;
}
.manageChevron {
flex: 0 0 auto;
width: 14px;
height: 14px;
color: var(--muted-foreground);
}
.manageChevron::before {
display: block;
width: 7px;
height: 7px;
border-top: 1.5px solid currentColor;
border-right: 1.5px solid currentColor;
content: '';
transform: translate(2px, 3px) rotate(45deg);
transition: transform 120ms ease;
}
.manageChevronExpanded::before {
transform: translate(2px, 1px) rotate(135deg);
}
.manageDetail {
display: flex;
flex-direction: column;
gap: 8px;
padding: 0;
}
.manageDetailInner {
display: flex;
flex-direction: column;
gap: 8px;
margin: 8px;
border-radius: 6px;
background: var(--background);
padding: 8px;
}
.manageDetailHeader {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
}
.manageActions {
display: flex;
flex-wrap: wrap;
gap: 6px;
margin-left: auto;
}
.manageButton {
border: 1px solid var(--border);
border-radius: 5px;
background: var(--muted);
color: var(--foreground);
cursor: pointer;
font: inherit;
font-size: 12px;
padding: 4px 8px;
}
.manageButton:hover:not(:disabled) {
border-color: var(--agent-blue-500);
}
.manageButton:disabled {
cursor: default;
opacity: 0.55;
}
.dangerButton {
color: var(--error-color);
}
.deleteText {
color: var(--muted-foreground);
font-size: 12px;
line-height: 24px;
}
.viewer {
display: flex;
flex-direction: column;
gap: 8px;
max-height: min(420px, 55vh);
overflow-y: auto;
padding: 0 2px 2px 0;
scrollbar-width: thin;
scrollbar-color: var(--border) transparent;
}
.viewer::-webkit-scrollbar {
width: 6px;
}
.viewer::-webkit-scrollbar-track {
background: transparent;
}
.viewer::-webkit-scrollbar-thumb {
background: var(--border);
border-radius: 3px;
}
.viewerRow {
display: flex;
gap: 4px;
align-items: baseline;
min-width: 0;
border-radius: 5px;
padding: 4px 6px;
}
.viewerRow:hover {
background: var(--muted);
}
.viewerLabel {
color: var(--foreground);
font-size: 12px;
font-weight: 500;
flex-shrink: 0;
}
.viewerField {
border-radius: 5px;
padding: 4px 6px;
}
.viewerSectionTitle {
color: var(--foreground);
font-size: 12px;
font-weight: 500;
}
.viewerBlock {
color: var(--foreground);
white-space: pre-wrap;
word-break: break-word;
}
.closed {
opacity: 0.6;
}
.closedText {
font-size: 12px;
color: var(--muted-foreground);
font-style: italic;
}
.loading {
color: var(--muted-foreground);
font-style: italic;
}
.error {
color: var(--error-color, #ef4444);
font-size: 12px;
margin-bottom: 8px;
}
.createWizard {
display: flex;
flex-direction: column;
gap: 14px;
}
.createSteps {
display: flex;
flex-wrap: wrap;
gap: 6px;
padding-bottom: 10px;
border-bottom: 1px solid var(--border);
}
.createStepPill {
display: inline-flex;
align-items: center;
gap: 5px;
min-width: 0;
border: 1px solid var(--border);
border-radius: 999px;
color: var(--muted-foreground);
font-size: 12px;
padding: 3px 8px;
}
.createStepPillActive {
border-color: var(--agent-blue-500);
color: var(--agent-blue-500);
}
.createStepPillDone {
color: var(--foreground);
}
.createStepNumber {
display: inline-flex;
align-items: center;
justify-content: center;
width: 16px;
height: 16px;
border-radius: 50%;
background: var(--muted);
font-size: 11px;
}
.createStepLabel {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.createBody {
min-height: 180px;
}
.createActions {
display: flex;
justify-content: flex-end;
gap: 8px;
padding-top: 10px;
border-top: 1px solid var(--border);
}