Home / Cursor rules / Harmony Arkts
Harmony Arkts
HarmonyOS ArkTS rules for components, state, resources, layout, lifecycle, and accessibility
Cursor rules (.mdc)Public domain (CC0)
–unranked
Install
mkdir -p .cursor/rules && curl -sL https://raw.githubusercontent.com/PatrickJS/awesome-cursorrules/b044f956f021b6e8877f16781bcfc466a6a120e9/rules/harmony-arkts.mdc -o .cursor/rules/harmony-arkts.mdcDownloads the file at commit b044f956f021 into .cursor/rules/.
To remove it later:
rm .cursor/rules/harmony-arkts.mdcContext cost: ≈550 tokens when used.
Rules file
--- description: HarmonyOS ArkTS rules for components, state, resources, layout, lifecycle, and accessibility globs: ["**/*.ets", "**/*.ts", "**/*.json5", "AppScope/**/*", "entry/src/main/**/*"] alwaysApply: false --- # HarmonyOS ArkTS Rules ## Component Structure - Use `@Component` for component definitions and PascalCase for component structs. - Keep state declarations near the top of the component. - Group lifecycle hooks before `build()`. - Place `build()` last and keep it focused on UI composition. - Extract complex UI into smaller components. ## State and Data Flow - Use `@State` for component-owned state. - Use `@Prop` for parent-to-child data. - Use `@Link` only for intentional two-way binding. - Keep derived values in methods or computed helpers rather than duplicating state. - Avoid broad global state unless the project has an established app-state pattern. ## Layout and Styling - Use `Column`, `Row`, `Stack`, `List`, and other ArkUI primitives intentionally. - Keep layout properties such as width, height, alignment, and layout weight grouped before visual properties. - Use object notation for margin and padding when sides differ. - Use logical pixels consistently. - Use percentage strings for relative sizes. - Keep reusable spacing, colors, and typography in resources when the project supports it. ## Events and Lifecycle - Use arrow functions for event handlers. - Keep event handlers short and delegate complex logic to methods. - Handle async failures explicitly and surface user-facing errors where appropriate. - Use lifecycle hooks for setup and teardown that genuinely depends on component lifecycle. ## Resources and Accessibility - Use `$r()` for app resources. - Group resource references consistently. - Add descriptive labels and focus handling for interactive elements. - Maintain color contrast and touch target size. - Test on representative device sizes and orientations. ## Common Mistakes - Do not bury business logic in `build()`. - Do not use two-way binding when one-way props are enough. - Do not hardcode repeated strings, colors, and dimensions that belong in resources. - Do not leave debug `console.log` calls in production code.
Security
Scanned Nov 4, 2026 at commit b044f956f021, with Cisco's open-source skill-scanner.
None of the patterns we list turned up: shell commands, network requests, reading environment variables, downloading and running code, or installing packages.
A scan lists patterns in the code. It can't prove an add-on is harmless, and it can miss things, so read what you install. How we scan