Sometimes you have to dynamically resize the font size based on browser scale. Its called font scale with screen size. In this post I will explain how can you achieve the behavior of font resizing on browser scaling.
Prerequisites
As I am going to explain it in an Angular application, so I believe you have Angular installed on your machine. So start with creating a blank Angular application.
Step 1 – create an app and a component
Create an Angular application and a component inside that. We can use the App Component as well.
Step 2 – put html and css
app.component.html
<h1>Hello Angular</h1>
<p class="dynamic-font-size">
Dynamic font resize will happen in this text
</p>
app.component.scss
$mqIterations: 19;
@mixin fontResize($iterations)
{
$i: 1;
@while $i <= $iterations
{
@media all and (min-width: 100px * $i) {
.dynamic-font-size { font-size:0.25em * $i; }
}
$i: $i + 1;
}
}
@include fontResize($mqIterations);
p, h1 {
font-family: Verdana, Geneva, Tahoma, sans-serif;
}
If you notice above code, we have used scss
file so that I can put some calculate-able css inside it and that will help us create the classes for all the iterations. There is 19 iteration I have put and in each iteration I set 100px
incremented / decremented media query.
Here is a working code for you to look into it I have put on Stackblitz.
Attached some screenshots below:-
Write me up for any query you get.
Thank you!