

Also from Kynth Studios


Also from Kynth Studios


Also from Kynth Studios
12345## Use Native Menus for Dropdowns and Context Menus67Use native platform menus instead of custom JS implementations. Native menus8provide built-in accessibility, consistent platform UX, and better performance.9Use [zeego](https://zeego.dev) for cross-platform native menus.1011**Incorrect (custom JS menu):**1213```tsx14import { useState } from 'react'15import { View, Pressable, Text } from 'react-native'1617function MyMenu() {18 const [open, setOpen] = useState(false)1920 return (21 <View>22 <Pressable onPress={() => setOpen(!open)}>23 <Text>Open Menu</Text>24 </Pressable>25 {open && (26 <View style={{ position: 'absolute', top: 40 }}>27 <Pressable onPress={() => console.log('edit')}>28 <Text>Edit</Text>29 </Pressable>30 <Pressable onPress={() => console.log('delete')}>31 <Text>Delete</Text>32 </Pressable>33 </View>34 )}35 </View>36 )37}38```3940**Correct (native menu with zeego):**4142```tsx43import * as DropdownMenu from 'zeego/dropdown-menu'4445function MyMenu() {46 return (47 <DropdownMenu.Root>48 <DropdownMenu.Trigger>49 <Pressable>50 <Text>Open Menu</Text>51 </Pressable>52 </DropdownMenu.Trigger>5354 <DropdownMenu.Content>55 <DropdownMenu.Item key='edit' onSelect={() => console.log('edit')}>56 <DropdownMenu.ItemTitle>Edit</DropdownMenu.ItemTitle>57 </DropdownMenu.Item>5859 <DropdownMenu.Item60 key='delete'61 destructive62 onSelect={() => console.log('delete')}63 >64 <DropdownMenu.ItemTitle>Delete</DropdownMenu.ItemTitle>65 </DropdownMenu.Item>66 </DropdownMenu.Content>67 </DropdownMenu.Root>68 )69}70```7172**Context menu (long-press):**7374```tsx75import * as ContextMenu from 'zeego/context-menu'7677function MyContextMenu() {78 return (79 <ContextMenu.Root>80 <ContextMenu.Trigger>81 <View style={{ padding: 20 }}>82 <Text>Long press me</Text>83 </View>84 </ContextMenu.Trigger>8586 <ContextMenu.Content>87 <ContextMenu.Item key='copy' onSelect={() => console.log('copy')}>88 <ContextMenu.ItemTitle>Copy</ContextMenu.ItemTitle>89 </ContextMenu.Item>9091 <ContextMenu.Item key='paste' onSelect={() => console.log('paste')}>92 <ContextMenu.ItemTitle>Paste</ContextMenu.ItemTitle>93 </ContextMenu.Item>94 </ContextMenu.Content>95 </ContextMenu.Root>96 )97}98```99100**Checkbox items:**101102```tsx103import * as DropdownMenu from 'zeego/dropdown-menu'104105function SettingsMenu() {106 const [notifications, setNotifications] = useState(true)107108 return (109 <DropdownMenu.Root>110 <DropdownMenu.Trigger>111 <Pressable>112 <Text>Settings</Text>113 </Pressable>114 </DropdownMenu.Trigger>115116 <DropdownMenu.Content>117 <DropdownMenu.CheckboxItem118 key='notifications'119 value={notifications}120 onValueChange={() => setNotifications((prev) => !prev)}121 >122 <DropdownMenu.ItemIndicator />123 <DropdownMenu.ItemTitle>Notifications</DropdownMenu.ItemTitle>124 </DropdownMenu.CheckboxItem>125 </DropdownMenu.Content>126 </DropdownMenu.Root>127 )128}129```130131**Submenus:**132133```tsx134import * as DropdownMenu from 'zeego/dropdown-menu'135136function MenuWithSubmenu() {137 return (138 <DropdownMenu.Root>139 <DropdownMenu.Trigger>140 <Pressable>141 <Text>Options</Text>142 </Pressable>143 </DropdownMenu.Trigger>144145 <DropdownMenu.Content>146 <DropdownMenu.Item key='home' onSelect={() => console.log('home')}>147 <DropdownMenu.ItemTitle>Home</DropdownMenu.ItemTitle>148 </DropdownMenu.Item>149150 <DropdownMenu.Sub>151 <DropdownMenu.SubTrigger key='more'>152 <DropdownMenu.ItemTitle>More Options</DropdownMenu.ItemTitle>153 </DropdownMenu.SubTrigger>154155 <DropdownMenu.SubContent>156 <DropdownMenu.Item key='settings'>157 <DropdownMenu.ItemTitle>Settings</DropdownMenu.ItemTitle>158 </DropdownMenu.Item>159160 <DropdownMenu.Item key='help'>161 <DropdownMenu.ItemTitle>Help</DropdownMenu.ItemTitle>162 </DropdownMenu.Item>163 </DropdownMenu.SubContent>164 </DropdownMenu.Sub>165 </DropdownMenu.Content>166 </DropdownMenu.Root>167 )168}169```170171Reference: [Zeego Documentation](https://zeego.dev/components/dropdown-menu)172
One repository carrying more than one format is the comparison this product exists for: does anyone actually write different content in each file, or is one a copy of the other?
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| nota-america/forgecat-agent-profilesprofiles/addyosmani/agent-skills/for-cursor/.cursor/rules/cmd-build.mdc · 51 | Cursor rules | no sections | 16/100 | today | |
| nota-america/forgecat-agent-profilesprofiles/addyosmani/agent-skills/for-cursor/.cursor/rules/cmd-code-simplify.mdc · 51 | Cursor rules | testing-strategy | 30/100 | today | |
| nota-america/forgecat-agent-profilesprofiles/addyosmani/agent-skills/for-cursor/.cursor/rules/cmd-plan.mdc · 51 | Cursor rules | no sections | 16/100 | today | |
| nota-america/forgecat-agent-profilesprofiles/addyosmani/agent-skills/for-cursor/.cursor/rules/cmd-review.mdc · 51 | Cursor rules | no sections | 16/100 | today | |
| nota-america/forgecat-agent-profilesprofiles/addyosmani/agent-skills/for-cursor/.cursor/rules/cmd-ship.mdc · 51 | Cursor rules | testing-strategygitdeploymentdo-not | 61/100 | today | |
| nota-america/forgecat-agent-profilesprofiles/addyosmani/agent-skills/for-cursor/.cursor/rules/cmd-spec.mdc · 51 | Cursor rules | no sections | 16/100 | today | |
| nota-america/forgecat-agent-profilesprofiles/addyosmani/agent-skills/for-cursor/.cursor/rules/cmd-test.mdc · 51 | Cursor rules | no sections | 16/100 | today | |
| nota-america/forgecat-agent-profilesprofiles/addyosmani/agent-skills/for-forgecat/AGENTS.md · 51 | AGENTS.md | lint-formatstylearchdo-not | 73/100 | today | |
| nota-america/forgecat-agent-profilesprofiles/addyosmani/agent-skills/for-forgecat/CLAUDE.md · 51 | CLAUDE.md | teststylearchagent-behaviour | 70/100 | today | |
| nota-america/forgecat-agent-profilesprofiles/anthropics/claude-code/anthropics_claude-code_ralph-wiggum/for-cursor/.cursor/rules/cmd-cancel-ralph.mdc · 51 | Cursor rules | no sections | 16/100 | today | |
| nota-america/forgecat-agent-profilesprofiles/anthropics/claude-code/anthropics_claude-code_ralph-wiggum/for-cursor/.cursor/rules/cmd-help.mdc · 51 | Cursor rules | no sections | 54/100 | today | |
| nota-america/forgecat-agent-profilesprofiles/anthropics/claude-code/anthropics_claude-code_ralph-wiggum/for-cursor/.cursor/rules/cmd-ralph-loop.mdc · 51 | Cursor rules | no sections | 22/100 | today | |
| nota-america/forgecat-agent-profilesprofiles/anthropics/claude-plugins-official/anthropics_claude-plugins-official_agent-sdk-dev/for-cursor/.cursor/rules/cmd-new-sdk-app.mdc · 51 | Cursor rules | setupstylearchdocs | 76/100 | today | |
| nota-america/forgecat-agent-profilesprofiles/anthropics/claude-plugins-official/anthropics_claude-plugins-official_claude-md-management/for-cursor/.cursor/rules/cmd-revise-claude-md.mdc · 51 | Cursor rules | agent-behaviour | 50/100 | today | |
| nota-america/forgecat-agent-profilesprofiles/anthropics/claude-plugins-official/anthropics_claude-plugins-official_code-review/for-cursor/.cursor/rules/cmd-code-review.mdc · 51 | Cursor rules | testing-strategygit | 35/100 | today | |
| nota-america/forgecat-agent-profilesprofiles/anthropics/claude-plugins-official/anthropics_claude-plugins-official_commit-commands/for-cursor/.cursor/rules/cmd-clean_gone.mdc · 51 | Cursor rules | no sections | 60/100 | today | |
| nota-america/forgecat-agent-profilesprofiles/anthropics/claude-plugins-official/anthropics_claude-plugins-official_commit-commands/for-cursor/.cursor/rules/cmd-commit-push-pr.mdc · 51 | Cursor rules | stylegit | 44/100 | today | |
| nota-america/forgecat-agent-profilesprofiles/anthropics/claude-plugins-official/anthropics_claude-plugins-official_commit-commands/for-cursor/.cursor/rules/cmd-commit.mdc · 51 | Cursor rules | style | 44/100 | today | |
| nota-america/forgecat-agent-profilesprofiles/anthropics/claude-plugins-official/anthropics_claude-plugins-official_example-plugin/for-cursor/.cursor/rules/cmd-example-command.mdc · 51 | Cursor rules | lint-formatstyleagent-behaviour | 58/100 | today | |
| nota-america/forgecat-agent-profilesprofiles/anthropics/claude-plugins-official/anthropics_claude-plugins-official_feature-dev/for-cursor/.cursor/rules/cmd-feature-dev.mdc · 51 | Cursor rules | stylearchgit | 56/100 | today |
Same format, overlapping stack, ranked by quality.
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| hiromaily/go-crypto-wallet.cursor/rules/typescript.mdc · 126 | Cursor rules | setupbuildtestlint-format+6 | 100/100 | 14 days ago | |
| TechSquidTV/Hermes.cursor/rules/10-hermes-api.mdc · 46 | Cursor rules | testlint-formatstylearch+5 | 100/100 | 14 days ago | |
| Allymahmoud/case-intake-platform.cursor/rules/frontend.mdc · 0 | Cursor rules | setuptestlint-formatstyle+7 | 99/100 | 14 days ago | |
| dodgecfr/combatfilms-webapp.cursor/rules/frontend.mdc · 0 | Cursor rules | setuptestlint-formatstyle+7 | 99/100 | 14 days ago | |
| deifos/clipmira-subtitles.cursor/rules/frontend.mdc · 1 | Cursor rules | setuptestlint-formatstyle+7 | 99/100 | 14 days ago | |
| markstev/mark-starter.cursor/rules/frontend.mdc · 0 | Cursor rules | setuptestlint-formatstyle+6 | 99/100 | 14 days ago | |
| langflow-ai/langflow.cursor/rules/docs_development.mdc · 153k | Cursor rules | setupbuildtestlint-format+7 | 97/100 | 14 days ago | |
| bybren-llc/safe-agentic-workflow.cursor/rules/10-backend-python.mdc · 399 | Cursor rules | testlint-formatstylegit+4 | 97/100 | today |
A badge carrying the measured quality of the strongest agent config file in this repository, out of 100. It reads from this index every time somebody loads your page, so it changes when the measurement changes and there is nothing to keep up to date. Free, no account, and the value is not something you or we can set by hand.
[](https://rulestack.kynth.studio/configs/nota-america-forgecat-agent-profiles-profiles-vercel-labs-agent-skills-vercel-labs-agent-skills-react-native-skills-for-cursor-cursor-rules-rule-ui-menus)Would rather not hotlink us? Every badge is also served in shields.io’s endpoint schema, so shields renders the image and your readers never talk to our domain:
Published by Toolproof, the masthead over this index and eight others. The method behind the number is at toolproof.kynth.studio/methodology, and the whole thing is readable as JSON with no key at /api.