Skip to content

Migrating from iTwinUI

Learn how to migrate from iTwinUI to StrataKit

This guide provides the necessary steps for migrating from iTwinUI to StrataKit.

  1. Set up StrataKit

    Follow the set up StrataKit guide to install the necessary dependencies and set up your project.

  2. Enable the StrataKit theme bridge

    Pass the StrataKit Root into the as prop of the iTwinUI ThemeProvider to render a single DOM element.

    <ThemeProvider
    theme={theme}
    + as={Root}
    >
    {/* … */}
    </ThemeProvider>

    Specify the Root props directly on the ThemeProvider component.

    <ThemeProvider
    theme={theme}
    as={Root}
    colorScheme="light"
    >
    {/* … */}
    </ThemeProvider>

    Finally, activate the themeBridge future flag.

    <ThemeProvider
    theme={theme}
    as={Root}
    colorScheme="light"
    future={{ themeBridge: true }} // or future={true}
    >
    {/* … */}
    </ThemeProvider>
  3. Replace @itwin/itwinui-icons with @stratakit/icons

    Replace the usage of iTwinUI icons from @itwin/itwinui-icons with their StrataKit counterparts. Refer to the use StrataKit icons section below for the icon mapping.

    import { SvgAdd } from '@itwin/itwinui-icons-react';
    <SvgAdd />
    import { Icon } from "@stratakit/mui";
    import svgAdd from "@stratakit/icons/add.svg";
    <Icon href={svgAdd} />

    Once all usage of @itwin/itwinui-icons has been replaced, it is safe to remove the dependency.

    Terminal window
    npm uninstall @itwin/itwinui-icons
  4. Replace usage of @itwin/itwinui-react

    Replace the usage of components from @itwin/itwinui-react with their StrataKit counterparts.

    Some components are provided by @mui/material.

    import { Button } from '@itwin/itwinui-react';
    import Button from "@mui/material/Button";

    Others live in @stratakit/structures.

    import { Tree } from '@itwin/itwinui-react';
    import { Tree } from "@stratakit/structures";

    Once all usage of @itwin/itwinui-react has been replaced, it is safe to remove the dependency.

    Terminal window
    npm uninstall @itwin/itwinui-react

Replace iTwinUI icons with their StrataKit counterparts.

iTwinUI iconStrataKit icon
2d2d.svg
3d3d.svg
activityactivity.svg
add-circularadd-circle.svg
addadd.svg
airplaneairplane.svg
align-bottomalign-bottom.svg
align-center-horizontalalign-center-horizontal.svg
align-center-verticalalign-center-vertical.svg
align-leftalign-left.svg
align-rightalign-right.svg
align-topalign-top.svg
androidbrand-android.svg
annotationannotation.svg
applebrand-apple.svg
archivearchive.svg
arrow-downarrow-down.svg
arrow-leftarrow-left.svg
arrow-rightarrow-right.svg
arrow-uparrow-up.svg
attachattach.svg
automaticautomagic.svg
awayuser-away.svg
basketbasket.svg
bentley-systemsbrand-bentley-systems.svg
blank-
boltbolt.svg
bookmarkbookmark.svg
calendarcalendar.svg
camera-animation-disabledcamera-video-disabled.svg
camera-animationcamera-video.svg
camera-retakecamera-retake.svg
cameracamera.svg
caret-down-smallcaret-down.svg
caret-downcaret-down.svg
caret-left-smallcaret-left.svg
caret-leftcaret-left.svg
caret-right-smallcaret-right.svg
caret-rightcaret-right.svg
caret-up-smallcaret-up.svg
caret-upcaret-up.svg
chartschart-bar.svg
chatchat.svg
checkbox-deselectcheckbox-deselect.svg
checkbox-selectcheckbox-select.svg
checkmark-smallcheckmark.svg
checkmarkcheckmark.svg
chevron-downchevron-down.svg
chevron-left-doublechevron-left-double.svg
chevron-leftchevron-left.svg
chevron-right-doublechevron-right-double.svg
chevron-right-smallchevron-right.svg
chevron-rightchevron-right.svg
chevron-upchevron-up.svg
circlecircle.svg
clashclash.svg
clipboardclipboard.svg
clockclock.svg
close-circulardismiss-circle.svg
close-smalldismiss.svg
closedismiss.svg
cloud-downloadcloud-download.svg
cloud-uploadcloud-upload.svg
cloudcloud.svg
collapse-allcollapse-rows-all.svg
collapsecollapse-rows.svg
column-managercolumn-manage.svg
comparecompare.svg
computercomputer.svg
configurationconfiguration.svg
copycopy.svg
cropcrop.svg
crowncrown.svg
cursor-clickcursor-click.svg
cursorcursor.svg
cutcut.svg
databasedatabase.svg
deletedelete.svg
detailsdetails.svg
developerdeveloper.svg
disconnectdisconnect.svg
distribute-bottom-
distribute-center-horizontaldistribute-center-horizontal.svg
distribute-center-verticaldistribute-center-vertical.svg
distribute-leftdistribute-left.svg
distribute-rightdistribute-right.svg
distribute-topdistribute-top.svg
dock-bottomdock-bottom.svg
dock-leftdock-left.svg
dock-rightdock-right.svg
dock-topdock-top.svg
document-lockdocument-locked.svg
document-referencedocument-reference.svg
documentdocument-blank.svg
documentationdocumentation.svg
downloaddownload.svg
drag-handle-verticaldrag-handle-vertical.svg
drag-handledrag-handle-horizontal.svg
drawdraw.svg
duplicateduplicate.svg
edit-alledit-all.svg
editedit.svg
ellipseellipse.svg
email-atemail-at.svg
emailemail.svg
exitexit.svg
expand-allexpand-rows-all.svg
expandexpand-rows.svg
exportexport.svg
eyedropper-dropeyedropper-drop.svg
eyedropper-filledeyedropper-filled.svg
eyedroppereyedropper.svg
fast-backwardfast-backward.svg
fast-forwardfast-forward.svg
feedbackfeedback.svg
filter-hollowfilter.svg
filterfilter.svg
findfind.svg
fire-extinguisherfire-extinguisher.svg
fit-to-viewfit-to-view.svg
flagflag.svg
folder-addfolder-add.svg
folder-browsefolder-browse.svg
folder-chevron-downfolder-chevron-down.svg
folder-chevron-upfolder-chevron-up.svg
folder-exportfolder-export.svg
folder-importfolder-import.svg
folder-lockfolder-lock.svg
folder-minimize-
folder-openedfolder-open.svg
folder-removefolder-remove.svg
folder-shortcutfolder-shortcut.svg
folderfolder.svg
font-boldfont-bold.svg
font-colorfont-color.svg
font-italicfont-italic.svg
font-sizefont-size.svg
formsform.svg
frame-backwardframe-backward.svg
frame-forwardframe-forward.svg
functionfunction.svg
geosearchgeolocate.svg
gesture-one-finger-draggesture-one-finger-drag.svg
gesture-one-finger-tap-doublegesture-one-finger-double-tap.svg
gesture-one-finger-tapgesture-one-finger-tap.svg
gesture-pinchgesture-pinch.svg
gesture-touchgesture-touch.svg
gesture-two-finger-draggesture-two-finger-drag.svg
gesture-two-finger-tapgesture-two-finger-tap.svg
gesture-two-fingergesture-two-finger.svg
globeglobe.svg
go-to-endgo-to-end.svg
go-to-startgo-to-start.svg
graph-barchart-bar.svg
graph-pie-chartchart-pie.svg
graph-scatter-chartgraph-scatter-chart.svg
graphchart-line.svg
gridgrid.svg
group-ungroupungroup.svg
groupgroup.svg
handhand.svg
heartheart.svg
help-circular-hollowhelp.svg
help-circularhelp.svg
hide-manually-suppressed-
hide-rule-suppressed-
hierarchy-treehierarchy-tree.svg
historyhistory.svg
homehome.svg
hourglasshourglass.svg
i-beami-beam.svg
image-frameimage.svg
imageimage.svg
imodel-hollowimodel.svg
imodelimodel.svg
importimport.svg
important-smallimportant.svg
important-veryimportant-very.svg
importantimportant.svg
info-circular-hollowinfo.svg
info-circularinfo.svg
infoinfo.svg
installinstall.svg
isolateisolate.svg
issue-reportissue.svg
item-
itwinitwin.svg
keykey.svg
labellabel.svg
layerslayers.svg
lightbulb-hollowlightbulb.svg
lightbulblightbulb.svg
lineline.svg
linklink.svg
listlist.svg
locationlocation.svg
lock-unlockedlock-unlocked.svg
locklock.svg
looploop.svg
maintenancemaintenance.svg
managermanager.svg
map-infomap-info.svg
mapmap.svg
measuremeasure.svg
menumenu.svg
mergemerge.svg
minimizeminus.svg
modelmodel.svg
moonmoon.svg
more-circularmore-horizontal-circle.svg
more-smallmore-horizontal-circle.svg
more-vertical-circularmore-vertical-circle.svg
more-vertical-smallmore-vertical-circle.svg
more-verticalmore-vertical.svg
moremore-horizontal.svg
mouse-click-leftmouse-click-left.svg
mouse-click-rightmouse-click-right.svg
mouse-click-wheelmouse-click-middle.svg
mouse-clickmouse-click.svg
movemove.svg
named-version-addadd.svg
networknetwork.svg
newnew.svg
newsnews.svg
notification-settingsnotifications-settings.svg
notificationnotifications.svg
object-moveobject-move.svg
object-rotateobject-rotate.svg
object-scaleobject-scale.svg
offlinecloud-offline.svg
paintbrushpaint-brush.svg
palettepalette.svg
panorama-modelpanorama-model.svg
panoramapanorama.svg
paste-hollowclipboard.svg
pasteclipboard.svg
pause-circularpause-circle.svg
pausepause.svg
perspectiveperspective.svg
pin-hollowpin.svg
pin-unpinpin-unpin.svg
pinpin.svg
placeholderplaceholder.svg
play-backwardplay-backward.svg
play-circularplay-circle.svg
playplay.svg
pluginplugins.svg
polygonpolygon.svg
print-previewprint-preview.svg
print-settingsprint-settings.svg
printprint.svg
processprocess.svg
progress-backward-circularchevron-left.svg
progress-backwardchevron-left.svg
progress-forward-circularchevron-right.svg
progress-forwardchevron-right.svg
projectproject.svg
properties-listsettings.svg
propertiesproperties.svg
puzzlepuzzle.svg
re-centerre-center.svg
read-onlyread-only.svg
reality-meshreality-mesh.svg
recordrecord.svg
recordsrecords.svg
rectanglerectangle.svg
redoredo.svg
refreshrefresh.svg
removedismiss.svg
renamerename.svg
reorderreorder.svg
replacereplace.svg
reportsreport.svg
roadroad.svg
rotate-leftrotate-left.svg
rotate-rightrotate-right.svg
save-assave-as.svg
save-settingssave-settings.svg
save-update-
savesave.svg
saved-viewsaved-views.svg
scaleobject-scale.svg
screenshare-stopscreenshare-stop.svg
screensharescreenshare.svg
script-runscript-run.svg
script-statusscript-status.svg
scriptscript.svg
searchsearch.svg
selection-clearselection-clear.svg
selectionselection.svg
sendsend.svg
settingssettings.svg
setupsetup.svg
shareshare.svg
smartphonesmartphone.svg
smiley-happy-hollowsmiley-happy.svg
smiley-happy-very-hollowsmiley-very-happy.svg
smiley-happy-verysmiley-very-happy.svg
smiley-happysmiley-happy.svg
smiley-neutral-hollowsmiley-neutral.svg
smiley-neutralsmiley-neutral.svg
smiley-sad-hollowsmiley-sad.svg
smiley-sad-very-hollowsmiley-very-sad.svg
smiley-sad-verysmiley-very-sad.svg
smiley-sadsmiley-sad.svg
sort-downsort-ascending.svg
sort-menusorting.svg
sort-upsort-descending.svg
sound-loudsound-loud.svg
sound-mutesound-mute.svg
sound-quietsound-quiet.svg
spinspin.svg
star-hollowstar.svg
starstar.svg
status-draftstatus-draft.svg
status-error-hollowstatus-error.svg
status-errorstatus-error.svg
status-pending-hollowstatus-pending.svg
status-pendingstatus-pending.svg
status-rejected-hollowstatus-rejected.svg
status-rejectedstatus-rejected.svg
status-runningstatus-running.svg
status-success-hollowstatus-success.svg
status-successstatus-success.svg
status-updatestatus-update.svg
status-warningstatus-warning.svg
stop-circularstop-circle.svg
stopstop.svg
sunsun.svg
suppress-manuallysuppress.svg
swapswap.svg
sync-disabledcloud-offline.svg
syncloop.svg
table-of-contentstable-of-contents.svg
tabletable.svg
tagtag.svg
technical-preview-badge-bwtechnical-preview-badge.svg
technical-preview-bwtechnical-preview.svg
technical-preview-mini-bwtechnical-preview.svg
text-align-centertext-align-center.svg
text-align-justifytext-align-justify.svg
text-align-lefttext-align-left.svg
text-align-righttext-align-right.svg
text-mediumtext.svg
text-smalltext.svg
texttext.svg
thumbnails-
timertimer.svg
transparencytransparency.svg
tree-navigate-down-
tree-navigate-up-
underlinefont-underline.svg
undoundo.svg
unlinkunlink.svg
upgradeupdate.svg
upload-to-cloudcloud-upload.svg
uploadupload.svg
user-adduser-add.svg
user-restricteduser-restricted.svg
useruser.svg
usersusers.svg
validatevalidate.svg
visibility-emphasizevisibility-emphasis.svg
visibility-halfvisibility-partial.svg
visibility-hidevisibility-hide.svg
visibility-showvisibility-show.svg
walkwalk.svg
wifi-disabledwifi-disabled.svg
wifiwifi.svg
window-addwindow-add.svg
window-areawindow-area.svg
window-backwardwindow-back.svg
window-collapsewindow-collapse.svg
window-forwardwindow-forward.svg
window-full-screenwindow-expand.svg
window-maximizewindow-maximize.svg
window-minimizewindow-minimize.svg
window-popoutwindow-popout.svg
window-settingswindow-settings.svg
window-split-horizontalwindow-split-horizontal.svg
window-split-verticalwindow-split-vertical.svg
window-zoom-inwindow-zoom-in.svg
window-zoom-outwindow-zoom-out.svg
windowwindow.svg
windowsbrand-windows.svg
zoom-in-circularzoom-in-circle.svg
zoom-inzoom-in-magnifier.svg
zoom-out-circularzoom-out-circle.svg
zoom-outzoom-out-magnifier.svg
zoom-searchsearch.svg