mirror of
https://github.com/zulip/zulip.git
synced 2025-11-04 14:03:30 +00:00
compose: Add background and border colors for message limit.
Added colors to notify users when the message length is near the limit or has exceeded it. Used distinct colors for each case to provide clear feedback. Fixes: #32171.
This commit is contained in:
committed by
Tim Abbott
parent
569b07477b
commit
f1dd8d88c9
@@ -765,6 +765,8 @@ export function check_overflow_text($container: JQuery): number {
|
||||
const is_edit_container = $textarea.closest(".message_row").length > 0;
|
||||
|
||||
if (text.length > max_length) {
|
||||
$indicator.removeClass("textarea-approaching-limit");
|
||||
$textarea.removeClass("textarea-approaching-limit");
|
||||
$indicator.addClass("textarea-over-limit");
|
||||
$textarea.addClass("textarea-over-limit");
|
||||
$indicator.html(
|
||||
@@ -780,6 +782,8 @@ export function check_overflow_text($container: JQuery): number {
|
||||
} else if (remaining_characters <= 900) {
|
||||
$indicator.removeClass("textarea-over-limit");
|
||||
$textarea.removeClass("textarea-over-limit");
|
||||
$indicator.addClass("textarea-approaching-limit");
|
||||
$textarea.addClass("textarea-approaching-limit");
|
||||
$indicator.html(
|
||||
render_compose_limit_indicator({
|
||||
remaining_characters,
|
||||
@@ -793,6 +797,7 @@ export function check_overflow_text($container: JQuery): number {
|
||||
} else {
|
||||
$indicator.text("");
|
||||
$textarea.removeClass("textarea-over-limit");
|
||||
$textarea.removeClass("textarea-approaching-limit");
|
||||
|
||||
if (is_edit_container) {
|
||||
set_message_too_long_for_edit(false, $container);
|
||||
|
||||
@@ -721,6 +721,10 @@
|
||||
/* Compose box colors */
|
||||
--color-compose-box-background: hsl(232deg 30% 92%);
|
||||
--color-compose-message-content-background: hsl(0deg 0% 100%);
|
||||
--color-compose-message-content-background-over-limit: hsl(3deg 35% 90%);
|
||||
--color-compose-message-content-background-approaching-limit: hsl(
|
||||
50deg 75% 92%
|
||||
);
|
||||
--color-compose-send-button-icon-color: hsl(0deg 0% 100%);
|
||||
--color-compose-send-button-background: hsl(240deg 96% 68%);
|
||||
--color-compose-send-button-background-interactive: hsl(240deg 41% 50%);
|
||||
@@ -788,6 +792,10 @@
|
||||
--color-message-formatting-controls-container: hsl(232deg 30% 96%);
|
||||
--color-message-content-container-border: hsl(0deg 0% 0% / 10%);
|
||||
--color-message-content-container-border-focus: hsl(0deg 0% 57%);
|
||||
--color-message-content-container-border-over-limit: hsl(0deg 76% 65%);
|
||||
--color-message-content-container-border-approaching-limit: hsl(
|
||||
38deg 70% 50%
|
||||
);
|
||||
--color-compose-control-button-background-hover: hsl(0deg 0% 0% / 5%);
|
||||
--color-compose-formatting-button-divider: hsl(0deg 0% 75%);
|
||||
--color-compose-focus-ring: var(--color-outline-focus);
|
||||
@@ -1634,6 +1642,10 @@
|
||||
var(--color-compose-box-background),
|
||||
hsl(0deg 0% 0%) 20%
|
||||
);
|
||||
--color-compose-message-content-background-over-limit: hsl(3deg 50% 12%);
|
||||
--color-compose-message-content-background-approaching-limit: hsl(
|
||||
50deg 75% 12%
|
||||
);
|
||||
--color-compose-send-button-focus-shadow: hsl(0deg 0% 100% / 80%);
|
||||
--color-compose-send-control-button: hsl(240deg 30% 70%);
|
||||
--color-compose-send-control-button-background: transparent;
|
||||
@@ -1690,7 +1702,6 @@
|
||||
--color-message-formatting-controls-container: hsl(0deg 0% 0% / 8%);
|
||||
--color-message-content-container-border: hsl(0deg 0% 0% / 80%);
|
||||
--color-message-content-container-border-focus: hsl(0deg 0% 100% / 27%);
|
||||
--color-message-content-container-border-over-limit: hsl(0deg 76% 65%);
|
||||
--color-compose-control-button-background-hover: hsl(0deg 0% 100% / 5%);
|
||||
--color-compose-formatting-button-divider: hsl(236deg 33% 90% / 25%);
|
||||
--color-compose-focus-ring: hsl(0deg 0% 67%);
|
||||
|
||||
@@ -337,15 +337,27 @@
|
||||
}
|
||||
|
||||
#message-content-container:has(.new_message_textarea.textarea-over-limit),
|
||||
#message-content-container:has(.new_message_textarea.textarea-over-limit:focus),
|
||||
.edit-content-container:has(.message_edit_content.textarea-over-limit),
|
||||
.edit-content-container:has(.message_edit_content.textarea-over-limit:focus) {
|
||||
.edit-content-container:has(.message_edit_content.textarea-over-limit) {
|
||||
box-shadow: 0 0 0 1pt
|
||||
var(--color-message-content-container-border-over-limit);
|
||||
}
|
||||
|
||||
#message-content-container:has(
|
||||
.new_message_textarea.textarea-approaching-limit
|
||||
),
|
||||
.edit-content-container:has(.message_edit_content.textarea-approaching-limit) {
|
||||
box-shadow: 0 0 0 1pt
|
||||
var(--color-message-content-container-border-approaching-limit);
|
||||
}
|
||||
|
||||
#message-content-container:has(.new_message_textarea.textarea-over-limit.flash),
|
||||
.edit-content-container:has(.message_edit_content.textarea-over-limit.flash) {
|
||||
#message-content-container:has(
|
||||
.new_message_textarea.textarea-approaching-limit.flash
|
||||
),
|
||||
.edit-content-container:has(.message_edit_content.textarea-over-limit.flash),
|
||||
.edit-content-container:has(
|
||||
.message_edit_content.textarea-approaching-limit.flash
|
||||
) {
|
||||
animation: message-limit-flash 0.5s ease-in-out 3;
|
||||
}
|
||||
|
||||
@@ -406,6 +418,18 @@
|
||||
padding-right: var(--composebox-buttons-width);
|
||||
background-color: var(--color-compose-message-content-background);
|
||||
color: var(--color-text-default);
|
||||
|
||||
&.textarea-over-limit {
|
||||
background-color: var(
|
||||
--color-compose-message-content-background-over-limit
|
||||
);
|
||||
}
|
||||
|
||||
&.textarea-approaching-limit {
|
||||
background-color: var(
|
||||
--color-compose-message-content-background-approaching-limit
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
.surround-formatting-buttons-row {
|
||||
|
||||
@@ -669,6 +669,18 @@
|
||||
|
||||
.message-edit-textbox {
|
||||
position: relative;
|
||||
|
||||
.textarea-over-limit {
|
||||
background-color: var(
|
||||
--color-compose-message-content-background-over-limit
|
||||
);
|
||||
}
|
||||
|
||||
.textarea-approaching-limit {
|
||||
background-color: var(
|
||||
--color-compose-message-content-background-approaching-limit
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user