Best Way to Add Popup Modals in React

แชร์
ฝัง
  • เผยแพร่เมื่อ 22 พ.ค. 2024
  • Add modal dialogs in React that pop up in the browser using the HTML Dialog element.
    Learn how to use the native browser Dialog element in React to dynamically render modal content, show and hide the modal, and navigate through a gallery of images using arrow keys. We'll even see how we can use Tailwind to customize the style of the modal.
    🧰 Resources
    Tutorial: spacejelly.dev/posts/how-to-c...
    Code: github.com/colbyfayock/my-modal
    Demo: my-modal.vercel.app/
    📺 TH-cam: th-cam.com/users/colbyfayock?sub_c...
    🐦 Twitter: / colbyfayock
    📹 Twitch: / colbyfayock
    ✉️ Newsletter: www.colbyfayock.com/newsletter/
    🎥 What I Use: www.colbyfayock.com/uses
    #colbyfayock #react #tailwindcss #javascript #modal #dialog #html #webdevelopment
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 24

  • @colbyfayock
    @colbyfayock  2 หลายเดือนก่อน

    Get fresh tutorials and other free content straight to your inbox! colbyfayock.com/news

  • @nikitaliakhovka3489
    @nikitaliakhovka3489 2 หลายเดือนก่อน +7

    For the document overflow, you can leverage the power of the :has() selector:
    CSS:
    html:has(dialog[open]) { overflow: hidden; }
    Tailwind:
    (on html tag)
    className="[&:has(dialog[open])]:overflow-hidden"

    • @colbyfayock
      @colbyfayock  2 หลายเดือนก่อน

      i still have yet to spend time with :has 😅 i need to!

  • @fran_sar
    @fran_sar 11 วันที่ผ่านมา

    Really awesome tutorial. Thank you a lot (from Argentina)! I found many code and styles details and concepts that I didn't know or just forgot helps a bunch.

    • @colbyfayock
      @colbyfayock  7 วันที่ผ่านมา +1

      no problem!

  • @abishekbaiju1705
    @abishekbaiju1705 หลายเดือนก่อน

    I just read your article about this and it was super clear. Thanks a lot for making these content. subscribed to both youtube and newsletter.

    • @colbyfayock
      @colbyfayock  หลายเดือนก่อน

      thanks for your kind words 🙏

  • @John-eq5cd
    @John-eq5cd 2 หลายเดือนก่อน

    Excellent. Thank you, Colby.

    • @colbyfayock
      @colbyfayock  2 หลายเดือนก่อน

      you're welcome!

  • @mohamedelmhassani5618
    @mohamedelmhassani5618 2 หลายเดือนก่อน

    Thaaaanks Colby, so helpful. no more extra KBs to my projects 😂

    • @colbyfayock
      @colbyfayock  2 หลายเดือนก่อน

      haha yes!! no problem 🙌

  • @dannievinther
    @dannievinther 2 หลายเดือนก่อน

    Awesome stuff :) A better choice, I believe, would be to use the Popover API: e.g., . That way you get more of the functionality for free as well as a implicit role.

    • @colbyfayock
      @colbyfayock  2 หลายเดือนก่อน

      thanks! i haven't played around with Popover API but someone else mentioned that and i did a little looking around. it looks like they largely can both do the same thing but have different semantics and small functionally differences which matter more in the context of modal vs non-modal dialogs. i'l have to spend more time with it, both from a functionality perspective, and to understand those differences more. maybe can make a good video down the line
      here's what i sent in the other comment:
      ----
      they have large crossover but behave a slightly differently. here are a few difference though they're small: developer.chrome.com/blog/introducing-popover-api/#the_difference_between_a_popover_and_a_dialog
      ...
      looks like there was some chatter regarding this on whatwg GitHub issues with some interesting notes about the differences, though the chatter died off end of last year: github.com/whatwg/html/issues/9376
      it seems like the consensus is

  • @AhmadJS
    @AhmadJS 2 หลายเดือนก่อน +1

    👍👍👍👍👍

  • @FlintBits
    @FlintBits 2 หลายเดือนก่อน

    Why wouldn't you use popover api? By definition it is the "best way"

    • @colbyfayock
      @colbyfayock  2 หลายเดือนก่อน

      they have large crossover but behave a slightly differently. here are a few difference though they're small: developer.chrome.com/blog/introducing-popover-api/#the_difference_between_a_popover_and_a_dialog
      what gives you the impression popover is "by definition" the best way compared to the dialog?
      looks like there was some chatter regarding this on whatwg GitHub issues with some interesting notes about the differences, though the chatter died off end of last year: github.com/whatwg/html/issues/9376
      it seems like the consensus is

    • @FlintBits
      @FlintBits 2 หลายเดือนก่อน

      ​@@colbyfayock I would argue a light dismiss for a photo popup is better than a button, even more so on mobile.

    • @colbyfayock
      @colbyfayock  2 หลายเดือนก่อน

      ​@@FlintBits yeah definitely agree. i don't add that functionality directly in the video but i link at the end to another video i produced to implement it: th-cam.com/video/M_HujIFsIb0/w-d-xo.html

  • @EverydayBeing-de1qu
    @EverydayBeing-de1qu 2 หลายเดือนก่อน

    Seems like alot of effort for a modal... I usually just create new component modal with fixed inset-0 bg-black bg-opacity-0 and then another div with h-full flex justify-center items-center and then a main with the actual modal and specify the h and w you want it to be.

    • @MohamedElguarir
      @MohamedElguarir 2 หลายเดือนก่อน

      yeah well until you want to hit escape to close the modal or change focus using the keyboard 🤷🏻‍♂️

    • @colbyfayock
      @colbyfayock  2 หลายเดือนก่อน

      if you dont care about UX, sure