Twitter で「書式設定でバッテリー もできたんだから、温度計もできるんじゃない!?」というコメントをいただいたので、上図のような数値列を温度計に変身させる書式設定を作ってみました。
以下に JSON を掲載しておくので、興味があれば利用してみてください。
※いずれも最小値 0、最大値 50 を前提に作成されています。
サイトテーマカラーの 温度計
この書式設定は、数値範囲ごとに温度計の色が変わることはありません。
{ "$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json", "elmType": "div", "style": { "display": "flex", "flex-direction": "column", "jutify-content": "center", "height": "120px", "padding-top": "10px" }, "children": [ { "elmType": "div", "style": { "position": "relative", "z-index": "1", "width": "12px", "height": "70px", "border": "2px solid", "border-radius": "15px 15px 0 0", "border-bottom": "none", "display": "flex", "justify-content": "center" }, "attributes": { "class": "ms-fontColor-themePrimary ms-bgColor-white" }, "children": [ { "elmType": "div", "style": { "position": "absolute", "width": "50%", "max-height": "100%", "height": "=( @currentField / 50 ) * 100 + '%'", "border-radius": "15px 15px 0 0", "bottom": "-2px" }, "attributes": { "class": "ms-bgColor-themePrimary" } } ] }, { "elmType": "div", "style": { "position": "relative", "width": "40px", "height": "40px", "border-radius": "50%", "border": "2px solid", "bottom": "3px", "display": "flex", "justify-content": "center", "align-items": "center" }, "attributes": { "class": "ms-fontColor-themePrimary" }, "children": [ { "elmType": "div", "style": { "width": "100%", "height": "100%", "border-radius": "100%", "display": "flex", "justify-content": "center", "align-items": "center" }, "attributes": { "class": "ms-bgColor-white" }, "children": [ { "elmType": "div", "txtContent": "@currentField", "style": { "width": "85%", "height": "85%", "border-radius": "50%", "display": "flex", "justify-content": "center", "align-items": "center" }, "attributes": { "class": "ms-bgColor-themePrimary ms-fontColor-white" } } ] } ] } ] }
ノーマルカラーの 温度計
この書式設定は、次の数値範囲ごとに温度計の色が変わるようになっています。
- 30 ~
- 15 ~
- 0 ~
{ "$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json", "elmType": "div", "style": { "display": "flex", "flex-direction": "column", "jutify-content": "center", "height": "120px", "padding-top": "10px" }, "children": [ { "elmType": "div", "style": { "position": "relative", "z-index": "1", "width": "12px", "height": "70px", "border": "2px solid", "border-radius": "15px 15px 0 0", "border-bottom": "none", "display": "flex", "justify-content": "center" }, "attributes": { "class": "ms-fontColor-neutralPrimary ms-bgColor-white" }, "children": [ { "elmType": "div", "style": { "position": "absolute", "width": "50%", "max-height": "100%", "height": "=( @currentField / 50 ) * 100 + '%'", "border-radius": "15px 15px 0 0", "bottom": "-2px" }, "attributes": { "class": "=if(@currentField > 30 , 'ms-bgColor-red' , if(@currentField > 15 , 'ms-bgColor-orangeLighter' , 'ms-bgColor-blueLight') )" } } ] }, { "elmType": "div", "style": { "position": "relative", "width": "40px", "height": "40px", "border-radius": "50%", "border": "2px solid", "bottom": "3px", "display": "flex", "justify-content": "center", "align-items": "center" }, "attributes": { "class": "ms-fontColor-neutralPrimary" }, "children": [ { "elmType": "div", "style": { "width": "100%", "height": "100%", "border-radius": "100%", "display": "flex", "justify-content": "center", "align-items": "center" }, "attributes": { "class": "ms-bgColor-white" }, "children": [ { "elmType": "div", "txtContent": "@currentField", "style": { "width": "85%", "height": "85%", "border-radius": "50%", "display": "flex", "justify-content": "center", "align-items": "center" }, "attributes": { "class": "=if(@currentField > 30 , 'ms-bgColor-red ms-fontColor-white' , if(@currentField > 15 , 'ms-bgColor-orangeLighter ms-fontColor-white' , 'ms-bgColor-blueLight ms-fontColor-white') )" } } ] } ] } ] }
ユニコーンカラーの 温度計
この書式設定は、次の数値範囲ごとに温度計の色が変わるようになっています。
- 30 ~
- 15 ~
- 0 ~
{ "$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json", "elmType": "div", "style": { "display": "flex", "flex-direction": "column", "jutify-content": "center", "height": "120px", "padding-top": "10px" }, "children": [ { "elmType": "div", "style": { "position": "relative", "z-index": "1", "width": "12px", "height": "70px", "border": "2px solid", "border-radius": "15px 15px 0 0", "border-bottom": "none", "display": "flex", "justify-content": "center", "border-color": "#A078FF" }, "attributes": { "class": "ms-bgColor-white" }, "children": [ { "elmType": "div", "style": { "position": "absolute", "width": "50%", "max-height": "100%", "height": "=( @currentField / 50 ) * 100 + '%'", "border-radius": "15px 15px 0 0", "bottom": "-2px", "background-color": "=if(@currentField > 30 , '#D0B1FD' , if(@currentField > 15 , '#FFB3F4' , '#9AE8EE') )" } } ] }, { "elmType": "div", "style": { "position": "relative", "width": "40px", "height": "40px", "border-radius": "50%", "border": "2px solid", "bottom": "3px", "display": "flex", "justify-content": "center", "align-items": "center", "border-color": "#A078FF" }, "children": [ { "elmType": "div", "style": { "width": "100%", "height": "100%", "border-radius": "100%", "display": "flex", "justify-content": "center", "align-items": "center" }, "attributes": { "class": "ms-bgColor-white" }, "children": [ { "elmType": "div", "txtContent": "@currentField", "style": { "width": "85%", "height": "85%", "border-radius": "50%", "display": "flex", "justify-content": "center", "align-items": "center", "background-color": "=if(@currentField > 30 , '#D0B1FD' , if(@currentField > 15 , '#FFB3F4' , '#9AE8EE') )" }, "attributes": { "class": "ms-fontColor-white" } } ] } ] } ] }