name: "Illustration" description: "Visual illustrations used for empty states, error states, or informational contexts. Provides scalable SVG graphics with consistent styling and themeable colors for strokes and fills." category: "Display" slds_classes: root: "slds-illustration" elements: - class: "slds-illustration__svg" description: "SVG container for the illustration graphic" purpose: "Holds the SVG illustration image" - class: "slds-illustration__header" description: "Header text above the illustration" purpose: "Provides title or main message" - class: "slds-illustration__stroke-primary" description: "Primary stroke color for SVG elements" purpose: "Applied to SVG paths for consistent theming" - class: "slds-illustration__stroke-secondary" description: "Secondary stroke color for SVG elements" purpose: "Applied to SVG paths for accent colors" - class: "slds-illustration__fill-primary" description: "Primary fill color for SVG elements" purpose: "Applied to SVG shapes for consistent theming" - class: "slds-illustration__fill-secondary" description: "Secondary fill color for SVG elements" purpose: "Applied to SVG shapes for accent colors" modifiers: - class: "slds-illustration_small" description: "Small size variant (300x200px max)" purpose: "Compact illustration for smaller spaces" - class: "slds-illustration_large" description: "Large size variant (600x400px max)" purpose: "Full-size illustration for prominent empty states" states: [] variants: - name: "Base" description: "Standard illustration with default sizing" classes: ["slds-illustration"] usage_context: "Default illustration implementation" differences: "Responsive illustration with natural SVG sizing" - name: "Small" description: "Compact illustration for smaller contexts" classes: ["slds-illustration", "slds-illustration_small"] usage_context: "Use in panels, cards, or compact layouts" differences: "Maximum 300x200px with reduced spacing" - name: "Large" description: "Full-size illustration for prominent display" classes: ["slds-illustration", "slds-illustration_large"] usage_context: "Use for main content area empty states" differences: "Maximum 600x400px with increased spacing" lightning_component: name: "" url: "https://developer.salesforce.com/docs/component-library/overview/components" mapping_notes: "No direct Lightning Base Component - implement with custom SVG and styling" accessibility: keyboard_support: - "Illustrations are typically non-interactive" screen_reader: - "Provide descriptive alt text or aria-label" - "Use aria-hidden='true' for decorative illustrations" - "Ensure accompanying text is accessible" aria_attributes: - "role='img' on SVG or wrapper" - "aria-label with description for meaningful illustrations" - "aria-hidden='true' for purely decorative images" usage_guidelines: when_to_use: - "For empty states (no data, no results, no items)" - "For error or success confirmation screens" - "To communicate system status visually" - "For onboarding or informational screens" when_not_to_use: - "As primary content (use as supporting visual)" - "For critical information without text backup" - "In place of icons for actions" - "When space is extremely limited" best_practices: - "Always pair illustration with descriptive text" - "Use appropriate size variant for context" - "Provide clear messaging about user action or state" - "Ensure illustrations support but don't replace text" - "Use consistent illustration style across application" - "Consider color contrast and visibility" common_mistakes: - "Missing descriptive text or heading" - "Illustrations too large for context" - "Poor color contrast making illustration hard to see" - "Relying solely on illustration without text" - "Using wrong size variant for space available" code_examples: - title: "Basic Illustration with Empty State" code: |

No Items Found

Start by creating your first item.

description: "Small illustration for empty state with header and description" - title: "Large Illustration with Action" code: |

Welcome to Your Dashboard

Get started by adding your first widget.

description: "Large illustration with header, description, and action button" - title: "Illustration with No Data State" code: |

No Records to Display

When you have records, they'll appear here.

description: "Illustration communicating no data available" - title: "Error State Illustration" code: |
Error occurred

Something Went Wrong

We couldn't complete your request. Please try again.

description: "Error state illustration with retry action" styling_hooks: - name: "--slds-g-color-palette-cloud-blue-80" description: "Primary color for illustration strokes and fills" css_property: "stroke, fill" - name: "--slds-g-color-palette-cloud-blue-90" description: "Secondary color for illustration strokes and fills" css_property: "stroke, fill" dependencies: css_files: ["illustration.css"] javascript: [] icons: [] other_components: ["button", "text"] related_components: - name: "Empty State" relationship: "pattern" description: "Complete pattern using illustration" - name: "Icon" relationship: "alternative" description: "Simpler graphic alternative for smaller contexts" - name: "Spinner" relationship: "complementary" description: "Loading state while content loads" references: official_docs: "https://v1.lightningdesignsystem.com/components/illustration/" metadata: version: "1.0.0" last_updated: "2025-11-11" author: "SLDS Documentation Team" slds_version: "2.27.2" review_status: "complete" source: "official-slds" notes: "Created from official SLDS documentation and design-system-internal source code"