Everything you didn't know you need to know about buttons

Поделиться
HTML-код
  • Опубликовано: 25 авг 2024
  • Find all the code examples, as well as more detail on everything discussed here, in my full article: www.builder.io...
    #javascript #html #css #webdev #react

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

  • @Steve8708
    @Steve8708  Год назад +11

    All the code examples, as well as more detail on everything discussed here, in my full article: www.builder.io/blog/buttons

  • @dotterel
    @dotterel Год назад +23

    I've been studying CSS for a couple years now and this is hands down the best video I've seen. I love how you went through each one and explain when and why we use each element. I have a lot of trouble learning when people don't explain 'what does this allow us to do and what are we not able to do without it?' You really hit the nail on the head here. I feel like I understand the reasoning behind all 3 cases after just 1 watch, that's pretty incredible.

  • @rdalago
    @rdalago Год назад +20

    I've been learning A LOT from you! The way your videos are short yet delivering a deep explanation is spot on for me! Thank you.

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

      agreed. Short, concise, and full of practical knowledge.

  • @Htbaa
    @Htbaa Год назад +8

    For accessibility try not to reinvent controls unless you really have to, but make sure you’re making it accessible! When clicking on this video I was afraid accessibility would be neglected. Happy to see it’s the focus of the video.

  • @hnccox
    @hnccox Год назад +4

    That MyButton component is actually really nice! Never thought of that. My rule of thumb is that a button is for interaction for things that happen on the current page only, anchor tags are for navigation only.

  • @umutelicabuk6834
    @umutelicabuk6834 Год назад +6

    I usually don't comment but now I have to. Steve - your delivery is among the cleanest, most concise yet deep teaching styles I have ever come across. You definitely need some more zeros behind that sub count!

  • @SzaboB33
    @SzaboB33 Год назад +2

    Great video, I did not know I needed this but the a vs div vs button problem was quite frequent for me and this video cleared things up

  • @khairulhaaziq2332
    @khairulhaaziq2332 Год назад +3

    Steve your teaching method is the most comprehensible i've come accross. Please continue making these! I really hope you release some more basic stuffs also

  • @NoName-1337
    @NoName-1337 Год назад +1

    Nice, didn't know about all:unset. Thank you!!!

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

    Just great and useful content, no filler no spam no nonsense... This is why I open youtube
    This channel deserves at least 1 mil subs, I hope you get there someday

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

    I already knew this but learned it the hard way unfortunately. Thank you for for evangelizing this knowledge for everyone. Cheers!

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

    Oh my god that way of explaining things it's just amazing

  • @8koi245
    @8koi245 Год назад

    The style of the code and browser window is LOVELY

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

    Simple with good explanation. My favourite kinda Ytber.

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

    I hate that I learned so much about buttons from this video. Thanks, Steve. I hope you're happy.
    Also, keep up the good work 😊

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

    Holy sheee, this is quality content. I have watched few of ur shorts before, but after this video i was 100% sure i wanna follow u constantly.

  • @re.liable
    @re.liable Год назад +2

    Just starting to watch. The "rule" I try to remember is: anchor for navigation, button for interaction
    The styling bits are the reason why a CSS reset is necessary for me.
    The conditional rendering is nice I suppose

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

    Was watching your video and was whole time thinking, "why not just make it a web component?". Then you actually did exactly as I thought lol.

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

    I just discovered this channel and I need to watch all of your videos!!!

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

    Literally amazing man. One of the best tutorials I've ever seen. It's humbling because who thinks about buttons twice? But there's so mucho to know

  • @amitse
    @amitse Год назад +2

    Another discussion is on button disabled state and the color contrast debate around it.
    Another thing to remember you can’t disable links. All you can do is to hide them.

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

    You are like Matt Pocock but for javascript 😀 Great content

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

    OMG. It's a gem. So concise and meaningful. Thanks a lot to the author.

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

    instantly subscribed, best presented web dev video i’ve ever seen

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

    Thank you so much for sharing. I always was fumbled in this conundrum and now you gave a solution with your pattern. Thanks a ton!

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

    Outstanding. I love the style of demonstrating the good and the bad. You saved a lot of trial and error.

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

    You're absolutely nailing this format my guy. Keep em coming!

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

    Well this was way more useful than I thought it would be.
    Really nice trick with conditional.

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

    Thank you for all your videos, short and so usefull !

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

    Super explanation video! This was brilliant! Thank you for sharing

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

    all: unset blew my mind, can't believe this is the first time I'm hearing about it

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

    Love this so much ❤ all the details people usually overlook or don’t talk about

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

    i've learned so much in just 4 minutes. Great content 👏👏👏

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

    Looks like I have a new channel to binge

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

    Also good to look into the other focus styles! There are focus-within and focus-visible. Good for other things.

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

    Wow wow wow!!! Appreciate your efforts on explaining minor details

  • @SushilKumar-ig8ls
    @SushilKumar-ig8ls Год назад

    Great unknowns to know for me 😀 Thanks a lot for these tricks

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

    May I just discovered my new favourite full-stack dev youtuber? I guess I did

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

    Thanks, that sure was helpful. Since I've been using qwik, it's nice to know the nitty and gritty details of some html tags

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

    You know someone has only coded in React when they make fun of the idea of "button"

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

    As someone who builds accessible websites, it's easiest to just stick to the intended purpose of the element.
    Buttons submit (or reset forms), anchors create hyperlinks. They are both accessible and understood by just about all assistive software and have worked in the same fashion for 30 years.
    Yeah, if you're building something fancy then adding custom functionality to role=button buttons is fair, but I see so many people starting from scratch without realising they've lost accessibility features along the way.

  • @user-lm5ju8nc2t
    @user-lm5ju8nc2t Год назад

    Nice! That was helpful, man!

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

    Wow. Amazing content Steve

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

    This is so concise & useful! Thanks a lot for sharing!

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

    I learned something new today thank you

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

    Fantastic tutorial, thanks a lot man.

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

    I love this, thanks Steve

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

    This was great Steve. Thank you 🙏🏼 I think for things with anchor tags we should probably use buttons for accessibility purposes. I love the one component you showed to render the consistent button!! Although our designers tend to have a few button variations so would be good to see that as well. Would love to have you on my channel for a collab once. Thank you again!

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

    Go the other way - use an A link with Javascript onclick. This is great for SPA page rewrites.

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

    Excellent video, thanks for explaining.

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

    awesome tutorial!

  • @Ismail-hq8cq
    @Ismail-hq8cq Год назад

    Is this a coincidence, or does the youtube algorithm know what is in my mind ? I wanted to learn how to make a text clickable, and this video is the first video in my feed.

  • @Noam-Bahar
    @Noam-Bahar 6 месяцев назад

    Incredible video 👏

  • @godofwar8262
    @godofwar8262 6 месяцев назад +1

    More videos please

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

    Great video! 👏

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

    This is great
    Still I’d love to see the div button fully reimplemented

  • @pizzasteve-is-here
    @pizzasteve-is-here Год назад

    awesome, keep going

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

    Quality, pure quality. Subscribe

  • @EthanStandel
    @EthanStandel Год назад +2

    I think it would have been worth it to note that you probably want :focus-visible and not just :focus styles.

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

      Ah yes! Just learned about this after posting the vid, but updated the blog post to use focus-visible

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

      @@Steve8708 nice! Otherwise, this was excellent and something that everyone building a component library should watch just to see the base considerations of things you might want to call "simple"

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

    Wow,
    thanks man 👍👍

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

    Prefer outline-color:transparent; over outline:none; better for high contrast themes.

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

    If I see one more job application project where people NEST a and an I'll cry. W3C standards exist for many reasons. Mixing conflicting interactive elements makes my brain hurt.

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

    what about input type=button? is there any difference with a normal button type=button?

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

    Subscribed.

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

    Typescript version of this is super messy. You have to use polymorphic methods to get the correct type inferred and its a pain. After experiencing, I now like to separate them into and for better and cleaner type.

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

    I think that this kind of merge of buttons and link are not good mainly because it blurs distinctions between these two tags. In real designing scenarios there should be clear styling diference between how button and how link looks like so user know what to expect. If its button it will perform some kind of action, as for link it expects routing behaviour. So in your case you would need to pass variant to your merge button. But that button variant could be applied on both elements wich will cause undesired styles for one. It is much more clear to have buttons separetad from links since in its nature they are not same html tags. Besides it would be weird from dev perspective to see button with hrf atribute. We should keep our code ease to read

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

    all: unset !!! Wow nice 👍

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

    Why not use ?

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

    what if you add role="button" to an anchor tag?

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

    Why not wrap a button with an anchor tag?

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

    Amazing

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

    It’s a good video, but in a few places at the beginning your audio was cut a bit badly, some of the words you spoke were cut off in the middle, making it a bit awkward to listen to

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

    Nice frontend tip

  • @Marcus-cf2li
    @Marcus-cf2li Год назад

    Great

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

    Switching the tag type behind the component is much to magic. Unless you work totally alone, you have created a scenario where someone using your component will think they are getting a button and may be getting an anchor. Components should be simple, pure and never contain magic.

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

    Do people actually still use the native submit functionality?

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

    Can you add back the subtitles like before? I really appreciate them

  • @6644guilherme
    @6644guilherme Год назад

    I like the part where he says "type equals butt..."

  • @anuvette
    @anuvette 9 месяцев назад

    not knowing button is type submit by default gave me so much headache

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

    if (event.key === Space || Enter) is borked logic. Just saying

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

    💪

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

    Wow I didnt know pewdiepie knew how to code

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

    you guys always end up making things way more complicated than it needs to be . I don't mean YOU as a teacher , I mean the designers of this crap !

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

    Great content, as all other channel videos
    ...so no need for the clickbait face expression in thumbnails 😜

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

    MyButton component like this example is an unnecessary abstraction...

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

    Bruh
    Now we have problem
    Now that is not working
    Now this is broken.
    Why do you touch it let it be.

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

    All of the issues you mentioned with using the button tag are actually non-issues. Especially since you're using react, you would never just use a button tag anyway. You should make your own button components for coupling styles and functionality.

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

    lol F accessibility use your div my man

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

    Buttons suck.

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

    if you wanted to just teach html, dont put it in javascript...