<div class="u-textBigger">
<h2>Now I'm as big as an H1</h2>
<h3>Now I'm as big as an H2</h3>
<p class="u-textSmaller">I haven't changed at all.</p>
</div>
<div class="u-textSmaller">
<div class="u-textSmaller">
<div class="u-textBigger">
<span class="u-textBigger">Same as it ever was.</span>
</div>
</div>
</div>
@use cssnext;
html {
background: #00000011;
}
/**
* Ratio and base variables
*/
:root {
--ratio: 1.2;
--base: 1;
--base-em: calc(var(--base) * 1em);
--base-px: calc(var(--base) * 16px);
}
/**
* Scale step variables
*/
:root {
--ms0: 1;
--ms1: var(--ratio); /* 1.2 */
--ms2: calc(var(--ratio) * var(--ms1)); /* 1.44 */
--ms3: calc(var(--ratio) * var(--ms2)); /* 1.728 */
--ms4: calc(var(--ratio) * var(--ms3)); /* 2.074 */
--ms5: calc(var(--ratio) * var(--ms4)); /* 2.488 */
--ms6: calc(var(--ratio) * var(--ms5)); /* 2.986 */
--ms7: calc(var(--ratio) * var(--ms6)); /* 3.583 */
}
/**
* Resets
*/
* + * {
margin-top: calc(1rem / var(--ms1));
}
/**
* Default font sizes
*/
body {
font-size: calc(var(--base-em) * var(--ms0));
line-height: calc(var(--base) * var(--ms2));
max-width: 40em;
}
h6 { font-size: calc(var(--base-em) / var(--ms1)); }
h5 { font-size: calc(var(--base-em) * var(--ms0)); }
h4 { font-size: calc(var(--base-em) * var(--ms1)); }
h3 { font-size: calc(var(--base-em) * var(--ms2)); }
h2 { font-size: calc(var(--base-em) * var(--ms3)); }
h1 { font-size: calc(var(--base-em) * var(--ms4)); }
h3,
h2 { line-height: calc(var(--base) * var(--ms1)); }
h1 { line-height: calc(var(--base) * var(--ms0)); }
/**
* Proportional increments
*/
@media (min-width: 480px) {
html { font-size: calc(var(--base-px) * var(--ms1)); }
}
@media (min-width: 768px) {
h3 { font-size: calc(var(--base-em) * var(--ms3)); }
h2 { font-size: calc(var(--base-em) * var(--ms4)); }
h1 { font-size: calc(var(--base-em) * var(--ms5)); }
}
@media (min-width: 1024px) {
h2 { font-size: calc(var(--base-em) * var(--ms5)); }
h1 { font-size: calc(var(--base-em) * var(--ms6)); }
}
@media (min-width: 1360px) {
html { font-size: calc(var(--base-px) * var(--ms2)); }
h1 { font-size: calc(var(--base-em) * var(--ms7)); }
}
/**
* Utility classes
*/
.u-textBigger {
font-size: calc(var(--base-em) * var(--ms1));
}
.u-textSmaller {
font-size: calc(var(--base-em) / var(--ms1));
}
View Compiled