Today I want to remind about important topic - Accessibility. It's a community-driven
effort to make digital accessibility easier.
Small part of this topic is typography. The text should look good with any browser font-size.
100% | 200% |
---|---|
I know, we all did that, a lot of people on the internet use it in their courses. But it is a bad approach. Here is one simple rule if you are not sure which unit to choose:
px - fixed-size elements that won't change, such as for borders or shadows.
rem - font sizes to make it accessible to users who have changed their browser's default font size.
vw / vh - elements sizing sticking with viewport size
% - elements sizing sticking with relative size
All we need is clamp() to make it accessible and formula to
make it responsive.
html { font-size: 16px; /* 1 rem */ line-height: 1.2; }
Define your minimum and maximum screen size, 320 px - 1920 px in my case.
Define size of your text you want to have at your minimum and maximum screen. In my example I have h1 tag so my
font-size will be 50px and 90px accordingly.
Go to https://utopia.fyi/type/calculator and put your values there
Copy /* @link https://utopia.fyi/type/calculator?c=320,50,1.2,1920,90,1.25,2,2,&s=0.75|0.5|0.25,1.5|2|3|4|6,s-l&g=s,l,xl,12 */ :root { --step--2: clamp(2.1701rem, 1.8842rem + 1.4299vw, 3.6rem); --step--1: clamp(2.6042rem, 2.225rem + 1.8958vw, 4.5rem); --step-0: clamp(3.125rem, 2.625rem + 2.5vw, 5.625rem); --step-1: clamp(3.75rem, 3.0938rem + 3.2813vw, 7.0313rem); --step-2: clamp(4.5rem, 3.6422rem + 4.2891vw, 8.7891rem); }
Result :
320px | 1920px | 1920px(200% zoom) |
---|---|---|
You can see that with 1 line of css my text is responsive and accessible for browser scaling as well.
My intention was to create flexible Typography component as fast and as flexible as possible.
I took my largest h1 text. Went to https://utopia.fyi/type/calculator and generated 8 downscale steps:
This would be my p, h1-6, span and label text sizes
html { font-size: 16px; /* 1 rem */ line-height: 1.2; }
Then a 5 more minutes playing with react and Voilà:
My reusable typography components for React
Using REM Doesn't Make Your Website Responsive - Here's Why
Fluid Typography
The above is the detailed content of Web accessibility: Accessible Fluid Typography. For more information, please follow other related articles on the PHP Chinese website!