Open2
daisyUI
モーダルの開閉に手続的な記述が必要になるのは微妙
{/* Open the modal using document.getElementById('ID').showModal() method */}
<button className="btn" onClick={()=>document.getElementById('my_modal_1').showModal()}>open modal</button>
<dialog id="my_modal_1" className="modal">
<div className="modal-box">
<h3 className="font-bold text-lg">Hello!</h3>
<p className="py-4">Press ESC key or click the button below to close</p>
<div className="modal-action">
<form method="dialog">
{/* if there is a button in form, it will close the modal */}
<button className="btn">Close</button>
</form>
</div>
</div>
</dialog>
Headless UIと組み合わせて使う方法
import { Menu } from "@headlessui/react"
export default function MyDropDown() {
return (
<Menu>
<Menu.Button className="btn">Button</Menu.Button>
<Menu.Items className="menu rounded-box bg-base-200 w-52">
<Menu.Item>
<li>
<a href="/link">Item 1</a>
</li>
</Menu.Item>
<Menu.Item>
<li>
<a href="/link">Item 2</a>
</li>
</Menu.Item>
</Menu.Items>
</Menu>
)
}
btn
とmenu
がDaisy UIのクラス。動きはHeadless UIにまかせて、装飾だけDaisy UIで行う