diff --git a/alfa-client/apps/alfa/project.json b/alfa-client/apps/alfa/project.json
index 971b4de26cdead729cfb59358965bbdc55e9ccbc..3827d3099a7c741bde34548f13efa6754c7bbf3b 100644
--- a/alfa-client/apps/alfa/project.json
+++ b/alfa-client/apps/alfa/project.json
@@ -14,9 +14,7 @@
     "build": {
       "executor": "@angular-devkit/build-angular:browser",
       "options": {
-        "allowedCommonJsDependencies": [
-          "file-saver"
-        ],
+        "allowedCommonJsDependencies": ["file-saver"],
         "outputPath": "dist/apps/alfa",
         "index": "apps/alfa/src/index.html",
         "main": "apps/alfa/src/main.ts",
@@ -34,11 +32,14 @@
             "input": "libs/ui/src/lib/assets",
             "glob": "**/*",
             "output": "assets/icons"
+          },
+          {
+            "input": "libs/design-system/src/assets",
+            "glob": "**/*",
+            "output": "assets/icons"
           }
         ],
-        "styles": [
-          "apps/alfa/src/styles/main.scss"
-        ],
+        "styles": ["apps/alfa/src/styles/main.scss"],
         "scripts": [],
         "stylePreprocessorOptions": {
           "includePaths": [
@@ -85,9 +86,7 @@
           ]
         }
       },
-      "outputs": [
-        "{options.outputPath}"
-      ]
+      "outputs": ["{options.outputPath}"]
     },
     "serve": {
       "executor": "@angular-devkit/build-angular:dev-server",
@@ -109,9 +108,7 @@
     },
     "lint": {
       "executor": "@nx/eslint:lint",
-      "outputs": [
-        "{options.outputFile}"
-      ]
+      "outputs": ["{options.outputFile}"]
     },
     "test": {
       "executor": "@nx/jest:jest",
@@ -119,9 +116,7 @@
         "tsConfig": "apps/alfa/tsconfig.spec.json",
         "jestConfig": "apps/alfa/jest.config.ts"
       },
-      "outputs": [
-        "{workspaceRoot}/coverage/apps/alfa"
-      ]
+      "outputs": ["{workspaceRoot}/coverage/apps/alfa"]
     },
     "container": {
       "executor": "@nx-tools/nx-container:build",
@@ -129,15 +124,11 @@
         "engine": "docker",
         "push": false,
         "metadata": {
-          "images": [
-            "docker.ozg-sh.de/alfa-client"
-          ],
+          "images": ["docker.ozg-sh.de/alfa-client"],
           "load": true,
-          "tags": [
-            "build-latest"
-          ]
+          "tags": ["build-latest"]
         }
       }
     }
   }
-}
\ No newline at end of file
+}
diff --git a/alfa-client/apps/alfa/src/app/app.module.ts b/alfa-client/apps/alfa/src/app/app.module.ts
index 566ebc0b3fd03aa04506016be0d3c16aa1bf1fd9..9d8f546ca38238abbf2842095d9d3f34b34aaf62 100644
--- a/alfa-client/apps/alfa/src/app/app.module.ts
+++ b/alfa-client/apps/alfa/src/app/app.module.ts
@@ -45,6 +45,7 @@ import { StoreRouterConnectingModule } from '@ngrx/router-store';
 import { StoreModule } from '@ngrx/store';
 import { StoreDevtoolsModule } from '@ngrx/store-devtools';
 import { OAuthModule } from 'angular-oauth2-oidc';
+import { provideAngularSvgIcon } from 'angular-svg-icon';
 import { de } from 'date-fns/locale';
 import { HttpBinaryFileInterceptor } from '../../../../libs/tech-shared/src/lib/interceptor/http-binary-file.interceptor';
 import { HttpXsrfInterceptor } from '../../../../libs/tech-shared/src/lib/interceptor/http-xsrf.interceptor';
@@ -159,6 +160,7 @@ const routes: Routes = [
       deps: [MAT_DATE_LOCALE],
     },
     provideHttpClient(withInterceptorsFromDi()),
+    provideAngularSvgIcon(),
   ],
   bootstrap: [AppComponent],
 })
diff --git a/alfa-client/libs/common/src/lib/accessibility-button/accessibility-button.component.spec.ts b/alfa-client/libs/common/src/lib/accessibility-button/accessibility-button.component.spec.ts
index 8b150294c1af567bef737ca8909cae78eb9081fd..646056eb5ee44d36f2174e34acf37af5cd55d526 100644
--- a/alfa-client/libs/common/src/lib/accessibility-button/accessibility-button.component.spec.ts
+++ b/alfa-client/libs/common/src/lib/accessibility-button/accessibility-button.component.spec.ts
@@ -1,5 +1,5 @@
 import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { LinkComponent, TooltipDirective } from '@ods/system';
+import { IconComponent, LinkComponent, TooltipDirective } from '@ods/system';
 import { MockComponent, MockDirective } from 'ng-mocks';
 import { AccessibilityButtonComponent } from './accessibility-button.component';
 
@@ -9,7 +9,12 @@ describe('AccessibilityButtonComponent', () => {
 
   beforeEach(async () => {
     await TestBed.configureTestingModule({
-      imports: [AccessibilityButtonComponent, MockComponent(LinkComponent), MockDirective(TooltipDirective)],
+      imports: [
+        AccessibilityButtonComponent,
+        MockComponent(LinkComponent),
+        MockComponent(IconComponent),
+        MockDirective(TooltipDirective),
+      ],
     }).compileComponents();
 
     fixture = TestBed.createComponent(AccessibilityButtonComponent);
diff --git a/alfa-client/libs/common/src/lib/accessibility-button/accessibility-button.component.ts b/alfa-client/libs/common/src/lib/accessibility-button/accessibility-button.component.ts
index edc5070fabc7f95bfb5f860bba434affff9ada6d..90593eb3ce725e18261d8ea5d9b16602a002b4f8 100644
--- a/alfa-client/libs/common/src/lib/accessibility-button/accessibility-button.component.ts
+++ b/alfa-client/libs/common/src/lib/accessibility-button/accessibility-button.component.ts
@@ -1,13 +1,14 @@
 import { CommonModule } from '@angular/common';
 import { Component, Input } from '@angular/core';
-import { AccessibilityIconComponent, LinkComponent, TooltipDirective } from '@ods/system';
+import { LinkComponent, TooltipDirective } from '@ods/system';
+import { IconComponent } from '../../../../design-system/src/lib/icon/icon.component';
 
 @Component({
   selector: 'common-accessibility-button',
   standalone: true,
-  imports: [CommonModule, AccessibilityIconComponent, LinkComponent, TooltipDirective],
+  imports: [CommonModule, LinkComponent, TooltipDirective, IconComponent],
   template: `<ods-link [url]="url" [linkTestId]="linkTestId" tooltip="Barrierefreiheit" [openInNewTab]="true">
-    <ods-accessibility-icon size="large" />
+    <ods-icon name="accessibility" size="large" class="fill-neutral-500 dark:fill-neutral-400" />
   </ods-link>`,
 })
 export class AccessibilityButtonComponent {
diff --git a/alfa-client/libs/design-system/src/index.ts b/alfa-client/libs/design-system/src/index.ts
index 0c5d7568d8df069b619b5a8c77184491b8a1c8e2..05d5fe525f6a30279d410b9bf86bd5ce59958c62 100644
--- a/alfa-client/libs/design-system/src/index.ts
+++ b/alfa-client/libs/design-system/src/index.ts
@@ -45,8 +45,6 @@ export * from './lib/form/textarea/textarea.component';
 export * from './lib/forwarding-item/forwarding-item-info/forwarding-item-info.component';
 export * from './lib/forwarding-item/forwarding-item.component';
 export * from './lib/icon/icon.component';
-export * from './lib/icons/accessibility-icon/accessibility-icon.component';
-export * from './lib/icons/account-circle-icon/account-circle-icon.component';
 export * from './lib/icons/admin-logo-icon/admin-logo-icon.component';
 export * from './lib/icons/archive-icon/archive-icon.component';
 export * from './lib/icons/arrow-back-icon/arrow-back-icon.component';
diff --git a/alfa-client/libs/design-system/src/lib/icons/accessibility-icon/accessibility-icon.component.spec.ts b/alfa-client/libs/design-system/src/lib/icons/accessibility-icon/accessibility-icon.component.spec.ts
deleted file mode 100644
index 8a1735897ec6ab66b4e3514bd91bbfe52c28a8e7..0000000000000000000000000000000000000000
--- a/alfa-client/libs/design-system/src/lib/icons/accessibility-icon/accessibility-icon.component.spec.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { AccessibilityIconComponent } from './accessibility-icon.component';
-
-describe('AccessibilityIconComponent', () => {
-  let component: AccessibilityIconComponent;
-  let fixture: ComponentFixture<AccessibilityIconComponent>;
-
-  beforeEach(async () => {
-    await TestBed.configureTestingModule({
-      imports: [AccessibilityIconComponent],
-    }).compileComponents();
-
-    fixture = TestBed.createComponent(AccessibilityIconComponent);
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-});
diff --git a/alfa-client/libs/design-system/src/lib/icons/accessibility-icon/accessibility-icon.component.ts b/alfa-client/libs/design-system/src/lib/icons/accessibility-icon/accessibility-icon.component.ts
deleted file mode 100644
index a8c309a368e22aeb3f5d031287781f1107b234c2..0000000000000000000000000000000000000000
--- a/alfa-client/libs/design-system/src/lib/icons/accessibility-icon/accessibility-icon.component.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-import { CommonModule } from '@angular/common';
-import { Component, Input } from '@angular/core';
-import { twMerge } from 'tailwind-merge';
-import { iconVariants, IconVariants } from '../iconVariants';
-
-@Component({
-  selector: 'ods-accessibility-icon',
-  standalone: true,
-  imports: [CommonModule],
-  template: `<svg
-    viewBox="0 0 26 26"
-    [ngClass]="[twMerge(iconVariants({ size }), 'fill-neutral-500 dark:fill-neutral-400', class)]"
-    xmlns="http://www.w3.org/2000/svg"
-    aria-hidden="true"
-  >
-    <rect x="2" y="2" width="22" height="22" rx="11" />
-    <path
-      d="M13 8.87508C12.6828 8.87508 12.3726 8.781 12.1088 8.60473C11.845 8.42846 11.6394 8.17793 11.518 7.8848C11.3966 7.59168 11.3648 7.26914 11.4267 6.95796C11.4886 6.64678 11.6414 6.36095 11.8657 6.1366C12.0901 5.91225 12.3759 5.75947 12.6871 5.69757C12.9983 5.63568 13.3208 5.66744 13.6139 5.78886C13.907 5.91027 14.1576 6.11588 14.3339 6.37969C14.5101 6.64349 14.6042 6.95364 14.6042 7.27092C14.6038 7.69623 14.4346 8.10399 14.1339 8.40473C13.8331 8.70547 13.4253 8.87463 13 8.87508Z"
-      class="fill-whitetext"
-    />
-    <path
-      d="M18.0417 8.898L18.0288 8.90144L18.0168 8.90516C17.9881 8.91318 17.9595 8.92178 17.9308 8.93066C17.3977 9.08706 14.8105 9.81638 12.9877 9.81638C11.2939 9.81638 8.94064 9.18618 8.18783 8.97219C8.1129 8.94322 8.03639 8.91855 7.95866 8.89829C7.41439 8.75506 7.04199 9.30792 7.04199 9.81323C7.04199 10.3137 7.49173 10.552 7.94577 10.723V10.731L10.6734 11.583C10.9521 11.6898 11.0266 11.799 11.063 11.8935C11.1813 12.1969 11.0868 12.7976 11.0533 13.0072L10.8871 14.2963L9.96501 19.3434C9.96215 19.3572 9.95957 19.3712 9.95728 19.3855L9.95069 19.4219C9.88423 19.8845 10.224 20.3334 10.8674 20.3334C11.4288 20.3334 11.6766 19.9458 11.784 19.4185C11.784 19.4185 12.5861 14.9047 12.9871 14.9047C13.3882 14.9047 14.2143 19.4185 14.2143 19.4185C14.3218 19.9458 14.5695 20.3334 15.131 20.3334C15.7761 20.3334 16.1158 19.8825 16.0477 19.4185C16.0417 19.3789 16.0345 19.34 16.0259 19.3022L15.0912 14.2969L14.9253 13.0078C14.8053 12.257 14.9018 12.0089 14.9345 11.9508L14.9368 11.9465C14.9677 11.8892 15.1087 11.7609 15.4375 11.6374L17.995 10.7434C18.0107 10.7392 18.0262 10.7342 18.0414 10.7285C18.4998 10.5566 18.9581 10.3188 18.9581 9.81381C18.9581 9.30878 18.586 8.75506 18.0417 8.898Z"
-      class="fill-whitetext"
-    />
-  </svg>`,
-})
-export class AccessibilityIconComponent {
-  @Input() size: IconVariants['size'] = 'medium';
-  @Input() class: string = '';
-
-  readonly iconVariants = iconVariants;
-  readonly twMerge = twMerge;
-}
diff --git a/alfa-client/libs/design-system/src/lib/icons/accessibility-icon/accessibility-icon.stories.ts b/alfa-client/libs/design-system/src/lib/icons/accessibility-icon/accessibility-icon.stories.ts
deleted file mode 100644
index 58485f498389eb413f4dafaccfa4a10ad55cea2e..0000000000000000000000000000000000000000
--- a/alfa-client/libs/design-system/src/lib/icons/accessibility-icon/accessibility-icon.stories.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-import type { Meta, StoryObj } from '@storybook/angular';
-
-import { AccessibilityIconComponent } from './accessibility-icon.component';
-
-const meta: Meta<AccessibilityIconComponent> = {
-  title: 'Icons/Accessibility icon',
-  component: AccessibilityIconComponent,
-  excludeStories: /.*Data$/,
-  tags: ['autodocs'],
-};
-
-export default meta;
-type Story = StoryObj<AccessibilityIconComponent>;
-
-export const Default: Story = {
-  args: { size: 'large' },
-  argTypes: {
-    size: {
-      control: 'select',
-      options: ['small', 'medium', 'large', 'extra-large', 'full'],
-      description: 'Size of icon. Property "full" means 100%',
-      table: {
-        defaultValue: { summary: 'medium' },
-      },
-    },
-  },
-};
diff --git a/alfa-client/libs/design-system/src/lib/icons/account-circle-icon/account-circle-icon.component.spec.ts b/alfa-client/libs/design-system/src/lib/icons/account-circle-icon/account-circle-icon.component.spec.ts
deleted file mode 100644
index e50bb31c690ce54140e686a5a50d38d22ee42e22..0000000000000000000000000000000000000000
--- a/alfa-client/libs/design-system/src/lib/icons/account-circle-icon/account-circle-icon.component.spec.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { AccountCircleIconComponent } from './account-circle-icon.component';
-
-describe('AccountCircleIconComponent', () => {
-  let component: AccountCircleIconComponent;
-  let fixture: ComponentFixture<AccountCircleIconComponent>;
-
-  beforeEach(async () => {
-    await TestBed.configureTestingModule({
-      imports: [AccountCircleIconComponent],
-    }).compileComponents();
-
-    fixture = TestBed.createComponent(AccountCircleIconComponent);
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-});
diff --git a/alfa-client/libs/design-system/src/lib/icons/account-circle-icon/account-circle-icon.component.ts b/alfa-client/libs/design-system/src/lib/icons/account-circle-icon/account-circle-icon.component.ts
deleted file mode 100644
index b762c6cbe32f662f51bb5cb52effd1a267fa3602..0000000000000000000000000000000000000000
--- a/alfa-client/libs/design-system/src/lib/icons/account-circle-icon/account-circle-icon.component.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-import { CommonModule } from '@angular/common';
-import { Component, Input } from '@angular/core';
-import { twMerge } from 'tailwind-merge';
-import { iconVariants, IconVariants } from '../iconVariants';
-
-@Component({
-  selector: 'ods-account-circle-icon',
-  standalone: true,
-  imports: [CommonModule],
-  template: `<svg
-    viewBox="0 0 24 24"
-    xmlns="http://www.w3.org/2000/svg"
-    [ngClass]="[twMerge(iconVariants({ size }), 'fill-primary', class)]"
-    aria-hidden="true"
-  >
-    <path
-      d="M12.75 2C7.23 2 2.75 6.48 2.75 12C2.75 17.52 7.23 22 12.75 22C18.27 22 22.75 17.52 22.75 12C22.75 6.48 18.27 2 12.75 2ZM7.82 18.28C8.25 17.38 10.87 16.5 12.75 16.5C14.63 16.5 17.26 17.38 17.68 18.28C16.32 19.36 14.61 20 12.75 20C10.89 20 9.18 19.36 7.82 18.28ZM19.11 16.83C17.68 15.09 14.21 14.5 12.75 14.5C11.29 14.5 7.82 15.09 6.39 16.83C5.37 15.49 4.75 13.82 4.75 12C4.75 7.59 8.34 4 12.75 4C17.16 4 20.75 7.59 20.75 12C20.75 13.82 20.13 15.49 19.11 16.83ZM12.75 6C10.81 6 9.25 7.56 9.25 9.5C9.25 11.44 10.81 13 12.75 13C14.69 13 16.25 11.44 16.25 9.5C16.25 7.56 14.69 6 12.75 6ZM12.75 11C11.92 11 11.25 10.33 11.25 9.5C11.25 8.67 11.92 8 12.75 8C13.58 8 14.25 8.67 14.25 9.5C14.25 10.33 13.58 11 12.75 11Z"
-    />
-  </svg>`,
-})
-export class AccountCircleIconComponent {
-  @Input() size: IconVariants['size'] = 'medium';
-  @Input() class: string = '';
-
-  readonly iconVariants = iconVariants;
-  readonly twMerge = twMerge;
-}
diff --git a/alfa-client/libs/design-system/src/lib/icons/account-circle-icon/account-circle-icon.stories.ts b/alfa-client/libs/design-system/src/lib/icons/account-circle-icon/account-circle-icon.stories.ts
deleted file mode 100644
index 46eae30d492ba7cee189fb67b1f5c63e6f69ba51..0000000000000000000000000000000000000000
--- a/alfa-client/libs/design-system/src/lib/icons/account-circle-icon/account-circle-icon.stories.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-import type { Meta, StoryObj } from '@storybook/angular';
-
-import { AccountCircleIconComponent } from './account-circle-icon.component';
-
-const meta: Meta<AccountCircleIconComponent> = {
-  title: 'Icons/Account circle icon',
-  component: AccountCircleIconComponent,
-  excludeStories: /.*Data$/,
-  tags: ['autodocs'],
-};
-
-export default meta;
-type Story = StoryObj<AccountCircleIconComponent>;
-
-export const Default: Story = {
-  args: { size: 'large' },
-  argTypes: {
-    size: {
-      control: 'select',
-      options: ['small', 'medium', 'large', 'extra-large', 'full'],
-      description: 'Size of icon. Property "full" means 100%',
-      table: {
-        defaultValue: { summary: 'medium' },
-      },
-    },
-  },
-};
diff --git a/alfa-client/libs/user-profile/src/lib/assign-user-profile-button-container/assign-user-profile-button-container.component.html b/alfa-client/libs/user-profile/src/lib/assign-user-profile-button-container/assign-user-profile-button-container.component.html
index e1e8b8b763439a3af38eac0f8929c7e06dd44809..e116c9cf443931688e8fd9ee56a70d1452c5be6d 100644
--- a/alfa-client/libs/user-profile/src/lib/assign-user-profile-button-container/assign-user-profile-button-container.component.html
+++ b/alfa-client/libs/user-profile/src/lib/assign-user-profile-button-container/assign-user-profile-button-container.component.html
@@ -33,6 +33,6 @@
     size="fit"
     (clickEmitter)="showUserProfileSearch()"
   >
-    <ods-account-circle-icon icon class="fill-text" />
+    <ods-icon icon name="account-circle" color="text" />
   </ods-button-with-spinner>
 }
diff --git a/alfa-client/libs/user-profile/src/lib/assign-user-profile-button-container/assign-user-profile-button-container.component.spec.ts b/alfa-client/libs/user-profile/src/lib/assign-user-profile-button-container/assign-user-profile-button-container.component.spec.ts
index a99b9f0846590b69dd1337fef67519e677ac48b2..61a631a8c6cce94a31bf60db44171960015aabf2 100644
--- a/alfa-client/libs/user-profile/src/lib/assign-user-profile-button-container/assign-user-profile-button-container.component.spec.ts
+++ b/alfa-client/libs/user-profile/src/lib/assign-user-profile-button-container/assign-user-profile-button-container.component.spec.ts
@@ -27,7 +27,7 @@ import { UserProfileService } from '@alfa-client/user-profile-shared';
 import { VorgangHeaderLinkRel } from '@alfa-client/vorgang-shared';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { ButtonWithSpinnerComponent } from '@ods/component';
-import { AccountCircleIconComponent, TooltipDirective } from '@ods/system';
+import { IconComponent, TooltipDirective } from '@ods/system';
 import { createVorgangWithEingangResource } from 'libs/vorgang-shared/test/vorgang';
 import { MockComponent, MockDirective } from 'ng-mocks';
 import { AssignUserProfileButtonContainerComponent } from './assign-user-profile-button-container.component';
@@ -46,7 +46,7 @@ describe('AssignUserProfileButtonContainerComponent', () => {
         AssignUserProfileButtonContainerComponent,
         HasLinkPipe,
         MockComponent(ButtonWithSpinnerComponent),
-        MockComponent(AccountCircleIconComponent),
+        MockComponent(IconComponent),
         MockDirective(TooltipDirective),
       ],
       providers: [
diff --git a/alfa-client/libs/user-profile/src/lib/user-profile.module.ts b/alfa-client/libs/user-profile/src/lib/user-profile.module.ts
index 0f595e41c37ed96b7e0084656973cf7c4fc7dfa0..1f8af984ac84a0d96e598f1dd53aba23548ff787 100644
--- a/alfa-client/libs/user-profile/src/lib/user-profile.module.ts
+++ b/alfa-client/libs/user-profile/src/lib/user-profile.module.ts
@@ -38,11 +38,11 @@ import { MatTooltip } from '@angular/material/tooltip';
 import { RouterModule } from '@angular/router';
 import { ButtonWithSpinnerComponent } from '@ods/component';
 import {
-  AccountCircleIconComponent,
   DropdownMenuButtonItemComponent,
   DropdownMenuComponent,
   DropdownMenuItemComponent,
   ErrorIconComponent,
+  IconComponent,
   LogoutIconComponent,
   UserIconComponent as OdsUserIconComponent,
   TooltipDirective,
@@ -88,7 +88,7 @@ import { UserProfileComponent } from './user-profile/user-profile.component';
     DropdownMenuItemComponent,
     DropdownMenuButtonItemComponent,
     ButtonWithSpinnerComponent,
-    AccountCircleIconComponent,
+    IconComponent,
     TooltipDirective,
   ],
   declarations: [