diff --git a/apps/web/src/components/navbar/DatabaseManagement/dbConnectionSelector.tsx b/apps/web/src/components/navbar/DatabaseManagement/dbConnectionSelector.tsx
index a1feb5608418b0a65971e9b642b01ecb7331caec..b56e21877d56c5c92a48d3cbbea5c70bdefabffd 100644
--- a/apps/web/src/components/navbar/DatabaseManagement/dbConnectionSelector.tsx
+++ b/apps/web/src/components/navbar/DatabaseManagement/dbConnectionSelector.tsx
@@ -1,5 +1,4 @@
 import React, { useEffect, useState } from 'react';
-import { Add, Delete, Settings, StorageOutlined } from '@mui/icons-material';
 import { useAppDispatch, useSchemaGraph, useSessionCache, useAuthorizationCache } from '@graphpolaris/shared/lib/data-access';
 import { deleteSaveState, selectSaveState } from '@graphpolaris/shared/lib/data-access/store/sessionSlice';
 import { SettingsForm } from './forms/settings';
@@ -99,13 +98,13 @@ export default function DatabaseSelector({}) {
                     <p className="ml-2 truncate">Connecting to {session.saveStates[session.currentSaveState].name}</p>
                   </>
                 ) : session.currentSaveState && session.currentSaveState in session.saveStates && session.currentSaveState !== nilUUID ? (
-                  <div className="flex items-center">
-                    <div className="relative self-center">
-                      <Icon component={<StorageOutlined />} size={20} />
-                      <div
-                        className={`absolute bottom-0 left-0 h-2 w-2 border border-light rounded-full ${session.testedSaveState[session.currentSaveState] === DatabaseStatus.tested ? 'bg-success-500' : 'bg-danger-500'}`}
+                  <div className="flex">
+                    <Icon component="icon-[ic--outline-storage]" size={20} className=" self-center" />
+                    <span className="relative">
+                      <span
+                        className={`absolute bottom-0.5 right-3 h-2 w-2 border border-light  rounded-full ${session.testedSaveState[session.currentSaveState] === DatabaseStatus.tested ? 'bg-success-500' : 'bg-danger-500'}`}
                       />
-                    </div>
+                    </span>
                     <p className="ml-2 truncate">{session.saveStates[session.currentSaveState].name}</p>
                   </div>
                 ) : session.saveStates === undefined ? (
@@ -141,12 +140,12 @@ export default function DatabaseSelector({}) {
               >
                 {session.saveStates && Object.keys(session.saveStates).length === 0 ? (
                   <>
-                    <Add />
+                    <Icon component="icon-[ic--baseline-add]" size={24} />
                     <p className="ml-2">Add your first database</p>
                   </>
                 ) : (
                   <>
-                    <Add />
+                    <Icon component="icon-[ic--baseline-add]" size={24} />
                     <p className="ml-2">Add database</p>
                   </>
                 )}
@@ -207,7 +206,7 @@ export default function DatabaseSelector({}) {
                       >
                         <Tooltip>
                           <TooltipTrigger>
-                            <Settings />
+                            <Icon component="icon-[ic--baseline-settings]" size={24} />
                           </TooltipTrigger>
                           <TooltipContent>
                             <p>Change the connection details</p>
@@ -230,7 +229,7 @@ export default function DatabaseSelector({}) {
                       >
                         <Tooltip>
                           <TooltipTrigger>
-                            <Delete />
+                            <Icon component="icon-[ic--baseline-delete]" size={24} />
                           </TooltipTrigger>
                           <TooltipContent>
                             <p>Delete the database</p>
diff --git a/apps/web/src/components/navbar/DatabaseManagement/forms/settings.tsx b/apps/web/src/components/navbar/DatabaseManagement/forms/settings.tsx
index 259bf11931c63bc15dc9e02ea84e77ca15ab969f..48a7112228f77189b8c69cf8cf9f6bedbf157e5c 100644
--- a/apps/web/src/components/navbar/DatabaseManagement/forms/settings.tsx
+++ b/apps/web/src/components/navbar/DatabaseManagement/forms/settings.tsx
@@ -8,13 +8,13 @@ import {
   useAuthorizationCache,
   nilUUID,
 } from '@graphpolaris/shared/lib/data-access';
-import { ErrorOutline } from '@mui/icons-material';
 import { Dialog, DialogContent } from '@graphpolaris/shared/lib/components/layout';
 import { Button } from '@graphpolaris/shared/lib/components/buttons';
 import { useImmer } from 'use-immer';
 import { addSaveState, testedSaveState } from '@graphpolaris/shared/lib/data-access/store/sessionSlice';
 import { DatabaseForm, INITIAL_SAVE_STATE } from './databaseForm';
 import { SampleDatabaseSelector } from './mockSaveStates';
+import { Icon } from '@graphpolaris/shared';
 
 type Connection = {
   updating: boolean;
@@ -159,7 +159,7 @@ export const SettingsForm = (props: { onClose(): void; open: 'add' | 'update'; s
           {!(connection.status === null) && (
             <div className={`flex flex-col justify-center items-center`}>
               <div className="flex justify-center items-center">
-                {connection.verified === false && <ErrorOutline className="text-secondary-400" />}
+                {connection.verified === false && <Icon component="icon-[ic--baseline-error-outline]" className="text-secondary-400" />}
                 <p className="font-light text-sm	text-secondary-400	">{connection.status}</p>
               </div>
               {connection.verified === null && <progress className="progress w-56"></progress>}
diff --git a/apps/web/src/components/onboarding/onboarding.tsx b/apps/web/src/components/onboarding/onboarding.tsx
index d811f1df28fa83729e1d348cdaefaf8572d622a8..285cdebeecc87810c5165bd470d6628bb3229240 100644
--- a/apps/web/src/components/onboarding/onboarding.tsx
+++ b/apps/web/src/components/onboarding/onboarding.tsx
@@ -4,7 +4,6 @@ import { useLocation } from 'react-router-dom';
 import { Button } from '@graphpolaris/shared/lib/components/buttons';
 import { useCases } from './use-cases';
 import { useAuthorizationCache } from '@graphpolaris/shared/lib/data-access';
-import { Close } from '@mui/icons-material';
 
 interface OnboardingState {
   run?: boolean;
@@ -57,7 +56,7 @@ export function Onboarding({}) {
       {showWalkthrough && (
         <div className="bg-accent-light alert absolute bottom-5 left-5 w-fit cursor-pointer z-50">
           <Button onClick={startWalkThrough} label={'Start a Tour'} variant="ghost" />
-          <Button onClick={() => addWalkthroughCookie()} iconComponent={<Close />} variant="ghost" rounded />
+          <Button onClick={() => addWalkthroughCookie()} iconComponent="icon-[ic--baseline-close]" variant="ghost" rounded />
         </div>
       )}
       <Joyride
diff --git a/libs/config/package.json b/libs/config/package.json
index 282d12d814d77ae30acc9c3ba8ad4605147dbeaa..8844e33fa5ce91cec375a272b98f90262df91db4 100644
--- a/libs/config/package.json
+++ b/libs/config/package.json
@@ -7,6 +7,7 @@
   "types": "src/index.ts",
   "license": "MIT",
   "devDependencies": {
+    "@iconify/tailwind": "^1.1.1",
     "@tailwindcss/typography": "^0.5.10",
     "daisyui": "^4.7.3",
     "postcss": "^8.4.35",
diff --git a/libs/config/tailwind.config.js b/libs/config/tailwind.config.js
index a6e1334dedafdf03c975f19f4e378c99fade6bc4..306e0bf0f45c10b5377163be58150d60af7b74cd 100644
--- a/libs/config/tailwind.config.js
+++ b/libs/config/tailwind.config.js
@@ -1,6 +1,7 @@
 /** @type {import('tailwindcss').Config} */
 import * as defaultTheme from 'tailwindcss/defaultTheme';
 import { tailwindColors } from './src/colors';
+const { addDynamicIconSelectors } = require('@iconify/tailwind');
 
 export default {
   content: ['./index.html', 'src/**/*.{js,ts,jsx,tsx,mdx}', '../../libs/*/lib/**/*.{js,ts,jsx,tsx,mdx}'],
@@ -57,7 +58,7 @@ export default {
       },
     },
   },
-  plugins: [require('@tailwindcss/typography'), require('daisyui')],
+  plugins: [require('@tailwindcss/typography'), require('daisyui'), addDynamicIconSelectors({ scale: 0 })],
   // daisyUI config (optional - here are the default values)
   daisyui: {
     themes: [
diff --git a/libs/shared/lib/components/DesignGuides/styleGuide.mdx b/libs/shared/lib/components/DesignGuides/styleGuide.mdx
index f461cac58bf29a9a4b78008f76e4e34c6bee9db6..6847394b8ff3039c83650338843597bc1360954d 100644
--- a/libs/shared/lib/components/DesignGuides/styleGuide.mdx
+++ b/libs/shared/lib/components/DesignGuides/styleGuide.mdx
@@ -6,37 +6,6 @@ import { TextInput } from '@graphpolaris/shared/lib/components/inputs';
 import { Icon } from '../icon/.';
 import { visualizationColors } from 'config';
 
-import {
-  Delete as DeleteIcon,
-  DeleteOutlined as DeleteOutlinedIcon,
-  DeleteRounded as DeleteRoundedIcon,
-  DeleteTwoTone as DeleteTwoToneIcon,
-  DeleteSharp as DeleteSharpIcon,
-  Settings as SettingsIcon,
-  PhotoCamera as PhotoCameraIcon,
-  Add as AddIcon,
-  Fullscreen as FullscreenIcon,
-  FullscreenExit as FullscreenExitIcon,
-  ContentCopy as ContentCopyIcon,
-  Cached as CachedIcon,
-  Info as InfoIcon,
-  ErrorOutline as ErrorOutlineIcon,
-  CheckCircleOutline as CheckCircleOutlineIcon,
-  Search as SearchIcon,
-  ArrowDropDown as ArrowDropDownIcon,
-  ArrowDropUp as ArrowDropUpIcon,
-  ArrowBack as ArrowBackIcon,
-  ArrowForward as ArrowForwardIcon,
-  Close as CloseIcon,
-  Cancel as CancelIcon,
-  KeyboardArrowDown as KeyboardArrowDownIcon,
-  KeyboardArrowLeft as KeyboardArrowLeftIcon,
-  KeyboardArrowRight as KeyboardArrowRightIcon,
-  KeyboardArrowUp as KeyboardArrowUpIcon,
-  CheckCircle as CheckCircleIcon,
-} from '@mui/icons-material';
-import { ArrowBack } from '@mui/icons-material';
-
 <Meta title="Design guide" />
 
 # Style Guide
@@ -639,123 +608,38 @@ this is a hsl color, if you want to use this color in a css file you can use the
 
 ## Icons
 
-GraphPolaris uses [Material UI](https://mui.com/material-ui/material-icons/) through an Icon component, where the Material UI icon is specified along its size:
+GraphPolaris uses Iconify's [Material UI](https://icon-sets.iconify.design/ic/) through an Icon component, where the icon is specified along its size:
 
 <div className="w-32 m-5 mx-auto">
-  <Icon component={<ArrowBack />} size={32} />
+  <Icon name="ArrowBack" component="icon-[ic--baseline-settings]" size={32} />
 </div>
 
 ```jsx
-import Icon from '@graphpolaris/shared/lib/components/icon';
-<Icon component={<ArrowBack />} size={32} />;
+import { Icon } from '@graphpolaris/shared/lib/components/icon';
+<Icon name="ArrowBack" component="icon-[ic--baseline-settings]" size={32} />;
 ```
 
-There are 5 types of Icons in Material UI:
-
-<IconGallery>
-  <IconItem name="Filled-Default">
-    <DeleteIcon />
-  </IconItem>
-  <IconItem name="Outlined">
-    <DeleteOutlinedIcon />
-  </IconItem>
-  <IconItem name="Rounded">
-    <DeleteRoundedIcon />
-  </IconItem>
-  <IconItem name="TwoTone">
-    <DeleteTwoToneIcon />
-  </IconItem>
-  <IconItem name="Sharp">
-    <DeleteSharpIcon />
-  </IconItem>
-</IconGallery>
-
 GP, mainly, use < b > Filled < /b> and <b>Outlined</b >.
 
 We ditinguish two usage scenarios:
 
--General app view.Elements already in use:
-
-<IconGallery>
-  <IconItem name="Settings">
-    <SettingsIcon/>
-  </IconItem>
-  <IconItem name="PhotoCamera">
-    <PhotoCameraIcon/>
-  </IconItem>
-  <IconItem name="Add">
-    <AddIcon/>
-  </IconItem>
-  <IconItem name="Fullscreen">
-    <FullscreenIcon/>
-  </IconItem>
-  <IconItem name="FullscreenExit">
-    <FullscreenExitIcon/>
-  </IconItem>
-  <IconItem name="Content Copy">
-    <ContentCopyIcon/>
-  </IconItem>
-  <IconItem name="Cached">
-    <CachedIcon/>
-  </IconItem>
-  <IconItem name="Info">
-    <InfoIcon/>
-  </IconItem>
-  <IconItem name="Error Outline">
-    <ErrorOutlineIcon/>
-  </IconItem>
-  <IconItem name="CheckCircleOutline">
-    <CheckCircleOutlineIcon/>
-  </IconItem>
-  <IconItem name="Search">
-    <SearchIcon/>
-  </IconItem>
-  <IconItem name="ArrowDropDown">
-    <ArrowDropDownIcon/>
-  </IconItem>
-  <IconItem name="ArrowDropUp">
-    <ArrowDropUpIcon/>
-  </IconItem>
-  <IconItem name="ArrowBack">
-    <ArrowBackIcon/>
-  </IconItem>
-  <IconItem name="ArrowForward">
-    <ArrowForwardIcon/>
-  </IconItem>
-  <IconItem name="Close">
-    <CloseIcon/>
-  </IconItem>
-  <IconItem name="Cancel">
-    <CancelIcon/>
-  </IconItem>
-  <IconItem name="KeyboardArrowDown">
-    <KeyboardArrowDownIcon/>
-  </IconItem>
-  <IconItem name="KeyboardArrowLeft">
-    <KeyboardArrowLeftIcon/>
-  </IconItem>
-  <IconItem name="KeyboardArrowRight">
-    <KeyboardArrowRightIcon/>
-  </IconItem>
-  <IconItem name="KeyboardArrowUp">
-    <KeyboardArrowUpIcon/>
-  </IconItem>
-
-</IconGallery>
-
--Per component, Button component can have an icon(for more information go to Button's document):
+-Direct usage with the Icon component, as is shown in the example above.
+-Usage with a Button component which passes the icon as a prop:
 
+```jsx
 <div className="w-32 m-5 mx-auto">
   <Button
     type="primary"
     label="Next"
     iconName="ArrowForward"
     iconPosition="leading"
+    iconComponent="icon-[ic--baseline-settings]"
     onClick={() => {
       console.log('Button clicked!');
     }}
   />
 </div>
+```
 
 ## Border radius
 
diff --git a/libs/shared/lib/components/Legend.tsx b/libs/shared/lib/components/Legend.tsx
index 33aedb864e05ab64e098dddf47c45aa9d381ccc8..ecb0d1570924acbb400f6bf2c5a16b7ea0673a5e 100644
--- a/libs/shared/lib/components/Legend.tsx
+++ b/libs/shared/lib/components/Legend.tsx
@@ -1,5 +1,5 @@
 import React from 'react';
-import { Close, ExpandLess, ExpandMore } from '@mui/icons-material';
+import { Icon } from './icon';
 
 type Props = {
   title?: string;
@@ -22,10 +22,14 @@ export const Legend = ({ title = DEFAULT_TITLE, screenPosition = DEFAULT_SCREEN_
           <h4 className="font-bold">{title}</h4>
           <div>
             <button className="btn btn-outline btn-xs" onClick={() => setExpand(!expand)}>
-              {expand ? <ExpandLess fontSize="small" /> : <ExpandMore fontSize="small" />}
+              {expand ? (
+                <Icon component="icon-[ic--baseline-expand-less]" size={20} />
+              ) : (
+                <Icon component="icon-[ic--baseline-expand-more]" size={20} />
+              )}
             </button>
             <button className="btn btn-primary btn-xs ml-1" onClick={() => setOpen(false)}>
-              <Close fontSize="small" />
+              <Icon component="icon-[ic--baseline-close]" size={20} />
             </button>
           </div>
         </div>
diff --git a/libs/shared/lib/components/buttons/Button.tsx b/libs/shared/lib/components/buttons/Button.tsx
index f607db885c5faf598e0fcfc20f3f0922440ada1b..2b0d0d7b34eff95e25245ff7571933d778bfe4ec 100644
--- a/libs/shared/lib/components/buttons/Button.tsx
+++ b/libs/shared/lib/components/buttons/Button.tsx
@@ -14,7 +14,7 @@ type ButtonProps = {
   block?: boolean;
   onClick?: (e: any) => void;
   href?: string;
-  iconComponent?: React.ReactElement;
+  iconComponent?: React.ReactElement | string;
   iconPosition?: 'leading' | 'trailing';
   ariaLabel?: string;
   children?: React.ReactNode;
diff --git a/libs/shared/lib/components/buttons/button.stories.tsx b/libs/shared/lib/components/buttons/button.stories.tsx
index 69931feb8eba7b7bbb478fe231275b83a20af15e..6dc5fa42a2a11dc96e51b755ab125b3d4a3c3917 100644
--- a/libs/shared/lib/components/buttons/button.stories.tsx
+++ b/libs/shared/lib/components/buttons/button.stories.tsx
@@ -1,7 +1,6 @@
 import React from 'react';
 import type { Meta, StoryObj } from '@storybook/react';
 import { Button } from '.';
-import { ArrowBack } from '@mui/icons-material';
 
 const meta: Meta<typeof Button> = {
   title: 'Components/Button',
@@ -99,7 +98,7 @@ export const IconButton: Story = {
   args: {
     variantType: 'primary',
     variant: 'outline',
-    iconComponent: <ArrowBack />,
+    iconComponent: 'icon-[ic--baseline-arrow-back]',
     rounded: true,
   },
 };
diff --git a/libs/shared/lib/components/buttons/buttons.module.scss b/libs/shared/lib/components/buttons/buttons.module.scss
index 3c65332d224eb1e369549e22481e2fb2da8c09c6..32d79309d06afd73451c86dd2e0860ec74a08bbe 100644
--- a/libs/shared/lib/components/buttons/buttons.module.scss
+++ b/libs/shared/lib/components/buttons/buttons.module.scss
@@ -45,35 +45,32 @@
 }
 .btn-icon-only {
   line-height: 1;
+  @apply p-1;
 }
 .btn-lg {
   @apply text-lg h-10 gap-1.5;
   &.btn-icon-only {
-    @apply w-10;
   }
 }
 .btn-md {
   @apply text-base h-9 gap-1;
   &.btn-icon-only {
-    @apply w-9;
   }
 }
 .btn-sm {
   @apply text-sm h-8 gap-1;
   &.btn-icon-only {
-    @apply w-8;
   }
 }
 .btn-xs {
   @apply text-xs h-6 gap-0.5;
   &.btn-icon-only {
-    @apply w-6;
   }
 }
 .btn-2xs {
   @apply text-2xs h-4 gap-0.5;
   &.btn-icon-only {
-    @apply w-4 p-0;
+    @apply p-0;
   }
 }
 
diff --git a/libs/shared/lib/components/color-mode/index.tsx b/libs/shared/lib/components/color-mode/index.tsx
index c55ceb4564e1ac1911c8b023bf3aa299e6de8320..7854d1f0582548051022f31a3757c51a46637f72 100644
--- a/libs/shared/lib/components/color-mode/index.tsx
+++ b/libs/shared/lib/components/color-mode/index.tsx
@@ -1,6 +1,5 @@
 import React, { useState, useEffect } from 'react';
 import { Button } from '../buttons'; // Adjust the import path according to your project structure
-import { Apps as AppsIcon, DarkMode, LightMode, Settings as SettingsIcon } from '@mui/icons-material';
 import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../../components/tooltip';
 
 const ColorMode = () => {
@@ -39,7 +38,7 @@ const ColorMode = () => {
   const toggleTheme = () => {
     setTheme((currentTheme) => (currentTheme === 'light-mode' ? 'dark-mode' : 'light-mode'));
   };
-  const iconComponent = theme === 'dark-mode' ? <DarkMode /> : <LightMode />;
+  const iconComponent = theme === 'dark-mode' ? 'icon-[ic--baseline-dark-mode]' : 'icon-[ic--baseline-light-mode]';
 
   return (
     <TooltipProvider delayDuration={0}>
diff --git a/libs/shared/lib/components/dropdowns/dropdowns.module.scss b/libs/shared/lib/components/dropdowns/dropdowns.module.scss
deleted file mode 100644
index c051a7c9fc412b83bc1e3d4c00783d0b0f5c58a7..0000000000000000000000000000000000000000
--- a/libs/shared/lib/components/dropdowns/dropdowns.module.scss
+++ /dev/null
@@ -1,19 +0,0 @@
-.dropdown {
-}
-.dropdown-item {
-  // //todo: color
-  // //@apply cursor-pointer block px-4 py-2 text-sm bg-secondary-200;
-  // @apply cursor-pointer block text-sm px-2 py-1 rounded hover:bg-secondary-200 border-0;
-}
-.dropdown-container {
-  // width: inherit;
-  // max-width: 100%;
-  // @apply absolute z-10 mt-2 origin-top-right rounded-sm shadow-lg truncate;
-  // ul {
-  //   //todo: color
-  //   @apply divide-y;
-  //   //@apply divide-y divide-secondary-100;
-  //   li {
-  //   }
-  // }
-}
diff --git a/libs/shared/lib/components/dropdowns/dropdowns.module.scss.d.ts b/libs/shared/lib/components/dropdowns/dropdowns.module.scss.d.ts
deleted file mode 100644
index 5fc8829cc55093ac225af1acd319611c23d9ac9f..0000000000000000000000000000000000000000
--- a/libs/shared/lib/components/dropdowns/dropdowns.module.scss.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const classNames: {};
-export = classNames;
diff --git a/libs/shared/lib/components/dropdowns/index.tsx b/libs/shared/lib/components/dropdowns/index.tsx
index 8fb237c6e7ff776987d8b56aaa33b89243d44cf4..9d098bf7cb1e16df4c1441b3b6ca23c5b16d97d0 100644
--- a/libs/shared/lib/components/dropdowns/index.tsx
+++ b/libs/shared/lib/components/dropdowns/index.tsx
@@ -1,7 +1,5 @@
 import React, { useState, useEffect, useRef, ReactNode } from 'react';
-import styles from './dropdowns.module.scss';
 import { Icon } from '../icon';
-import { ArrowDropDown } from '@mui/icons-material';
 import { PopoverContent, PopoverTrigger, Popover, PopoverOptions } from '../layout/Popover';
 
 export const DropdownContainer = ({ children, ...props }: { children: React.ReactNode } & PopoverOptions) => {
@@ -48,7 +46,7 @@ export function DropdownTrigger({
       className={`inline-flex w-full truncate justify-between items-center gap-x-1.5 ${variantClass} ${textSizeClass} ${paddingClass} text-secondary-900 shadow-sm hover:bg-secondary-50 disabled:bg-secondary-100 disabled:cursor-not-allowed disabled:text-secondary-400 pl-1 truncate cursor-pointer${className ? ` ${className}` : ''}`}
     >
       <span className={`text-${size}`}>{title}</span>
-      <Icon component={<ArrowDropDown />} size={16} />
+      <Icon component="icon-[ic--baseline-arrow-drop-down]" size={16} />
     </div>
   );
 
diff --git a/libs/shared/lib/components/forms/index.tsx b/libs/shared/lib/components/forms/index.tsx
index 366b045d1249d5fab4932fb7e48a7d52d9821fbb..05330fadb719bc374990a24095a8ca436c9af02d 100644
--- a/libs/shared/lib/components/forms/index.tsx
+++ b/libs/shared/lib/components/forms/index.tsx
@@ -1,6 +1,5 @@
 import React, { PropsWithChildren } from 'react';
 import { Button } from '../buttons';
-import { Close } from '@mui/icons-material';
 
 /** @deprecated */
 export const FormDiv = React.forwardRef<HTMLDivElement, PropsWithChildren<{ className?: string; hAnchor?: string; offset?: string }>>(
@@ -84,7 +83,7 @@ export const FormTitle = ({ children, title, onClose }: PropsWithChildren<{ titl
   return (
     <div className="font-semibold p-5 py-0 flex w-full">
       <h2 className="w-full">{title}</h2>
-      {onClose && <Button rounded variant="ghost" iconComponent={<Close />} onClick={() => onClose()} />}
+      {onClose && <Button rounded variant="ghost" iconComponent="icon-[ic--baseline-close]" onClick={() => onClose()} />}
     </div>
   );
 };
diff --git a/libs/shared/lib/components/icon/icon.stories.tsx b/libs/shared/lib/components/icon/icon.stories.tsx
index 9277a7c9fd049a2e70959d03852352cbc792543a..623f6d5fde95d78de064857071111f73bf074ba4 100644
--- a/libs/shared/lib/components/icon/icon.stories.tsx
+++ b/libs/shared/lib/components/icon/icon.stories.tsx
@@ -1,8 +1,7 @@
 import { StoryObj, Meta } from '@storybook/react';
 import { Icon } from '../icon';
-import { ArrowBack } from '@mui/icons-material';
-import { CarbonStringInteger } from '@graphpolaris/shared/lib/assets/carbonIcons/carbonIcons';
-const Component: Meta<typeof Icon> = {
+
+export default {
   title: 'Components/Icon',
   component: Icon,
   argTypes: {
@@ -16,18 +15,12 @@ const Component: Meta<typeof Icon> = {
     },
   },
   decorators: [(Story) => <div className="p-5">{Story()}</div>],
-};
-
-export default Component;
-type Story = StoryObj<typeof Component>;
+} as Meta;
 
-export const MUIIcon: Story = (args: any) => {
-  return <Icon component={<ArrowBack />} size={24} {...args} />;
-};
+type Story = StoryObj<typeof Icon>;
 
-export const CarbonIcon: Story = (args: any) => {
-  return <Icon component={<CarbonStringInteger />} size={24} {...args} />;
+export const MUIIcon: Story = {
+  args: {
+    component: 'icon-[ic--baseline-settings]',
+  },
 };
-
-MUIIcon.args = {};
-CarbonIcon.args = {};
diff --git a/libs/shared/lib/components/icon/index.tsx b/libs/shared/lib/components/icon/index.tsx
index aa206f3a0297d7417b25d9286da7e28f24675da4..c4015c4366e2ab3791a257cf29b8a089cbd2c44f 100644
--- a/libs/shared/lib/components/icon/index.tsx
+++ b/libs/shared/lib/components/icon/index.tsx
@@ -4,19 +4,23 @@ import { SVGProps } from 'react';
 // Define Sizes and IconProps types
 export type Sizes = 12 | 14 | 16 | 20 | 24 | 28 | 32 | 40;
 export type IconProps = SVGProps<SVGSVGElement> & {
-  component: ReactNode | ReactElement<any>;
+  component?: ReactNode | ReactElement<any> | string;
   size?: Sizes;
   color?: string;
 };
 
 // Icon component definition
-export const Icon: React.FC<IconProps> = ({ component, size = 24, color, ...props }) => {
+export const Icon = ({ component, size = 24, color, ...props }: IconProps) => {
   if (!component) {
     console.error('No icon found');
     return <div></div>;
   }
 
-  const style = { fontSize: size, color };
+  const style = { fontSize: size, color, width: size, height: size };
+  if (typeof component === 'string') {
+    // return <span className={'icon-[material-symbols--fullscreen] absolute text-sm'}></span>;
+    return <span className={component + ' ' + props.className} style={style}></span>;
+  }
 
   // Check if component is a valid React element
   if (React.isValidElement(component)) {
diff --git a/libs/shared/lib/components/icon/overview.mdx b/libs/shared/lib/components/icon/overview.mdx
index 5dd08be20689e475957a753cd1e5d532de763c6e..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644
--- a/libs/shared/lib/components/icon/overview.mdx
+++ b/libs/shared/lib/components/icon/overview.mdx
@@ -1,22 +0,0 @@
-import { Canvas, Meta, Story } from '@storybook/blocks';
-import * as IconStories from './icon.stories';
-import { Icon } from '../icon';
-
-import { ArrowBack } from '@mui/icons-material';
-
-<Meta title="Components/Icon" component={Icon} />
-
-# Icon Component
-
-The `Icon` component is used to display icons in the application in one of the following sizes:
-16px, 20px, 24px, 28px, 32px, 40px
-
-## Usage
-
-<div className="w-52 m-5">
-  <Icon component={<ArrowBack />} size={24} />
-</div>
-
-```jsx
-<Icon component={<ArrowBack />} size={24} />
-```
diff --git a/libs/shared/lib/components/info/index.tsx b/libs/shared/lib/components/info/index.tsx
index 32c5d2ba318d4c89e53ad19031b3e93bdd2a5532..13f1ed6089852e91bd0a6a4eb508307d96648b2a 100644
--- a/libs/shared/lib/components/info/index.tsx
+++ b/libs/shared/lib/components/info/index.tsx
@@ -1,7 +1,6 @@
 import React from 'react';
 import { Icon } from '../icon';
 import { Tooltip, TooltipContent, TooltipTrigger } from '../tooltip';
-import { InfoOutlined } from '@mui/icons-material';
 
 type Props = {
   tooltip: string;
@@ -12,7 +11,7 @@ export default function Info({ tooltip, placement = 'left' }: Props) {
   return (
     <Tooltip placement={placement}>
       <TooltipTrigger>
-        <Icon component={<InfoOutlined />} size={14} />
+        <Icon component="icon-[ic--outline-info]" size={14} />
       </TooltipTrigger>
       <TooltipContent>
         <p>{tooltip}</p>
diff --git a/libs/shared/lib/components/pagination/index.tsx b/libs/shared/lib/components/pagination/index.tsx
index f08bb38f6c21e7a86cf5f70e906723082d84d639..b130b6a1a2e5f9fe43642ddf1d95e58f68856fad 100644
--- a/libs/shared/lib/components/pagination/index.tsx
+++ b/libs/shared/lib/components/pagination/index.tsx
@@ -1,6 +1,5 @@
 import React from 'react';
 import { Button } from '../buttons';
-import { ArrowBack, ArrowForward, ArrowUpward, ArrowDownward } from '@mui/icons-material';
 
 export type PaginationProps = {
   currentPage: number;
@@ -35,8 +34,8 @@ export const Pagination: React.FC<PaginationProps> = ({
     }
   };
 
-  const BackIcon = arrangement === 'vertical' ? ArrowUpward : ArrowBack;
-  const ForwardIcon = arrangement === 'vertical' ? ArrowDownward : ArrowForward;
+  const backIcon = arrangement === 'vertical' ? 'icon-[ic--baseline-arrow-upward]' : 'icon-[ic--baseline-arrow-back]';
+  const forwardIcon = arrangement === 'vertical' ? 'icon-[ic--baseline-arrow-downward]' : 'icon-[ic--baseline-arrow-forward]';
 
   return (
     <div
@@ -50,7 +49,7 @@ export const Pagination: React.FC<PaginationProps> = ({
           size={'sm'}
           label="Previous"
           variant="outline"
-          iconComponent={<BackIcon />}
+          iconComponent={backIcon}
           onClick={goToPreviousPage}
           disabled={currentPage === 1}
         />
@@ -58,7 +57,7 @@ export const Pagination: React.FC<PaginationProps> = ({
           size={'sm'}
           label="Next"
           variant="outline"
-          iconComponent={<ForwardIcon />}
+          iconComponent={forwardIcon}
           iconPosition="trailing"
           onClick={goToNextPage}
           disabled={currentPage === totalPages || numItemsArrayReal === totalItems}
diff --git a/libs/shared/lib/components/selectors/entityPillSelector.stories.tsx b/libs/shared/lib/components/selectors/entityPillSelector.stories.tsx
index 1925d1fffae9e496ac169e6be3c2df8aa6e2e6b8..26bedb47eb0f0e2af156e1b17a1480dd445b7b6b 100644
--- a/libs/shared/lib/components/selectors/entityPillSelector.stories.tsx
+++ b/libs/shared/lib/components/selectors/entityPillSelector.stories.tsx
@@ -1,6 +1,6 @@
 import React, { useState } from 'react';
 import type { Meta, StoryObj } from '@storybook/react';
-import { EntityPillSelector, EntityPillSelectorProps } from './entityPillSelector';
+import { EntityPillSelector } from './entityPillSelector';
 
 const metaPillDropdown: Meta<typeof EntityPillSelector> = {
   component: EntityPillSelector,
diff --git a/libs/shared/lib/components/selectors/entityPillSelector.tsx b/libs/shared/lib/components/selectors/entityPillSelector.tsx
index 998294d8837c8421200919d810ee826c11876580..6c83c168b6d412a600f78fb457b64558dc5535e3 100644
--- a/libs/shared/lib/components/selectors/entityPillSelector.tsx
+++ b/libs/shared/lib/components/selectors/entityPillSelector.tsx
@@ -1,6 +1,5 @@
 import React, { useRef, useState } from 'react';
 import { Button } from '../buttons';
-import { ArrowDropDown } from '@mui/icons-material';
 import { EntityPill } from '@graphpolaris/shared/lib/components/pills/Pill';
 import { DropdownContainer, DropdownItemContainer, DropdownTrigger, DropdownItem } from '../dropdowns';
 
@@ -31,7 +30,13 @@ export function EntityPillSelector({ dropdownNodes, onSelectOption, selectedNode
           title={
             <div className="flex flex-row items-center justify-between pointer-events-none">
               <span>{selectedNode || 'Choose a node:'}</span>
-              <Button variantType="secondary" variant="ghost" size="xs" iconComponent={<ArrowDropDown />} onClick={handleButtonClick} />
+              <Button
+                variantType="secondary"
+                variant="ghost"
+                size="xs"
+                iconComponent="icon-[ic--baseline-arrow-drop-down]"
+                onClick={handleButtonClick}
+              />
             </div>
           }
         />
diff --git a/libs/shared/lib/data-access/authorization/dashboardAlerts.tsx b/libs/shared/lib/data-access/authorization/dashboardAlerts.tsx
index 93839e9c0dc5d6ac3bfeaaf036d0dad5df225858..5d3edcd0e5ec1e82c391c54fb1befc161a592396 100644
--- a/libs/shared/lib/data-access/authorization/dashboardAlerts.tsx
+++ b/libs/shared/lib/data-access/authorization/dashboardAlerts.tsx
@@ -1,10 +1,10 @@
 import React, { ReactNode, useEffect, useState, useImperativeHandle, useRef } from 'react';
 import { useImmer } from 'use-immer';
-import { CheckCircleOutline as CheckCircleOutlineIcon, ErrorOutline as ErrorOutlineIcon } from '@mui/icons-material';
 import { useAppDispatch, useConfig } from '../store';
 import { removeLastError, removeLastInfo, removeLastSuccess, removeLastWarning } from '../store/configSlice';
 import { includes } from 'lodash-es';
 import { ReceiveMessageI } from '../broker/types';
+import { Icon } from '../../components';
 
 type Message = {
   message: ReactNode;
@@ -68,7 +68,7 @@ export const DashboardAlerts = (props: { timer?: number }) => {
         {
           message: (
             <>
-              <ErrorOutlineIcon /> {config.errors?.[config.errors.length - 1] || 'Sever Error'}
+              <Icon component="icon-[ic--baseline-error-outline]" /> {config.errors?.[config.errors.length - 1] || 'Sever Error'}
             </>
           ),
           className: 'alert-error',
@@ -86,7 +86,7 @@ export const DashboardAlerts = (props: { timer?: number }) => {
         {
           message: (
             <>
-              <ErrorOutlineIcon /> {config.warnings[config.warnings.length - 1]}
+              <Icon component="icon-[ic--baseline-error-outline]" /> {config.warnings[config.warnings.length - 1]}
             </>
           ),
           className: 'alert-warning',
@@ -104,7 +104,7 @@ export const DashboardAlerts = (props: { timer?: number }) => {
         {
           message: (
             <>
-              <CheckCircleOutlineIcon /> {config.infos[config.infos.length - 1]}
+              <Icon component="icon-[ic--baseline-check-circle-outline]" /> {config.infos[config.infos.length - 1]}
             </>
           ),
           className: 'alert-success bg-primary',
@@ -122,7 +122,7 @@ export const DashboardAlerts = (props: { timer?: number }) => {
         {
           message: (
             <>
-              <CheckCircleOutlineIcon /> {config.successes[config.successes.length - 1]}
+              <Icon component="icon-[ic--baseline-check-circle-outline]" /> {config.successes[config.successes.length - 1]}
             </>
           ),
           className: 'alert-success',
diff --git a/libs/shared/lib/querybuilder/panel/QueryBuilder.tsx b/libs/shared/lib/querybuilder/panel/QueryBuilder.tsx
index 675f1ba4fe38c33c5b183c8c8e8e8a1187cd2990..f79f55f8636c9ce05f7a8508963d7d1ec2f6f59a 100644
--- a/libs/shared/lib/querybuilder/panel/QueryBuilder.tsx
+++ b/libs/shared/lib/querybuilder/panel/QueryBuilder.tsx
@@ -39,7 +39,6 @@ import { QueryBuilderLogicPillsPanel } from './querysidepanel/queryBuilderLogicP
 import { QueryBuilderRelatedNodesPanel } from './querysidepanel/queryBuilderRelatedNodesPanel';
 import { QueryMLDialog } from './querysidepanel/queryMLDialog';
 import { ConnectingNodeDataI } from './utils/connectorDrop';
-import { CameraAlt, Cached, Difference, ImportExport, Lightbulb, Settings, Fullscreen, Delete } from '@mui/icons-material';
 import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../../components/tooltip';
 import { resultSetFocus } from '../../data-access/store/interactionSlice';
 import { QueryBuilderDispatcherContext } from './QueryBuilderDispatcher';
@@ -479,7 +478,13 @@ export const QueryBuilderInner = (props: QueryBuilderProps) => {
               <TooltipProvider delayDuration={0}>
                 <Tooltip>
                   <TooltipTrigger>
-                    <Button variantType="secondary" variant="ghost" size="xs" iconComponent={<Fullscreen />} onClick={fitView} />
+                    <Button
+                      variantType="secondary"
+                      variant="ghost"
+                      size="xs"
+                      iconComponent="icon-[ic--baseline-fullscreen]"
+                      onClick={fitView}
+                    />
                   </TooltipTrigger>
                   <TooltipContent>
                     <p>Fit to screen</p>
@@ -487,7 +492,13 @@ export const QueryBuilderInner = (props: QueryBuilderProps) => {
                 </Tooltip>
                 <Tooltip>
                   <TooltipTrigger>
-                    <Button variantType="secondary" variant="ghost" size="xs" iconComponent={<Delete />} onClick={() => clearAllNodes()} />
+                    <Button
+                      variantType="secondary"
+                      variant="ghost"
+                      size="xs"
+                      iconComponent="icon-[ic--baseline-delete]"
+                      onClick={() => clearAllNodes()}
+                    />
                   </TooltipTrigger>
                   <TooltipContent>
                     <p>Clear query panel</p>
@@ -499,7 +510,7 @@ export const QueryBuilderInner = (props: QueryBuilderProps) => {
                       variantType="secondary"
                       variant="ghost"
                       size="xs"
-                      iconComponent={<CameraAlt />}
+                      iconComponent="icon-[ic--baseline-camera-alt]"
                       onClick={(event) => {
                         event.stopPropagation();
                       }}
@@ -515,7 +526,7 @@ export const QueryBuilderInner = (props: QueryBuilderProps) => {
                       variantType="secondary"
                       variant="ghost"
                       size="xs"
-                      iconComponent={<ImportExport />}
+                      iconComponent="icon-[ic--baseline-import-export]"
                       onClick={(event) => {
                         event.stopPropagation();
                         applyLayout();
@@ -530,7 +541,13 @@ export const QueryBuilderInner = (props: QueryBuilderProps) => {
                   <PopoverTrigger>
                     <Tooltip>
                       <TooltipTrigger>
-                        <Button variantType="secondary" variant="ghost" size="xs" iconComponent={<Settings />} className="query-settings" />
+                        <Button
+                          variantType="secondary"
+                          variant="ghost"
+                          size="xs"
+                          iconComponent="icon-[ic--baseline-settings]"
+                          className="query-settings"
+                        />
                       </TooltipTrigger>
                       <TooltipContent>
                         <p>Query builder settings</p>
@@ -547,7 +564,7 @@ export const QueryBuilderInner = (props: QueryBuilderProps) => {
                       variantType="secondary"
                       variant="ghost"
                       size="xs"
-                      iconComponent={<Cached />}
+                      iconComponent="icon-[ic--baseline-cached]"
                       onClick={(event) => {
                         event.stopPropagation();
                         if (props.onRunQuery) props.onRunQuery();
@@ -564,7 +581,7 @@ export const QueryBuilderInner = (props: QueryBuilderProps) => {
                       variantType="secondary"
                       variant="ghost"
                       size="xs"
-                      iconComponent={<Difference />}
+                      iconComponent="icon-[ic--baseline-difference]"
                       onClick={(event) => {
                         event.stopPropagation();
                         if (toggleSettings === 'logic') setToggleSettings(undefined);
@@ -580,7 +597,7 @@ export const QueryBuilderInner = (props: QueryBuilderProps) => {
                   <PopoverTrigger>
                     <Tooltip>
                       <TooltipTrigger>
-                        <Button variantType="secondary" variant="ghost" size="xs" iconComponent={<Lightbulb />} />
+                        <Button variantType="secondary" variant="ghost" size="xs" iconComponent="icon-[ic--baseline-lightbulb]" />
                       </TooltipTrigger>
                       <TooltipContent disabled={toggleSettings === 'ml'}>
                         <p>Machine learning</p>
diff --git a/libs/shared/lib/querybuilder/panel/querysidepanel/queryBuilderLogicPillsPanel.tsx b/libs/shared/lib/querybuilder/panel/querysidepanel/queryBuilderLogicPillsPanel.tsx
index 0b9f7cff881741335e9413acaf28882b0b38eba6..fb74fe2cd51b3409448ab981bda18d2e8aec6aee 100644
--- a/libs/shared/lib/querybuilder/panel/querysidepanel/queryBuilderLogicPillsPanel.tsx
+++ b/libs/shared/lib/querybuilder/panel/querysidepanel/queryBuilderLogicPillsPanel.tsx
@@ -1,18 +1,10 @@
-import {
-  FilterAlt as FilterAltIcon,
-  Functions as FunctionsIcon,
-  GridOn as GridOnIcon,
-  Numbers as NumbersIcon,
-  Abc as AbcIcon,
-} from '@mui/icons-material';
-
 import { useState } from 'react';
 import { AllLogicDescriptions, AllLogicMap, QueryElementTypes, SchemaReactflowLogicNode, toHandleData } from '../../model';
 import { ConnectingNodeDataI } from '../utils/connectorDrop';
 import { useQuerybuilderGraph } from '@graphpolaris/shared/lib/data-access';
 import { toQuerybuilderGraphology, setQuerybuilderGraphology } from '@graphpolaris/shared/lib/data-access/store/querybuilderSlice';
 import { useDispatch } from 'react-redux';
-import { Button, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../../..';
+import { Button, Icon, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../../..';
 
 export const QueryBuilderLogicPillsPanel = (props: {
   reactFlowWrapper: HTMLDivElement | null;
@@ -40,29 +32,29 @@ export const QueryBuilderLogicPillsPanel = (props: {
     {
       title: 'aggregation',
       description: 'Aggregation Functions',
-      icon: <GridOnIcon fontSize="small" />,
+      icon: 'icon-[ic--baseline-grid-on]',
     },
     {
       title: 'function',
       description: 'Math Functions',
-      icon: <FunctionsIcon fontSize="small" />,
+      icon: 'icon-[ic--baseline-functions]',
     },
     {
       title: 'filter',
       description: 'Filter Functions',
-      icon: <FilterAltIcon fontSize="small" />,
+      icon: 'icon-[ic--baseline-filter-alt]',
     },
   ];
   const dataTypes = [
     {
       title: 'number',
       description: 'Number',
-      icon: <NumbersIcon fontSize="small" />,
+      icon: 'icon-[ic--baseline-numbers]',
     },
     {
       title: 'string',
       description: 'Text',
-      icon: <AbcIcon fontSize="small" />,
+      icon: 'icon-[ic--baseline-abc]',
     },
   ].filter((item) => !filterType || item.title === filterType);
 
@@ -220,16 +212,16 @@ export const QueryBuilderLogicPillsPanel = (props: {
                 >
                   {item.icon && (
                     <div className="w-[1rem] rounded-sm justify-center flex">
-                      <span>{item.icon}</span>
+                      <Icon component={item.icon} size={20} />
                     </div>
                   )}
                   <span className="w-full">{item.name}</span>
                   <span className="flex scale-75">
-                    {item.key.toLowerCase().includes('filter') && <FilterAltIcon fontSize="small" />}
-                    {item.key.toLowerCase().includes('function') && <FunctionsIcon fontSize="small" />}
-                    {item.key.toLowerCase().includes('aggregation') && <GridOnIcon fontSize="small" />}
-                    {item.key.toLowerCase().includes('number') && <NumbersIcon fontSize="small" />}
-                    {item.key.toLowerCase().includes('string') && <AbcIcon fontSize="small" />}
+                    {item.key.toLowerCase().includes('filter') && <Icon component="icon-[ic--baseline-filter-alt]" size={20} />}
+                    {item.key.toLowerCase().includes('function') && <Icon component="icon-[ic--baseline-functions]" size={20} />}
+                    {item.key.toLowerCase().includes('aggregation') && <Icon component="icon-[ic--baseline-grid-on]" size={20} />}
+                    {item.key.toLowerCase().includes('number') && <Icon component="icon-[ic--baseline-numbers]" size={20} />}
+                    {item.key.toLowerCase().includes('string') && <Icon component="icon-[ic--baseline-abc]" size={20} />}
                   </span>
                 </span>
               </li>
diff --git a/libs/shared/lib/querybuilder/pills/customFlowPills/entitypill/QueryEntityPill.tsx b/libs/shared/lib/querybuilder/pills/customFlowPills/entitypill/QueryEntityPill.tsx
index ae777b716086bf093effd239355eb6740eab453c..99310832925138ed14a63adeaebb0a67c239a8bb 100644
--- a/libs/shared/lib/querybuilder/pills/customFlowPills/entitypill/QueryEntityPill.tsx
+++ b/libs/shared/lib/querybuilder/pills/customFlowPills/entitypill/QueryEntityPill.tsx
@@ -4,7 +4,6 @@ import { Handle, Position, useUpdateNodeInternals } from 'reactflow';
 import { NodeAttribute, SchemaReactflowEntityNode, toHandleId } from '../../../model';
 import { PillDropdown } from '../../pilldropdown/PillDropdown';
 import { Button, DropdownContainer, DropdownItemContainer, DropdownTrigger, EntityPill } from '@graphpolaris/shared/lib/components';
-import { ArrowDropDown, ArrowDropUp } from '@mui/icons-material';
 
 /**
  * Component to render an entity flow element
@@ -36,7 +35,7 @@ export const QueryEntityPill = React.memo((node: SchemaReactflowEntityNode) => {
               variantType="secondary"
               variant="ghost"
               size="2xs"
-              iconComponent={openDropdown ? <ArrowDropUp /> : <ArrowDropDown />}
+              iconComponent={openDropdown ? 'icon-[ic--baseline-arrow-drop-up]' : 'icon-[ic--baseline-arrow-drop-down]'}
               onMouseDownCapture={(e) => {
                 e.stopPropagation();
                 e.preventDefault();
diff --git a/libs/shared/lib/querybuilder/pills/customFlowPills/logicpill/QueryLogicPill.tsx b/libs/shared/lib/querybuilder/pills/customFlowPills/logicpill/QueryLogicPill.tsx
index f17b0e7058b5e36bf328173b442aa9d3f7ebb617..14370915cd196755a02e43358aa1bb8ba707aa54 100644
--- a/libs/shared/lib/querybuilder/pills/customFlowPills/logicpill/QueryLogicPill.tsx
+++ b/libs/shared/lib/querybuilder/pills/customFlowPills/logicpill/QueryLogicPill.tsx
@@ -7,7 +7,6 @@ import { styleHandleMap } from '../../utils';
 import { setQuerybuilderGraphology, toQuerybuilderGraphology } from '@graphpolaris/shared/lib/data-access/store/querybuilderSlice';
 import { LogicInput } from './LogicInput';
 import { Button, DropdownTrigger, Input, LogicPill } from '@graphpolaris/shared/lib/components';
-import { ArrowDropDown } from '@mui/icons-material';
 import { QueryBuilderDispatcherContext } from '../../../panel/QueryBuilderDispatcher';
 
 export function QueryLogicPill(node: SchemaReactflowLogicNode) {
diff --git a/libs/shared/lib/querybuilder/pills/customFlowPills/relationpill/QueryRelationPill.tsx b/libs/shared/lib/querybuilder/pills/customFlowPills/relationpill/QueryRelationPill.tsx
index 1fd01d879868d91cffd1051af362c58e97eea402..1f4ecc154ab653048a2e39db928b829b9b3e515d 100644
--- a/libs/shared/lib/querybuilder/pills/customFlowPills/relationpill/QueryRelationPill.tsx
+++ b/libs/shared/lib/querybuilder/pills/customFlowPills/relationpill/QueryRelationPill.tsx
@@ -6,7 +6,6 @@ import { setQuerybuilderGraphology, toQuerybuilderGraphology } from '@graphpolar
 import { PillDropdown } from '../../pilldropdown/PillDropdown';
 import { Button, DropdownContainer, DropdownTrigger, RelationPill } from '@graphpolaris/shared/lib/components';
 import { Handle, Position } from 'reactflow';
-import { ArrowDropUp, ArrowDropDown } from '@mui/icons-material';
 import { pillWidth } from '@graphpolaris/shared/lib/components/pills/pill.const';
 
 export const QueryRelationPill = memo((node: SchemaReactflowRelationNode) => {
@@ -72,7 +71,7 @@ export const QueryRelationPill = memo((node: SchemaReactflowRelationNode) => {
               variantType="secondary"
               variant="ghost"
               size="2xs"
-              iconComponent={openDropdown ? <ArrowDropUp /> : <ArrowDropDown />}
+              iconComponent={openDropdown ? 'icon-[ic--baseline-arrow-drop-up]' : 'icon-[ic--baseline-arrow-drop-down]'}
               onMouseDownCapture={(e) => {
                 e.stopPropagation();
                 e.preventDefault();
diff --git a/libs/shared/lib/querybuilder/pills/pilldropdown/PillDropdown.tsx b/libs/shared/lib/querybuilder/pills/pilldropdown/PillDropdown.tsx
index 0868585845f4df0ac04de36f8d7fe5887fab34c5..80ec774556ef11bc087271a0dd3bcca4d14a511f 100644
--- a/libs/shared/lib/querybuilder/pills/pilldropdown/PillDropdown.tsx
+++ b/libs/shared/lib/querybuilder/pills/pilldropdown/PillDropdown.tsx
@@ -7,7 +7,6 @@ import {
   SchemaReactflowEntityNode,
   SchemaReactflowRelationNode,
 } from '../../model';
-import { Abc, CalendarToday, Map, Numbers, Place, QuestionMarkOutlined } from '@mui/icons-material';
 import { Button, TextInput, useAppDispatch, useQuerybuilderAttributesShown } from '../../..';
 import { attributeShownToggle } from '@graphpolaris/shared/lib/data-access/store/querybuilderSlice';
 import { isEqual } from 'lodash-es';
@@ -24,15 +23,15 @@ type PillDropdownProps = {
 };
 
 type IconMapType = {
-  [key: string]: ReactElement;
+  [key: string]: string | undefined;
 };
 
 const IconMap: IconMapType = {
-  temporal: <CalendarToday />,
-  spatial: <Map />,
-  numerical: <Numbers />,
-  categorical: <Abc />,
-  default: <Place />,
+  temporal: 'icon-[ic--baseline-calendar-today]',
+  spatial: 'icon-[ic--baseline-map]',
+  numerical: 'icon-[ic--baseline-numbers]',
+  categorical: 'icon-[ic--baseline-abc]',
+  default: 'icon-[ic--baseline-place]',
 };
 
 export const PillDropdown = (props: PillDropdownProps) => {
@@ -60,11 +59,9 @@ export const PillDropdown = (props: PillDropdownProps) => {
               mr={props.mr}
               className={props.className}
               icon={
-                props.attributes[i].handleData?.attributeDimension ? (
-                  IconMap[props.attributes[i].handleData.attributeDimension || 0]
-                ) : (
-                  <QuestionMarkOutlined />
-                )
+                props.attributes[i].handleData?.attributeDimension
+                  ? IconMap[props.attributes[i].handleData.attributeDimension || 0]
+                  : 'icon-[ic--outline-question-mark]'
               }
             />
           );
diff --git a/libs/shared/lib/querybuilder/pills/pilldropdown/PillDropdownItem.tsx b/libs/shared/lib/querybuilder/pills/pilldropdown/PillDropdownItem.tsx
index 6304229d14cbdff0438f6d2b60c623002456171a..55e9938e5e29964156dde5948f6dbc5df950c5c8 100644
--- a/libs/shared/lib/querybuilder/pills/pilldropdown/PillDropdownItem.tsx
+++ b/libs/shared/lib/querybuilder/pills/pilldropdown/PillDropdownItem.tsx
@@ -17,7 +17,7 @@ type PillDropdownItemProps = {
   node: SchemaReactflowEntityNode | SchemaReactflowRelationNode;
   className?: string;
   mr?: number;
-  icon: ReactElement;
+  icon: string | undefined;
 };
 
 export const PillDropdownItem = (props: PillDropdownItemProps) => {
diff --git a/libs/shared/lib/schema/panel/Schema.tsx b/libs/shared/lib/schema/panel/Schema.tsx
index ca35b37adbcc30b3de2c45e8bc1efba56c226990..cd8bdbc39549b2c9666229f070d1730f2303e0bb 100644
--- a/libs/shared/lib/schema/panel/Schema.tsx
+++ b/libs/shared/lib/schema/panel/Schema.tsx
@@ -10,7 +10,6 @@ import { SelfEdge } from '../pills/edges/self-edge';
 import { SchemaEntityPill } from '../pills/nodes/entity/SchemaEntityPill';
 import { SchemaRelationPill } from '../pills/nodes/relation/SchemaRelationPill';
 import { SchemaSettings } from './SchemaSettings';
-import { Settings, ContentCopy, Fullscreen, Remove } from '@mui/icons-material';
 import { AlgorithmToLayoutProvider, AllLayoutAlgorithms, LayoutFactory } from '../../graph-layout';
 import { ConnectionLine, ConnectionDragLine } from '../../querybuilder';
 import { schemaExpandRelation, schemaGraphology2Reactflow } from '../schema-utils';
@@ -142,7 +141,7 @@ export const Schema = (props: Props) => {
                 variantType="secondary"
                 variant="ghost"
                 size="xs"
-                iconComponent={<Remove />}
+                iconComponent="icon-[ic--baseline-remove]"
                 onClick={() => {
                   if (props.onRemove) props.onRemove();
                 }}
@@ -158,7 +157,7 @@ export const Schema = (props: Props) => {
                 variantType="secondary"
                 variant="ghost"
                 size="xs"
-                iconComponent={<ContentCopy />}
+                iconComponent="icon-[ic--baseline-content-copy]"
                 onClick={() => {
                   // Copy the schema to the clipboard
                   navigator.clipboard.writeText(JSON.stringify(schemaGraph, null, 2));
@@ -175,7 +174,7 @@ export const Schema = (props: Props) => {
                 variantType="secondary"
                 variant="ghost"
                 size="xs"
-                iconComponent={<Fullscreen />}
+                iconComponent="icon-[ic--baseline-fullscreen]"
                 onClick={() => {
                   fitView();
                 }}
@@ -189,7 +188,13 @@ export const Schema = (props: Props) => {
             <PopoverTrigger>
               <Tooltip>
                 <TooltipTrigger>
-                  <Button variantType="secondary" variant="ghost" size="xs" iconComponent={<Settings />} className="schema-settings" />
+                  <Button
+                    variantType="secondary"
+                    variant="ghost"
+                    size="xs"
+                    iconComponent="icon-[ic--baseline-settings]"
+                    className="schema-settings"
+                  />
                 </TooltipTrigger>
                 <TooltipContent>
                   <p>Schema settings</p>
diff --git a/libs/shared/lib/schema/pills/nodes/popup/attribute-analytics-popup-menu.tsx b/libs/shared/lib/schema/pills/nodes/popup/attribute-analytics-popup-menu.tsx
index fa5325917177661b5ece2cb989fca32f229df3bf..f063bbcbecfdf82ffdc27b85f038418f01cd4988 100644
--- a/libs/shared/lib/schema/pills/nodes/popup/attribute-analytics-popup-menu.tsx
+++ b/libs/shared/lib/schema/pills/nodes/popup/attribute-analytics-popup-menu.tsx
@@ -8,7 +8,6 @@
 /* The comment above was added so the code coverage wouldn't count this file towards code coverage.
  * We do not test components/renderfunctions/styling files.
  * See testing plan for more details.*/
-import { ExpandMore, Visibility } from '@mui/icons-material';
 import React, { ReactElement } from 'react';
 import { AttributeAnalyticsData, AttributeWithData, NodeType } from '../../../model/reactflow';
 import { NodeProps } from 'reactflow';
diff --git a/libs/shared/lib/schema/pills/nodes/popup/popupmenus/attribute-analytics-popup-menu.tsx b/libs/shared/lib/schema/pills/nodes/popup/popupmenus/attribute-analytics-popup-menu.tsx
index 97eade305675cd747a20d6709f726d92eed8fcf4..afa86bfc9718b51b280979d036ccf10065474b04 100644
--- a/libs/shared/lib/schema/pills/nodes/popup/popupmenus/attribute-analytics-popup-menu.tsx
+++ b/libs/shared/lib/schema/pills/nodes/popup/popupmenus/attribute-analytics-popup-menu.tsx
@@ -9,7 +9,6 @@
  * We do not test components/renderfunctions/styling files.
  * See testing plan for more details.*/
 
-import { ExpandMore, Visibility } from '@mui/icons-material';
 import React, { ReactElement } from 'react';
 import { NodeType, AttributeAnalyticsData, AttributeCategory } from '../../../../model/reactflow';
 import { Filter } from './filterbar';
diff --git a/libs/shared/lib/schema/pills/nodes/popup/popupmenus/filterbar.tsx b/libs/shared/lib/schema/pills/nodes/popup/popupmenus/filterbar.tsx
index 6dcaec7b7495c9cd78886099f1cd06072cdd9272..80aeaabe0416ec7f57359fe58348893c6416cb7d 100644
--- a/libs/shared/lib/schema/pills/nodes/popup/popupmenus/filterbar.tsx
+++ b/libs/shared/lib/schema/pills/nodes/popup/popupmenus/filterbar.tsx
@@ -9,7 +9,6 @@
  * We do not test components/renderfunctions/styling files.
  * See testing plan for more details.*/
 
-import { ExpandMore } from '@mui/icons-material';
 import React, { ReactElement, useState } from 'react';
 import { AttributeAnalyticsData, AttributeCategory, NodeType } from '../../../../model/reactflow';
 
diff --git a/libs/shared/lib/sidebar/index.tsx b/libs/shared/lib/sidebar/index.tsx
index 9c8e66ed56c09e1636a610e5c0f1aa471004c72a..33eb167ca2bce13f72ac2ab5585cdb51560bbcde 100644
--- a/libs/shared/lib/sidebar/index.tsx
+++ b/libs/shared/lib/sidebar/index.tsx
@@ -1,18 +1,17 @@
 import React, { useState } from 'react';
 import { Button, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../components';
-import { Fullscreen, Schema as SchemaIcon, Search as SearchIcon } from '@mui/icons-material';
 import ColorMode from '../components/color-mode';
 
 export type SideNavTab = 'Schema' | 'Search' | undefined;
 const tabs: Array<{
   name: SideNavTab;
-  icon: JSX.Element;
+  icon: string | undefined;
 }> = [
   {
     name: 'Search',
-    icon: <SearchIcon />,
+    icon: 'icon-[ic--outline-search]',
   },
-  { name: 'Schema', icon: <SchemaIcon /> },
+  { name: 'Schema', icon: 'icon-[ic--baseline-schema]' },
 ];
 
 export function Sidebar({ onTab, tab }: { onTab: (tab: SideNavTab) => void; tab: SideNavTab }) {
diff --git a/libs/shared/lib/sidebar/search/SearchBar.tsx b/libs/shared/lib/sidebar/search/SearchBar.tsx
index 39a3bff10c03043db42156d393a55ae5058563d5..cb9e3e70226573e91f9aa81b3a22b4893d081d06 100644
--- a/libs/shared/lib/sidebar/search/SearchBar.tsx
+++ b/libs/shared/lib/sidebar/search/SearchBar.tsx
@@ -18,7 +18,6 @@ import {
 } from '../../data-access/store/searchResultSlice';
 import { filterData } from './similarity';
 import { Button, Panel, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../../components';
-import { Remove, Fullscreen } from '@mui/icons-material';
 import { NestedItem } from './NestedItem';
 
 const SIMILARITY_THRESHOLD = 0.7;
@@ -120,7 +119,7 @@ export function SearchBar(props: { onRemove?: () => void }) {
                 variantType="secondary"
                 variant="ghost"
                 size="xs"
-                iconComponent={<Remove />}
+                iconComponent="icon-[ic--baseline-remove]"
                 onClick={() => {
                   if (props.onRemove) props.onRemove();
                 }}
@@ -131,8 +130,8 @@ export function SearchBar(props: { onRemove?: () => void }) {
             </TooltipContent>
           </Tooltip>
           <Tooltip>
-            <TooltipTrigger asChild>
-              <Button variantType="secondary" variant="ghost" size="xs" iconComponent={<Fullscreen />} onClick={() => {}} />
+            <TooltipTrigger>
+              <Button variantType="secondary" variant="ghost" size="sm" iconComponent="icon-[ic--round-fullscreen]" onClick={() => {}} />
             </TooltipTrigger>
             <TooltipContent>
               <p>Mock icon</p>
diff --git a/libs/shared/lib/vis/components/VisualizationTabBar.tsx b/libs/shared/lib/vis/components/VisualizationTabBar.tsx
index b1b03841156d42fee1184e80db9accecf08c986d..8ff06c7a4541e239aa332c7da13b7c960481fd35 100644
--- a/libs/shared/lib/vis/components/VisualizationTabBar.tsx
+++ b/libs/shared/lib/vis/components/VisualizationTabBar.tsx
@@ -1,7 +1,6 @@
 import React, { useState } from 'react';
 import { Button, DropdownContainer, DropdownItem, DropdownItemContainer, DropdownTrigger } from '../../components';
 import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../../components/tooltip';
-import { Add, Close, Fullscreen } from '@mui/icons-material';
 import { ControlContainer } from '../../components/controls';
 import { Tabs, Tab } from '../../components/tabs';
 import { useAppDispatch, useVisualization } from '../../data-access';
@@ -61,7 +60,7 @@ export default function VisualizationTabBar(props: { fullSize: () => void }) {
                 variant="ghost"
                 rounded
                 size="2xs"
-                iconComponent={<Close />}
+                iconComponent="icon-[ic--baseline-close]"
                 onClick={(e) => {
                   e.stopPropagation();
                   onDelete(i);
@@ -77,7 +76,14 @@ export default function VisualizationTabBar(props: { fullSize: () => void }) {
             <TooltipTrigger>
               <DropdownContainer open={open} onOpenChange={setOpen}>
                 <DropdownTrigger onClick={() => setOpen((v) => !v)}>
-                  <Button as={'a'} variantType="secondary" variant="ghost" size="xs" iconComponent={<Add />} onClick={() => {}} />
+                  <Button
+                    as={'a'}
+                    variantType="secondary"
+                    variant="ghost"
+                    size="xs"
+                    iconComponent="icon-[ic--baseline-add]"
+                    onClick={() => {}}
+                  />
                 </DropdownTrigger>
                 <DropdownItemContainer>
                   {Object.keys(Visualizations).map((name, i) => (
@@ -107,7 +113,13 @@ export default function VisualizationTabBar(props: { fullSize: () => void }) {
           <TooltipProvider delayDuration={0}>
             <Tooltip>
               <TooltipTrigger asChild>
-                <Button variantType="secondary" variant="ghost" size="xs" iconComponent={<Fullscreen />} onClick={props.fullSize} />
+                <Button
+                  variantType="secondary"
+                  variant="ghost"
+                  size="xs"
+                  iconComponent="icon-[ic--baseline-fullscreen]"
+                  onClick={props.fullSize}
+                />
               </TooltipTrigger>
               <TooltipContent>
                 <p>Full screen</p>
diff --git a/libs/shared/lib/vis/components/config/SelectionConfig.tsx b/libs/shared/lib/vis/components/config/SelectionConfig.tsx
index 1d5e96f046c6b5255e4b6ac3f8862924d610bdee..2e5d9d687d770e44d5b09e9452b1d7a9a616affe 100644
--- a/libs/shared/lib/vis/components/config/SelectionConfig.tsx
+++ b/libs/shared/lib/vis/components/config/SelectionConfig.tsx
@@ -1,6 +1,5 @@
 import React from 'react';
 import { SelectionStateI, unSelect } from '@graphpolaris/shared/lib/data-access/store/interactionSlice';
-import { Delete } from '@mui/icons-material';
 import { useDispatch } from 'react-redux';
 import { Button, EntityPill, useSelection } from '../../..';
 import { SettingsHeader } from './components';
@@ -19,7 +18,7 @@ export const SelectionConfig = () => {
           variantType="secondary"
           variant="ghost"
           size="xs"
-          iconComponent={<Delete />}
+          iconComponent="icon-[ic--baseline-delete]"
           onClick={() => {
             dispatch(unSelect());
           }}
diff --git a/libs/shared/lib/vis/components/config/VisualizationSettings.tsx b/libs/shared/lib/vis/components/config/VisualizationSettings.tsx
index ad46863543ba051af8d2e042d47059c3e4ce0ab7..19609a25b180f38cbab7da43ae415275a82c7937 100644
--- a/libs/shared/lib/vis/components/config/VisualizationSettings.tsx
+++ b/libs/shared/lib/vis/components/config/VisualizationSettings.tsx
@@ -1,5 +1,4 @@
 import React, { Suspense, useEffect, useMemo, useState } from 'react';
-import { Delete } from '@mui/icons-material';
 import {
   Button,
   Input,
@@ -75,7 +74,7 @@ export function VisualizationSettings({}: Props) {
             variantType="secondary"
             variant="ghost"
             size="xs"
-            iconComponent={<Delete />}
+            iconComponent="icon-[ic--baseline-delete]"
             onClick={() => {
               if (activeVisualization) removeVisualization();
             }}
diff --git a/libs/shared/lib/vis/views/NoData.tsx b/libs/shared/lib/vis/views/NoData.tsx
index dc63c70bcc7241f5cd8490410c85f9cd203c5c7d..0eff583f06882a54d9e31aac3988a300303f63e3 100644
--- a/libs/shared/lib/vis/views/NoData.tsx
+++ b/libs/shared/lib/vis/views/NoData.tsx
@@ -1,6 +1,5 @@
 import React from 'react';
 import { Button } from '../../components';
-import { InfoOutlined } from '@mui/icons-material';
 
 type Props = { dataAvailable: boolean };
 
@@ -19,7 +18,7 @@ export function NoData({ dataAvailable }: Props) {
               variant="outline"
               label="Learn how to query data"
               size="sm"
-              iconComponent={<InfoOutlined />}
+              iconComponent="icon-[ic--outline-info]"
               onClick={() => window.open('https://graphpolaris.com', '_blank')}
             />
           </div>
diff --git a/libs/shared/lib/vis/visualizations/mapvis/mapvis.tsx b/libs/shared/lib/vis/visualizations/mapvis/mapvis.tsx
index d42ebe644383580e1cc9aeb53c6c62baa9f4d434..5f547862142fd7fa2aba28fb73762945a563dd29 100644
--- a/libs/shared/lib/vis/visualizations/mapvis/mapvis.tsx
+++ b/libs/shared/lib/vis/visualizations/mapvis/mapvis.tsx
@@ -10,9 +10,9 @@ import { Node } from '@graphpolaris/shared/lib/data-access/store/graphQueryResul
 import { HighlightAlt, SearchOutlined } from '@mui/icons-material';
 import SearchBar from './search';
 
-export type MapProps = { layer: string };
+export type MapProps = { layer: string; enableBrushing: boolean };
 
-const settings: MapProps = { layer: 'nodelink' };
+const settings: MapProps = { layer: 'nodelink', enableBrushing: false };
 
 const INITIAL_VIEW_STATE = {
   latitude: 52.1006,
diff --git a/libs/shared/lib/vis/visualizations/matrixvis/components/MatrixPixi.tsx b/libs/shared/lib/vis/visualizations/matrixvis/components/MatrixPixi.tsx
index 62383f98403dde273b765eb71e231bdf591984df..acc16d05b97a463875cce211a6a8f2f9e6db9934 100644
--- a/libs/shared/lib/vis/visualizations/matrixvis/components/MatrixPixi.tsx
+++ b/libs/shared/lib/vis/visualizations/matrixvis/components/MatrixPixi.tsx
@@ -69,7 +69,6 @@ export const MatrixPixi = (props: Props) => {
   const svg = useRef<SVGSVGElement>(null);
   const isSetup = useRef(false);
   const ml = useML();
-  const searchResults = useSearchResultData();
 
   // const imperative = useRef<any>(null);
 
diff --git a/libs/shared/lib/vis/visualizations/nodelinkvis/components/NLPixi.tsx b/libs/shared/lib/vis/visualizations/nodelinkvis/components/NLPixi.tsx
index 9f18518daab337c819ceb7ed06d969cae09625d8..40a6ec192c1a36c2839e9e40236cede778c91c10 100644
--- a/libs/shared/lib/vis/visualizations/nodelinkvis/components/NLPixi.tsx
+++ b/libs/shared/lib/vis/visualizations/nodelinkvis/components/NLPixi.tsx
@@ -24,7 +24,6 @@ import { Viewport } from 'pixi-viewport';
 import { NodelinkVisProps } from '../nodelinkvis';
 import { Tooltip, TooltipContent, TooltipTrigger } from '@graphpolaris/shared/lib/components/tooltip';
 import { MovedEvent } from 'pixi-viewport/dist/types';
-import { ConstructionOutlined } from '@mui/icons-material';
 
 type Props = {
   onClick: (event?: { node: NodeTypeD3; pos: IPointData }) => void;
diff --git a/libs/shared/lib/vis/visualizations/paohvis/components/HyperRangeBlock.tsx b/libs/shared/lib/vis/visualizations/paohvis/components/HyperRangeBlock.tsx
index 83114728a0d6b73f22cbfd4453c1e72cb47cbf89..4a75d8308047af1a9e8ca428311e04fd58155e7f 100644
--- a/libs/shared/lib/vis/visualizations/paohvis/components/HyperRangeBlock.tsx
+++ b/libs/shared/lib/vis/visualizations/paohvis/components/HyperRangeBlock.tsx
@@ -1,9 +1,6 @@
 import React, { useEffect, useState, useMemo } from 'react';
 import { CustomLine } from './CustomLine';
-import { PaohvisDataPaginated, RowInformation, LinesHyperEdges } from '../types';
-import { ArrowDownward, ArrowUpward, ContactPageSharp, Sort } from '@mui/icons-material';
-import { select } from 'd3';
-import { visualizationColors, tailwindColors } from 'config';
+import { LinesHyperEdges, PaohvisDataPaginated, RowInformation } from '../types';
 
 interface HyperEdgeRangesBlockProps {
   dataModel: PaohvisDataPaginated;
@@ -69,37 +66,39 @@ export const HyperEdgeRangesBlock: React.FC<HyperEdgeRangesBlockProps> = ({
 
   const [isHovered, setIsHovered] = useState(false);
   const [hoverRowIndex, setHoverRowIndex] = useState<number | null>(null);
-  const [iconComponents, setIconComponents] = useState<{ [key: number]: JSX.Element }[]>(Array(columnHeaderInformation.length).fill({}));
+  const [iconComponents, setIconComponents] = useState<{ [key: number]: string | undefined }[]>(
+    Array(columnHeaderInformation.length).fill({}),
+  );
   const [iconColors, setIconColors] = useState<string[]>([]);
 
   useEffect(() => {
     const iconColorsTemporal: string[] = [];
 
     const updatedIconComponents = columnHeaderInformation.map((row, indexRows) => {
-      let iconComponent: JSX.Element = <></>;
+      let iconComponent: string | undefined = undefined;
       if (row.header == headerState) {
         switch (sortState) {
           case 'asc':
-            iconComponent = <ArrowUpward />;
+            iconComponent = 'icon-[ic--baseline-arrow-upward]';
             break;
           case 'desc':
-            iconComponent = <ArrowDownward />;
+            iconComponent = 'icon-[ic--baseline-arrow-downward]';
             break;
           case 'original':
-            iconComponent = <Sort />;
+            iconComponent = 'icon-[ic--baseline-sort]';
 
             break;
           default:
-            iconComponent = <></>;
+            iconComponent = undefined;
         }
         iconColorsTemporal.push('hsl(var(--clr-sec--800))');
       } else {
-        iconComponent = <></>;
+        iconComponent = undefined;
         iconColorsTemporal.push('hsl(var(--clr-sec--500))');
       }
 
       if (indexRows == hoverRowIndex && headerState != row.header) {
-        iconComponent = <Sort />;
+        iconComponent = 'icon-[ic--baseline-sort]';
       }
       return { [indexRows]: iconComponent };
     });
diff --git a/libs/shared/lib/vis/visualizations/paohvis/components/RowLabels.tsx b/libs/shared/lib/vis/visualizations/paohvis/components/RowLabels.tsx
index b26c336d1a6eed0924d0ef0d988a7f74bd4be297..412e8d912a23dde7386ab24830634c57fe1f52b7 100644
--- a/libs/shared/lib/vis/visualizations/paohvis/components/RowLabels.tsx
+++ b/libs/shared/lib/vis/visualizations/paohvis/components/RowLabels.tsx
@@ -1,7 +1,6 @@
 import React, { useEffect, useState, useMemo } from 'react';
 import { CustomLine } from './CustomLine';
 import { RowInformation } from '../types';
-import { ArrowDownward, ArrowUpward, Sort } from '@mui/icons-material';
 
 interface RowLabelsProps {
   dataRows: RowInformation;
@@ -42,7 +41,7 @@ export const RowLabels = ({
   });
   const [isHovered, setIsHovered] = useState(false);
   const [hoverRowIndex, setHoverRowIndex] = useState<number | null>(null);
-  const [iconComponents, setIconComponents] = useState<{ [key: number]: JSX.Element }[]>(Array(dataRows.length).fill({}));
+  const [iconComponents, setIconComponents] = useState<{ [key: number]: string | undefined }[]>(Array(dataRows.length).fill({}));
   const [iconColors, setIconColors] = useState<string[]>([]);
   const adjustedFontSize = useMemo(() => {
     return Math.max(0.4, (rowHeight * 0.75) / 20);
@@ -52,29 +51,29 @@ export const RowLabels = ({
     const iconColorsTemporal: string[] = [];
 
     const updatedIconComponents = dataRows.map((row, indexRows) => {
-      let iconComponent: JSX.Element = <></>;
+      let iconComponent: string | undefined = undefined;
       if (row.header == headerState) {
         switch (sortState) {
           case 'asc':
-            iconComponent = <ArrowUpward />;
+            iconComponent = 'icon-[ic--baseline-arrow-upward]';
             break;
           case 'desc':
-            iconComponent = <ArrowDownward />;
+            iconComponent = 'icon-[ic--baseline-arrow-downward]';
             break;
           case 'original':
-            iconComponent = <Sort />;
+            iconComponent = 'icon-[ic--baseline-sort]';
             break;
           default:
-            iconComponent = <></>;
+            iconComponent = undefined;
         }
         iconColorsTemporal.push('hsl(var(--clr-sec--800))');
       } else {
-        iconComponent = <></>;
+        iconComponent = undefined;
         iconColorsTemporal.push('hsl(var(--clr-sec--500))');
       }
 
       if (indexRows == hoverRowIndex && headerState != row.header) {
-        iconComponent = <Sort />;
+        iconComponent = 'icon-[ic--baseline-sort]';
       }
 
       return { [indexRows]: iconComponent };
diff --git a/libs/shared/lib/vis/visualizations/paohvis/paohvis.tsx b/libs/shared/lib/vis/visualizations/paohvis/paohvis.tsx
index 51274d3a3ae0fa92231a93ba9bde4ea756850708..a643ea9d8d8780464de304569c5417b9d55e14d2 100644
--- a/libs/shared/lib/vis/visualizations/paohvis/paohvis.tsx
+++ b/libs/shared/lib/vis/visualizations/paohvis/paohvis.tsx
@@ -13,7 +13,6 @@ import { Input } from '@graphpolaris/shared/lib/components/inputs';
 import { VisualizationPropTypes, VISComponentType, VisualizationSettingsPropTypes } from '../../common';
 import { Button } from '@graphpolaris/shared/lib/components/buttons';
 import { EntityPill } from '@graphpolaris/shared/lib/components/pills/Pill';
-import { ArrowDropDown, ArrowRight } from '@mui/icons-material';
 import { cloneDeep } from 'lodash-es';
 import { useImmer } from 'use-immer';
 
@@ -966,7 +965,7 @@ const PaohSettings = ({ settings, graphMetadata, updateSettings }: Visualization
                 title={
                   <div className="flex flex-row justify-between items-center cursor-pointer">
                     <span>{settings.rowNode || ''}</span>
-                    <Button variantType="secondary" variant="ghost" size="2xs" iconComponent={<ArrowDropDown />} />
+                    <Button variantType="secondary" variant="ghost" size="2xs" iconComponent="icon-[ic--baseline-arrow-drop-down]" />
                   </div>
                 }
               />
@@ -979,7 +978,7 @@ const PaohSettings = ({ settings, graphMetadata, updateSettings }: Visualization
           size="sm"
           className="-pt-3 mt-1"
           onClick={toggleCollapseAttrRows}
-          iconComponent={areCollapsedAttrRows ? <ArrowRight /> : <ArrowDropDown />}
+          iconComponent={areCollapsedAttrRows ? 'icon-[ic--baseline-arrow-right]' : 'icon-[ic--baseline-arrow-drop-down]'}
         >
           attributes:{' '}
         </Button>
@@ -1010,7 +1009,7 @@ const PaohSettings = ({ settings, graphMetadata, updateSettings }: Visualization
                 title={
                   <div className="flex flex-row justify-between items-center cursor-pointer">
                     <span>{settings.columnNode || ''}</span>
-                    <Button variantType="secondary" variant="ghost" size="2xs" iconComponent={<ArrowDropDown />} />
+                    <Button variantType="secondary" variant="ghost" size="2xs" iconComponent="icon-[ic--baseline-arrow-drop-down]" />
                   </div>
                 }
               />
@@ -1024,7 +1023,7 @@ const PaohSettings = ({ settings, graphMetadata, updateSettings }: Visualization
           size="sm"
           className="-pt-3 mt-1"
           onClick={toggleCollapseAttrColumns}
-          iconComponent={areCollapsedAttrColumns ? <ArrowRight /> : <ArrowDropDown />}
+          iconComponent={areCollapsedAttrColumns ? 'icon-[ic--baseline-arrow-right]' : 'icon-[ic--baseline-arrow-drop-down]'}
         >
           attributes:{' '}
         </Button>
diff --git a/libs/shared/lib/vis/visualizations/semanticsubstratesvis/components/Scatterplot.tsx b/libs/shared/lib/vis/visualizations/semanticsubstratesvis/components/Scatterplot.tsx
index 2f1b415031785b3b15854f82d8b99955257906ce..6d8aeb062abf76ebe370a482dd1976a3a1db9a51 100644
--- a/libs/shared/lib/vis/visualizations/semanticsubstratesvis/components/Scatterplot.tsx
+++ b/libs/shared/lib/vis/visualizations/semanticsubstratesvis/components/Scatterplot.tsx
@@ -20,7 +20,6 @@ import {
 
 import { VisualRegionConfig, RegionData, DataPoint, DataPointXY } from './types';
 import { calcTextWidth } from './utils';
-import { ArrowForward } from '@mui/icons-material';
 import { Icon } from '@graphpolaris/shared/lib/components/icon';
 import { EntityPill } from '@graphpolaris/shared/lib/components/pills/Pill';
 import { noDataRange } from '../utils';
@@ -650,11 +649,11 @@ export const Scatterplot: React.FC<ScatterplotProps> = ({
         <div>
           {data.attributeName && (
             <div className="flex items-center gap-1">
-              <Icon component={<ArrowForward />} size={16} color="text-secondary-300" />
+              <Icon component="icon-[ic--baseline-arrow-forward]" size={16} color="text-secondary-300" />
               <span className="text-secondary-700 text-sm m-0.5">{data.attributeName}</span>
               {data.attributeSelected && (
                 <div className="flex items-center gap-1">
-                  <Icon component={<ArrowForward />} size={16} color="text-secondary-300" />
+                  <Icon component="icon-[ic--baseline-arrow-forward]" size={16} color="text-secondary-300" />
                   <span className="text-secondary-700 text-sm m-0.5">{data.attributeSelected}</span>
                 </div>
               )}
diff --git a/libs/shared/lib/vis/visualizations/semanticsubstratesvis/configPanel/SemSubsConfigPanel.tsx b/libs/shared/lib/vis/visualizations/semanticsubstratesvis/configPanel/SemSubsConfigPanel.tsx
index a6df7b0f335c83a01c7618dd114a9677e256220c..f7c5fa6f968517f3940d4971a071fc28b1048774 100644
--- a/libs/shared/lib/vis/visualizations/semanticsubstratesvis/configPanel/SemSubsConfigPanel.tsx
+++ b/libs/shared/lib/vis/visualizations/semanticsubstratesvis/configPanel/SemSubsConfigPanel.tsx
@@ -1,5 +1,4 @@
 import React, { useState, useMemo, useEffect } from 'react';
-import { DeleteOutline, ArrowDropDown, SubdirectoryArrowRight, ArrowRight } from '@mui/icons-material';
 import { Button } from '@graphpolaris/shared/lib/components/buttons';
 import { Icon } from '@graphpolaris/shared/lib/components/icon';
 import { DataFromPanel, DataPanelConfig } from '../components/types';
@@ -149,7 +148,7 @@ export const SemSubsConfigPanel: React.FC<SemSubsConfigPanelProps> = ({
           variantType="secondary"
           variant="ghost"
           size="xs"
-          iconComponent={dataFromPanel.settingsOpen ? <ArrowDropDown /> : <ArrowRight />}
+          iconComponent={dataFromPanel.settingsOpen ? 'icon-[ic--baseline-arrow-drop-down]' : 'icon-[ic--baseline-arrow-right]'}
         />
 
         <EntityPillSelector
@@ -170,7 +169,7 @@ export const SemSubsConfigPanel: React.FC<SemSubsConfigPanelProps> = ({
             variant="ghost"
             size="xs"
             disabled={isFirstPanel}
-            iconComponent={<DeleteOutline />}
+            iconComponent="icon-[ic--baseline-delete-outline]"
             onClick={onDelete}
           />
         </div>
@@ -178,7 +177,7 @@ export const SemSubsConfigPanel: React.FC<SemSubsConfigPanelProps> = ({
       {isNotCollapsed && (
         <div className="ml-4 gap-2 flex flex-col">
           <div className="flex justify-between items-center gap-1">
-            <Icon component={<SubdirectoryArrowRight />} size={16} color="text-secondary-300" />
+            <Icon component="icon-[ic--baseline-subdirectory-arrow-right]" size={16} color="text-secondary-300" />
             <Input
               size="xs"
               type="dropdown"
@@ -193,7 +192,7 @@ export const SemSubsConfigPanel: React.FC<SemSubsConfigPanelProps> = ({
           </div>
 
           <div className="flex justify-between items-center gap-1">
-            <Icon component={<SubdirectoryArrowRight />} size={16} color="text-secondary-300" />
+            <Icon component="icon-[ic--baseline-subdirectory-arrow-right]" size={16} color="text-secondary-300" />
             <Input
               size="xs"
               type="dropdown"
@@ -208,7 +207,7 @@ export const SemSubsConfigPanel: React.FC<SemSubsConfigPanelProps> = ({
             />
           </div>
           <div className="flex justify-between items-center gap-1">
-            <Icon component={<SubdirectoryArrowRight />} size={16} color="text-secondary-300" />
+            <Icon component="icon-[ic--baseline-subdirectory-arrow-right]" size={16} color="text-secondary-300" />
             <Input
               size="xs"
               type="dropdown"
@@ -223,7 +222,7 @@ export const SemSubsConfigPanel: React.FC<SemSubsConfigPanelProps> = ({
           </div>
 
           <div className="flex justify-between items-center ml-3 gap-1">
-            <Icon component={<SubdirectoryArrowRight />} size={16} color="text-secondary-300" />
+            <Icon component="icon-[ic--baseline-subdirectory-arrow-right]" size={16} color="text-secondary-300" />
             <Input
               size="xs"
               type="dropdown"
diff --git a/libs/shared/lib/vis/visualizations/semanticsubstratesvis/configPanel/semSubsConfigPanel.stories.tsx b/libs/shared/lib/vis/visualizations/semanticsubstratesvis/configPanel/semSubsConfigPanel.stories.tsx
index 67199cf038ea00f5c281ca90c70452175b4faaec..ec0fc0f505b3ef7906c75750ec857bc6dcab8b9c 100644
--- a/libs/shared/lib/vis/visualizations/semanticsubstratesvis/configPanel/semSubsConfigPanel.stories.tsx
+++ b/libs/shared/lib/vis/visualizations/semanticsubstratesvis/configPanel/semSubsConfigPanel.stories.tsx
@@ -1,6 +1,6 @@
 import React, { useState } from 'react';
 import type { Meta, StoryObj } from '@storybook/react';
-import { SemSubsConfigPanel, SemSubsConfigPanelProps } from './SemSubsConfigPanel';
+import { SemSubsConfigPanel } from '.';
 
 const metaPillDropdown: Meta<typeof SemSubsConfigPanel> = {
   component: SemSubsConfigPanel,
diff --git a/libs/shared/lib/vis/visualizations/semanticsubstratesvis/semanticsubstratesvis.tsx b/libs/shared/lib/vis/visualizations/semanticsubstratesvis/semanticsubstratesvis.tsx
index b542d9847b675d76396d09f2b9f5840571bf81e8..e7e90f844602e39d6fec5a2437b09365b339747c 100644
--- a/libs/shared/lib/vis/visualizations/semanticsubstratesvis/semanticsubstratesvis.tsx
+++ b/libs/shared/lib/vis/visualizations/semanticsubstratesvis/semanticsubstratesvis.tsx
@@ -2,7 +2,6 @@ import React, { useRef, useState, useMemo, useEffect } from 'react';
 import { Scatterplot, KeyedScatterplotProps } from './components/Scatterplot';
 import { SettingsContainer } from '@graphpolaris/shared/lib/vis/components/config';
 import { Button } from '@graphpolaris/shared/lib/components/buttons';
-import { Add } from '@mui/icons-material';
 import { select, selectAll } from 'd3';
 import { VisualizationPropTypes, VISComponentType, VisualizationSettingsPropTypes } from '../../common';
 import { findConnectionsNodes, getRegionData, setExtension, filterArray, getUniqueValues } from './components/utils';
@@ -902,7 +901,7 @@ const SemSubstrSettings = ({ settings, updateSettings, graphMetadata }: Visualiz
       <div className="">
         <div className="flex justify-between items-center px-3 py-1">
           <span className="text-xs font-semibold">Substrates</span>
-          <Button variantType="secondary" variant="ghost" size="sm" iconComponent={<Add />} onClick={() => addPanel()} />
+          <Button variantType="secondary" variant="ghost" size="sm" iconComponent="icon-[ic--baseline-add]" onClick={() => addPanel()} />
         </div>
         {settings.dataPanels.map((panel, index) => (
           <SemSubsConfigPanel
diff --git a/libs/shared/lib/vis/visualizations/tablevis/components/Table.tsx b/libs/shared/lib/vis/visualizations/tablevis/components/Table.tsx
index 365d3fe68ac13362ce2f8f096e77044ccf601897..1a423108ea8abbb4c157d62d45e41244a495623e 100644
--- a/libs/shared/lib/vis/visualizations/tablevis/components/Table.tsx
+++ b/libs/shared/lib/vis/visualizations/tablevis/components/Table.tsx
@@ -5,7 +5,6 @@ import { BarPlot } from '@graphpolaris/shared/lib/components/charts/barplot';
 import { NodeAttributes } from '@graphpolaris/shared/lib/data-access/store/graphQueryResultSlice';
 import { SchemaAttributeTypes } from '@graphpolaris/shared/lib/schema';
 import styles from './table.module.scss';
-import { ArrowDownward, ArrowUpward, Sort } from '@mui/icons-material';
 import { Icon } from '@graphpolaris/shared/lib/components';
 import { group } from 'd3';
 
@@ -266,7 +265,13 @@ export const Table = ({ data, itemsPerPage, showBarPlot, showAttributes, selecte
                           }
                         >
                           <Icon
-                            component={sortColumn === item ? sortOrder === 'asc' ? <ArrowDownward /> : <ArrowUpward /> : <Sort />}
+                            component={
+                              sortColumn === item
+                                ? sortOrder === 'asc'
+                                  ? 'icon-[ic--baseline-arrow-downward]'
+                                  : 'icon-[ic--baseline-arrow-upward]'
+                                : 'icon-[ic--baseline-sort]'
+                            }
                             size={20}
                             className={`${sortColumn === item && sortOrder ? 'text-secondary-800' : 'text-secondary-500'}`}
                           />
diff --git a/libs/shared/lib/vis/visualizations/tablevis/tablevis.tsx b/libs/shared/lib/vis/visualizations/tablevis/tablevis.tsx
index def795508b7868382ebb641f384c3aad76cf96b5..37e198c9dd1f02943a504250643fb279cdc1ae2a 100644
--- a/libs/shared/lib/vis/visualizations/tablevis/tablevis.tsx
+++ b/libs/shared/lib/vis/visualizations/tablevis/tablevis.tsx
@@ -4,7 +4,6 @@ import { VisualizationPropTypes, VISComponentType, VisualizationSettingsPropType
 import { Input } from '@graphpolaris/shared/lib/components/inputs';
 import { SettingsContainer } from '@graphpolaris/shared/lib/vis/components/config';
 import { Button } from '@graphpolaris/shared/lib/components/buttons';
-import { ArrowDropDown } from '@mui/icons-material';
 import { useSearchResultData } from '@graphpolaris/shared/lib/data-access';
 
 export type TableProps = {
@@ -174,7 +173,7 @@ const TableSettings = ({ settings, graphMetadata, updateSettings }: Visualizatio
           variant="ghost"
           size="sm"
           onClick={toggleCollapseAttr}
-          iconComponent={<ArrowDropDown />}
+          iconComponent="icon-[ic--baseline-arrow-drop-down]"
         >
           attributes:{' '}
         </Button>
diff --git a/libs/shared/package.json b/libs/shared/package.json
index bea444b8fc27e03a8a73f6dc7910a581430b0444..f403a9fcb841d9b54b5e5d044e030bc4b112eb5a 100644
--- a/libs/shared/package.json
+++ b/libs/shared/package.json
@@ -23,7 +23,6 @@
     "@emotion/react": "^11.11.4",
     "@emotion/styled": "^11.11.0",
     "@floating-ui/react": "^0.26.16",
-    "@mui/icons-material": "^5.15.13",
     "@pixi-essentials/cull": "^2.0.0",
     "@reactflow/node-resizer": "^2.2.9",
     "@reduxjs/toolkit": "^2.2.1",
@@ -74,6 +73,7 @@
   },
   "devDependencies": {
     "@iconify/json": "^2.2.192",
+    "@iconify/tailwind": "^1.1.1",
     "@storybook/preset-scss": "^1.0.3",
     "@testing-library/react": "14.2.1",
     "@types/color": "^3.0.6",
diff --git a/libs/storybook/package.json b/libs/storybook/package.json
index 1e5077702339ac7010bf0f072ae9586fc2a4bb84..2ce57afce17346c7a9baaa0d0d758aa78f213f46 100644
--- a/libs/storybook/package.json
+++ b/libs/storybook/package.json
@@ -9,6 +9,10 @@
     "build-storybook": "storybook build"
   },
   "dependencies": {
+    "@deck.gl-community/editable-layers": "9.0.0-alpha.1",
+    "@deck.gl/core": "^9.0.12",
+    "@deck.gl/layers": "^9.0.12",
+    "@deck.gl/react": "^9.0.12",
     "@graphpolaris/shared": "workspace:*",
     "@storybook/manager-api": "^8.0.6",
     "@storybook/test": "^8.0.6",
@@ -16,13 +20,10 @@
     "postcss-scss": "^4.0.9",
     "react": "^18.2.0",
     "react-dom": "^18.2.0",
-    "@deck.gl-community/editable-layers": "9.0.0-alpha.1",
-    "@deck.gl/core": "^9.0.12",
-    "@deck.gl/layers": "^9.0.12",
-    "@deck.gl/react": "^9.0.12",
     "web": "workspace:*"
   },
   "devDependencies": {
+    "@iconify/tailwind": "^1.1.1",
     "@storybook/addon-essentials": "^8.0.6",
     "@storybook/addon-interactions": "^8.0.6",
     "@storybook/addon-links": "^8.0.6",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 15d4e78fd9a08248b22d2a3ae0eef7cc0cac1ce5..f795f11b4ee1b1165c0e7a639b24ba67d1889f27 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -190,6 +190,9 @@ importers:
 
   libs/config:
     devDependencies:
+      '@iconify/tailwind':
+        specifier: ^1.1.1
+        version: 1.1.1
       '@tailwindcss/typography':
         specifier: ^0.5.10
         version: 0.5.10(tailwindcss@3.4.1(ts-node@10.9.2(@types/node@20.11.27)(typescript@5.4.2)))
@@ -229,9 +232,6 @@ importers:
       '@floating-ui/react':
         specifier: ^0.26.16
         version: 0.26.17(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
-      '@mui/icons-material':
-        specifier: ^5.15.13
-        version: 5.15.13(@mui/material@5.15.13(@emotion/react@11.11.4(@types/react@18.2.65)(react@18.2.0))(@emotion/styled@11.11.0(@emotion/react@11.11.4(@types/react@18.2.65)(react@18.2.0))(@types/react@18.2.65)(react@18.2.0))(@types/react@18.2.65)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.2.65)(react@18.2.0)
       '@pixi-essentials/cull':
         specifier: ^2.0.0
         version: 2.0.0(@pixi/display@7.4.2(@pixi/core@7.4.2))(@pixi/math@7.4.2)
@@ -377,6 +377,9 @@ importers:
       '@iconify/json':
         specifier: ^2.2.192
         version: 2.2.192
+      '@iconify/tailwind':
+        specifier: ^1.1.1
+        version: 1.1.1
       '@storybook/preset-scss':
         specifier: ^1.0.3
         version: 1.0.3(css-loader@6.10.0(webpack@5.90.3(@swc/core@1.4.2(@swc/helpers@0.5.2))))(sass-loader@14.1.1(sass@1.72.0)(webpack@5.90.3(@swc/core@1.4.2(@swc/helpers@0.5.2))))(style-loader@3.3.4(webpack@5.90.3(@swc/core@1.4.2(@swc/helpers@0.5.2))))
@@ -597,6 +600,9 @@ importers:
         specifier: workspace:*
         version: link:../../apps/web
     devDependencies:
+      '@iconify/tailwind':
+        specifier: ^1.1.1
+        version: 1.1.1
       '@storybook/addon-essentials':
         specifier: ^8.0.6
         version: 8.0.9(@types/react@18.2.65)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
@@ -1860,6 +1866,9 @@ packages:
   '@iconify/json@2.2.192':
     resolution: {integrity: sha512-q03tWoVKoMRaTEUDOPWc8geSsKkMe+3D/kK4UZ7F7P3NYwr4h+GN/yT3+5Z68lnD0ajDmTuswfMKOi1DbVnEnw==}
 
+  '@iconify/tailwind@1.1.1':
+    resolution: {integrity: sha512-4mmA//qjZigv7D4KlqcVSYTqfRIJzyts2/lSCAJfCL0rVMIE76+ifJnaE5jxCo1+nYGBF8FsFo0qFOs+sX4EnA==}
+
   '@iconify/types@2.0.0':
     resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==}
 
@@ -9926,6 +9935,10 @@ snapshots:
       '@iconify/types': 2.0.0
       pathe: 1.1.2
 
+  '@iconify/tailwind@1.1.1':
+    dependencies:
+      '@iconify/types': 2.0.0
+
   '@iconify/types@2.0.0': {}
 
   '@iconify/utils@2.1.22':