Mappr UI provides a custom modal to use for configuring the application view. Below is a static preview of the modal. Please refer to Bootstrap modals documentation to make it open with a button event.
<div class="modal" id="modal-customize" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Customize layout</h5>
<button type="button" class="close text-muted" data-dismiss="modal" aria-label="Close">
<i class="icon icon-close"></i>
</button>
</div>
<div class="modal-body">
<div class="row">
<div class="col-sm-12 col-md-6">
<p class="font-weight-bold mb-2">Theme</p>
<div class="form-group">
<div class="custom-control custom-radio d-inline-block mr-3">
<p>
<input type="radio" id="theme-radio-light" name="theme-radio" class="custom-control-input" checked="">
<label class="custom-control-label" for="theme-radio-light">Light</label>
</p>
</div>
<div class="custom-control custom-radio d-inline-block">
<p>
<input type="radio" id="theme-radio-dark" name="theme-radio" class="custom-control-input">
<label class="custom-control-label" for="theme-radio-dark">Dark</label>
</p>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-12">
<p class="font-weight-bold mb-2">Layout Templates</p>
<div class="horizontal-scroll pt-1">
<div class="btn-layout layout-1 mr-3 active">
<svg xmlns="http://www.w3.org/2000/svg" width="88" height="58" viewBox="0 0 88 58">
<g fill="none" fill-rule="evenodd">
<rect class="dark-fill" width="88" height="58" fill="#D4D4D5" rx="4" />
<rect width="18" height="48" x="5" y="5" fill="#FFF" rx="2" />
<rect width="56" height="48" x="27" y="5" fill="#FFF" opacity=".5" rx="2" />
<rect width="12" height="12" x="8" y="8" fill="#E9E9E9" rx="2" />
</g>
</svg>
</div>
<div class="btn-layout layout-2 mr-3">
<svg xmlns="http://www.w3.org/2000/svg" width="88" height="58" viewBox="0 0 88 58">
<g fill="none" fill-rule="evenodd">
<rect class="dark-fill" width="88" height="58" fill="#D4D4D5" rx="4" />
<rect width="56" height="48" x="5" y="5" fill="#FFF" opacity=".5" rx="2" />
<rect width="18" height="48" x="65" y="5" fill="#FFF" rx="2" />
<rect width="12" height="12" x="68" y="8" fill="#E9E9E9" rx="2" />
</g>
</svg>
</div>
<div class="btn-layout layout-3 mr-3">
<svg xmlns="http://www.w3.org/2000/svg" width="88" height="58" viewBox="0 0 88 58">
<g fill="none" fill-rule="evenodd">
<rect class="dark-fill" width="88" height="58" fill="#D4D4D5" rx="4" />
<rect width="18" height="39" x="5" y="14" fill="#FFF" rx="2" />
<rect width="56" height="39" x="27" y="14" fill="#FFF" opacity=".5" rx="2" />
<rect class="light-fill" width="78" height="6" x="5" y="5" fill="#E9E9E9" opacity=".5" rx="2" />
</g>
</svg>
</div>
<div class="btn-layout layout-4 mr-3">
<svg xmlns="http://www.w3.org/2000/svg" width="88" height="58" viewBox="0 0 88 58">
<g fill="none" fill-rule="evenodd">
<rect class="dark-fill" width="88" height="58" fill="#D4D4D5" rx="4" />
<rect width="18" height="39" x="65" y="14" fill="#FFF" rx="2" />
<rect width="56" height="39" x="5" y="14" fill="#FFF" opacity=".5" rx="2" />
<rect class="light-fill" width="78" height="6" x="5" y="5" fill="#E9E9E9" opacity=".5" rx="2" />
</g>
</svg>
</div>
<div class="btn-layout layout-5">
<svg xmlns="http://www.w3.org/2000/svg" width="88" height="58" viewBox="0 0 88 58">
<g fill="none" fill-rule="evenodd">
<rect class="dark-fill" width="88" height="58" fill="#D4D4D5" rx="4" />
<rect width="78" height="9" x="5" y="44" fill="#FFF" rx="2" />
<rect width="78" height="35" x="5" y="5" fill="#FFF" opacity=".5" rx="2" />
<rect class="light-fill" width="72" height="6" x="8" y="8" fill="#D4D4D5" opacity=".5" rx="2" />
</g>
</svg>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-12">
<p class="font-weight-bold mb-2">Base maps</p>
<div class="horizontal-scroll pt-1">
<div class="rounded config-base-maps base-map-1 active"></div>
<div class="rounded config-base-maps base-map-2"></div>
<div class="rounded config-base-maps base-map-3"></div>
<div class="rounded config-base-maps base-map-4"></div>
<div class="rounded config-base-maps base-map-5"></div>
<div class="rounded config-base-maps base-map-6"></div>
<div class="rounded config-base-maps base-map-7"></div>
<div class="rounded config-base-maps base-map-8"></div>
<div class="rounded config-base-maps base-map-9"></div>
<div class="rounded config-base-maps base-map-10"></div>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-link" data-dismiss="modal">Cancel</button>
<button type="button" class="btn btn-primary">Save</button>
</div>
</div>
</div>
</div>