Самая большая проблема, которую, я думаю, у вас возникнет, заключается в реализации прокрутки в обоих направлениях, которая позволяет масштабировать пинч. сетка в виде таблицы HTML с кнопками Javascript / CSS dropup
или dropdown
в каждой ячейке для изменения цвета
например HTML
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
.dropbtn {
background-color: #3498DB;
color: white;
padding: 16px;
font-size: 16px;
border: none;
}
.dropdown {
position: relative;
display: inline-block;
}
.dropdown-content {
display: none;
position: absolute;
background-color: #f1f1f1;
z-index: 1;
}
.dropdown-content a {
color: black;
padding: 12px 16px;
text-decoration: none;
display: block;
}
.dropdown-content a:hover {background-color: #ccc}
.dropdown:hover .dropdown-content {
display: block;
}
.dropdown:hover .dropbtn {
background-color: #2980B9;
}
</style>
</head>
<body>
<script>
function setColor(btn,color){
var property=document.getElementById(btn);
property.style.backgroundColor=color;
}
</script>
<div class="dropdown">
<button id="dropbtn" class="dropbtn">Dropdown</button>
<div class="dropdown-content">
<button id="myBtn1" onclick="setColor('dropbtn','#fff200');">Color 1</button>
<button id="myBtn2" onclick="setColor('dropbtn','#fff2ff');">Color 2</button>
<button id="myBtn3" onclick="setColor('dropbtn','#ff0000');">Color 3</button>
</div>
</div>
</body>
</html>