Create custom scrollbars using CSS

Поделиться
HTML-код
  • Опубликовано: 26 сен 2024

Комментарии • 286

  • @KevinPowell
    @KevinPowell  3 года назад +44

    You can do more than I did here, including styling the up and down arrow buttons, the empty spaces on the top and bottom, and more! developer.mozilla.org/en-US/docs/Web/CSS/::-webkit-scrollbar

    • @Stoney_Eagle
      @Stoney_Eagle 3 года назад +1

      Me: Opens Mozilla link in Firefox...
      Also me: Remembers ::webkit-*....

    • @risingson7681
      @risingson7681 3 года назад

      Thank you for this. By now i never got it running on ff.

    • @wittywolk
      @wittywolk 2 года назад

      We can't force this scrollbar to stay visible on mobile (ios or firefox on android) without using custom JS scrollbar right? I mean we can somehow trick that website is going 1px down and up all the time but it can cause problems. What do you think?

    • @Creative.K
      @Creative.K 2 года назад

      Hi, @Kevin Powell. How do we get the hsl to have transparency?

  • @zachjensz
    @zachjensz 3 года назад +299

    This really raises the bar for scrolling

    • @thobbs102670
      @thobbs102670 3 года назад

      ruclips.net/video/oShTJ90fC34/видео.html

    • @a-fletcher
      @a-fletcher 3 года назад +15

      Well that's enough dad jokes for this morning 😆

    • @MarjoForcado
      @MarjoForcado 3 года назад +3

      Ahhh humor 💀

    • @chomo54andbabyaisha97
      @chomo54andbabyaisha97 3 года назад +3

      1998: Microsoft: Style your own scoll bars!
      2001: N&N Usability test: Custom scroll bars are bad for usability
      2021: W3C: Style your own scroll bars!

    • @bradhaupt1261
      @bradhaupt1261 2 года назад +3

      Thank you for your contribution to humanity

  • @BNizam
    @BNizam 3 года назад +91

    I love how you actually demonstrate multiple options instead of just a plain tutorial.

    • @Gregorius421
      @Gregorius421 3 года назад +5

      @Ahmad Bilal Yes, demonstrating the different possibilities is what hooked me to Kevin's videos. There's always something new I haven't thought of or knew about.

    • @BNizam
      @BNizam 3 года назад +3

      @@Gregorius421 yep and it is a pretty unique style. I don't find many people doing this. I get to learn so much due to this. 🙌

  • @_ap__
    @_ap__ 3 года назад +74

    I love Kevin's professionalism and premium style tutorials.

  • @KiwisCode
    @KiwisCode 6 месяцев назад +4

    While working on my portfolio project around 1 AM, I stumbled upon this video on how to beautify my scrollbar, and it's amazing! I'm really happy that you paid attention to these kinds of details. It was truly helpful and came just in time for me.

  • @graaam101
    @graaam101 3 года назад +76

    6:36 "vertical-scroll" - affects the bit that scrolls horizontally 🤣 Pretty sure that is right out of my playbook of goofs!

    • @Dexter101x
      @Dexter101x 3 года назад +4

      I thought I had misheard it, but yeah people do make mistakes

    • @keithf5236
      @keithf5236 3 года назад +2

      so is the horizontal scroll actually referred to as vertical bc when you put vertical-scroll, it only affected the horizontal?

    • @conceptrat
      @conceptrat 3 года назад +4

      @@keithf5236 Kevin has defined a class of vertical-scroll for specific divs/blocks of content that will be scrollable but the overflow attribute means that the one shown is actually only presenting a horizontally scrollable area. Hence the confusion.

  • @MarcHoekstra
    @MarcHoekstra 3 года назад +12

    You can use a transparent border in combination with "background-clip: content-box;" to move the scrollbar away from the side. In combination with "overflow: overlay;" on your html element this looks great, even if your page background isn't a static color!

    • @gomitchell
      @gomitchell 3 года назад +6

      Any chance you have a codepen example?

  • @candym5280
    @candym5280 3 года назад +1

    CSS never ceases to amaze me

  • @MichaelHitzelberger
    @MichaelHitzelberger 3 года назад +23

    Nice video, thanks!
    What got me confused a bit: Your 'vertical' scroll is actually a horizontal one. 😕

    • @KevinPowell
      @KevinPowell  3 года назад +13

      🤦‍♂️

    • @The14Some1
      @The14Some1 7 месяцев назад +1

      @@KevinPowell still not got used to this? :)

  • @domenicpolsoni8370
    @domenicpolsoni8370 3 года назад

    I'm a simple man. I see a new video by Kevin, I watch and upvote.

  • @tayyabnoor7471
    @tayyabnoor7471 3 года назад

    Every front end developer should watch this video

  • @adityasagar9078
    @adityasagar9078 2 года назад +1

    So easy to understand and so professional,you made my website look good

  • @yTheuszss
    @yTheuszss 4 месяца назад

    Hi man, you saved me from a mess I was in for hours, thank you

  • @DaCheat100
    @DaCheat100 3 года назад +10

    Hate to be maintaining that code after him only to find out that the ‘.vertical-scroll’ class is responsible for the horizontal scroll bars instead 😂

  • @vin-kry
    @vin-kry 3 года назад +1

    I was looking for a video for scrollbar, And suddenly a notification popped with your video.
    Thank you ^_^

    • @nextentrepreneur9288
      @nextentrepreneur9288 3 года назад

      Really ? I've heard that so many times, soooo unlikely...

    • @vin-kry
      @vin-kry 3 года назад +1

      @@nextentrepreneur9288 Yes really, For SURE!!!

  • @r3pwn-dev
    @r3pwn-dev 3 года назад +1

    Fun fact: in addition to :hover, you can also use :active on the thumb to style it differently (make it even darker) when the user's mouse button is pressed

  • @carolmckay5152
    @carolmckay5152 3 года назад

    Thankyou for revisiting this topic but with MORE, I decided to style the chrome scrollbar to look like the firefox scrollbar which looks heaps better in my arrogant opinion. ::-webkit-scrollbar { width: 12px; height: 12px; } ::-webkit-scrollbar-button { height: 0; } ::-webkit-scrollbar-thumb { border-radius: 100vw; border: 3px solid; }

  • @ЯМолодец-ъ6ш
    @ЯМолодец-ъ6ш 3 года назад +1

    There is another one useful property ::-webkit-scrollbar-button. It could be pretty helpful to hide controls.

  • @ranjoyguhathakurata5650
    @ranjoyguhathakurata5650 3 года назад

    hey Kevin I love you. You dont know how good you are.Superb teacher. So much skill in css.Truely CSS king.Learned a lot from your videos and keep learning.

  • @sharakpl
    @sharakpl 3 года назад +1

    10:58 sometimes you want a block or even whole page scrolled but without the feeling of page being scrolled. That's where hiding (not disabling) scrollbars comes in handy. Thanks for another great video! I've just been looking for a scrollbar customization in new themes, but couldn't find good enough cross-browser way.

    • @KevinPowell
      @KevinPowell  3 года назад

      Yeah, good point I should have thought of that :)

  • @dave6012
    @dave6012 3 года назад

    I thought I was crazy for doing this on all my sites, but now I am validated 😀

  • @ighsight
    @ighsight 2 года назад

    Timely input by the algorithm, was struggling with this yesterday.

  • @Gregorius421
    @Gregorius421 3 года назад +1

    6:00 neat trick for transparent thumb border, needed if the track's background is a gradient or image:
    border: .25em solid transparent;
    background-clip: padding-box;

  • @ashish_prajapati_tr
    @ashish_prajapati_tr 2 года назад +1

    another thing, that i was trying to implement it on my projects.

  • @chinmayghule8272
    @chinmayghule8272 Год назад +1

    You can hide your scrollbar on Chrome by enabling the scroll-overlay flag. The scrollbar doesn't go away permanently, it just hides, If you place your mouse on the right edge of the screen it reappears. Also, the new scrollbar that the flag displays is thin and more stylish than the default one. Without the scrollbar websites look much better.

  • @DamnDealDone
    @DamnDealDone 3 года назад

    How about don't mess with scrollbars? Best advice for web design anyone could ever have when it comes to scroll bars.

  • @BrianHHough
    @BrianHHough 2 года назад +1

    This is a fantastic tutorial, thank you for making this!! Helped me so much!

  • @Hytension
    @Hytension 2 года назад

    I'm just happy opera supports webkit

  • @lumynou5
    @lumynou5 6 месяцев назад

    Chrome now supports the `scroll-*` properties, though these cannot change things like border radius, but I actually think it's better because in my opinion, custom scrollbars sometimes bring a bad accessibility and changing the color is enough in most case.

  • @creativereasons7588
    @creativereasons7588 3 года назад

    The amount of times you drop content related to my current problem is slightly concerning.. You're a wizard..... 'Harry'.

  • @Glow0110
    @Glow0110 Год назад

    Such a great, straightforward video

  • @akifahmed9610
    @akifahmed9610 11 месяцев назад

    Very informative video. I was looking for customising scroll bar and stumbled upon this video 😁

  • @AbWischBar
    @AbWischBar 3 года назад +3

    Was about to type “ha, first time ahead of you” when you started to show the Firefox hack 🤪.
    A pity Firefox doesn’t allow the full monty (one of my favorit browsers) but then you could use width = none and fake the scrollbar with a home made one (div in div and some javascript). Some might say that’s overkill, but to me unstyled scroll bars always visually pop out (mainly an issue since I am mostly a desktop XAML developer where you can style everything to fit perfectly together)

  • @thefaulenzer677
    @thefaulenzer677 3 года назад

    Thank you so much! I really enjoy watching your videos to learn something new :D

  • @shanehenderson8037
    @shanehenderson8037 2 года назад

    Tried this out and worked great! I noticed my scroll bars in Firefox had rounded corners though too, so it must’ve worked!

  • @CodingAfterThirty
    @CodingAfterThirty 3 года назад

    Nice. The exact video I was looking for.

  • @sujanbasnet7868
    @sujanbasnet7868 3 года назад

    Super insightful video. Thanks Kevin.

  • @rnwonder107
    @rnwonder107 3 года назад +1

    Amazing stuff as always, thanks a bunch for this, I learnt a lot!

  • @anais380
    @anais380 5 месяцев назад

    Merci beaucoup pour cette vidéo très claire 🤩
    je suis en train de faire mon portfolio et je voulais simplement un meilleur design et grâce à vous c'est parfait !
    +1

  • @YxK112
    @YxK112 2 года назад

    the explanation was unique

  • @CristianAlexandruRadu
    @CristianAlexandruRadu 3 года назад

    I love your tutorials, Kevin ❤️

  • @Stoney_Eagle
    @Stoney_Eagle 3 года назад +1

    I never went this far in customizing them hehe.
    I have one that has no height on mobile where the desktop has a custom button controled scroll, too bad Firefox doesn't support exact sized bars.
    It does work with my hsl theme slider 😁😁😁

  • @SuggonM
    @SuggonM Год назад

    2:49 that joke caught me off-guard

  • @Bobnator5
    @Bobnator5 3 года назад

    Awesome video man! You make it so easy to understand

  • @nomad7317
    @nomad7317 Год назад +1

    Thank you!!! You are a life saver!!!

  • @rafaelveggi
    @rafaelveggi 2 года назад +1

    Great video, as always, thanks for the content!
    Sad thing we still can't make scrolbars to expand on hover to this day and age...

  • @blokche_dev
    @blokche_dev 3 года назад +2

    I was going to ask how to style the intersection of the vertical and horizontal bars but the mozilla documentation covers that =>::webkit-scrollbar-corner. 👍

  • @MKgobe
    @MKgobe 3 года назад

    Finally... My scrollbara where just missing that @supports,

  • @bikinglikebecker
    @bikinglikebecker Год назад

    save: to playlist -> is not functioning on this video so unable to add to playlist.. fyi.. I presume integrating this into the style(index).css file?
    How do we make it so we can click on the page(not scrollbar) & move it up like a mac instead of scroll wheel?
    great stuff you are teaching & sharing... something we should all do with the knowledge that was shared with us by others... Concise & Articulated. Very easy to follow along & understand!

  • @antonpetrov145
    @antonpetrov145 3 года назад +4

    Why do you call the horizontal scrollbar - vertical? Awesome video as always.

    • @KevinPowell
      @KevinPowell  3 года назад +5

      Because I *always* mix them up, lol

    • @jeroenrnl
      @jeroenrnl 3 года назад +3

      @@KevinPowell very easy mnemonic: horizontal is how the horizon is positioned*
      * Disclaimer: doesn't work after too many beers

  • @MaherNoureddine-co9cs
    @MaherNoureddine-co9cs 2 месяца назад

    very interessting ! thanks u save my life

  • @gunjanshrimali2674
    @gunjanshrimali2674 2 года назад

    very nice tutorial

  • @zqarb
    @zqarb 2 года назад

    Thank you,
    this really helped me.

  • @BabyBedtimeASMR
    @BabyBedtimeASMR 2 года назад

    Great video can’t wait to try this!

  • @miladbannourah7798
    @miladbannourah7798 3 года назад

    Man I know JavaScript really well but I suck at css, that's why I work more on the backend side of things with python.

  • @brokensythe
    @brokensythe 3 года назад

    Fantastic video

  • @Leyksnal
    @Leyksnal 2 года назад

    Thanks man.... I really appreciate this

  • @DamianWalczak
    @DamianWalczak 3 года назад

    ohh this is what I wanted Thank You Very Much!

  • @roskildekille8972
    @roskildekille8972 2 года назад

    Awesome! This really helped me :D

  • @ayisch
    @ayisch 3 года назад

    Liked/viewed ratio is over 10%... And still it didn’t really surprise anyone☺️👍

  • @sabiruli
    @sabiruli 3 года назад

    You are really great, man! I like it.

  • @stefanpfadt4353
    @stefanpfadt4353 4 месяца назад

    Perfect timing! Thakns RUclips algorithm :)
    Just bit bummed, I cannot get Firefox to look anyhitng like that.
    Does it work only for Edge and Chrome?

  • @ALex-ts1gu
    @ALex-ts1gu 7 месяцев назад +2

    When I use the code, the Chrome style is no longer applied. It worked until recently. I think because of the new support for "scrollbar-width".
    / Style Scrollbar works on Chrome, Edge, and Safari
    ::-webkit-scrollbar {
    height: var(--scrollbar-height); /* height of horizontal scrollbar */
    width: var(--scrollbar-width); /* width of vertical scrollbar */
    }
    /* Track */
    ::-webkit-scrollbar-track {
    background: var(--scrollbar-track);
    }
    /* Handle */
    ::-webkit-scrollbar-thumb {
    background: var(--scrollbar-thumb);
    }
    /* Handle on hover */
    ::-webkit-scrollbar-thumb:hover {
    background: #808080;
    }
    /* Scrollbar corner */
    ::-webkit-scrollbar-corner {
    background: var(--scrollbar-track);
    }
    // Scrollbar for Firefox
    * {
    scrollbar-width: thin;
    scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
    }
    ----------------------------------
    I changed it to from this:
    * {
    scrollbar-width: thin;
    scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
    }
    to this:
    /* Browsers without `::-webkit-scrollbar-*` support */
    @supports (not selector(::-webkit-scrollbar)) {
    * {
    scrollbar-width: thin;
    scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
    }
    }
    now it works again.

  • @michaelnorton6630
    @michaelnorton6630 3 года назад +3

    Thank-you Kevin - great video as always!!👍🏻Could you also do a video on changing the header colours on mobile browers please? I've currently got this implemented on one of my sites, but not sure if there is any extra values I'm missing?!🤔

    • @KevinPowell
      @KevinPowell  3 года назад +3

      I'll keep the suggestion in mind :)

  • @atarixle
    @atarixle 3 года назад

    it's sad that this is still W.I.P. ... I styled my (webkit)scrollbars in like 2015 or earlier ...

  • @TechnoNates
    @TechnoNates 2 года назад

    you saved me! Thanks

  • @hafizurrahman5341
    @hafizurrahman5341 3 года назад

    What you do, is always interesting....♥️♥️

  • @ed1nh0
    @ed1nh0 3 года назад

    Kevin I really wish you could approach the :hover state with the width property, so we can get thin scrollbars and thicker when hovering it!

  • @aaaliii4u
    @aaaliii4u Год назад

    Awesome Kevin!

  • @allan_archie
    @allan_archie 3 года назад

    Been looking for this.

  • @eugotavias9967
    @eugotavias9967 3 месяца назад

    God bless you sir, tank's.

  • @jhonataantunes5474
    @jhonataantunes5474 11 месяцев назад

    Can you make a vídeo about nested scrolls? Maybe some columns, with individual scroll, with horizontal scroll for columns.

  • @IguanaDJ1
    @IguanaDJ1 3 года назад +2

    Hi Kevin! Great video as always! I was wondering what fonts do you use and where can I get them? They seem very cool! Keep with the great content!

    • @KevinPowell
      @KevinPowell  3 года назад +2

      Most of my demos use Google Fonts :)

    • @Gregorius421
      @Gregorius421 3 года назад +3

      It's there in the codepen. For this tutorial it is:
      --ff-body: "Heebo", sans-serif;
      --ff-heading: "Oswald", sans-serif;

  • @guillermoandradaFSD
    @guillermoandradaFSD 3 года назад

    I find your vids really usefull

  • @Free--Soul
    @Free--Soul Год назад

    thanks Kewin👌

  • @reignsvicky
    @reignsvicky 3 года назад

    New thing learned today 🤩

  • @3-dog-solution
    @3-dog-solution 3 года назад

    For some weird reason, .. in the real world of actually using the browsers.
    @supports ( scrollbar-color: red blue )
    {
    * {
    scrollbar-color: hsl(59, 93.7%, 49.8%) (this is a # +)17badf;
    /* single colour at the end: works. */
    /* note: the # tag made it a link, re-edited. */

    /* hsl(180 75% 50% / 1) hsl(285 100% 10% / 1);
    -- Firefox really doesn't like that, and stubbornly shows the default grey on black scroll bar. */

    }
    }
    Of course, chrome works well.
    Thankyou for pointing out the ( margin-block: .5em; ) tag.
    Never thought of that, brilliant: learning all the time.
    Many thanks for the tutorial, opened up a world of possibilities.
    Stay well, ..

    • @KevinPowell
      @KevinPowell  3 года назад

      The supports worked for me in all the testing I did 🤔

  • @rushwand
    @rushwand Год назад

    can you please make a tutorial how to make the scrollbar on top of the div?

  •  2 года назад

    In my personal experience, I think it's ridiculous that we can't customize the scrollbar any easier than using the browser prefix. I mean, why can't some styles be applied to this HTML element? So the solution for most cases is to use external libraries to customize these elements and not all of them work as expected, that's my experience. thanks for this video, great content, and very interesting topics! (P.S. sorry if my English is not good enough :P)

  • @UdaraDeraniyagala
    @UdaraDeraniyagala 3 года назад

    As an intern It was a nightmare for me get the scrollbars look the exact same on Chrome, Firefox and the old Edge browsers with the design I got from my seniors. Ended up using nicescroll lol.

  • @Evan_evan5883
    @Evan_evan5883 2 года назад

    Wow very nice video :)

  • @nonefvnfvnjnjnjevjenjvonej3384
    @nonefvnfvnjnjnjevjenjvonej3384 2 года назад

    Now only if we can make the good old lickable aqua scrollbars with CSS, nirvana will be achieved. Maybe a CSS challenge?

  • @AmericanCube
    @AmericanCube Год назад

    RUclips scrollbar is also costumed!

  • @monuchouhan8311
    @monuchouhan8311 3 года назад

    That's beautiful!

  • @samsonajulor8689
    @samsonajulor8689 3 года назад

    Thanks for this sir.

  • @MyPersonalChannel77
    @MyPersonalChannel77 2 года назад +3

    Hi Kevin. I have a question about the vertical scrolling. The vertical scrolling inside the document, why is called vertical? Because to me, it looks like horizontal. Thanks

    • @nivethan_me
      @nivethan_me Год назад

      same doubt isn't it horizontal!

  • @CulturalToast
    @CulturalToast 2 года назад +1

    6:32 but that's a horizontal scroller

  • @ruibranco95
    @ruibranco95 3 года назад

    Maybe try next time when you hover scrollbar gets bigger.

  • @arifqasim7777
    @arifqasim7777 7 месяцев назад

    can we also change the height of thumb ? and I love your videos..

  • @nugo6082
    @nugo6082 2 года назад

    So awesome, thank you

  • @anurajms
    @anurajms Год назад

    thank you

  • @tayyabnoor7471
    @tayyabnoor7471 3 года назад

    It's a good video for learners

  • @rezarahman1782
    @rezarahman1782 3 года назад

    Thanks.

  • @baykus790
    @baykus790 Год назад +1

    Can you somehow make the thumb flat at the top to avoid that 4:11 ugliness. Like if you scroll it down it becomes round, and flat when it touches the top, that sort of animation. Not sure if this requires JS but really appreciate if you show it in a shorts video or an actual tutorial...

  • @auto-diciplime237
    @auto-diciplime237 3 года назад

    Thanks

  • @harishshimpi16
    @harishshimpi16 2 года назад

    thanks man

  • @tetsuorulin9009
    @tetsuorulin9009 11 месяцев назад

    thanks my G

  • @knightOfGamingGames
    @knightOfGamingGames 2 месяца назад

    TY m8!

  • @rhema93
    @rhema93 6 месяцев назад

    @kevinPowell I really like your soltion. It looks very good on desktop. Do you have any solution for mobile Chrome or Safari? I tested on iPhone Mobile Safari and Chrome, but wasn't able to implement those fancy scroll bars. Maybe that is idea for next video 😃

  • @dixztube
    @dixztube Год назад

    I’m having issues with edge showing the scroll even when the window isn’t active. Seems like Firefox makes it hide till being used