Skip to main content
FioriThemeManager bundles a comprehensive set of Fiori-branded icons. You access every icon through the FioriIcon enum, which exposes SwiftUI Image values grouped by semantic category. No asset catalog string literals or UIImage(named:) lookups are needed.

Import

import FioriThemeManager

FioriIcon enum

Each icon is a static Image property on a nested enum that groups related icons by category. Access any icon with dot notation:
FioriIcon.<category>.<iconName>
For example:
FioriIcon.actions.add
FioriIcon.actions.edit
FioriIcon.arrows.slimArrowRight
FioriIcon.charts.lineChart
FioriIcon.documents.document

Icon categories

The FioriIcon enum contains these top-level categories:
CategoryDescription
actionsGeneral actions: add, edit, delete, share, search, filter, and more
arrowsDirectional and navigation arrows, scroll, expand/collapse
calendarsCalendar, appointment, scheduling, and time-related icons
calloutSpeech bubbles, comments, notifications, messages
chartsChart types: bar, line, pie, radar, gantt, and more
clipboardsTasks, activity, clipboard, and paste icons
devicesDevice representations: phone, tablet, laptop, IoT
documentsDocument types, attachments, PDFs, forms

Usage in SwiftUI

Because each property is already a SwiftUI.Image, you use it exactly like any other image:
import FioriThemeManager
import SwiftUI

struct ActionBar: View {
    var body: some View {
        HStack(spacing: 20) {
            Button {
                // handle edit
            } label: {
                FioriIcon.actions.edit
                    .foregroundStyle(Color.preferredColor(.tintColor))
            }

            Button {
                // handle delete
            } label: {
                FioriIcon.actions.delete
                    .foregroundStyle(Color.preferredColor(.negativeLabel))
            }

            Button {
                // handle share
            } label: {
                FioriIcon.actions.share
                    .foregroundStyle(Color.preferredColor(.tintColor))
            }
        }
    }
}

Resizing and tinting

Fiori icons are vector images and scale without quality loss. Use standard SwiftUI modifiers:
// Resize to a specific frame
FioriIcon.actions.filter
    .resizable()
    .frame(width: 24, height: 24)
    .foregroundStyle(Color.preferredColor(.primaryLabel))

// Use as a label image
Label {
    Text("Filter")
        .font(.fiori(forTextStyle: .body))
} icon: {
    FioriIcon.actions.filter
}

Icon naming conventions

Icon names follow camelCase Swift naming derived from the Fiori icon identifier (e.g., fiori.slim.arrow.right.slimArrowRight). Some icons appear in multiple categories because they are semantically relevant to more than one context — for example, FioriIcon.actions.download and FioriIcon.arrows.download both resolve to the same underlying image asset (fiori.download).
The underlying asset name is the fioriName string used in Image(fioriName:). You do not need to use Image(fioriName:) directly; always prefer the typed FioriIcon enum properties.

Common icons quick reference

FioriIcon.actions.navBack       // back navigation
FioriIcon.actions.add           // add / create
FioriIcon.actions.edit          // edit
FioriIcon.actions.delete        // delete
FioriIcon.actions.search        // search
FioriIcon.actions.filter        // filter panel
FioriIcon.actions.sort          // sort
FioriIcon.actions.settings      // settings
FioriIcon.actions.overflow      // overflow menu ("...")

Build docs developers (and LLMs) love