Тёмный

Please, don’t use viewport units for font sizes 

Kevin Powell
Подписаться 945 тыс.
Просмотров 13 тыс.
50% 1

Опубликовано:

 

12 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 68   
@octothorpe12
@octothorpe12 День назад
Utopia keeps being awesome! Good on them for calling out WCAG failures.
@DeepTitanic
@DeepTitanic День назад
If you want to maintain a constant relationship between text elements and still have it responsive use pow(). font-size: calc(---size * pow(1.5, 4)); then put the clamp on --size
@NotKyleChicago
@NotKyleChicago День назад
What is pow()? I'm thinking power, as in "2 to the power of 3 equals 8".
@BryceDriesenga
@BryceDriesenga День назад
​@@NotKyleChicago In the CSS code snippet you provided, pow is used as a function within the calc() expression to calculate the font size. Here's a breakdown of how it works: * calc() function: This function allows you to perform mathematical calculations directly within CSS values. * pow(1.5, 4): This expression represents the pow function being used with two arguments: * 1.5: The base number. * 4: The exponent. * pow() function: This function calculates the power of the base number raised to the exponent. In this case, it calculates 1.5 raised to the power of 4, which equals 5.0625. * Final calculation: The calc() function then substitutes the result of the pow() function into the expression, resulting in: font-size: calc(--size * 5.0625); This means the font size will be calculated by multiplying the value of the custom property --size by 5.0625. Therefore, pow in this context is used to calculate the exponent of a number within the calc() function, allowing for more dynamic and flexible font size calculations based on other CSS values.
@zero3juan
@zero3juan 22 часа назад
basically as @DeepTitanic said but without the --size var, they just use 1rem 😎
@kristopherhaney
@kristopherhaney День назад
well shit... (although I use clamp with it)
@LePhenixGD
@LePhenixGD День назад
same !
@bazz6932
@bazz6932 День назад
I use Calc and clamp
@carstenaltena
@carstenaltena День назад
Same, lots of designs I do can't be done otherwise
@t20sgrunt36
@t20sgrunt36 День назад
Same, never had any issues with the min and max of clamp.
@nousuyadagiri96
@nousuyadagiri96 16 часов назад
Yupp
@Cuwubiq
@Cuwubiq День назад
i'm not generally sure about this one.. that's directly too much of definitions, 1 fluid type annotation on root set as a font-size, then rem-ing everywhere else is probably my decision.. maybe id create a utility for myself that will generate these "steps" for me, but i feel like this is way too boilerplaty and in so many cases is an absolute overkill.. thanks for the interesting tip anyways!
@WebDesignerAmy
@WebDesignerAmy 5 часов назад
Nice! I think I will have to revisit a website I did and adjust using the clamp property! With I had known, thank you for this tip!! Using view-port width was my go to for awhile and not I have a better understanding.
@claytongraham714
@claytongraham714 День назад
Oh man... I just got done making a thing with 'vw' units. Now I gotta go back and change stuff. Grumpy hand clap in your general direction 😏
@bdeleasa
@bdeleasa День назад
Thank you for walking through clamp() like you did here. It never truly made sense to me before but this example and your explanation REALLY helped!!!!
@fredthewebguy-yt
@fredthewebguy-yt День назад
Great tip! Utopia's accessibility check is a huge deal.
@pokefreak2112
@pokefreak2112 День назад
this vw trick is actually really cool for game UI's where everything must scale uniformly
@KevinPowell
@KevinPowell День назад
Yeah it can definitely be useful for things like that :)
@JasonJA88
@JasonJA88 День назад
Thanks for the video. I haven't used it in production yet, but I've been liking some prototyping I've done with container-query-units and clamp.
@prasanths8960
@prasanths8960 День назад
When i start to build my first web page during my college days. I often use vmin & vmax for font size. After sometimes only i came to know that these font units won't bring responsiveness 😅
@rossclutterbuck1060
@rossclutterbuck1060 День назад
Jesus wept, are people just overcomplicating things for no reason? The entire point of REM is that it's relative to the root of the document, not its ancestors. Put the clamp() font-size stuff in the html element and then specify multiples of REM however you see fit for your actual text content. No need to magic number things or use an insane number of arbitrary custom properties, just 1 item that does the fluidity and every size thereafter derived from it. Fudging the vw unit in the clamp is still horrible though, but done once could be an acceptable trade-off. Or, and here's a WILD idea, don't have completely responsive text. Even with different pixel densities, all device categories are generally in the same ballpark as each other, so just set up a few media queries with common width ranges and set a fixed unit size for font-size. Hell, put these fixed sizes on the html element and stick with rems for actual text and not only do you preserve the proportionality of size across your different text elements, but you automatically adjust everything based on your device. And browser zooming works are expected as well. However, the difference between zooming the browser and a user's font size preference for the browser are two different things, and px for font sizes regardless of where you use them is going to break the latter.
@Azurryu
@Azurryu День назад
Scaling font sizes for me only make sense when you have design elements with a fixed width and height. 1rem (usually 16px by default) looks perfectly fine on ANY device. Increase regular text a little but on mobile if necessary, but that's it. I actually worked at a company where they scaled everything by setting a calculated font-size via javascript on the html element and scaled EVERYTHING with rem. They considered it perfectly fine, even though everything would jump until all scripts were loaded, everything was too large on phones and tablets in landscape and font sizes were down below 10px on mobile, basically treating the entire page as if it was an image with a width of 100% and height of auto.
@rossclutterbuck1060
@rossclutterbuck1060 17 часов назад
@@Azurryu well, that sounds...competent. Honestly I'll never understand how supposedly professional developers can think insane shit like you describe, or what I see in my own place of work, is a good idea. Hell, how the idea even formed in the first place.
@teugene
@teugene 15 часов назад
I immediately got triggered when I saw the thumbnail "font-size: 5vw", thinking "who on earth does this way?!" LOL. Font clamping with a scaling factor generator is what I usually use all the time and I've been trying to get my designers to do the same because, not only it is so much more easier to implement and it's not based on some arbitrary sizing, it is consistent and it's visually pleasing to look at.
@tolgabeyazoglu536
@tolgabeyazoglu536 15 часов назад
I'm using Bootstrap, are rfs functions included? Or should I use your technique?
@NotKyleChicago
@NotKyleChicago День назад
What is qci? I don't remember seeing that unit type before.
@lpbbell
@lpbbell День назад
Thank you for highlighting accessibility as a measure of successful web design.
@BernardAvornyo-wl4mz
@BernardAvornyo-wl4mz День назад
hey sir, I'm a beginner and I want to know more about the pseudo elements
@deatho0ne587
@deatho0ne587 День назад
How much did I do font: #vw back before clamp? all the time on some major sites and still see it when I go to them. Should I have, nope but what could we do instead. @media 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 and that was a pain.
@Cahnisama
@Cahnisama День назад
Found a height with vw today on the codebase. And not it didn't make any sense.
@SamualN
@SamualN 15 часов назад
I like `font-size: clamp(16px, 3vw, 20px);`
@orionh5535
@orionh5535 День назад
What if the client is reallllly uptight of about never ever having text that line breaks how they don't want it to line break, on any screensize?
@pinnaclewd
@pinnaclewd День назад
Not sure that's even possible with responsive design! You would potentially fall down the hole of overflow 😮
@DAAN_MUSIC
@DAAN_MUSIC День назад
I mean use Clamp and text-wrap:nowrap; Then test it on the 5 common breakpoints and you should be fine. Mostly for company names and or slogans.
@KevinPowell
@KevinPowell День назад
If it's very large text, you can get away with it, which I'm going to hope is the case if they're being particular with line breaks... I'd probably try pretty hard to educate them on how the web works though, in a very polite way with examples of why not being anal with line-breaks is important.
@NedumEze
@NedumEze День назад
Why isn't the Variable part of Clamp function not wrapped in a calc() function? Is something wrong in doing so?
@KevinPowell
@KevinPowell День назад
you could put the calc() in there if you want, but you don't need to. clamp(), like min(), max() and others don't require a calc() to do calculations.
@NedumEze
@NedumEze День назад
@@KevinPowell Oh! Okay. Thanks. I've been adding the calc() believing that it's necessary.
@randycreasi
@randycreasi День назад
One criterion, two criteria. "Criterions" is not a thing :)
@StefanBauer
@StefanBauer День назад
There’s just one issue: zooming. In most browsers, zooming doesn’t change the font size or affect REM units. Even with a 200% zoom, 1rem will still render as 16px instead of 32px. REM only adjusts if someone manually increases the font size in their browser settings to 200%. The regular zoom is in most browser the default zoom. Text zoom is mostly hidden in settings, because it also is effected by OS settings.
@KevinPowell
@KevinPowell День назад
You're current that it doesn't change the font-size or `rem` in the strictess of definitions, but it does zoom in/out because it's changing the size of the pixel unit. Even if you set your font sizes in pixels, it will increase decrease the font size. If you zoom to 200%, you've effectively made your CSS pixels 2x bigger than they used to be (because a CSS pixel is not a screen pixel). You can see it in my demo, and you can try it right now on RU-vid, or any other site. You can also see in the video when I have the font-size in viewport units and zoom in and out, the margin on the sides of the pages is increasing/decreasing because of it (because the pixels are getting bigger/smaller), but the font-size isn't changing. As long as you use em, rem, pixels, or whatever else, you can allow the site to zoom in and out. There are ways to allow for font scaling without zooming. Wikipedia has a control for this right now, and I think offering that is awesome, but as long as you can zoom in/out and have larger/smaller text without any issues, it's perfectly fine.
@virinom
@virinom День назад
Well, I'm still using good old px with different media queries for different screen sizes, works just fine.
@n_mckean
@n_mckean 21 час назад
ox is not accessible. Static font sizing should be avoided as changing font size in the browser doesn’t work. Use rem/em as a minimum.
@rmo4762
@rmo4762 День назад
Hi, what so you Thing about Finsweet Fluid responsive generator‍?
@KevinPowell
@KevinPowell День назад
Seems like they've addressed the main points I made about issues with viewport units. I've never used it myself, and generally I'm not a fan of overly-fluid designs, but without having used it, I can't say for sure... but they seem to have taken accessibility in mind 👍
@samtresidder7198
@samtresidder7198 День назад
Back to the drawing board
@JustBCWi
@JustBCWi 14 часов назад
Real Front-end Friends use "1in" for H1, "2in" for H2, etc.
@mickdavies5647
@mickdavies5647 День назад
It doesn't technically say you can't make users resize the window to change text size 😂
@robwhitaker8534
@robwhitaker8534 22 часа назад
Bootstraps Sass RFS system uses calc with em and vw
@simpingsyndrome
@simpingsyndrome День назад
Some backend nerds says: Frontend is easy! Watch this, mf!
@bazz6932
@bazz6932 День назад
I have a sass function for this
@jenstornell
@jenstornell День назад
That seems like a good approach. I hope we can do similar with CSS soon.
@alvaroprietovideos
@alvaroprietovideos День назад
Ummm... I don't like rules written in stone. I think many things can be done if you know when and why you're doing them.
@ZeeZeeGaming
@ZeeZeeGaming День назад
If you're working on government websites, certain private business sites, healthcare or education websites, you HAVE to follow accessibility guidelines by law.
@KevinPowell
@KevinPowell День назад
As ZeeZeeGaming said, accessibility rules are generally written in stone. A lot of companies have already faced lawsuits around inaccessible websites, in the US and EU, and the EU is making their accessibility rules even stricter very soon... That said, there are times when it's less likely to be an issue, like a very large font-size where it probably doesn't matter if it can't be zoomed in on. But as I showed in the video, most of the time if you only use viewport units for font-sizes without a clamp, you're going to get either too big at one point, or too small. Someone out there on their 54" widescreen display is going to full-screen your site and end up with some *very* big type 😆 I'd also say I'm giving some recommendations and best practices here, and in knowing those, it means that you can usually find the times when it's okay to break the rules as well :)
@RmNrIHRoZSBDQ1AK
@RmNrIHRoZSBDQ1AK 23 часа назад
Just because 99.99% of cases should not use vp units for fs, there are legit reasons to do so. Saying don't use them is disingenuous. Always use the right tool for the job.
@n_mckean
@n_mckean 22 часа назад
What is the legit reason that would have you disregard accessibility?
@jfreeg
@jfreeg День назад
I learnt not to do that the hard way 😂
@divside
@divside День назад
Just use clamp with VW and problem solved.....
@n_mckean
@n_mckean 21 час назад
Still not accessible.
@divside
@divside 21 час назад
@@n_mckean why are u gay?
@franepoljak9605
@franepoljak9605 День назад
People really do this?
@rossclutterbuck1060
@rossclutterbuck1060 17 часов назад
yes, because "cutting edge" CSS techniques are pushed by grifters and elitists trying to make CSS - and web development as a whole - significantly more complex than it needs to be in order to shill their unnecessary tools and products, and lock out the self-taught from emerging markets. If somebody with "industry experience" says X is a good approach, it'll instantly be copied by everybody who doesn't know better.
@HerbieBancock
@HerbieBancock День назад
Please use whatever works in the context of the design being implemented and don't pay any attention to the has-been hipsters on RU-vid.
@n_mckean
@n_mckean 21 час назад
Inaccessible design is lazy and immoral.
@kundanvaghela6532
@kundanvaghela6532 День назад
First❤🎉
@PascalHorn
@PascalHorn День назад
I’m experimenting using clamp in combination with container query units like font-size: clamp(1.125em, .625em + 7.25qci, 2.25em) And I can say, it‘s kind of neat, but also buggy. As long as I don’t resize the Chrome window, everything is fine. But the Chrome tab dies so often if I do. Don‘t have a clue why. 🥲
@KevinPowell
@KevinPowell День назад
Huh, that's strange. I haven't run into issues yet, but I haven't played with it too much yet either.
Далее
CSS position deep dive
28:14
Просмотров 101 тыс.
React Native is kind of broken (they NEED to fix this)
16:17
Please stop using px for font-size.
15:18
Просмотров 188 тыс.
Using CSS custom properties like this is a waste
16:12
Просмотров 174 тыс.
Structs in JS might change everything
22:38
Просмотров 47 тыс.
Microservices are Technical Debt
31:59
Просмотров 494 тыс.
Flexbox or grid - How to decide?
18:51
Просмотров 732 тыс.
These CSS PRO Tips & Tricks Will Blow Your Mind!
8:48
Просмотров 397 тыс.