PowerAppsでHSLAカラーピッカーコンポーネントを作ってみました。 その1
はじめに
Twitterを流し読みしていると、こんなツイートが流れてきました。
PowerPointの色調整は、HSLモードがおススメ。#PowerPoint pic.twitter.com/g0lEz3DSi4
— ネスコプラズム (@nesscoplasm) 2021年9月7日
いつもPower Pointを中心にいろいろなデザイン関連のツイートをされているネスコプラズムさんのツイートでした。HSL、便利そう!
Power Appsでの色指定
Power Appsでの色指定は、Color列挙体(組み込み色の名前で指定)、ColorValue(16進数値で指定)、RGBA(Red,Green,Blueの3原色ブレンド+不透明度で指定)の3種類のやり方があります(以下参照)。
僕は上記のdocsを参照し、代表的な色を色名で直接指定するか、その色のRGBAを取ってきて微調整するか、というやりかたがほとんどでしたが、微妙な色の調整やトーンの統一など、とてもやりにくいというのが本音でした。
HSLAの利点
HSLAは上記のツイートにあるように、Hue(色相)をまず選び、Saturation(彩度)、Lightness(輝度)を調整して同系色で異なるトーンの色を作ったり、その逆でトーンを固定し、同じトーンの異なる色味の色を作るなど、直感的に色を作る、調整することがとても簡単です。これをPower Appsで利用できたらいいのに!ということで、実装できる方法はないのか調べてみました。
調べると、HSL➡RGBの計算式があるようで、沢山ヒットしますし、他言語でのコードサンプルも結構出てきます。
単純に計算式そのものが載っているこちらのページの情報を参考に、実装していくことにしました。
HSLA→RGBAの計算
With関数を使えば、ほぼそのまんま記述できます。
H、S、L、Aそれぞれの値をスライダーで調整することとし、場合分けをちょっと整理して、コードはこんな感じです。
※sld~はスライダー。
RGBの値をそれぞれ整数にするのに、Roundを入れていますが、なくてもOKです。
不透明度のAはRGBA、HSLAどちらも同じなのでそのまま。Sliderの値が整数なので、0~100のスライダー値を100で割って出してます。
HSLAとRGBAの比較は以下のような感じ。
色の形式として、HSLAが便利そうだったので、HSLAをRGBAに変換するカスタム関数作ってみた。
— Kilroy 365 (@KilroyWaaasHere) 2021年9月10日
彩度や輝度を固定して色味変えれるので、配色考えるのにはもってこい。デフォで採用して欲しい…。#PowerApps pic.twitter.com/lPKdr1UOVx
今日はここまで、次回に続きます。