I did a quick change on a similar (sort of) widget from a previous project to give you an idea how the CSS grid looks like.
[{"id":"6ac2866a.dfbd38","type":"tab","label":"Multiple buttons","disabled":false,"info":""},{"id":"70d723e8.c70c5c","type":"template","z":"6ac2866a.dfbd38","name":"HTML and CSS ","field":"template","fieldType":"msg","format":"handlebars","syntax":"plain","template":"\n<head>\n <title>Multi Button</title>\n\n<style>\n\n.grid {\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-template-rows: 1fr 1fr 1fr 1fr ;\n}\n\n\n.grid > div {\n text-align: center;\n font-weight: bold;\n}\n\n.back {\n width: 360px;\n margin: 0 auto;\n padding: 20px;\n border-radius: 20px;\n border: 4px solid #000;\n background-color: orange;\n}\n\n.button {\n\n line-height: 65px;\n margin: 3px;\n padding: 0px;\n text-align: center;\n border-radius: 5px;\n border: 3px solid white;\n color: white;\n background-color: grey;\n font-family: Monospace;\n font-size: 22px;\n font-weight: bold;\n}\n\n\n\n\n.b1 {\n grid-row: 1;\n grid-column: 1;\n}\n\n.b2 {\n grid-row: 1;\n grid-column: 2;\n}\n\n\n.b3 {\n grid-row: 2 / 4;\n grid-column: 1;\n}\n\n.b4 {\n grid-row: 2;\n grid-column: 2;\n }\n\n.b5 {\n grid-row: 3;\n grid-column: 2;\n}\n\n.b6 {\n grid-row: 4;\n grid-column: 1;\n }\n\n.b7 {\n grid-row: 4;\n grid-column: 2;\n}\n\n\n</style>\n\n</head>\n\n\n<body>\n <div class=\"back\">\n <div class=\"grid\">\n <div class=\"button b1\" ng-click=\"send({payload: 'b1'})\">^</div> \n <div class=\"button b2\" ng-click=\"send({payload: 'b2'})\">80%</div> \n <div class=\"button b3\" ng-click=\"send({payload: 'b3'})\">###</div> \n <div class=\"button b4\" ng-click=\"send({payload: 'b4'})\">60%</div> \n <div class=\"button b5\" ng-click=\"send({payload: 'b5'})\">40%</div> \n <div class=\"button b6\" ng-click=\"send({payload: 'b6'})\">+</div> \n <div class=\"button b7\" ng-click=\"send({payload: 'b7'})\">20%</div> \n </div>\n </div>\n\n</body>\n","output":"str","x":440,"y":260,"wires":[["e71df6f6.c25bd8"]]},{"id":"ec9e27ed.2a80c8","type":"inject","z":"6ac2866a.dfbd38","name":"","repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":237.09999084472656,"y":260,"wires":[["70d723e8.c70c5c"]]},{"id":"e71df6f6.c25bd8","type":"ui_template","z":"6ac2866a.dfbd38","group":"816273f1.203f5","name":"Multiple Buttons","order":0,"width":"8","height":"8","format":"","storeOutMessages":true,"fwdInMessages":true,"resendOnRefresh":false,"templateScope":"local","x":680.1000518798828,"y":259.9999990463257,"wires":[["3cbc88af.6607c8"]]},{"id":"3cbc88af.6607c8","type":"debug","z":"6ac2866a.dfbd38","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":840,"y":260,"wires":[]},{"id":"816273f1.203f5","type":"ui_group","z":"","name":"Flow 1","tab":"4fa0e799.30b058","order":2,"disp":true,"width":"12","collapse":false},{"id":"4fa0e799.30b058","type":"ui_tab","z":"","name":"Home","icon":"dashboard","order":1}]