Sure, you can add any HTML Element to the view's ui
In this example I add a calcite-button (but a normal button would work the same) to log the view's extent when clicked.
require(["esri/Map", "esri/views/MapView"], (Map, MapView) => {
const map = new Map({
basemap: "topo-vector"
});
const view = new MapView({
container: "viewDiv",
map: map,
zoom: 10,
center: [-104.5, 39.5]
});
const button = document.createElement("calcite-button");
button.addEventListener("click", () => {
console.log(view.extent.toJSON());
});
button.innerText = "Log the view extent";
view.when(() => {
view.ui.add(button, "top-right");
});
});