vertical-align testing
by phloe
HTML
<link rel="stylesheet" href="https://www.dr.dk/global/publik.css">
<div>
<button>Foo <em>here</em> <i>now!</i></button>
</div>
<div>
<button>Foo</button>
</div>
<span class="label"><i>Click here</i></span>
CSS
:root {
--ascender: var(--dr-font-publik-ascender);
--descender: var(--dr-font-publik-descender);
--cap-height: var(--dr-font-publik-cap-height);
--x-height: var(--dr-font-publik-x-height);
}
html {
font-family: "DR Publik";
}
div {
margin: 1rem 0;
}
button {
--offset: calc((((var(--ascender) - var(--char-height)) - var(--descender)) / 2) * 1em);
background: blue;
--padding-block: 1rem;
padding: calc(var(--padding-block) + (1cap - 1ex)) 3rem var(--padding-block);
padding: calc(1rem - var(--offset)) 3rem calc(1rem + var(--offset));
padding: var(--padding-block) 3rem;
border: 0;
border-radius: 0;
--char-height: var(--cap-height);
font-size: calc(2rem / var(--char-height));
line-height: 2.5rem;
font-family: "DR Publik";
_font-family: "Verdana";
_max-width: 300px;
color: #FFF;
display: block;
_font-size: 1ex;
}
button em {
font-style: normal;
font-family: "Verdana";
font-family: "DR Publik";
_vertical-align: calc((((var(--dr-font-publik-ascender) - var(--dr-font-publik-x-height)) - var(--dr-font-publik-descender)) / 2) * 1em);
vertical-align: middle;
line-height: 1ex;
}
button i {
font-style: normal;
font-family: "DR Publik";
font-family: "Verdana";
font-family: "Arial";
_vertical-align: middle;
line-height: 1ex;
_font-size: calc((var(--dr-font-publik-x-height) / 0.5185546875) * 1em);
_font-size: calc(1ex / 0.5185546875);
}
button::before {
content: "";
display: inline-block;
height: 0.5em;
width: 1px;
background: currentcolor;
vertical-align: middle;
_margin-top: calc(1ex - 1cap);
}
.icon {
vertical-align: middle;
display: inline-block;
width: 3rem;
height: 3rem;
background: currentColor;
margin-right: 0.5rem;
margin-top: calc(1ex - 1cap);
display: none;
}
.label {
font-size: 3rem;
line-height: 3.5rem;
font-family: "DR Publik";
}
.label i {
background: blue;
font-size: calc(1em / 1cap);
}