diff --git a/core/modules/file/css/file.theme.css b/core/modules/file/css/file.theme.css
deleted file mode 100644
index e17e2b8..0000000
--- a/core/modules/file/css/file.theme.css
+++ /dev/null
@@ -1,62 +0,0 @@
-/**
- * @file
- * Default style for file module.
- */
-
-/* File icons.*/
-
-.file {
-  padding-left: 20px; /* LTR */
-  display: inline-block;
-  min-height: 16px;
-  background-repeat: no-repeat;
-  background-position: left center; /* LTR */
-}
-[dir="rtl"] .file {
-  padding-left: inherit;
-  padding-right: 20px;
-  background-position: right center;
-}
-.file--general,
-.file--application-octet-stream {
-  background-image: url(../icons/application-octet-stream.png);
-}
-.file--package-x-generic {
-  background-image: url(../icons/package-x-generic.png);
-}
-.file--x-office-spreadsheet {
-  background-image: url(../icons/x-office-spreadsheet.png);
-}
-.file--x-office-document {
-  background-image: url(../icons/x-office-document.png);
-}
-.file--x-office-presentation {
-  background-image: url(../icons/x-office-presentation.png);
-}
-.file--text-x-script {
-  background-image: url(../icons/text-x-script.png);
-}
-.file--text-html {
-  background-image: url(../icons/text-html.png);
-}
-.file--text-plain {
-  background-image: url(../icons/text-plain.png);
-}
-.file--application-pdf {
-  background-image: url(../icons/application-pdf.png);
-}
-.file--application-x-executable {
-  background-image: url(../icons/application-x-executable.png);
-}
-.file--audio {
-  background-image: url(../icons/audio-x-generic.png);
-}
-.file--video {
-  background-image: url(../icons/video-x-generic.png);
-}
-.file--text {
-  background-image: url(../icons/text-x-generic.png);
-}
-.file--image {
-  background-image: url(../icons/image-x-generic.png);
-}
diff --git a/core/modules/file/file.libraries.yml b/core/modules/file/file.libraries.yml
index c44af55..f72a2eb 100644
--- a/core/modules/file/file.libraries.yml
+++ b/core/modules/file/file.libraries.yml
@@ -12,10 +12,3 @@ drupal.file:
     - core/jquery.once
     - core/drupal
     - core/drupalSettings
-
-drupal.file.formatter.generic:
-  version: VERSION
-  css:
-    theme:
-      css/file.theme.css: {}
-
diff --git a/core/modules/file/src/Plugin/Field/FieldFormatter/GenericFileFormatter.php b/core/modules/file/src/Plugin/Field/FieldFormatter/GenericFileFormatter.php
index f370037..e01ab88 100644
--- a/core/modules/file/src/Plugin/Field/FieldFormatter/GenericFileFormatter.php
+++ b/core/modules/file/src/Plugin/Field/FieldFormatter/GenericFileFormatter.php
@@ -47,11 +47,6 @@ public function viewElements(FieldItemListInterface $items) {
         unset($item->_attributes);
       }
     }
-    if (!empty($elements)) {
-      $elements['#attached'] = array(
-        'library' => array('file/drupal.file.formatter.generic'),
-      );
-    }
 
     return $elements;
   }
diff --git a/core/themes/classy/classy.libraries.yml b/core/themes/classy/classy.libraries.yml
index 67477a8..44a2835 100644
--- a/core/themes/classy/classy.libraries.yml
+++ b/core/themes/classy/classy.libraries.yml
@@ -31,6 +31,12 @@ book-navigation:
     component:
       css/components/book-navigation.css: {}
 
+file:
+  version: VERSION
+  css:
+    component:
+      css/components/file.css: { weight: -10 }
+
 indented:
   version: VERSION
   css:
diff --git a/core/themes/classy/css/components/file.css b/core/themes/classy/css/components/file.css
new file mode 100644
index 0000000..5e16b4f
--- /dev/null
+++ b/core/themes/classy/css/components/file.css
@@ -0,0 +1,62 @@
+/**
+ * @file
+ * Default style for file module.
+ */
+
+/* File icons.*/
+
+.file {
+  padding-left: 20px; /* LTR */
+  display: inline-block;
+  min-height: 16px;
+  background-repeat: no-repeat;
+  background-position: left center; /* LTR */
+}
+[dir="rtl"] .file {
+  padding-left: inherit;
+  padding-right: 20px;
+  background-position: right center;
+}
+.file--general,
+.file--application-octet-stream {
+  background-image: url(../../images/icons/application-octet-stream.png);
+}
+.file--package-x-generic {
+  background-image: url(../../images/icons/package-x-generic.png);
+}
+.file--x-office-spreadsheet {
+  background-image: url(../../images/icons/x-office-spreadsheet.png);
+}
+.file--x-office-document {
+  background-image: url(../../images/icons/x-office-document.png);
+}
+.file--x-office-presentation {
+  background-image: url(../../images/icons/x-office-presentation.png);
+}
+.file--text-x-script {
+  background-image: url(../../images/icons/text-x-script.png);
+}
+.file--text-html {
+  background-image: url(../../images/icons/text-html.png);
+}
+.file--text-plain {
+  background-image: url(../../images/icons/text-plain.png);
+}
+.file--application-pdf {
+  background-image: url(../../images/icons/application-pdf.png);
+}
+.file--application-x-executable {
+  background-image: url(../../images/icons/application-x-executable.png);
+}
+.file--audio {
+  background-image: url(../../images/icons/audio-x-generic.png);
+}
+.file--video {
+  background-image: url(../../images/icons/video-x-generic.png);
+}
+.file--text {
+  background-image: url(../../images/icons/text-x-generic.png);
+}
+.file--image {
+  background-image: url(../../images/icons/image-x-generic.png);
+}
diff --git a/core/modules/file/icons/application-octet-stream.png b/core/themes/classy/images/icons/application-octet-stream.png
similarity index 100%
rename from core/modules/file/icons/application-octet-stream.png
rename to core/themes/classy/images/icons/application-octet-stream.png
diff --git a/core/modules/file/icons/application-pdf.png b/core/themes/classy/images/icons/application-pdf.png
similarity index 100%
rename from core/modules/file/icons/application-pdf.png
rename to core/themes/classy/images/icons/application-pdf.png
diff --git a/core/modules/file/icons/application-x-executable.png b/core/themes/classy/images/icons/application-x-executable.png
similarity index 100%
rename from core/modules/file/icons/application-x-executable.png
rename to core/themes/classy/images/icons/application-x-executable.png
diff --git a/core/modules/file/icons/audio-x-generic.png b/core/themes/classy/images/icons/audio-x-generic.png
similarity index 100%
rename from core/modules/file/icons/audio-x-generic.png
rename to core/themes/classy/images/icons/audio-x-generic.png
diff --git a/core/modules/file/icons/image-x-generic.png b/core/themes/classy/images/icons/image-x-generic.png
similarity index 100%
rename from core/modules/file/icons/image-x-generic.png
rename to core/themes/classy/images/icons/image-x-generic.png
diff --git a/core/modules/file/icons/package-x-generic.png b/core/themes/classy/images/icons/package-x-generic.png
similarity index 100%
rename from core/modules/file/icons/package-x-generic.png
rename to core/themes/classy/images/icons/package-x-generic.png
diff --git a/core/modules/file/icons/text-html.png b/core/themes/classy/images/icons/text-html.png
similarity index 100%
rename from core/modules/file/icons/text-html.png
rename to core/themes/classy/images/icons/text-html.png
diff --git a/core/modules/file/icons/text-plain.png b/core/themes/classy/images/icons/text-plain.png
similarity index 100%
rename from core/modules/file/icons/text-plain.png
rename to core/themes/classy/images/icons/text-plain.png
diff --git a/core/modules/file/icons/text-x-generic.png b/core/themes/classy/images/icons/text-x-generic.png
similarity index 100%
rename from core/modules/file/icons/text-x-generic.png
rename to core/themes/classy/images/icons/text-x-generic.png
diff --git a/core/modules/file/icons/text-x-script.png b/core/themes/classy/images/icons/text-x-script.png
similarity index 100%
rename from core/modules/file/icons/text-x-script.png
rename to core/themes/classy/images/icons/text-x-script.png
diff --git a/core/modules/file/icons/video-x-generic.png b/core/themes/classy/images/icons/video-x-generic.png
similarity index 100%
rename from core/modules/file/icons/video-x-generic.png
rename to core/themes/classy/images/icons/video-x-generic.png
diff --git a/core/modules/file/icons/x-office-document.png b/core/themes/classy/images/icons/x-office-document.png
similarity index 100%
rename from core/modules/file/icons/x-office-document.png
rename to core/themes/classy/images/icons/x-office-document.png
diff --git a/core/modules/file/icons/x-office-presentation.png b/core/themes/classy/images/icons/x-office-presentation.png
similarity index 100%
rename from core/modules/file/icons/x-office-presentation.png
rename to core/themes/classy/images/icons/x-office-presentation.png
diff --git a/core/modules/file/icons/x-office-spreadsheet.png b/core/themes/classy/images/icons/x-office-spreadsheet.png
similarity index 100%
rename from core/modules/file/icons/x-office-spreadsheet.png
rename to core/themes/classy/images/icons/x-office-spreadsheet.png
diff --git a/core/themes/classy/templates/content-edit/file-managed-file.html.twig b/core/themes/classy/templates/content-edit/file-managed-file.html.twig
index f639237..e7ae48d 100644
--- a/core/themes/classy/templates/content-edit/file-managed-file.html.twig
+++ b/core/themes/classy/templates/content-edit/file-managed-file.html.twig
@@ -10,6 +10,7 @@
  * @see template_preprocess_file_managed_file()
  */
 #}
+{{ attach_library('classy/file') }}
 {%
   set classes = [
     'js-form-managed-file',
diff --git a/core/themes/classy/templates/content-edit/file-widget.html.twig b/core/themes/classy/templates/content-edit/file-widget.html.twig
index 55de590..23d03a1 100644
--- a/core/themes/classy/templates/content-edit/file-widget.html.twig
+++ b/core/themes/classy/templates/content-edit/file-widget.html.twig
@@ -10,6 +10,7 @@
  * @see template_preprocess_file_widget()
  */
 #}
+{{ attach_library('classy/file') }}
 <div{{ attributes }}>
   {{ element }}
 </div>
diff --git a/core/themes/classy/templates/field/file-link.html.twig b/core/themes/classy/templates/field/file-link.html.twig
index ad93361..11170c0 100644
--- a/core/themes/classy/templates/field/file-link.html.twig
+++ b/core/themes/classy/templates/field/file-link.html.twig
@@ -11,4 +11,5 @@
  * @see template_preprocess_file_link()
  */
 #}
+{{ attach_library('classy/file') }}
 <span{{ attributes }}>{{ icon }} {{ link }}</span>
