❔ Abstracting html in Razor

I want to define custom components to abstract away some html content. These should be able to accept props, like key names, expressions, or pieces of html. For example:
<div class="a-bunch-of-tailwind-classes">
    <label class="a-bunch-of-classes" asp-for="Expression"/> DisplayName
    <input class="a bunch of classes" asp-for="Expression" some-validation-stuff type="Type"/>

should be produced from e.g.
<LabeledInput Expression="Model.Title" DisplayName="Title" Type="text"/>

or something like that. Should I make a bunch of tag helpers? I know that these can't be backed by html files. Partial views maybe?
I've read that razor components is something else, it's tightly coupled with blazor
Passing down ModelExpressions to partial views or tag helpers results in a massive jump in complexity
Looks like nothing has happened here. I will mark this as stale and this post will be archived until there is new activity.