UMD Web Components Library
    Preparing search index...

    Variable modal

    Modal

    A modal overlay component that displays content in a focused dialog window. Includes backdrop, close functionality, and proper focus management for accessibility. The modal can be controlled programmatically through observed attributes.

    <umd-element-modal>

    • Default slot - Content to display inside the modal
    • data-layout-hidden - Initial visibility state:
      • true - Modal starts hidden
      • Absence implies visible
    • data-visual-open - Shows the modal when set to "true"
    • data-visual-closed - Hides the modal when set to "true"
    <!-- Basic modal -->
    <umd-element-modal data-layout-hidden="true">
    <h2>Welcome</h2>
    <p>This is modal content.</p>
    <button>Close</button>
    </umd-element-modal>
    <!-- Programmatic control -->
    <button id="open-modal">Open Modal</button>
    <umd-element-modal id="my-modal" data-layout-hidden="true">
    <div class="modal-content">
    <h2>Important Information</h2>
    <p>Please read this carefully...</p>
    <button id="close-modal">I Understand</button>
    </div>
    </umd-element-modal>

    <script>
    const modal = document.getElementById('my-modal');
    document.getElementById('open-modal').addEventListener('click', () => {
    modal.setAttribute('data-visual-open', 'true');
    });
    document.getElementById('close-modal').addEventListener('click', () => {
    modal.setAttribute('data-visual-closed', 'true');
    });
    </script>
    <!-- Form modal -->
    <umd-element-modal data-layout-hidden="true">
    <form>
    <h2>Contact Us</h2>
    <label>
    Name:
    <input type="text" name="name" required>
    </label>
    <label>
    Email:
    <input type="email" name="email" required>
    </label>
    <textarea name="message" placeholder="Your message"></textarea>
    <button type="submit">Send</button>
    </form>
    </umd-element-modal>

    1.0.0