Unpoly and Hotwire are somewhat similar to HTMX, but they update entire sections of a page (i.e., "page fragments") as you describe. They perform a DOM diff and update everything wrapped inside an HTML tag (e.g., a <div>) with a special attribute. Unpoly does this within the app's normal request/response cycle, while Hotwire uses websockets to stream updates.
https://unpoly.com/tutorial
https://hotwired.dev/