テーマのカスタマイズで、先頭の#を含む16進数カラー文字列の貼り付けを許可する

(これをバグとするか、UX の問題とするか迷いますが)

こんにちは、

お使いのコンピュータで 16 進色の値を操作する際、クリップボードから先頭に # を付けた 16 進値をコピー&ペーストすることがよくあります。
例えば、#1a2331 を色のテキスト入力欄に貼り付けた場合、以下の minor な問題が発生します。
まず、入力欄が 6 文字に制限されているため、# を含めて 7 文字ある #1a2331 の最後の文字が削除されます。
その後、# が自動的に文字列から除去されます。
その結果、貼り付け後の入力欄の値は、最後の文字 1 が欠落した 1a233 となり、誤った色値となってしまいます。

これを解決するには、文字列の文字数チェックを行う 前に # を除去するといった対応が考えられます。

問題の再現方法:Discourse のカラーテーマカスタマイズにある任意の色のテキスト入力欄に、#1a2331 という文字列を貼り付けてみてください。

OS は Windows 10、ブラウザは Chrome で、Discourse のバージョンは 2.4.0.beta7 を使用しています。

「いいね!」 2

私の記憶では、Discourse パレットへの 16 進コードの挿入は、常にあなたが説明した通りでした。# を省略し、16 進数だけを手動で入力する必要があります。多くのカラーピッカーでは、コード形式を事前に選択することで、16 進コードをコピーするオプションを提供しています。

「いいね!」 2

なるほど、その点は理解できます。ただ、この挙動は少し不自然に感じます。入力された文字列の最後の数字が欠落していることに気づくまで、コピー&ペーストした値を何度か確認する必要がありました。当初、なぜ値が無効なのか理解できず、この特定のコピー&ペーストの挙動はデメリットなく改善できるのではないかと思われます。

「いいね!」 5

これはまだ問題です。

そして、そうでないものもたくさんあります!

Discourse が、さまざまな設定に色を貼り付ける際に、先頭の # を自動的に処理してくれると、非常に洗練されたものになるでしょう。

「いいね!」 1