com um clique
integrate-modus-icons
// Help with correct Modus icon usage patterns including naming conventions, sizing, and accessibility
// Help with correct Modus icon usage patterns including naming conventions, sizing, and accessibility
Scaffold form components with proper Modus input integration, event handling, validation, and checkbox bug handling
Scaffold a new Modus wrapper component following established SolidJS patterns with proper TypeScript interfaces, event handling, and cleanup
Debug and fix common event handling problems with Modus web components
Apply the critical checkbox value inversion workaround when working with ModusCheckbox components
Create Modus modals using the callback ref pattern for programmatic control
Build production-grade frontend interfaces using the Modus 2.0 Design System with Tailwind CSS. Use this skill when the user asks to build web components, pages, dashboards, or application screens. Enforces the 9-color semantic system, Modus Web Components, Modus Icons, and design system compliance. Framework-agnostic (works with SolidJS, React, Angular, or any framework).
| name | integrate-modus-icons |
| description | Help with correct Modus icon usage patterns including naming conventions, sizing, and accessibility |
Help with correct Modus icon usage patterns including naming conventions, sizing, and accessibility.
Use this skill when:
CRITICAL: Modus icons use UNDERSCORES (_), not hyphens (-)
// ✅ CORRECT: Use underscores (SolidJS uses class)
<i class="modus-icons">save_disk</i>
<i class="modus-icons">arrow_left</i>
<i class="modus-icons">add_circle</i>
<i class="modus-icons">user_permissions</i>
// ❌ WRONG: Don't use hyphens
<i class="modus-icons">save-disk</i>
<i class="modus-icons">arrow-left</i>
import ModusIcon from "./components/ModusIcon";
// Informational icon (announced by screen reader)
<ModusIcon
name="user_add"
size="lg"
decorative={false}
ariaLabel="Add user"
/>
// Decorative icon (not announced)
<ModusIcon
name="chevron_right"
size="md"
decorative={true}
/>
Reference: src/components/ModusIcon.tsx
<i> Element// Decorative icon
<i class="modus-icons text-lg" aria-hidden="true">
user_add
</i>
// Informational icon
<i
class="modus-icons text-md"
role="img"
aria-label="Settings"
>
settings
</i>
import ModusButton from "./components/ModusButton";
// Icon with text (left position)
<ModusButton
icon="save_disk"
iconPosition="left"
>
Save File
</ModusButton>
// Icon with text (right position)
<ModusButton
icon="download"
iconPosition="right"
>
Download
</ModusButton>
// Icon only (requires aria-label)
<ModusButton
icon="settings"
iconPosition="only"
ariaLabel="Open settings"
/>
Reference: src/components/ModusButton.tsx for icon rendering logic
Use Tailwind text utilities for sizing:
// Small icon
<i class="modus-icons text-sm">info</i>
// Base icon (Modus default 14px)
<i class="modus-icons text-base">warning</i>
// Large icon (16px)
<i class="modus-icons text-lg">error</i>
// Extra large icon (18px)
<i class="modus-icons text-xl">success</i>
| Tailwind Class | Size | Usage |
|---|---|---|
text-2xs | 8px | Micro icons, badges |
text-xs | 10px | Small labels, captions |
text-sm | 12px | Secondary icons |
text-base | 14px | Modus default size |
text-lg | 16px | Body text icons |
text-xl | 18px | Large icons |
text-2xl | 20px | Prominent icons |
text-3xl | 24px | Display icons |
Use design system colors:
// Primary color
<i class="modus-icons text-primary">info</i>
// Success color
<i class="modus-icons text-success">check_circle</i>
// Warning color
<i class="modus-icons text-warning">warning</i>
// Error color
<i class="modus-icons text-error">error</i>
// Muted text
<i class="modus-icons text-muted-foreground">help</i>
For purely decorative icons, use aria-hidden="true":
<button>
<i class="modus-icons mr-2" aria-hidden="true">save_disk</i>
Save Document
</button>
For icons that convey meaning, provide proper labels:
// Using role="img" and aria-label
<i class="modus-icons" role="img" aria-label="Warning">
warning
</i>
// Using aria-label on parent element
<button aria-label="Delete item">
<i class="modus-icons" aria-hidden="true">delete</i>
</button>
Always provide accessible labels:
<ModusButton
icon="settings"
iconPosition="only"
ariaLabel="Open settings menu"
/>
arrow_left, arrow_right, arrow_up, arrow_downchevron_left, chevron_rightmenu, close, home, settings, searchadd, remove, edit_combination, deletesave_disk, download, upload, copy_contentcheck, check_circle, error, warning, alert, info, helpfile, file_upload, file_downloadfolder_open, folder_closed, document, image, videoperson, people_group, user_account, user_addkey, lock, lock_openCheck icon names against the complete list in:
.cursor/rules/modus-icon-names.mdc - Complete list of 700+ valid icon namesCommon mistakes:
In SolidJS, use class instead of className for icon elements.
src/components/ModusIcon.tsx - Icon component wrappersrc/components/ModusButton.tsx - Button icon integration.cursor/rules/modus-icon-names.mdc - Complete icon name list