diff --git a/alfa-client/libs/binary-file-shared/src/lib/binary-file.util.ts b/alfa-client/libs/binary-file-shared/src/lib/binary-file.util.ts
index b34aefb261df45052ef6492127c733afdd513d87..dcdd8939eb3c999cde700d20863520a2d0e2ffc6 100644
--- a/alfa-client/libs/binary-file-shared/src/lib/binary-file.util.ts
+++ b/alfa-client/libs/binary-file-shared/src/lib/binary-file.util.ts
@@ -7,3 +7,17 @@ export function getBinaryFiles(
 ): BinaryFileResource[] {
   return getEmbeddedResources(binaryFileListResource, BinaryFileListLinkRel.FILE_LIST);
 }
+
+export enum BinaryFileIcon {
+  'application/pdf' = 'file-pdf',
+  'application/json' = 'file-json',
+  'application/msword' = 'file-doc',
+  'application/vnd.openxmlformats-officedocument.wordprocessingml.document' = 'file-doc',
+  'application/xml' = 'file-xml',
+  'text/xml' = 'file-xml',
+  'image/apng' = 'file-image',
+  'image/gif' = 'file-image',
+  'image/jpeg' = 'file-image',
+  'image/png' = 'file-image',
+  'image/svg+xml' = 'file-image',
+}
diff --git a/alfa-client/libs/binary-file/src/lib/binary-file2-container/binary-file2/binary-file2.component.ts b/alfa-client/libs/binary-file/src/lib/binary-file2-container/binary-file2/binary-file2.component.ts
index 48902a375f43a053d5bf35c0ae7b8bdcf299041e..75d55fdc2f7aae8e112484aea9313b041c7a435b 100644
--- a/alfa-client/libs/binary-file/src/lib/binary-file2-container/binary-file2/binary-file2.component.ts
+++ b/alfa-client/libs/binary-file/src/lib/binary-file2-container/binary-file2/binary-file2.component.ts
@@ -1,5 +1,9 @@
 import { ApiDownloadToken } from '@alfa-client/api-root-shared';
-import { BinaryFileLinkRel, BinaryFileResource } from '@alfa-client/binary-file-shared';
+import {
+  BinaryFileIcon,
+  BinaryFileLinkRel,
+  BinaryFileResource,
+} from '@alfa-client/binary-file-shared';
 import { StateResource, createEmptyStateResource } from '@alfa-client/tech-shared';
 import { HttpParams } from '@angular/common/http';
 import { Component, EventEmitter, Input, Output } from '@angular/core';
@@ -35,8 +39,7 @@ export class BinaryFile2Component {
   }
 
   getIconType(type: string): string {
-    if (type.startsWith('image')) return 'file-image';
-    return 'file-' + type.split('/')[1];
+    return BinaryFileIcon[type] ?? 'file';
   }
 
   downloadFile(): void {
diff --git a/alfa-client/libs/design-system/src/lib/icon/icon.component.ts b/alfa-client/libs/design-system/src/lib/icon/icon.component.ts
index e0dbf17fed7b12129a4755b599723e8168d06feb..b1671cdfd108affc89008f3cefb3ae21f9a4b7f2 100644
--- a/alfa-client/libs/design-system/src/lib/icon/icon.component.ts
+++ b/alfa-client/libs/design-system/src/lib/icon/icon.component.ts
@@ -13,16 +13,15 @@ export class IconComponent {
   @Input() size: string = '100%';
 
   getFileIconFill(type: string): string {
-    switch (type.split('-')[1]) {
-      case 'pdf':
-      case 'exclamation':
-      case 'generate':
-      case 'upload':
+    switch (type) {
+      case 'file-pdf':
+      case 'file-exclamation':
+      case 'file-generate':
+      case 'file-upload':
         return 'fill-pdf';
-      case 'doc':
-      case 'docx':
+      case 'file-doc':
         return 'fill-doc';
-      case 'image':
+      case 'file-image':
         return 'fill-ozggray-800';
     }
     return 'fill-ozggray-300';