For AI agents: the complete documentation index is available at https://a3s-lab.github.io/UI/v0.2.0/llms.txt, the full documentation bundle is available at https://a3s-lab.github.io/UI/v0.2.0/llms-full.txt, and this page is available as Markdown at https://a3s-lab.github.io/UI/v0.2.0/components/dialog.md.
  • 简体中文
  • v0.2.0
  • 对话框

    Live previewHTML · CSS · JavaScript

    Edit profile

    Make changes to your profile here. Click save when you're done.

    用途

    Include CSS

    导入 Tailwind 和一个完整的 A3S UI 样式包。

    @import "tailwindcss";
    @import "@a3s-lab/ui/a3s.css";

    或者仅导入基本CSS、对话框组件CSS和一个样式包。

    @import "tailwindcss";
    @import "@a3s-lab/ui/base.css";
    @import "@a3s-lab/ui/components/dialog.css";
    @import "@a3s-lab/ui/styles/a3s.css";

    使用CDN或批量程序导入?请参见安装页

    Add your dialog HTML

    A3S UI uses the native <dialog> element and showModal(). This differs from shadcn/ui's portalled Base UI implementation, but preserves native modality, focus handling, and inert page content without component JavaScript.

    <button type="button" onclick="document.getElementById('demo-dialog-edit-profile').showModal()" class="btn" data-variant="outline">Open Dialog</button>
    <dialog id="demo-dialog-edit-profile" class="dialog" aria-labelledby="demo-dialog-edit-profile-title" aria-describedby="demo-dialog-edit-profile-description" onclick="if (event.target === this) this.close()">
      <div class="sm:max-w-sm">
        <header>
          <h2 id="demo-dialog-edit-profile-title">Edit profile</h2>
          <p id="demo-dialog-edit-profile-description">Make changes to your profile here. Click save when you're done.</p>
        </header>
        <section>
          <form class="grid gap-4">
            <div class="grid gap-3">
              <label class="label" for="demo-dialog-edit-profile-name">Name</label>
              <input class="input" type="text" value="Pedro Duarte" id="demo-dialog-edit-profile-name" autofocus />
            </div>
            <div class="grid gap-3">
              <label class="label" for="demo-dialog-edit-profile-username">Username</label>
              <input class="input" type="text" value="@peduarte" id="demo-dialog-edit-profile-username" />
            </div>
          </form>
        </section>
        <footer>
          <button class="btn" data-variant="outline" onclick="this.closest('dialog').close()">Cancel</button>
          <button class="btn" onclick="this.closest('dialog').close()">Save changes</button>
        </footer>
        <button type="button" class="btn" data-variant="ghost" data-size="icon-sm" aria-label="Close dialog" onclick="this.closest('dialog').close()"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x-icon lucide-x"><path d="M18 6 6 18" /><path d="m6 6 12 12" /></svg></button>
      </div>
    </dialog>

    HTML 结构

    <button type="button" onclick="dialog.showModal()"> Optional
    Trigger button. A3S UI intentionally uses the native HTMLDialogElement.showModal() method.
    <dialog class="dialog" id="{ DIALOG_ID }">

    Native modal dialog. Add aria-labelledby="{ TITLE_ID }" and aria-describedby="{ DESCRIPTION_ID }" when title and description are present. Add width utilities to the inner <div> when a dialog needs a custom size. The macro also adds backdrop-click close handling.

    <div>

    Dialog content surface.

    <header> Optional

    Dialog header.

    <h2 id="{ TITLE_ID }">
    Dialog title. Reference it from aria-labelledby.
    <p id="{ DESCRIPTION_ID }"> Optional
    Dialog description. Reference it from aria-describedby.
    <section> Optional
    Dialog body/content area. Add overflow utilities when the body should scroll.
    <footer> Optional
    Action area. It stacks actions on small screens and aligns them to the end on larger screens.
    <button type="button" onclick="this.closest('dialog').close()"> Optional
    Close button. You can also wrap a button in <form method="dialog">.

    示例

    自定义关闭按钮

    Live previewHTML · CSS · JavaScript

    Share link

    Anyone who has this link will be able to view this.

    无关闭按钮

    Live previewHTML · CSS · JavaScript

    No Close Button

    This dialog doesn't have a close button in the top-right corner.

    粘页脚

    Live previewHTML · CSS · JavaScript

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

    Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

    Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

    Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

    Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

    Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

    可滚动内容

    Live previewHTML · CSS · JavaScript

    Scrollable Content

    This is a dialog with scrollable content.

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

    Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

    Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

    Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

    Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

    Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

    Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

    Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

    RTL

    对话框定位和关闭按钮放置使用逻辑属性。在对话框或父元素上设置 dir="rtl"

    Live previewHTML · CSS · JavaScript

    تعديل الملف الشخصي

    قم بإجراء تغييرات على ملفك الشخصي هنا. انقر فوق حفظ عند الانتهاء.