diff --git a/runtime/queries/jsx/highlights.scm b/runtime/queries/jsx/highlights.scm
index d7054336..a1eb2d0e 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 - <My.Component>
 (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 - </My.Component>
 (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 - <My.Component />
 (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 1b61e36d..100c7cc7 100644
--- a/runtime/queries/tsx/highlights.scm
+++ b/runtime/queries/tsx/highlights.scm
@@ -1 +1 @@
-; inherits: typescript
+; inherits: jsx,typescript