skills/vendix-frontend-icons/SKILL.md
Protocol for using and registering Lucide icons in the Vendix frontend. Trigger: When adding icons to components, buttons, menus, stats, tables, cards, or using app-icon.
npx skillsauth add rzyfront/vendix vendix-frontend-iconsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
app-icon to a template.iconName, action icon, avatarFallbackIcon, detail icon, or menu/sidebar icons.apps/frontend/src/app/shared/components/icon/icon.component.tsapps/frontend/src/app/shared/components/icon/icons.registry.tsapps/frontend/src/app/shared/components/icon/README.mdicons.registry.ts before using an icon key.ICON_REGISTRY.class, not color. The color input is forwarded to Lucide as a color value.IconComponent inputs:
name: IconName required.size: number | string = 16.color?: string.class alias stored as cls.spin: boolean = false.If a name is not found, the component falls back to the registry default icon, currently HelpCircle. A fallback prevents crashes but still means the icon key is wrong.
<app-icon name="package" [size]="20" class="text-blue-500" />
<app-icon name="loader-2" [size]="18" class="text-primary" [spin]="true" />
import {
Fingerprint,
// existing imports
} from 'lucide-angular';
export const ICON_REGISTRY = {
// existing icons
fingerprint: Fingerprint,
} as const;
Use a stable key that matches existing naming style. Kebab aliases such as trash-2 and simple aliases such as trash may both exist; do not add duplicates unless there is a clear compatibility/use reason.
app-stats: iconName="shopping-cart".TableAction: { icon: 'trash-2', ... }.ItemListCardConfig: avatarFallbackIcon, detail field icon, and info icons.app-sticky-header: icon="settings" and action icon values.icon keys.icons.registry.ts for the key.class="text-*" for Tailwind color.[spin]="true" only for loading/spinner icons.vendix-frontend-standard-module - Icons in admin list modulesvendix-frontend-data-display - Action/card iconsvendix-panel-ui - Sidebar/menu iconsdevelopment
Mobile app development rules for Vendix Expo/React Native project. Trigger: When editing, creating, or modifying any file under apps/mobile, or when developing mobile-specific features.
development
Feature gating by store subscription state: global store write guard, AI feature gate, Redis feature resolution, quota consumption, frontend paywall interceptor, banner, and subscription UI states. Trigger: When adding feature gates, paywalls, subscription-based access control, protecting store write operations, AI feature gates, or rollout flags.
testing
SaaS subscription billing for Vendix stores: plan pricing, invoices, Wompi platform payments, manual payments, partner commissions, payouts, proration, and dunning. Trigger: When creating SaaS invoices, working with partner rev-share, margin/surcharge pricing, invoice sequence allocation, partner payout batches, subscription payments, manual payments, or dunning flows.
development
Periodic quota counters with Redis, UTC period keys, Lua-based idempotent AI quota consumption, request-id deduplication, and post-success consumption. Trigger: When building quota counters, enforcing monthly/daily feature caps, or reusing AI quota patterns for uploads, emails, exports, or rate-limited features.