button {
position: fixed;
top: 100%;
left: 50%;
font-size: 28px;
width: 48px;
height: 48px;
border-radius: 1000px;
color: black;
background: white;
border: 2px solid black;
line-height: 1;
/* Add this to make sure any content in the button (text */
/* or not) is centered in both axis: */
display: flex;
align-items: center;
justify-content: center;
}
button::before {
content: attr(class);
position: absolute;
bottom: calc(100% + 8px);
left: 50%;
padding: 4px 8px;
border-radius: 4px;
background: black;
color: white;
transform-origin: 0 50%;
transform: rotate(-45deg);
font-family: monospace;
font-size: 12px;
}
.lowercase {
font-family: arial;
transform: translate(-300%, -125%);
}
.uppercase {
font-family: arial;
transform: translate(-175%, -125%);
}
.svg {
transform: translate(-50%, -125%);
}
.multiplyArial {
font-family: arial;
transform: translate(75%, -125%);
}
.multiplyMonospace {
font-family: monospace;
transform: translate(200%, -125%);
}
.bar {
position: fixed;
bottom: 36px;
left: 0;
right: 0;
height: 1px;
background: rgba(255, 0, 255, .75);
}
<button class="lowercase">x</button>
<button class="uppercase">X</button>
<button class="svg">
<svg style="width:1em;height:1em" viewBox="0 0 24 24">
<path fill="currentColor" d="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z" />
</svg>
</button>
<button class="multiplyArial">×</button>
<button class="multiplyMonospace">×</button>
<div class="bar"></div>