diff --git a/docs/rules.md b/docs/rules.md
index bd657d78..52996b1c 100644
--- a/docs/rules.md
+++ b/docs/rules.md
@@ -68,6 +68,7 @@
| -------------------------------------------------------- | ----------------------------------------------------------------- | ---- |
| [attrs-newline](rules/attrs-newline) | Enforce newline between attributes | ⭐🔧 |
| [element-newline](rules/element-newline) | Enforce newline between elements. | ⭐🔧 |
+| [group-attrs](rules/group-attrs) | Enforce grouping and ordering of related attributes | 🔧 |
| [id-naming-convention](rules/id-naming-convention) | Enforce consistent naming id attributes | |
| [indent](rules/indent) | Enforce consistent indentation | ⭐🔧 |
| [lowercase](rules/lowercase) | Enforce to use lowercase for tag and attribute names. | 🔧 |
diff --git a/docs/rules/group-attrs.md b/docs/rules/group-attrs.md
new file mode 100644
index 00000000..95c6c83e
--- /dev/null
+++ b/docs/rules/group-attrs.md
@@ -0,0 +1,227 @@
+# group-attrs
+
+Enforce grouping and ordering of related attributes.
+
+## How to use
+
+```js,.eslintrc.js
+module.exports = {
+ rules: {
+ "@html-eslint/group-attrs": "error",
+ },
+};
+```
+
+## Rule Details
+
+This rule ensures that related attributes are placed next to each other when multiple attributes from the same group are present on an element. It also ensures that attributes are in the correct order within their group.
+
+If only some attributes from a group are present (partial groups), they are still grouped together. For example, if you have a group `["left", "top", "right", "bottom"]` and only `left` and `top` are present, they should be adjacent to each other.
+
+Examples of **incorrect** code for this rule:
+
+```html
+
+
+
+
+
+
+
+
+
+
+