diff --git a/runtime/queries/jsx/highlights.scm b/runtime/queries/jsx/highlights.scm
index d7054336a..a1eb2d0ed 100644
--- a/runtime/queries/jsx/highlights.scm
+++ b/runtime/queries/jsx/highlights.scm
@@ -1,5 +1,3 @@
-; inherits: ecma
-
; Highlight component names differently
(jsx_opening_element ((identifier) @constructor
(#match? @constructor "^[A-Z]")))
@@ -7,21 +5,33 @@
; Handle the dot operator effectively -
(jsx_opening_element ((nested_identifier (identifier) @tag (identifier) @constructor)))
+; Highlight brackets differently
+(jsx_opening_element ["<" ">"] @punctuation.bracket)
+
(jsx_closing_element ((identifier) @constructor
(#match? @constructor "^[A-Z]")))
; Handle the dot operator effectively -
(jsx_closing_element ((nested_identifier (identifier) @tag (identifier) @constructor)))
+; Highlight brackets differently
+(jsx_closing_element ["<" "/" ">"] @punctuation.bracket)
+
(jsx_self_closing_element ((identifier) @constructor
(#match? @constructor "^[A-Z]")))
; Handle the dot operator effectively -
(jsx_self_closing_element ((nested_identifier (identifier) @tag (identifier) @constructor)))
-; TODO: also tag @punctuation.delimiter?
+; Highlight brackets differently
+(jsx_self_closing_element ["<" "/" ">"] @punctuation.bracket)
+
+; Handle attribute delimiter
+(jsx_attribute "=" @punctuation.delimiter)
(jsx_opening_element (identifier) @tag)
(jsx_closing_element (identifier) @tag)
(jsx_self_closing_element (identifier) @tag)
(jsx_attribute (property_identifier) @variable.other.member)
+
+; inherits: ecma
diff --git a/runtime/queries/tsx/highlights.scm b/runtime/queries/tsx/highlights.scm
index 1b61e36da..100c7cc7a 100644
--- a/runtime/queries/tsx/highlights.scm
+++ b/runtime/queries/tsx/highlights.scm
@@ -1 +1 @@
-; inherits: typescript
+; inherits: jsx,typescript