Я пытался ввести f2f2f2, но могу ввести только f2. Как только я пытаюсь ввести вторую f (например, f2f), значение автоматически меняется на ff22ff. Это происходит как в поле Цвет, так и в поле Цвет текста при создании новой категории (или её редактировании).
Спасибо за отчет. Я также могу воспроизвести проблему на Meta. Кроме того, невозможно удалить введенный текст с помощью кнопки «Назад» на клавиатуре.
В качестве временного обходного решения, пока мы не исправим эту проблему, вы можете скопировать и вставить шестнадцатеричное значение непосредственно в поле.
Я не разработчик, поэтому не понимаю это на глубоком уровне, но глядя на коммит, там написано: // auto fill common hex codes like #F8F -> #F8F8F8 and #DDD -> #DDDDDD
Почему оно ведёт себя таким образом?
Я понимаю, что при добавлении fff и нажатии на «Сохранить» оно автоматически сохраняется как ffffff, но при вводе не должно происходить автоматического заполнения в реальном времени (если это именно то, что происходит).
А что, если я хочу ввести f2ff32? Сейчас я застрял на том, что оно всегда по умолчанию принимает f2f2f2, что и было проблемой в моём первоначальном сообщении.
Я попытался улучшить предложения из функции автодополнения шестнадцатеричных цветов. Однако, по моему мнению, единственное реальное решение здесь — не менять значение цвета в форме во время ввода.
Нам всё ещё нужно проверять значение, чтобы убедиться в корректности шестнадцатеричного кода, но я изменил подход: проверка теперь выполняется только при клике или переключении с поля, либо при отправке формы.
Он всегда оценивает первые 6 символов, поэтому даже если у меня есть f2f299f2, он предположит, что это f2f299.
Он может полностью игнорировать #, что иногда и происходит при получении данных из некоторых приложений (например, Shottr выдаёт мне полный #f2f2f2). Это позволяет пользователям просто копировать и вставлять то, что они получают из приложения, или вводить шестнадцатеричный код так, как они привыкли. Таким образом, ввод или вставка #f2f2f2, f2f2f2, #f2f2f29393 или f2f2f29393 приведёт к получению одного и того же цвета.
Оба эти подхода сделают систему сверхгибкой. Если я получу #f2f2f2 из приложения, последний 2 не будет обрезан, так как ограничение не только в 6 символах, и он всё равно будет принят как цвет, поскольку # игнорируется.
Затем при сохранении категории # и любые дополнительные символы сверх 6 будут удалены.
Что вы думаете?
Автоматическое завершение при сохранении всё ещё может работать для определённых цветов, таких как fff, 000, 111 и т. д.