diff --git a/alfa-client/apps/demo/src/app/app.component.html b/alfa-client/apps/demo/src/app/app.component.html
index 8905cd8a7af9145dc9df5d0891dea9144ab598c7..ab6e5ddc281842a20186edd6371ea6e9e2c293cc 100644
--- a/alfa-client/apps/demo/src/app/app.component.html
+++ b/alfa-client/apps/demo/src/app/app.component.html
@@ -606,7 +606,7 @@
         </div>
         <div class="mt-4">
           <ods-file-upload-button class="w-72" [isLoading]="true" id="upload130" dataTestId="demo-upload-3">
-            <ods-attachment-icon icon />
+            <ods-icon name="attachment" icon />
             <ods-spinner-icon spinner size="medium" />
             <div text class="text-center">Anhang hochladen</div></ods-file-upload-button
           >
diff --git a/alfa-client/apps/demo/src/app/app.component.ts b/alfa-client/apps/demo/src/app/app.component.ts
index 1e18d64a6bc767490fbd66705111c574fa5903a0..58107f931a8f74c90729df6ad04c4c3ec26191b1 100644
--- a/alfa-client/apps/demo/src/app/app.component.ts
+++ b/alfa-client/apps/demo/src/app/app.component.ts
@@ -28,7 +28,6 @@ import { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';
 import { RouterModule } from '@angular/router';
 import {
   AttachmentComponent,
-  AttachmentIconComponent,
   AttachmentWrapperComponent,
   BescheidGenerateIconComponent,
   BescheidUploadIconComponent,
@@ -82,7 +81,6 @@ import { CustomStepperComponent } from './components/cdk-demo/custom-stepper.com
     SendIconComponent,
     StampIconComponent,
     CloseIconComponent,
-    AttachmentIconComponent,
     BescheidGenerateIconComponent,
     BescheidUploadIconComponent,
     SpinnerIconComponent,
diff --git a/alfa-client/libs/binary-file/src/lib/multi-file-upload-editor/multi-file-upload-editor.component.html b/alfa-client/libs/binary-file/src/lib/multi-file-upload-editor/multi-file-upload-editor.component.html
index 538932cf346eea42688fc28259a330b1d18fb552..a433402016cc452176feb33d2ad3b2cbc1e0c05b 100644
--- a/alfa-client/libs/binary-file/src/lib/multi-file-upload-editor/multi-file-upload-editor.component.html
+++ b/alfa-client/libs/binary-file/src/lib/multi-file-upload-editor/multi-file-upload-editor.component.html
@@ -9,7 +9,7 @@
   dataTestId="multi-file-upload-button"
 >
   <ods-spinner-icon spinner size="medium" />
-  <ods-attachment-icon icon size="medium" />
+  <ods-icon icon name="attachment" />
   @if (label) {
     <p text data-test-id="upload-button-label" class="text-center">{{ label }}</p>
   }
diff --git a/alfa-client/libs/binary-file/src/lib/multi-file-upload-editor/multi-file-upload-editor.component.spec.ts b/alfa-client/libs/binary-file/src/lib/multi-file-upload-editor/multi-file-upload-editor.component.spec.ts
index 38303a464c9f128eb05963f94df756663567e129..642ff5000154b502479b46072db2059624bbb31a 100644
--- a/alfa-client/libs/binary-file/src/lib/multi-file-upload-editor/multi-file-upload-editor.component.spec.ts
+++ b/alfa-client/libs/binary-file/src/lib/multi-file-upload-editor/multi-file-upload-editor.component.spec.ts
@@ -11,7 +11,7 @@ import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { faker } from '@faker-js/faker/.';
 import { expect } from '@jest/globals';
 import { getUrl, Resource } from '@ngxp/rest';
-import { FileUploadButtonComponent, SpinnerIconComponent, UploadButtonVariants } from '@ods/system';
+import { FileUploadButtonComponent, IconComponent, SpinnerIconComponent, UploadButtonVariants } from '@ods/system';
 import { getDataTestIdOf } from 'libs/tech-shared/test/data-test';
 import { MockComponent } from 'ng-mocks';
 import { of } from 'rxjs';
@@ -44,6 +44,7 @@ describe('MultiFileUploadEditorComponent', () => {
         ConvertForDataTestPipe,
         MockComponent(SpinnerIconComponent),
         MockComponent(FileUploadButtonComponent),
+        MockComponent(IconComponent),
       ],
       providers: [
         {
diff --git a/alfa-client/libs/binary-file/src/lib/multi-file-upload-editor/multi-file-upload-editor.component.ts b/alfa-client/libs/binary-file/src/lib/multi-file-upload-editor/multi-file-upload-editor.component.ts
index 2a9623612015f5350b39822c605c8faed1903d59..3b117daa146ff1a5d2b133a6d92e4b128ef12845 100644
--- a/alfa-client/libs/binary-file/src/lib/multi-file-upload-editor/multi-file-upload-editor.component.ts
+++ b/alfa-client/libs/binary-file/src/lib/multi-file-upload-editor/multi-file-upload-editor.component.ts
@@ -5,7 +5,7 @@ import { AsyncPipe } from '@angular/common';
 import { Component, HostListener, inject, Input, OnInit } from '@angular/core';
 import { ControlContainer, FormGroupDirective, ReactiveFormsModule } from '@angular/forms';
 import { getUrl, Resource } from '@ngxp/rest';
-import { AttachmentIconComponent, FileUploadButtonComponent, SpinnerIconComponent, UploadButtonVariants } from '@ods/system';
+import { FileUploadButtonComponent, IconComponent, SpinnerIconComponent, UploadButtonVariants } from '@ods/system';
 import { uniqueId } from 'lodash-es';
 import { Observable } from 'rxjs';
 
@@ -17,7 +17,7 @@ import { Observable } from 'rxjs';
   imports: [
     AsyncPipe,
     FileUploadButtonComponent,
-    AttachmentIconComponent,
+    IconComponent,
     SpinnerIconComponent,
     ReactiveFormsModule,
     BinaryFileModule,
diff --git a/alfa-client/libs/design-component/src/lib/form/file-upload-editor/file-upload-editor.component.html b/alfa-client/libs/design-component/src/lib/form/file-upload-editor/file-upload-editor.component.html
index e3807c40af21c86b0026c201ed9cb12525aa263b..35380942bf5721da434e441d61d30d3df34ea013 100644
--- a/alfa-client/libs/design-component/src/lib/form/file-upload-editor/file-upload-editor.component.html
+++ b/alfa-client/libs/design-component/src/lib/form/file-upload-editor/file-upload-editor.component.html
@@ -38,6 +38,6 @@
   dataTestId="file-upload-editor"
 >
   <ods-spinner-icon spinner size="medium" />
-  <ods-attachment-icon icon size="medium" />
+  <ods-icon icon name="attachment" />
   <p text class="text-center">{{ label }}</p>
 </ods-file-upload-button>
diff --git a/alfa-client/libs/design-component/src/lib/form/file-upload-editor/file-upload-editor.component.spec.ts b/alfa-client/libs/design-component/src/lib/form/file-upload-editor/file-upload-editor.component.spec.ts
index 9bb05063e492ff44967a3e62cd4d23bfad2a835e..5dbc2060ed2f9d68344e4f13e3b04e162a21288f 100644
--- a/alfa-client/libs/design-component/src/lib/form/file-upload-editor/file-upload-editor.component.spec.ts
+++ b/alfa-client/libs/design-component/src/lib/form/file-upload-editor/file-upload-editor.component.spec.ts
@@ -25,7 +25,7 @@ import { ConvertForDataTestPipe, createEmptyStateResource } from '@alfa-client/t
 import { getElementFromFixture } from '@alfa-client/test-utils';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { AbstractControl, FormGroupDirective, ReactiveFormsModule, UntypedFormBuilder } from '@angular/forms';
-import { FileUploadButtonComponent, SpinnerIconComponent } from '@ods/system';
+import { FileUploadButtonComponent, IconComponent, SpinnerIconComponent } from '@ods/system';
 import { getDataTestIdOf } from 'libs/tech-shared/test/data-test';
 import { MockComponent } from 'ng-mocks';
 import { FileUploadEditorComponent } from './file-upload-editor.component';
@@ -43,7 +43,12 @@ describe('FileUploadEditorComponent', () => {
 
   beforeEach(async () => {
     await TestBed.configureTestingModule({
-      declarations: [FileUploadEditorComponent, MockComponent(SpinnerIconComponent), MockComponent(FileUploadButtonComponent)],
+      declarations: [
+        FileUploadEditorComponent,
+        MockComponent(SpinnerIconComponent),
+        MockComponent(FileUploadButtonComponent),
+        MockComponent(IconComponent),
+      ],
       imports: [ReactiveFormsModule, ConvertForDataTestPipe],
       providers: [
         {
diff --git a/alfa-client/libs/design-component/src/lib/form/file-upload-editor/file-upload-editor.component.ts b/alfa-client/libs/design-component/src/lib/form/file-upload-editor/file-upload-editor.component.ts
index 2a412d827f7501dc914cf05bad19dbe00b85ebfe..ffc77123a0c24e3c68aa6fdec9d729e2638968ee 100644
--- a/alfa-client/libs/design-component/src/lib/form/file-upload-editor/file-upload-editor.component.ts
+++ b/alfa-client/libs/design-component/src/lib/form/file-upload-editor/file-upload-editor.component.ts
@@ -26,7 +26,7 @@ import { NgForOf } from '@angular/common';
 import { Component, EventEmitter, HostListener, Input, OnInit, Output } from '@angular/core';
 import { ControlContainer, FormGroupDirective, ReactiveFormsModule, UntypedFormArray, UntypedFormControl } from '@angular/forms';
 import { Resource } from '@ngxp/rest';
-import { AttachmentIconComponent, FileUploadButtonComponent, SpinnerIconComponent } from '@ods/system';
+import { FileUploadButtonComponent, IconComponent, SpinnerIconComponent } from '@ods/system';
 import { uniqueId } from 'lodash-es';
 import { FormControlEditorAbstractComponent } from '../formcontrol-editor.abstract.component';
 
@@ -35,14 +35,7 @@ import { FormControlEditorAbstractComponent } from '../formcontrol-editor.abstra
   templateUrl: './file-upload-editor.component.html',
   viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }],
   standalone: true,
-  imports: [
-    FileUploadButtonComponent,
-    AttachmentIconComponent,
-    SpinnerIconComponent,
-    ReactiveFormsModule,
-    NgForOf,
-    ConvertForDataTestPipe,
-  ],
+  imports: [FileUploadButtonComponent, IconComponent, SpinnerIconComponent, ReactiveFormsModule, NgForOf, ConvertForDataTestPipe],
 })
 export class FileUploadEditorComponent extends FormControlEditorAbstractComponent implements OnInit {
   @Input() label: string = '';
diff --git a/alfa-client/libs/design-system/src/index.ts b/alfa-client/libs/design-system/src/index.ts
index 05d5fe525f6a30279d410b9bf86bd5ce59958c62..4bbe3d52ede40a904c36781567b1158f72a46b68 100644
--- a/alfa-client/libs/design-system/src/index.ts
+++ b/alfa-client/libs/design-system/src/index.ts
@@ -46,9 +46,6 @@ export * from './lib/forwarding-item/forwarding-item-info/forwarding-item-info.c
 export * from './lib/forwarding-item/forwarding-item.component';
 export * from './lib/icon/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';
-export * from './lib/icons/attachment-icon/attachment-icon.component';
 export * from './lib/icons/bescheid-generate-icon/bescheid-generate-icon.component';
 export * from './lib/icons/bescheid-upload-icon/bescheid-upload-icon.component';
 export * from './lib/icons/check-circle-icon/check-circle-icon.component';
diff --git a/alfa-client/libs/design-system/src/lib/form/file-upload-button/file-upload-button.stories.ts b/alfa-client/libs/design-system/src/lib/form/file-upload-button/file-upload-button.stories.ts
index 694af4683ceb352aeca121498a79d3efa55c8073..5dd83fb819a2702ecad896a7131b2147ae2aa29b 100644
--- a/alfa-client/libs/design-system/src/lib/form/file-upload-button/file-upload-button.stories.ts
+++ b/alfa-client/libs/design-system/src/lib/form/file-upload-button/file-upload-button.stories.ts
@@ -33,12 +33,7 @@ const meta: Meta<FileUploadButtonComponent> = {
   component: FileUploadButtonComponent,
   decorators: [
     moduleMetadata({
-      imports: [
-        CommonModule,
-        FileUploadButtonComponent,
-        AttachmentIconComponent,
-        SpinnerIconComponent,
-      ],
+      imports: [CommonModule, FileUploadButtonComponent, AttachmentIconComponent, SpinnerIconComponent],
     }),
   ],
   excludeStories: /.*Data$/,
@@ -56,6 +51,7 @@ export const Upload: Story = {
   render: (args: FileUploadButtonComponent) => ({
     props: args,
     template: `<ods-file-upload-button ${argsToTemplate(args)}>
+      // TODO OZG-7707
       <ods-attachment-icon icon></ods-attachment-icon>
       <ods-spinner-icon spinner size="medium"></ods-spinner-icon>
       <p text>Anhang hochladen</p>
diff --git a/alfa-client/libs/design-system/src/lib/icons/archive-icon/archive-icon.component.spec.ts b/alfa-client/libs/design-system/src/lib/icons/archive-icon/archive-icon.component.spec.ts
deleted file mode 100644
index 4d5d18cdcc34eecdb0a8f9f04b79257382dc3aeb..0000000000000000000000000000000000000000
--- a/alfa-client/libs/design-system/src/lib/icons/archive-icon/archive-icon.component.spec.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { ArchiveIconComponent } from './archive-icon.component';
-
-describe('ArchiveIconComponent', () => {
-  let component: ArchiveIconComponent;
-  let fixture: ComponentFixture<ArchiveIconComponent>;
-
-  beforeEach(async () => {
-    await TestBed.configureTestingModule({
-      imports: [ArchiveIconComponent],
-    }).compileComponents();
-
-    fixture = TestBed.createComponent(ArchiveIconComponent);
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-});
diff --git a/alfa-client/libs/design-system/src/lib/icons/archive-icon/archive-icon.component.ts b/alfa-client/libs/design-system/src/lib/icons/archive-icon/archive-icon.component.ts
deleted file mode 100644
index 28d9287daa74337999b788cec4b43ed5716f5624..0000000000000000000000000000000000000000
--- a/alfa-client/libs/design-system/src/lib/icons/archive-icon/archive-icon.component.ts
+++ /dev/null
@@ -1,41 +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-archive-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="M4.96804 21L2.85693 9H21.8569L19.7458 21H4.96804ZM6.7361 19H17.9778L19.3236 11H5.39027L6.7361 19ZM10.2458 15H14.468C14.7671 15 15.0178 14.9042 15.2201 14.7125C15.4224 14.5208 15.5236 14.2833 15.5236 14C15.5236 13.7167 15.4224 13.4792 15.2201 13.2875C15.0178 13.0958 14.7671 13 14.468 13H10.2458C9.94675 13 9.69605 13.0958 9.49374 13.2875C9.29142 13.4792 9.19027 13.7167 9.19027 14C9.19027 14.2833 9.29142 14.5208 9.49374 14.7125C9.69605 14.9042 9.94675 15 10.2458 15ZM6.0236 8C5.72453 8 5.47383 7.90417 5.27152 7.7125C5.0692 7.52083 4.96804 7.28333 4.96804 7C4.96804 6.71667 5.0692 6.47917 5.27152 6.2875C5.47383 6.09583 5.72453 6 6.0236 6H18.6903C18.9893 6 19.24 6.09583 19.4424 6.2875C19.6447 6.47917 19.7458 6.71667 19.7458 7C19.7458 7.28333 19.6447 7.52083 19.4424 7.7125C19.24 7.90417 18.9893 8 18.6903 8H6.0236ZM8.13471 5C7.83564 5 7.58494 4.90417 7.38263 4.7125C7.18031 4.52083 7.07916 4.28333 7.07916 4C7.07916 3.71667 7.18031 3.47917 7.38263 3.2875C7.58494 3.09583 7.83564 3 8.13471 3H16.5792C16.8782 3 17.1289 3.09583 17.3312 3.2875C17.5336 3.47917 17.6347 3.71667 17.6347 4C17.6347 4.28333 17.5336 4.52083 17.3312 4.7125C17.1289 4.90417 16.8782 5 16.5792 5H8.13471Z"
-    />
-    <path
-      d="M5 21C1.68629 21 -1 18.3137 -1 15C-1 11.6863 1.68629 9 5 9C8.31371 9 11 11.6863 11 15C11 18.3137 8.31371 21 5 21Z"
-      class="fill-whitetext"
-    />
-    <path
-      d="M5.00078 19.9999C2.23936 19.9999 0.00078249 17.7613 0.000782609 14.9999C0.000782728 12.2385 2.23936 9.99991 5.00078 9.99991C7.76221 9.99991 10.0008 12.2385 10.0008 14.9999C10.0008 17.7613 7.76221 19.9999 5.00078 19.9999Z"
-    />
-    <path
-      d="M5.00078 19.9999C2.23936 19.9999 0.00078249 17.7613 0.000782609 14.9999C0.000782728 12.2385 2.23936 9.99991 5.00078 9.99991C7.76221 9.99991 10.0008 12.2385 10.0008 14.9999C10.0008 17.7613 7.76221 19.9999 5.00078 19.9999Z"
-    />
-    <path
-      d="M7.99997 14.9999L4.99997 11.9999L3.94997 13.0499L5.14997 14.2499H1.99997V15.7499H5.14997L3.94997 16.9499L4.99997 17.9999L7.99997 14.9999Z"
-      class="fill-whitetext"
-    />
-  </svg> `,
-})
-export class ArchiveIconComponent {
-  @Input() size: IconVariants['size'] = 'medium';
-  @Input() class: string = undefined;
-
-  readonly iconVariants = iconVariants;
-  readonly twMerge = twMerge;
-}
diff --git a/alfa-client/libs/design-system/src/lib/icons/archive-icon/archive-icon.stories.ts b/alfa-client/libs/design-system/src/lib/icons/archive-icon/archive-icon.stories.ts
deleted file mode 100644
index 33f6a6847ab87db944ce480838e84cf50cc5d0f3..0000000000000000000000000000000000000000
--- a/alfa-client/libs/design-system/src/lib/icons/archive-icon/archive-icon.stories.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-import type { Meta, StoryObj } from '@storybook/angular';
-
-import { ArchiveIconComponent } from './archive-icon.component';
-
-const meta: Meta<ArchiveIconComponent> = {
-  title: 'Icons/Archive icon',
-  component: ArchiveIconComponent,
-  excludeStories: /.*Data$/,
-  tags: ['autodocs'],
-};
-
-export default meta;
-type Story = StoryObj<ArchiveIconComponent>;
-
-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/arrow-back-icon/arrow-back-icon.component.spec.ts b/alfa-client/libs/design-system/src/lib/icons/arrow-back-icon/arrow-back-icon.component.spec.ts
deleted file mode 100644
index 744a885c402d72290467b3efb341a2b7adeccf54..0000000000000000000000000000000000000000
--- a/alfa-client/libs/design-system/src/lib/icons/arrow-back-icon/arrow-back-icon.component.spec.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { ArrowBackIconComponent } from './arrow-back-icon.component';
-
-describe('ArrowBackIconComponent', () => {
-  let component: ArrowBackIconComponent;
-  let fixture: ComponentFixture<ArrowBackIconComponent>;
-
-  beforeEach(async () => {
-    await TestBed.configureTestingModule({
-      imports: [ArrowBackIconComponent],
-    }).compileComponents();
-
-    fixture = TestBed.createComponent(ArrowBackIconComponent);
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-});
diff --git a/alfa-client/libs/design-system/src/lib/icons/arrow-back-icon/arrow-back-icon.component.ts b/alfa-client/libs/design-system/src/lib/icons/arrow-back-icon/arrow-back-icon.component.ts
deleted file mode 100644
index d0ab0a9d8e61e9e6041df639992347326e0085b7..0000000000000000000000000000000000000000
--- a/alfa-client/libs/design-system/src/lib/icons/arrow-back-icon/arrow-back-icon.component.ts
+++ /dev/null
@@ -1,25 +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-arrow-back-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="M20.75 11H8.58L14.17 5.41L12.75 4L4.75 12L12.75 20L14.16 18.59L8.58 13H20.75V11Z" />
-  </svg>`,
-})
-export class ArrowBackIconComponent {
-  @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/arrow-back-icon/arrow-back-icon.stories.ts b/alfa-client/libs/design-system/src/lib/icons/arrow-back-icon/arrow-back-icon.stories.ts
deleted file mode 100644
index 1305d80008efc57e965ebd61690fd6b8e3b2b21f..0000000000000000000000000000000000000000
--- a/alfa-client/libs/design-system/src/lib/icons/arrow-back-icon/arrow-back-icon.stories.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-import type { Meta, StoryObj } from '@storybook/angular';
-
-import { ArrowBackIconComponent } from './arrow-back-icon.component';
-
-const meta: Meta<ArrowBackIconComponent> = {
-  title: 'Icons/Arrow back icon',
-  component: ArrowBackIconComponent,
-  excludeStories: /.*Data$/,
-  tags: ['autodocs'],
-};
-
-export default meta;
-type Story = StoryObj<ArrowBackIconComponent>;
-
-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/attachment-icon/attachment-icon.component.spec.ts b/alfa-client/libs/design-system/src/lib/icons/attachment-icon/attachment-icon.component.spec.ts
deleted file mode 100644
index 06f863c5748cf022bf0bd57da25f02f9e85cd05c..0000000000000000000000000000000000000000
--- a/alfa-client/libs/design-system/src/lib/icons/attachment-icon/attachment-icon.component.spec.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { AttachmentIconComponent } from './attachment-icon.component';
-
-describe('AttachmentIconComponent', () => {
-  let component: AttachmentIconComponent;
-  let fixture: ComponentFixture<AttachmentIconComponent>;
-
-  beforeEach(async () => {
-    await TestBed.configureTestingModule({
-      imports: [AttachmentIconComponent],
-    }).compileComponents();
-
-    fixture = TestBed.createComponent(AttachmentIconComponent);
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-});
diff --git a/alfa-client/libs/design-system/src/lib/icons/attachment-icon/attachment-icon.component.ts b/alfa-client/libs/design-system/src/lib/icons/attachment-icon/attachment-icon.component.ts
deleted file mode 100644
index 07ef4c9a1803d997034d703ffdc34df0eef53e49..0000000000000000000000000000000000000000
--- a/alfa-client/libs/design-system/src/lib/icons/attachment-icon/attachment-icon.component.ts
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import { NgClass } from '@angular/common';
-import { Component, Input } from '@angular/core';
-import { twMerge } from 'tailwind-merge';
-
-import { IconVariants, iconVariants } from '../iconVariants';
-
-@Component({
-  selector: 'ods-attachment-icon',
-  standalone: true,
-  imports: [NgClass],
-  template: `<svg
-    xmlns="http://www.w3.org/2000/svg"
-    [ngClass]="[twMerge(iconVariants({ size }), 'fill-primary', class)]"
-    aria-hidden="true"
-    viewBox="0 0 16 25"
-  >
-    <path
-      d="M15.874 17c0 2.08-.73 3.85-2.19 5.31-1.46 1.46-3.23 2.19-5.31 2.19-2.08 0-3.85-.73-5.31-2.19C1.604 20.85.874 19.08.874 17V5.9c0-1.5.525-2.775 1.575-3.825C3.499 1.025 4.774.5 6.274.5s2.775.525 3.825 1.575c1.05 1.05 1.575 2.325 1.575 3.825v10.5c0 .92-.32 1.7-.96 2.34-.64.64-1.42.96-2.34.96-.92 0-1.7-.32-2.34-.96-.64-.64-.96-1.42-.96-2.34V5.3h2.4v11.1c0 .26.085.475.255.645.17.17.385.255.645.255s.475-.085.645-.255a.874.874 0 0 0 .255-.645V5.9c-.02-.84-.315-1.55-.885-2.13-.57-.58-1.275-.87-2.115-.87-.84 0-1.55.29-2.13.87-.58.58-.87 1.29-.87 2.13V17c-.02 1.42.47 2.625 1.47 3.615 1 .99 2.21 1.485 3.63 1.485 1.4 0 2.59-.495 3.57-1.485.98-.99 1.49-2.195 1.53-3.615V5.3h2.4V17Z"
-    />
-  </svg>`,
-})
-export class AttachmentIconComponent {
-  @Input() size: IconVariants['size'] = 'medium';
-  @Input() class: string = undefined;
-
-  iconVariants = iconVariants;
-  twMerge = twMerge;
-}
diff --git a/alfa-client/libs/design-system/src/lib/icons/attachment-icon/attachment-icon.stories.ts b/alfa-client/libs/design-system/src/lib/icons/attachment-icon/attachment-icon.stories.ts
deleted file mode 100644
index 02ce615b45ba51c6505565b5bdcb41461ea64661..0000000000000000000000000000000000000000
--- a/alfa-client/libs/design-system/src/lib/icons/attachment-icon/attachment-icon.stories.ts
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-import type { Meta, StoryObj } from '@storybook/angular';
-
-import { AttachmentIconComponent } from './attachment-icon.component';
-
-const meta: Meta<AttachmentIconComponent> = {
-  title: 'Icons/Attachment icon',
-  component: AttachmentIconComponent,
-  excludeStories: /.*Data$/,
-  tags: ['autodocs'],
-};
-
-export default meta;
-type Story = StoryObj<AttachmentIconComponent>;
-
-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/ui/src/lib/ui/back-button/back-button.component.html b/alfa-client/libs/ui/src/lib/ui/back-button/back-button.component.html
index 81e091ce81d24d1f5266b23ed9a3d838c6ab0226..ff29f8519dff303a8e7fed1cfce748907ff01074 100644
--- a/alfa-client/libs/ui/src/lib/ui/back-button/back-button.component.html
+++ b/alfa-client/libs/ui/src/lib/ui/back-button/back-button.component.html
@@ -25,6 +25,6 @@
 -->
 <a [routerLink]="linkTo" data-test-id="back-button" tabindex="-1">
   <ods-button variant="ghost" size="fit" [tooltip]="label" tooltipAriaType="aria-labelledby">
-    <ods-arrow-back-icon icon class="fill-text" />
+    <ods-icon name="arrow-back" icon color="text" />
   </ods-button>
 </a>
diff --git a/alfa-client/libs/ui/src/lib/ui/back-button/back-button.component.spec.ts b/alfa-client/libs/ui/src/lib/ui/back-button/back-button.component.spec.ts
index 1e440ea225b27baa66c63d3d62642d543001068b..5e3b51423859f7de85df6b25ab5ed5bd8b440096 100644
--- a/alfa-client/libs/ui/src/lib/ui/back-button/back-button.component.spec.ts
+++ b/alfa-client/libs/ui/src/lib/ui/back-button/back-button.component.spec.ts
@@ -25,7 +25,7 @@ import { getElementFromFixture } from '@alfa-client/test-utils';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { RouterTestingModule } from '@angular/router/testing';
 import { faker } from '@faker-js/faker';
-import { ArrowBackIconComponent, ButtonComponent, TooltipDirective } from '@ods/system';
+import { ButtonComponent, IconComponent, TooltipDirective } from '@ods/system';
 import { getDataTestIdOf } from 'libs/tech-shared/test/data-test';
 import { MockComponent, MockDirective } from 'ng-mocks';
 import { BackButtonComponent } from './back-button.component';
@@ -43,7 +43,7 @@ describe('BackButtonComponent', () => {
       declarations: [
         BackButtonComponent,
         MockComponent(ButtonComponent),
-        MockComponent(ArrowBackIconComponent),
+        MockComponent(IconComponent),
         MockDirective(TooltipDirective),
       ],
       imports: [RouterTestingModule],
diff --git a/alfa-client/libs/ui/src/lib/ui/back-button/back-button.component.ts b/alfa-client/libs/ui/src/lib/ui/back-button/back-button.component.ts
index db593f08cb17ab00615fb0314f68d044491e9665..c40492dccafd3dac7c3711d54905ab698bfc8d44 100644
--- a/alfa-client/libs/ui/src/lib/ui/back-button/back-button.component.ts
+++ b/alfa-client/libs/ui/src/lib/ui/back-button/back-button.component.ts
@@ -23,14 +23,14 @@
  */
 import { Component, Input } from '@angular/core';
 import { RouterLink } from '@angular/router';
-import { ArrowBackIconComponent, ButtonComponent, TooltipDirective } from '@ods/system';
+import { ButtonComponent, IconComponent, TooltipDirective } from '@ods/system';
 
 @Component({
   selector: 'ozgcloud-back-button',
   templateUrl: './back-button.component.html',
   styleUrls: ['./back-button.component.scss'],
   standalone: true,
-  imports: [RouterLink, TooltipDirective, ButtonComponent, ArrowBackIconComponent],
+  imports: [RouterLink, TooltipDirective, ButtonComponent, IconComponent],
 })
 export class BackButtonComponent {
   @Input() label: string;
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-more-menu/vorgang-archive-container/vorgang-archive-container.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-more-menu/vorgang-archive-container/vorgang-archive-container.component.html
index aabaa1db527f7da3a18e21404dadf92a27395e49..fafd6189a0e4a0d205af9055f7aba7651b64abeb 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-more-menu/vorgang-archive-container/vorgang-archive-container.component.html
+++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-more-menu/vorgang-archive-container/vorgang-archive-container.component.html
@@ -5,5 +5,5 @@
   size="medium"
   text="Archivierung starten"
 >
-  <ods-archive-icon icon />
-</ods-button>
\ No newline at end of file
+  <ods-icon icon name="archive" />
+</ods-button>
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-more-menu/vorgang-archive-container/vorgang-archive-container.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-more-menu/vorgang-archive-container/vorgang-archive-container.component.spec.ts
index a8fa62ffcf26525cbb6677ea9b9db82624aa3f8b..4cc24536e1e5f2b09294168ff3bbdfd068da37e8 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-more-menu/vorgang-archive-container/vorgang-archive-container.component.spec.ts
+++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-more-menu/vorgang-archive-container/vorgang-archive-container.component.spec.ts
@@ -2,7 +2,7 @@ import { ComponentFixture, TestBed } from '@angular/core/testing';
 
 import { mock } from '@alfa-client/test-utils';
 import { OzgcloudDialogService } from '@alfa-client/ui';
-import { ArchiveIconComponent, ButtonComponent } from '@ods/system';
+import { ButtonComponent, IconComponent } from '@ods/system';
 import { createVorgangWithEingangResource } from 'libs/vorgang-shared/test/vorgang';
 import { MockComponent } from 'ng-mocks';
 import { VorgangArchiveConfirmationDialogContainerComponent } from './vorgang-archive-confirmation-dialog-container/vorgang-archive-confirmation-dialog-container.component';
@@ -22,7 +22,7 @@ describe('VorgangArchiveContainerComponent', () => {
         VorgangArchiveContainerComponent,
         MockComponent(ButtonComponent),
         MockComponent(VorgangArchiveConfirmationDialogContainerComponent),
-        MockComponent(ArchiveIconComponent),
+        MockComponent(IconComponent),
       ],
       providers: [
         {
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail.module.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail.module.ts
index 1d749edd60cabb56f750dd00852651e0fc41b1cf..57a34430caf48a46c414204723b810c4dca3b64e 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail.module.ts
+++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail.module.ts
@@ -32,7 +32,21 @@ import { LoeschAnforderungSharedModule } from '@alfa-client/loesch-anforderung-s
 import { PostfachModule } from '@alfa-client/postfach';
 import { PostfachSharedModule } from '@alfa-client/postfach-shared';
 import { ConvertForDataTestPipe, ConvertProblemDetailToErrorMessagesPipe, HasLinkPipe } from '@alfa-client/tech-shared';
-import { BackButtonComponent, DateEditorComponent, ExpansionPanelComponent, IconButtonWithSpinnerComponent, OzgcloudIconButtonPrimaryComponent, OzgcloudIconComponent, OzgcloudMenuComponent, OzgcloudPasteTextButtonComponent, OzgcloudStrokedButtonWithSpinnerComponent, OzgcloudTextEditorComponent, SpinnerComponent, SpinnerTransparencyComponent, SubnavigationComponent, } from '@alfa-client/ui';
+import {
+  BackButtonComponent,
+  DateEditorComponent,
+  ExpansionPanelComponent,
+  IconButtonWithSpinnerComponent,
+  OzgcloudIconButtonPrimaryComponent,
+  OzgcloudIconComponent,
+  OzgcloudMenuComponent,
+  OzgcloudPasteTextButtonComponent,
+  OzgcloudStrokedButtonWithSpinnerComponent,
+  OzgcloudTextEditorComponent,
+  SpinnerComponent,
+  SpinnerTransparencyComponent,
+  SubnavigationComponent,
+} from '@alfa-client/ui';
 import { UserProfileModule } from '@alfa-client/user-profile';
 import { UserProfileSharedModule } from '@alfa-client/user-profile-shared';
 import { VorgangSharedModule } from '@alfa-client/vorgang-shared';
@@ -46,9 +60,14 @@ import { MatIcon } from '@angular/material/icon';
 import { MatMenuTrigger } from '@angular/material/menu';
 import { MatTab, MatTabContent, MatTabGroup } from '@angular/material/tabs';
 import { RouterModule, Routes } from '@angular/router';
-import { ButtonWithSpinnerComponent, FileUploadEditorComponent, SingleFileUploadEditorComponent, TextareaEditorComponent, TextEditorComponent, } from '@ods/component';
 import {
-  ArchiveIconComponent,
+  ButtonWithSpinnerComponent,
+  FileUploadEditorComponent,
+  SingleFileUploadEditorComponent,
+  TextareaEditorComponent,
+  TextEditorComponent,
+} from '@ods/component';
+import {
   AttachmentComponent,
   AttachmentWrapperComponent,
   BescheidGenerateIconComponent,
@@ -66,6 +85,7 @@ import {
   ErrorMessageComponent,
   ExclamationIconComponent,
   FileIconComponent,
+  IconComponent,
   MoreIconComponent,
   RadioButtonCardComponent,
   SaveIconComponent,
@@ -155,7 +175,6 @@ const routes: Routes = [
     BescheidStatusTextComponent,
     ErrorMessageComponent,
     CollaborationModule,
-    ArchiveIconComponent,
     CheckCircleIconComponent,
     CheckIconComponent,
     MatDialogContent,
@@ -192,6 +211,7 @@ const routes: Routes = [
     EditIconComponent,
     DiscardVorgangIconComponent,
     MatTabContent,
+    IconComponent,
   ],
   declarations: [
     VorgangDetailPageComponent,
diff --git a/alfa-client/libs/vorgang/src/lib/vorgang-list-container/vorgang-list/vorgang-list-item/vorgang-archive-status/vorgang-archive-status.component.html b/alfa-client/libs/vorgang/src/lib/vorgang-list-container/vorgang-list/vorgang-list-item/vorgang-archive-status/vorgang-archive-status.component.html
index 4f426425898e3a46ad5e1735476cae2975baef1c..123e10b9d32cad87e8144308cfceaaaa9dd329af 100644
--- a/alfa-client/libs/vorgang/src/lib/vorgang-list-container/vorgang-list/vorgang-list-item/vorgang-archive-status/vorgang-archive-status.component.html
+++ b/alfa-client/libs/vorgang/src/lib/vorgang-list-container/vorgang-list/vorgang-list-item/vorgang-archive-status/vorgang-archive-status.component.html
@@ -1,4 +1,4 @@
 <div class="flex items-center gap-1">
-  <ods-archive-icon class="fill-text" />
+  <ods-icon name="archive" color="text" />
   <span>in Archivierung</span>
 </div>
diff --git a/alfa-client/libs/vorgang/src/lib/vorgang-list-container/vorgang-list/vorgang-list-item/vorgang-archive-status/vorgang-archive-status.component.spec.ts b/alfa-client/libs/vorgang/src/lib/vorgang-list-container/vorgang-list/vorgang-list-item/vorgang-archive-status/vorgang-archive-status.component.spec.ts
index 69aab5616df025543a0f6e55bafea885c8ca8aa8..1716960bbec74f218a74ae2df5bcf351069f5d43 100644
--- a/alfa-client/libs/vorgang/src/lib/vorgang-list-container/vorgang-list/vorgang-list-item/vorgang-archive-status/vorgang-archive-status.component.spec.ts
+++ b/alfa-client/libs/vorgang/src/lib/vorgang-list-container/vorgang-list/vorgang-list-item/vorgang-archive-status/vorgang-archive-status.component.spec.ts
@@ -1,7 +1,8 @@
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 
 import { Vorgang } from '@alfa-client/vorgang-shared';
-import { ArchiveIconComponent } from '@ods/system';
+import { IconComponent } from '@ods/system';
+import { MockComponent } from 'ng-mocks';
 import { createVorgang } from '../../../../../../../vorgang-shared/test/vorgang';
 import { VorgangArchiveStatusComponent } from './vorgang-archive-status.component';
 
@@ -13,7 +14,7 @@ describe('VorgangArchiveStatusComponent', () => {
 
   beforeEach(async () => {
     await TestBed.configureTestingModule({
-      imports: [ArchiveIconComponent],
+      imports: [MockComponent(IconComponent)],
       declarations: [VorgangArchiveStatusComponent],
     }).compileComponents();
 
diff --git a/alfa-client/libs/vorgang/src/lib/vorgang.module.ts b/alfa-client/libs/vorgang/src/lib/vorgang.module.ts
index d1668cea27cf0e97e402293ebfdbf49d4c396980..97c8c6dcc10c6eacaf34c7990333d501124aac09 100644
--- a/alfa-client/libs/vorgang/src/lib/vorgang.module.ts
+++ b/alfa-client/libs/vorgang/src/lib/vorgang.module.ts
@@ -44,8 +44,8 @@ import { MatIcon, MatIconModule } from '@angular/material/icon';
 import { MatTooltip } from '@angular/material/tooltip';
 import { RouterModule, Routes } from '@angular/router';
 import { ButtonToggleGroupComponent } from '@ods/component';
+import { ButtonToggleComponent, IconComponent, TooltipDirective } from '@ods/system';
 import { HasAnyLinkPipe } from '../../../tech-shared/src/lib/pipe/has-any-link.pipe';
-import { ArchiveIconComponent, ButtonToggleComponent, TooltipDirective } from '@ods/system';
 import { vorgangFilterViewGuard } from './vorgang-filter-view.guard';
 import { VorgangListContainerComponent } from './vorgang-list-container/vorgang-list-container.component';
 import { EmptyListComponent } from './vorgang-list-container/vorgang-list/empty-list/empty-list.component';
@@ -190,7 +190,7 @@ const routes: Routes = [
     HintModule,
     ButtonToggleComponent,
     ButtonToggleGroupComponent,
-    ArchiveIconComponent,
+    IconComponent,
     FormatDateWithTimePipe,
     FormatDateWithoutYearWithTimePipe,
     MatIcon,