Draw floating UILayout
WindowManager.invoke_props_popup(operator, event)

Operator popup invoke (show operator properties and execute it automatically on changes)

Code based on How to call a confirmation dialog box?, I just  replaced invoke_props_dialog by invoke_props_popup to diplay the popup without confirmation option:

import bpy

class SimplePropConfirmOperator(bpy.types.Operator):
    &quot;&quot;&quot;Really?&quot;&quot;&quot;
    bl_idname = &quot;my_category.custom_confirm_dialog&quot;
    bl_label = &quot;Do you really want to do that?&quot;
    bl_options = {'REGISTER', 'UNDO'}

    prop1: bpy.props.BoolProperty()
    prop2: bpy.props.BoolProperty()

    @classmethod
    def poll(cls, context):
        return True

    def execute(self, context):
        self.report({'INFO'}, &quot;YES!&quot;)
        return {'FINISHED'}

    def invoke(self, context, event):
        return context.window_manager.invoke_props_popup(self, event)

    def draw(self, context):
        row = self.layout
        row.prop(self, &quot;prop1&quot;, text=&quot;Property A&quot;)
        row.prop(self, &quot;prop2&quot;, text=&quot;Property B&quot;)


class OBJECT_PT_CustomPanel(bpy.types.Panel):
    bl_label = &quot;My Panel&quot;
    bl_idname = &quot;OBJECT_PT_custom_panel&quot;
    bl_space_type = &quot;VIEW_3D&quot;   
    bl_region_type = &quot;UI&quot;
    bl_category = &quot;Tools&quot;
    bl_context = &quot;objectmode&quot;

    def draw(self, context):
        layout = self.layout
        layout.operator(SimplePropConfirmOperator.bl_idname)

def register():
    bpy.utils.register_class(OBJECT_PT_CustomPanel)
    bpy.utils.register_class(SimplePropConfirmOperator)

def unregister():
    bpy.utils.unregister_class(SimplePropConfirmOperator)
    bpy.utils.unregister_class(OBJECT_PT_CustomPanel)

if __name__ == &quot;__main__&quot;:
    register()