The scoped IDs are a good idea, and I'd love to see that make its way into the HTML standard. Not having to generate unique IDs to attach labels to is nice. The rest of this looks like it's trying to appropriate Vue or Angular's template languages, which ought to stay in Vue and Angular where they belong.