Documentation Index
Fetch the complete documentation index at: https://araf.badr.co.id/llms.txt
Use this file to discover all available pages before exploring further.
Overview
A’raf DS uses Lucide React as its icon system. All components that accept icon props expect aReactNode from a Lucide icon component. Icons are sized via the size prop and colored via CSS currentColor, inheriting from their parent’s text color.
Installation
Usage
Size Guide
| Token | Value | Use Case |
|---|---|---|
icon/size/xs | 14px | Inline with small text, badges |
icon/size/sm | 16px | Beside body text, form labels, selects |
icon/size/md | 20px | Button icons, nav items (default) |
icon/size/lg | 24px | Card icons, section headers |
icon/size/xl | 48px | Feature icons, empty states |
Icon Color Tokens
Icons in A’raf DS components automatically use semantic tokens:| Semantic Token | Value (Light) | Use |
|---|---|---|
icon/default/primary | #1f2937 | Primary content icons |
icon/default/secondary | #6b7280 | Supporting / muted icons |
icon/default/brand | #0479CE | Brand-colored icons |
icon/default/on-brand | #ffffff | Icons on colored backgrounds |
icon/state/disabled | #9ca3af | Disabled state |
icon/state/destructive | #dc2626 | Delete / danger actions |
icon/status/success | #16a34a | Success indicators |
icon/status/error | #dc2626 | Error indicators |
icon/status/warning | #eab308 | Warning indicators |
icon/status/info | #3b82f6 | Info indicators |
Common Icons by Category
Navigation & Layout
Actions
Data & Files
Users & Auth
Status & Feedback
Communication
Browsing Icons
Browse all Lucide icons at lucide.dev. Search by keyword —"arrow" returns all directional icons, "check" returns all validation icons.
Accessibility
- Icon-only interactive elements must have an accessible label via
aria-labelon the wrapping button, or a visually hidden<span>sibling - Decorative icons that are accompanied by visible text should have
aria-hidden="true"to avoid redundant announcements - Never use an icon as the sole indicator of meaning for critical states (e.g. error) — always pair with text
- Icons used as status indicators in tables or badges must have a text alternative
Do’s & Don’ts
Do
- Follow the size token guide — use
size={20}for button icons,size={16}for form labels - Use
aria-hidden="true"on decorative icons next to visible text labels - Use
aria-labelon icon-only buttons (e.g. delete, close) - Let icons inherit color via
currentColor— avoid hardcoded hex where semantic tokens exist
Don't
- Don’t use icons larger than
size={24}inside buttons — they overwhelm the text - Don’t use icons as the only signal for status — always add a text label or tooltip
- Don’t mix icon styles (outline vs filled) within the same component or screen
- Don’t import the entire
lucide-reactlibrary — import only what you need for tree-shaking