This commit is contained in:
2025-09-02 22:48:55 +02:00
parent 6286c1e0c9
commit 60c2a18dbe
3 changed files with 45 additions and 6 deletions

View File

@@ -24,7 +24,7 @@
interface Props { interface Props {
type?: 'button' | 'submit' | 'reset' type?: 'button' | 'submit' | 'reset'
variant?: 'primary' | 'secondary' | 'danger' | 'ghost' variant?: 'primary' | 'secondary' | 'danger' | 'ghost'
size?: 'sm' | 'md' | 'lg' size?: 'xs' | 'sm' | 'md' | 'lg'
disabled?: boolean disabled?: boolean
loading?: boolean loading?: boolean
ariaLabel?: string ariaLabel?: string
@@ -84,6 +84,13 @@ const handleKeydown = (event: KeyboardEvent) => {
} }
/* Sizes */ /* Sizes */
.base-button--xs {
padding: 0.375rem 0.5rem;
font-size: 0.75rem;
min-height: 2.25rem; /* 36px - smaller but still usable */
min-width: 2.25rem;
}
.base-button--sm { .base-button--sm {
padding: 0.5rem 0.75rem; padding: 0.5rem 0.75rem;
font-size: 0.875rem; font-size: 0.875rem;
@@ -146,6 +153,13 @@ const handleKeydown = (event: KeyboardEvent) => {
justify-content: center; justify-content: center;
} }
/* Adjust xs ghost buttons for better emoji display */
.base-button--ghost.base-button--xs {
min-height: 2.25rem;
min-width: 2.25rem;
padding: 0.25rem; /* Tighter padding for emoji buttons */
}
.base-button--ghost:hover:not(:disabled) { .base-button--ghost:hover:not(:disabled) {
background-color: rgba(100, 108, 255, 0.1); background-color: rgba(100, 108, 255, 0.1);
} }

View File

@@ -2,7 +2,7 @@
<div class="input-actions"> <div class="input-actions">
<BaseButton <BaseButton
variant="ghost" variant="ghost"
size="sm" size="xs"
@click="$emit('file-upload')" @click="$emit('file-upload')"
aria-label="Upload file" aria-label="Upload file"
:disabled="disabled" :disabled="disabled"
@@ -12,7 +12,7 @@
<BaseButton <BaseButton
variant="ghost" variant="ghost"
size="sm" size="xs"
@click="$emit('camera')" @click="$emit('camera')"
aria-label="Take photo" aria-label="Take photo"
:disabled="disabled" :disabled="disabled"
@@ -22,7 +22,7 @@
<BaseButton <BaseButton
variant="ghost" variant="ghost"
size="sm" size="xs"
@click="$emit('voice')" @click="$emit('voice')"
aria-label="Record voice message" aria-label="Record voice message"
:disabled="disabled" :disabled="disabled"
@@ -67,7 +67,7 @@ defineEmits<{
.input-actions { .input-actions {
display: flex; display: flex;
align-items: center; align-items: center;
gap: 0.5rem; gap: 0.25rem; /* Reduced gap to save space */
flex-shrink: 0; flex-shrink: 0;
} }
</style> </style>

View File

@@ -84,10 +84,35 @@ defineExpose({
.message-input { .message-input {
display: flex; display: flex;
align-items: flex-end; align-items: flex-end;
gap: 0.75rem; gap: 0.5rem; /* Reduced gap to save space */
max-width: 100%; max-width: 100%;
} }
.message-input :deep(.base-textarea) {
flex: 1; /* Take all available space */
min-width: 200px; /* Ensure minimum usable width */
}
.message-input :deep(.input-actions) {
flex-shrink: 0; /* Don't allow action buttons to shrink */
}
/* Mobile responsiveness */
@media (max-width: 480px) {
.message-input-container {
padding: 0.75rem; /* Slightly less padding on very small screens */
}
.message-input :deep(.base-textarea) {
min-width: 150px; /* Allow smaller minimum width on mobile */
}
/* Ensure buttons remain accessible on small screens */
.message-input :deep(.input-actions) {
gap: 0.125rem; /* Even tighter gap on mobile */
}
}
/* Dark mode */ /* Dark mode */
@media (prefers-color-scheme: dark) { @media (prefers-color-scheme: dark) {
.message-input-container { .message-input-container {