Got it, thanks for the explanation.
So good news is you don't need to build a custom frontend for this and can use Vega. Bad news is Vega could be a large learning curve depending on your background.
Below is an example of how to draw boxes and put text on the screen which you can copy/paste in the Vega Editor to view this. In my example I am using static data for demo purposes so when you build this in Kibana you will need to do a query against an index to pull the data.
{
"$schema": "https://vega.github.io/schema/vega/v5.json",
"width": 300,
"height": 150,
"padding": 5,
"data": [
{
"name": "table",
"values": [{"name": "Release Date", "value": "8 February 2010"}]
}
],
"marks": [
{
"name": "boxOuter",
"type": "rect",
"encode": {
"enter": {
"stroke": {"value": "black"},
"x": {"signal": "padding.left"},
"y": {"signal": "padding.top"},
"width": {"signal": "width - padding.right - padding.left"},
"height": {"signal": "height - padding.top - padding.bottom"},
"cornerRadius": {"value": 15}
}
}
},
{
"name": "boxHeader",
"type": "rect",
"encode": {
"enter": {
"fill": {"value": "#8aacb8"},
"stroke": {"value": "black"},
"x": {"signal": "padding.left"},
"y": {"signal": "padding.top"},
"width": {"signal": "width - padding.right - padding.left"},
"height": {"signal": "height / 4"},
"cornerRadiusTopLeft": {"value": 15},
"cornerRadiusTopRight": {"value": 15}
}
}
},
{
"name": "boxHeaderText",
"type": "text",
"from": {"data": "table"},
"encode": {
"enter": {
"x": {"signal": "width / 2"},
"y": {"signal": "padding.top + ((height / 4) / 2)"},
"text": {"field": "name"},
"align": {"value": "center"},
"baseline": {"value": "middle"},
"fontSize": {"signal": "(width / 20) + 15"},
"fill": {"value": "#222b2e"}
}
}
},
{
"name": "boxText",
"type": "text",
"from": {"data": "table"},
"encode": {
"enter": {
"x": {"signal": "width / 2"},
"y": {"signal": "(height / 2) + ((height / 4) / 2)"},
"text": {"field": "value"},
"align": {"value": "center"},
"baseline": {"value": "middle"},
"fontSize": {"signal": "(width / 20) + 20"},
"fill": {"value": "#eb2d3a"}
}
}
}
]
}