summaryrefslogtreecommitdiffhomepage
path: root/packages/ui/src/components/message-part.css
diff options
context:
space:
mode:
Diffstat (limited to 'packages/ui/src/components/message-part.css')
-rw-r--r--packages/ui/src/components/message-part.css661
1 files changed, 490 insertions, 171 deletions
diff --git a/packages/ui/src/components/message-part.css b/packages/ui/src/components/message-part.css
index 9a18810dc..ebd0e7d58 100644
--- a/packages/ui/src/components/message-part.css
+++ b/packages/ui/src/components/message-part.css
@@ -14,15 +14,27 @@
font-weight: var(--font-weight-regular);
line-height: var(--line-height-large);
letter-spacing: var(--letter-spacing-normal);
- color: var(--text-base);
+ color: var(--text-strong);
display: flex;
flex-direction: column;
+ align-items: flex-end;
+ align-self: stretch;
+ width: 100%;
+ max-width: 100%;
gap: 8px;
+ &[data-interrupted] {
+ color: var(--text-weak);
+ }
+
[data-slot="user-message-attachments"] {
display: flex;
flex-wrap: wrap;
+ justify-content: flex-end;
gap: 8px;
+ width: fit-content;
+ max-width: min(82%, 64ch);
+ margin-left: auto;
}
[data-slot="user-message-attachment"] {
@@ -71,15 +83,24 @@
}
}
+ [data-slot="user-message-body"] {
+ width: fit-content;
+ max-width: min(82%, 64ch);
+ margin-left: auto;
+ display: flex;
+ flex-direction: column;
+ align-items: flex-end;
+ }
+
[data-slot="user-message-text"] {
- position: relative;
+ display: inline-block;
white-space: pre-wrap;
word-break: break-word;
overflow: hidden;
- background: var(--surface-weak);
+ background: var(--surface-base);
border: 1px solid var(--border-weak-base);
padding: 8px 12px;
- border-radius: 4px;
+ border-radius: 6px;
[data-highlight="file"] {
color: var(--syntax-property);
@@ -89,19 +110,36 @@
color: var(--syntax-type);
}
- [data-slot="user-message-copy-wrapper"] {
- position: absolute;
- top: 7px;
- right: 7px;
- opacity: 0;
- transition: opacity 0.15s ease;
- }
+ max-width: 100%;
+ }
- &:hover [data-slot="user-message-copy-wrapper"] {
- opacity: 1;
+ [data-slot="user-message-copy-wrapper"] {
+ min-height: 24px;
+ margin-top: 4px;
+ display: flex;
+ align-items: center;
+ justify-content: flex-end;
+ opacity: 0;
+ pointer-events: none;
+ transition: opacity 0.15s ease;
+ will-change: opacity;
+
+ [data-component="tooltip-trigger"] {
+ display: inline-flex;
+ width: fit-content;
}
}
+ [data-slot="user-message-copy-wrapper"][data-interrupted] {
+ gap: 12px;
+ }
+
+ &:hover [data-slot="user-message-copy-wrapper"],
+ &:focus-within [data-slot="user-message-copy-wrapper"] {
+ opacity: 1;
+ pointer-events: auto;
+ }
+
.text-text-strong {
color: var(--text-strong);
}
@@ -115,21 +153,36 @@
width: 100%;
[data-slot="text-part-body"] {
- position: relative;
- margin-top: 32px;
+ margin-top: 0;
}
[data-slot="text-part-copy-wrapper"] {
- position: absolute;
- top: -28px;
- right: 8px;
+ min-height: 24px;
+ margin-top: 4px;
+ display: flex;
+ align-items: center;
+ justify-content: flex-start;
opacity: 0;
+ pointer-events: none;
transition: opacity 0.15s ease;
- z-index: 1;
+ will-change: opacity;
+
+ [data-component="tooltip-trigger"] {
+ display: inline-flex;
+ width: fit-content;
+ }
}
- [data-slot="text-part-body"]:hover [data-slot="text-part-copy-wrapper"] {
+ [data-slot="text-part-copy-wrapper"][data-interrupted] {
+ width: 100%;
+ justify-content: flex-end;
+ gap: 12px;
+ }
+
+ &:hover [data-slot="text-part-copy-wrapper"],
+ &:focus-within [data-slot="text-part-copy-wrapper"] {
opacity: 1;
+ pointer-events: auto;
}
[data-component="markdown"] {
@@ -146,7 +199,7 @@
[data-component="markdown"] {
margin-top: 24px;
- font-style: italic !important;
+ font-style: normal;
p:has(strong) {
margin-top: 24px;
@@ -196,7 +249,8 @@
[data-component="tool-output"] {
white-space: pre;
- padding: 8px 12px;
+ padding: 0;
+ margin-bottom: 24px;
height: fit-content;
display: flex;
flex-direction: column;
@@ -238,6 +292,79 @@
}
}
+[data-slot="collapsible-content"]:has([data-component="edit-content"]),
+[data-slot="collapsible-content"]:has([data-component="write-content"]),
+[data-slot="collapsible-content"]:has([data-component="apply-patch-files"]) {
+ border: 1px solid var(--border-weak-base);
+ border-radius: 6px;
+ background: transparent;
+ overflow: hidden;
+}
+
+[data-component="bash-output"] {
+ width: 100%;
+ border: 1px solid var(--border-weak-base);
+ border-radius: 6px;
+ background: transparent;
+ position: relative;
+ overflow: hidden;
+
+ [data-slot="bash-copy"] {
+ position: absolute;
+ top: 4px;
+ right: 4px;
+ opacity: 0;
+ pointer-events: none;
+ transition: opacity 0.15s ease;
+ }
+
+ &:hover [data-slot="bash-copy"],
+ &:focus-within [data-slot="bash-copy"] {
+ opacity: 1;
+ pointer-events: auto;
+ }
+
+ [data-slot="bash-copy"] [data-component="icon-button"][data-variant="secondary"] {
+ box-shadow: none;
+ border: 1px solid var(--border-weak-base);
+ }
+
+ [data-slot="bash-copy"] [data-component="icon-button"][data-variant="secondary"] [data-slot="icon-svg"] {
+ color: var(--icon-base);
+ }
+
+ [data-slot="bash-scroll"] {
+ width: 100%;
+ overflow-y: auto;
+ overflow-x: hidden;
+ max-height: 240px;
+
+ scrollbar-width: none;
+ &::-webkit-scrollbar {
+ display: none;
+ }
+ }
+
+ [data-slot="bash-pre"] {
+ margin: 0;
+ padding: 12px;
+ }
+
+ [data-slot="bash-pre"] code {
+ font-family: var(--font-family-mono);
+ font-feature-settings: var(--font-family-mono--font-feature-settings);
+ font-size: 13px;
+ line-height: var(--line-height-large);
+ white-space: pre-wrap;
+ overflow-wrap: anywhere;
+ }
+}
+
+[data-slot="collapsible-content"]:has([data-component="edit-content"]) [data-component="edit-content"],
+[data-slot="collapsible-content"]:has([data-component="write-content"]) [data-component="write-content"] {
+ border-top: none;
+}
+
[data-component="edit-trigger"],
[data-component="write-trigger"] {
display: flex;
@@ -258,9 +385,9 @@
flex-shrink: 0;
display: flex;
align-items: center;
- gap: 4px;
+ gap: 8px;
font-family: var(--font-family-sans);
- font-size: var(--font-size-base);
+ font-size: 14px;
font-style: normal;
font-weight: var(--font-weight-medium);
line-height: var(--line-height-large);
@@ -268,18 +395,37 @@
color: var(--text-base);
}
+ [data-slot="message-part-title-spinner"] {
+ margin-left: 4px;
+ width: 16px;
+ height: 16px;
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ flex-shrink: 0;
+ color: var(--text-weak);
+
+ [data-component="spinner"] {
+ width: 16px;
+ height: 16px;
+ }
+ }
+
[data-slot="message-part-title-text"] {
text-transform: capitalize;
+ color: var(--text-strong);
}
[data-slot="message-part-title-filename"] {
/* No text-transform - preserve original filename casing */
+ font-weight: var(--font-weight-regular);
}
[data-slot="message-part-path"] {
display: flex;
flex-grow: 1;
min-width: 0;
+ font-weight: var(--font-weight-regular);
}
[data-slot="message-part-directory"] {
@@ -344,12 +490,19 @@
}
[data-component="todos"] {
- padding: 10px 12px 24px 48px;
+ padding: 10px 0 24px 0;
display: flex;
flex-direction: column;
gap: 8px;
+ [data-component="checkbox"] {
+ --checkbox-align: flex-start;
+ --checkbox-offset: 0.5px;
+ }
+
[data-slot="message-part-todo-content"] {
+ line-height: var(--line-height-normal);
+
&[data-completed="completed"] {
text-decoration: line-through;
color: var(--text-weaker);
@@ -357,41 +510,55 @@
}
}
-[data-component="task-tools"] {
- padding: 8px 12px;
+[data-component="context-tool-group-trigger"] {
+ width: 100%;
+ min-height: 24px;
display: flex;
- flex-direction: column;
- gap: 6px;
+ align-items: center;
+ justify-content: flex-start;
+ gap: 0px;
+ cursor: pointer;
- [data-slot="task-tool-item"] {
+ [data-slot="context-tool-group-title"] {
+ min-width: 0;
display: flex;
align-items: center;
gap: 8px;
- color: var(--text-weak);
-
- [data-slot="icon-svg"] {
- flex-shrink: 0;
- color: var(--icon-weak);
- }
- }
-
- [data-slot="task-tool-title"] {
font-family: var(--font-family-sans);
- font-size: var(--font-size-small);
+ font-size: 14px;
font-weight: var(--font-weight-medium);
line-height: var(--line-height-large);
- color: var(--text-weak);
+ color: var(--text-strong);
}
- [data-slot="task-tool-subtitle"] {
- font-family: var(--font-family-sans);
- font-size: var(--font-size-small);
- font-weight: var(--font-weight-regular);
- line-height: var(--line-height-large);
- color: var(--text-weaker);
+ [data-slot="context-tool-group-label"] {
+ flex-shrink: 0;
+ }
+
+ [data-slot="context-tool-group-summary"] {
+ flex-shrink: 1;
+ min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
+ font-weight: var(--font-weight-regular);
+ color: var(--text-base);
+ }
+
+ [data-slot="collapsible-arrow"] {
+ color: var(--icon-weaker);
+ }
+}
+
+[data-component="context-tool-group-list"] {
+ padding: 6px 0 4px 0;
+ display: flex;
+ flex-direction: column;
+ gap: 2px;
+
+ [data-slot="context-tool-group-item"] {
+ min-width: 0;
+ padding: 6px 0;
}
}
@@ -549,170 +716,322 @@
}
[data-component="question-prompt"] {
+ position: relative;
display: flex;
flex-direction: column;
- padding: 12px;
- background-color: var(--surface-inset-base);
- border-radius: 0 0 6px 6px;
- gap: 12px;
+ gap: 0;
+ min-height: 0;
+ max-height: var(--question-prompt-max-height, 100dvh);
- [data-slot="question-tabs"] {
+ [data-slot="question-body"] {
display: flex;
- gap: 4px;
- flex-wrap: wrap;
+ flex-direction: column;
+ gap: 16px;
+ flex: 1;
+ min-height: 0;
+ padding: 8px 8px 0;
+ background-color: var(--surface-raised-stronger-non-alpha);
+ border-radius: 12px;
+ box-shadow: var(--shadow-xs-border);
+ overflow: clip;
+ position: relative;
+ z-index: 10;
+ }
- [data-slot="question-tab"] {
- padding: 4px 12px;
- font-size: 13px;
- border-radius: 4px;
- background-color: var(--surface-base);
- color: var(--text-base);
- border: none;
- cursor: pointer;
- transition:
- color 0.15s,
- background-color 0.15s;
+ [data-slot="question-header"] {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ gap: 12px;
+ padding: 0 10px;
+ }
- &:hover {
- background-color: var(--surface-base-hover);
- }
+ [data-slot="question-header-title"] {
+ font-family: var(--font-family-sans);
+ font-size: 14px;
+ font-weight: var(--font-weight-medium);
+ line-height: var(--line-height-large);
+ color: var(--text-strong);
+ min-width: 0;
+ }
- &[data-active="true"] {
- background-color: var(--surface-raised-base);
- }
+ [data-slot="question-progress"] {
+ display: flex;
+ align-items: center;
+ gap: 8px;
+ flex-shrink: 0;
+ }
- &[data-answered="true"] {
- color: var(--text-strong);
- }
+ [data-slot="question-progress-segment"] {
+ width: 16px;
+ height: 16px;
+ padding: 0;
+ border: 0;
+ background: transparent;
+ border-radius: 999px;
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ cursor: pointer;
+ touch-action: manipulation;
+
+ &::after {
+ content: "";
+ width: 16px;
+ height: 2px;
+ border-radius: 999px;
+ background-color: var(--icon-weak-base);
+ transition: background-color 0.2s ease;
+ }
+
+ &[data-active="true"]::after {
+ background-color: var(--icon-strong-base);
+ }
+
+ &[data-answered="true"]::after {
+ background-color: var(--icon-interactive-base);
+ }
+
+ &:disabled {
+ cursor: not-allowed;
+ opacity: 0.6;
}
}
[data-slot="question-content"] {
display: flex;
flex-direction: column;
- gap: 8px;
+ gap: 4px;
+ flex: 1;
+ min-height: 0;
+ }
- [data-slot="question-text"] {
- font-size: 14px;
- color: var(--text-base);
- line-height: 1.5;
- }
+ [data-slot="question-text"] {
+ font-family: var(--font-family-sans);
+ font-size: 14px;
+ font-weight: var(--font-weight-medium);
+ line-height: var(--line-height-large);
+ color: var(--text-strong);
+ padding: 0 10px;
+ }
+
+ [data-slot="question-hint"] {
+ font-family: var(--font-family-sans);
+ font-size: 13px;
+ font-weight: var(--font-weight-regular);
+ line-height: var(--line-height-large);
+ color: var(--text-weak);
+ padding: 0 10px;
}
[data-slot="question-options"] {
display: flex;
flex-direction: column;
- gap: 4px;
+ gap: 6px;
+ margin-top: 12px;
+ padding: 1px 1px 8px;
+ flex: 1;
+ min-height: 0;
+ overflow-y: auto;
+ scrollbar-width: none;
+ -ms-overflow-style: none;
- [data-slot="question-option"] {
- display: flex;
- flex-direction: column;
- align-items: flex-start;
- gap: 2px;
- padding: 8px 12px;
- background-color: var(--surface-base);
- border: 1px solid var(--border-weaker-base);
- border-radius: 6px;
- cursor: pointer;
- text-align: left;
- width: 100%;
- transition:
- background-color 0.15s,
- border-color 0.15s;
- position: relative;
-
- &:hover {
- background-color: var(--surface-base-hover);
- border-color: var(--border-default);
- }
+ &::-webkit-scrollbar {
+ display: none;
+ }
+ }
- &[data-picked="true"] {
- [data-component="icon"] {
- position: absolute;
- right: 12px;
- top: 50%;
- transform: translateY(-50%);
- color: var(--text-strong);
- }
- }
+ [data-slot="question-option"] {
+ display: flex;
+ align-items: flex-start;
+ gap: 12px;
+ padding: 8px 8px 8px 10px;
+ background-color: var(--surface-raised-stronger-non-alpha);
+ border: 1px solid var(--border-weak-base);
+ border-radius: 6px;
+ box-shadow: none;
+ text-align: left;
+ width: 100%;
+ cursor: pointer;
+ transition:
+ background-color 0.15s ease,
+ border-color 0.15s ease,
+ box-shadow 0.15s ease;
+
+ &:hover:not([data-picked="true"]) {
+ background-color: var(--background-base);
+ }
- [data-slot="option-label"] {
- font-size: 14px;
- color: var(--text-base);
- font-weight: 500;
- }
+ &[data-picked="true"] {
+ background-color: var(--surface-interactive-weak);
+ border-color: transparent;
+ box-shadow: var(--shadow-xs-border-hover);
+ }
- [data-slot="option-description"] {
- font-size: 12px;
- color: var(--text-weak);
- }
+ &:disabled {
+ cursor: not-allowed;
+ opacity: 0.6;
}
+ }
- [data-slot="custom-input-form"] {
- display: flex;
- gap: 8px;
- padding: 8px 0;
- align-items: stretch;
-
- [data-slot="custom-input"] {
- flex: 1;
- padding: 8px 12px;
- font-size: 14px;
- border: 1px solid var(--border-default);
- border-radius: 6px;
- background-color: var(--surface-base);
- color: var(--text-base);
- outline: none;
-
- &:focus {
- border-color: var(--border-focus);
- }
+ [data-slot="question-option-check"] {
+ display: inline-flex;
+ transform: translateY(2px);
+ }
- &::placeholder {
- color: var(--text-weak);
- }
+ [data-slot="question-option-box"] {
+ width: 16px;
+ height: 16px;
+ padding: 2px;
+ border-radius: var(--radius-sm);
+ border: 1px solid var(--border-weak-base);
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ flex-shrink: 0;
+ background-color: transparent;
+ transition:
+ background-color 0.15s ease,
+ border-color 0.15s ease;
+
+ [data-component="icon"] {
+ opacity: 0;
+ color: var(--icon-base);
+ }
+
+ &[data-type="radio"] {
+ border-radius: 999px;
+ }
+
+ [data-slot="question-option-radio-dot"] {
+ width: 6px;
+ height: 6px;
+ border-radius: 999px;
+ background-color: var(--background-stronger);
+ opacity: 0;
+ }
+
+ &[data-picked="true"] {
+ border-color: var(--icon-interactive-base);
+
+ [data-component="icon"] {
+ opacity: 1;
+ color: var(--icon-invert-base);
}
- [data-component="button"] {
- height: auto;
+ &[data-type="checkbox"] {
+ background-color: var(--icon-interactive-base);
+ }
+
+ &[data-type="radio"] {
+ background-color: var(--icon-interactive-base);
+ [data-slot="question-option-radio-dot"] {
+ opacity: 1;
+ }
}
}
}
- [data-slot="question-review"] {
+ [data-slot="question-option-main"] {
display: flex;
flex-direction: column;
- gap: 12px;
+ gap: 2px;
+ min-width: 0;
+ flex: 1;
+ }
- [data-slot="review-title"] {
- display: none;
+ [data-slot="option-label"] {
+ font-family: var(--font-family-sans);
+ font-size: 14px;
+ font-weight: var(--font-weight-medium);
+ line-height: var(--line-height-large);
+ color: var(--text-strong);
+ }
+
+ [data-slot="option-description"] {
+ font-family: var(--font-family-sans);
+ font-size: 14px;
+ font-weight: var(--font-weight-regular);
+ line-height: var(--line-height-large);
+ color: var(--text-base);
+ min-width: 0;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+
+ [data-slot="question-option"][data-custom="true"] {
+ [data-slot="option-description"] {
+ overflow: visible;
+ text-overflow: clip;
+ white-space: normal;
+ overflow-wrap: anywhere;
}
+ }
- [data-slot="review-item"] {
- display: flex;
- flex-direction: column;
- gap: 2px;
- font-size: 13px;
+ [data-slot="question-custom"] {
+ display: flex;
+ flex-direction: column;
+ gap: 8px;
+ }
- [data-slot="review-label"] {
- color: var(--text-weak);
- }
+ [data-slot="question-custom-input-wrap"] {
+ padding-left: 36px;
+ }
+
+ [data-slot="question-custom-input"] {
+ width: 100%;
+ padding: 0;
+ border: 0;
+ border-radius: 0;
+ background: transparent;
+ box-shadow: none;
+ outline: none;
+ font-family: var(--font-family-sans);
+ font-size: 14px;
+ font-weight: var(--font-weight-regular);
+ line-height: var(--line-height-large);
+ color: var(--text-base);
+ min-width: 0;
+ cursor: text;
+ resize: none;
+ overflow: hidden;
+ overflow-wrap: anywhere;
- [data-slot="review-value"] {
- color: var(--text-strong);
+ &::placeholder {
+ color: var(--text-weak);
+ }
- &[data-answered="false"] {
- color: var(--text-weak);
- }
- }
+ &:focus-visible {
+ outline: 1px solid var(--border-interactive-base);
+ outline-offset: 2px;
+ border-radius: var(--radius-xs);
}
+
+ &:disabled {
+ opacity: 0.6;
+ }
+ }
+
+ [data-slot="question-footer"] {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ flex-shrink: 0;
+ padding: 32px 8px 8px;
+ background-color: var(--background-base);
+ border: 1px solid var(--border-weak-base);
+ border-radius: 12px;
+ overflow: clip;
+ margin-top: -24px;
+ position: relative;
+ z-index: 0;
}
- [data-slot="question-actions"] {
+ [data-slot="question-footer-actions"] {
display: flex;
align-items: center;
gap: 8px;
- justify-content: flex-end;
}
}
@@ -720,7 +1039,7 @@
display: flex;
flex-direction: column;
gap: 12px;
- padding: 8px 12px;
+ padding: 8px 0;
[data-slot="question-answer-item"] {
display: flex;
@@ -746,18 +1065,13 @@
[data-component="apply-patch-file"] {
display: flex;
flex-direction: column;
- border-top: 1px solid var(--border-weaker-base);
-
- &:first-child {
- border-top: 1px solid var(--border-weaker-base);
- }
[data-slot="apply-patch-file-header"] {
display: flex;
align-items: center;
gap: 8px;
padding: 8px 12px;
- background-color: var(--surface-inset-base);
+ background-color: transparent;
}
[data-slot="apply-patch-file-action"] {
@@ -799,7 +1113,12 @@
}
}
+[data-component="apply-patch-file"] + [data-component="apply-patch-file"] {
+ border-top: 1px solid var(--border-weaker-base);
+}
+
[data-component="apply-patch-file-diff"] {
+ border-top: 1px solid var(--border-weaker-base);
max-height: 420px;
overflow-y: auto;
scrollbar-width: none;