Properties with min and max range looking at other property
The following example should point you in the right direction:
Any time the my_prop_range_min is changed in the UI the update function upd_min is called. The function then compares the UI setting to the current value of the my_prop_range_max. If the value of my_prop_range_min &gt;= my_prop_range_max you just force it to be less than the value of my_prop_range_max. Similar when comparing max to min.
import bpy


def upd_min(self, context):
    if self.my_prop_range_min &gt;= self.my_prop_range_max:
        self.my_prop_range_min = self.my_prop_range_max - 1


def upd_max(self, context):
    if self.my_prop_range_max &lt;= self.my_prop_range_min:
        self.my_prop_range_max = self.my_prop_range_min + 1


class TEST_PG_props(bpy.types.PropertyGroup):
    my_prop_range_min: bpy.props.FloatProperty(
        name=&quot;My_Prop_range_min&quot;,
        default=1,
        min=0,
        max=99,
        update=upd_min,
        )

    my_prop_range_max: bpy.props.FloatProperty(
        name=&quot;My_Prop_range_max&quot;,
        default=4,
        min=1,
        max=100,
        update=upd_max,
        )


class TEST_PT_test_panel(bpy.types.Panel):
    bl_idname = &quot;TEST_PT_test_panel&quot;
    bl_label = &quot;Test Panel&quot;
    bl_space_type = &quot;VIEW_3D&quot;
    bl_region_type = &quot;UI&quot;
    bl_category = &quot;Test Tab&quot;
 
    def draw(self, context):
        my_props = context.scene.my_props
        layout = self.layout
        row = layout.row()
        row.prop(my_props, &quot;my_prop_range_min&quot;, text=&quot;min&quot;)
        row.prop(my_props, &quot;my_prop_range_max&quot;, text=&quot;max&quot;)


classes = [
    TEST_PG_props,
    TEST_PT_test_panel,
    ]


def register():
    for cls in classes:
        bpy.utils.register_class(cls)
    bpy.types.Scene.my_props = bpy.props.PointerProperty(
            type=TEST_PG_props)


def unregister():
    for cls in classes:
        bpy.utils.unregister_class(cls)
    del bpy.types.Scene.my_props

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