 core/includes/batch.inc                             |  8 ++++----
 core/modules/block/src/BlockForm.php                |  4 +---
 core/modules/book/book.libraries.yml                | 12 ++++++++++++
 core/modules/book/book.module                       | 10 ++++++----
 core/modules/color/color.libraries.yml              |  7 +++++++
 core/modules/color/color.module                     | 14 +++-----------
 core/modules/comment/comment.libraries.yml          |  6 ++++++
 core/modules/comment/src/CommentViewBuilder.php     |  2 +-
 .../config/src/Controller/ConfigController.php      |  2 +-
 .../content_translation.admin.inc                   |  1 -
 .../modules/src/Plugin/Editor/UnicornEditor.php     |  2 +-
 core/modules/help/src/Controller/HelpController.php |  2 +-
 core/modules/image/src/Form/ImageEffectFormBase.php |  2 +-
 core/modules/image/src/Form/ImageStyleEditForm.php  |  2 +-
 .../src/Plugin/Field/FieldWidget/ImageWidget.php    |  2 +-
 .../locale/src/Form/TranslationStatusForm.php       |  1 -
 core/modules/node/node.libraries.yml                |  3 +++
 core/modules/search/search.libraries.yml            |  5 +++++
 core/modules/search/src/SearchPageListBuilder.php   |  6 +++---
 core/modules/simpletest/simpletest.module           |  2 +-
 .../simpletest/src/Form/SimpletestResultsForm.php   |  2 +-
 core/modules/system/system.libraries.yml            |  6 ++++++
 .../src/Form/AjaxFormsTestLazyLoadForm.php          |  9 ++++-----
 core/modules/views/includes/ajax.inc                |  3 ---
 .../views_test_data.views_execution.inc             |  4 +---
 core/modules/views_ui/src/ViewAddForm.php           |  3 +--
 core/modules/views_ui/src/ViewEditForm.php          |  3 +--
 core/modules/views_ui/src/ViewFormBase.php          | 21 ---------------------
 core/modules/views_ui/src/ViewListBuilder.php       |  1 -
 core/modules/views_ui/views_ui.libraries.yml        | 11 +++++++++++
 core/themes/bartik/bartik.libraries.yml             | 10 ++++++++++
 core/themes/bartik/color/color.inc                  |  3 +--
 core/themes/seven/seven.theme                       |  1 -
 33 files changed, 94 insertions(+), 76 deletions(-)

diff --git a/core/includes/batch.inc b/core/includes/batch.inc
index 59e1529..947505f 100644
--- a/core/includes/batch.inc
+++ b/core/includes/batch.inc
@@ -58,11 +58,11 @@ function _batch_page(Request $request) {
 
   $build = array();
 
-  // Add batch-specific CSS.
+  // Add batch-specific libraries.
   foreach ($batch['sets'] as $batch_set) {
-    if (isset($batch_set['css'])) {
-      foreach ($batch_set['css'] as $css) {
-        $build['#attached']['css'][$css] = array();
+    if (isset($batch_set['library'])) {
+      foreach ($batch_set['library'] as $library) {
+        $build['#attached']['library'][] = $library;
       }
     }
   }
diff --git a/core/modules/block/src/BlockForm.php b/core/modules/block/src/BlockForm.php
index 73e7ea4..a8e2dc1 100644
--- a/core/modules/block/src/BlockForm.php
+++ b/core/modules/block/src/BlockForm.php
@@ -118,9 +118,7 @@ public function form(array $form, FormStateInterface $form_state) {
       '#prefix' => '<div id="edit-block-region-wrapper">',
       '#suffix' => '</div>',
     );
-    $form['#attached']['css'] = array(
-      drupal_get_path('module', 'block') . '/css/block.admin.css',
-    );
+    $form['#attached']['library'][] = 'block/drupal.block.admin';
     return $form;
   }
 
diff --git a/core/modules/book/book.libraries.yml b/core/modules/book/book.libraries.yml
index fe4209e..2382e75 100644
--- a/core/modules/book/book.libraries.yml
+++ b/core/modules/book/book.libraries.yml
@@ -6,3 +6,15 @@ drupal.book:
     - core/jquery
     - core/drupal
     - core/drupal.form
+
+navigation:
+  version: VERSION
+  css:
+    theme:
+      css/book.theme.css: {}
+
+admin:
+  version: VERSION
+  css:
+    theme:
+      css/book.admin.css: {}
diff --git a/core/modules/book/book.module b/core/modules/book/book.module
index 7f7830c..94ed03e 100644
--- a/core/modules/book/book.module
+++ b/core/modules/book/book.module
@@ -163,7 +163,9 @@ function book_form_node_form_alter(&$form, FormStateInterface $form_state, $form
       '#submit' => array('book_pick_book_nojs_submit'),
       '#weight' => 20,
       '#attached' => array(
-        'css' => array(drupal_get_path('module', 'book') . '/css/book.admin.css'),
+        'library' => [
+          'book/admin',
+        ],
       ),
     );
     $form['#entity_builders'][] = 'book_node_builder';
@@ -240,9 +242,9 @@ function book_node_view(array &$build, EntityInterface $node, EntityViewDisplayI
         '#markup' => drupal_render($book_navigation),
         '#weight' => 100,
         '#attached' => array(
-          'css' => array(
-            drupal_get_path('module', 'book') . '/css/book.theme.css',
-          ),
+          'library' => [
+            'book/navigation',
+          ],
         ),
         // The book navigation is a listing of Node entities, so associate its
         // list cache tag for correct invalidation.
diff --git a/core/modules/color/color.libraries.yml b/core/modules/color/color.libraries.yml
index c6a2db9..b2eb8d6 100644
--- a/core/modules/color/color.libraries.yml
+++ b/core/modules/color/color.libraries.yml
@@ -18,3 +18,10 @@ drupal.color.preview:
     - core/drupal
     - core/drupalSettings
     - core/jquery.once
+
+admin:
+  version: VERSION
+  css:
+    theme:
+      css/color.admin.css: {}
+
diff --git a/core/modules/color/color.module b/core/modules/color/color.module
index 138385c..9960e04 100644
--- a/core/modules/color/color.module
+++ b/core/modules/color/color.module
@@ -240,10 +240,7 @@ function color_scheme_form($complete_form, FormStateInterface $form_state, $them
     '#attached' => array(
       'library' => array(
         'color/drupal.color',
-      ),
-      // Add custom CSS.
-      'css' => array(
-        $base . '/css/color.admin.css' => array(),
+        'color/admin',
       ),
       // Add custom JavaScript.
       'js' => array(
@@ -297,15 +294,10 @@ function template_preprocess_color_scheme_form(&$variables) {
 
   $theme = $form['theme']['#value'];
   $info = $form['info']['#value'];
-  $path = drupal_get_path('theme', $theme) . '/';
 
-  if (isset($info['preview_css'])) {
-    $preview_css_path = $path . $info['preview_css'];
-    $form['scheme']['#attached']['css'][$preview_css_path] = array();
+  if (isset($info['preview_library'])) {
+    $form['scheme']['#attached']['library'][] = $info['preview_library'];
   }
-  $preview_js_path = isset($info['preview_js']) ? $path . $info['preview_js'] : drupal_get_path('module', 'color') . '/' . 'preview.js';
-  // Add the JS at a weight below color.js.
-  $form['scheme']['#attached']['js'][$preview_js_path] = array('weight' => -1);
 
   // Attempt to load preview HTML if the theme provides it.
   $preview_html_path = \Drupal::root() . '/' . (isset($info['preview_html']) ? drupal_get_path('theme', $theme) . '/' . $info['preview_html'] : drupal_get_path('module', 'color') . '/preview.html');
diff --git a/core/modules/comment/comment.libraries.yml b/core/modules/comment/comment.libraries.yml
index ac1ba10..46c98e7 100644
--- a/core/modules/comment/comment.libraries.yml
+++ b/core/modules/comment/comment.libraries.yml
@@ -7,6 +7,12 @@ drupal.comment:
     - core/drupal
     - core/drupal.form
 
+drupal.comment.threaded:
+  version: VERSION
+  css:
+    theme:
+      css/comment.theme.css: {}
+
 drupal.comment-by-viewer:
   version: VERSION
   js:
diff --git a/core/modules/comment/src/CommentViewBuilder.php b/core/modules/comment/src/CommentViewBuilder.php
index cd9a5b9..0e453ae 100644
--- a/core/modules/comment/src/CommentViewBuilder.php
+++ b/core/modules/comment/src/CommentViewBuilder.php
@@ -315,7 +315,7 @@ protected function alterBuild(array &$build, EntityInterface $comment, EntityVie
 
       // Add indentation div or close open divs as needed.
       if ($is_threaded) {
-        $build['#attached']['css'][] = drupal_get_path('module', 'comment') . '/css/comment.theme.css';
+        $build['#attached']['library'][] = 'comment/drupal.comment.threaded';
         $prefix .= $comment->divs <= 0 ? str_repeat('</div>', abs($comment->divs)) : "\n" . '<div class="indented">';
       }
 
diff --git a/core/modules/config/src/Controller/ConfigController.php b/core/modules/config/src/Controller/ConfigController.php
index 8eb713f..dc56910 100644
--- a/core/modules/config/src/Controller/ConfigController.php
+++ b/core/modules/config/src/Controller/ConfigController.php
@@ -138,7 +138,7 @@ public function diff($source_name, $target_name = NULL, $collection = NULL) {
 
     $build['#title'] = t('View changes of @config_file', array('@config_file' => $source_name));
     // Add the CSS for the inline diff.
-    $build['#attached']['css'][] = drupal_get_path('module', 'system') . '/css/system.diff.css';
+    $build['#attached']['library'][] = 'system/diff';
 
     $build['diff'] = array(
       '#type' => 'table',
diff --git a/core/modules/content_translation/content_translation.admin.inc b/core/modules/content_translation/content_translation.admin.inc
index 231dbc6..b1d1a2a 100644
--- a/core/modules/content_translation/content_translation.admin.inc
+++ b/core/modules/content_translation/content_translation.admin.inc
@@ -79,7 +79,6 @@ function _content_translation_form_language_content_settings_form_alter(array &$
   $form['entity_types']['#default_value'] = $default;
 
   $form['#attached']['library'][] = 'content_translation/drupal.content_translation.admin';
-  $form['#attached']['js'][] = array('data' => drupal_get_path('module', 'content_translation') . '/content_translation.admin.js', 'type' => 'file');
 
   $dependent_options_settings = array();
   $entity_manager = Drupal::entityManager();
diff --git a/core/modules/editor/tests/modules/src/Plugin/Editor/UnicornEditor.php b/core/modules/editor/tests/modules/src/Plugin/Editor/UnicornEditor.php
index 6937fb2..fcc2c90 100644
--- a/core/modules/editor/tests/modules/src/Plugin/Editor/UnicornEditor.php
+++ b/core/modules/editor/tests/modules/src/Plugin/Editor/UnicornEditor.php
@@ -60,7 +60,7 @@ function getJSSettings(EditorEntity $editor) {
    */
   public function getLibraries(EditorEntity $editor) {
     return array(
-      'edit_test/unicorn',
+      'editor_test/unicorn',
     );
   }
 
diff --git a/core/modules/help/src/Controller/HelpController.php b/core/modules/help/src/Controller/HelpController.php
index 2de0a53..bd2f727 100644
--- a/core/modules/help/src/Controller/HelpController.php
+++ b/core/modules/help/src/Controller/HelpController.php
@@ -54,7 +54,7 @@ public static function create(ContainerInterface $container) {
   public function helpMain() {
     $output = array(
       '#attached' => array(
-        'css' => array(drupal_get_path('module', 'help') . '/css/help.module.css'),
+        'library' => ['help/help'],
       ),
       '#markup' => '<h2>' . $this->t('Help topics') . '</h2><p>' . $this->t('Help is available on the following items:') . '</p>' . $this->helpLinksAsList(),
     );
diff --git a/core/modules/image/src/Form/ImageEffectFormBase.php b/core/modules/image/src/Form/ImageEffectFormBase.php
index addbcf6..04516bf 100644
--- a/core/modules/image/src/Form/ImageEffectFormBase.php
+++ b/core/modules/image/src/Form/ImageEffectFormBase.php
@@ -69,7 +69,7 @@ public function buildForm(array $form, FormStateInterface $form_state, ImageStyl
       throw new NotFoundHttpException();
     }
 
-    $form['#attached']['css'][drupal_get_path('module', 'image') . '/css/image.admin.css'] = array();
+    $form['#attached']['library'][] = 'image/admin';
     $form['uuid'] = array(
       '#type' => 'value',
       '#value' => $this->imageEffect->getUuid(),
diff --git a/core/modules/image/src/Form/ImageStyleEditForm.php b/core/modules/image/src/Form/ImageStyleEditForm.php
index 4edd31c..b568e0d 100644
--- a/core/modules/image/src/Form/ImageStyleEditForm.php
+++ b/core/modules/image/src/Form/ImageStyleEditForm.php
@@ -58,7 +58,7 @@ public function form(array $form, FormStateInterface $form_state) {
     $user_input = $form_state->getUserInput();
     $form['#title'] = $this->t('Edit style %name', array('%name' => $this->entity->label()));
     $form['#tree'] = TRUE;
-    $form['#attached']['css'][drupal_get_path('module', 'image') . '/css/image.admin.css'] = array();
+    $form['#attached']['library'][] = 'image/admin';
 
     // Show the thumbnail preview.
     $preview_arguments = array('#theme' => 'image_style_preview', '#style' => $this->entity);
diff --git a/core/modules/image/src/Plugin/Field/FieldWidget/ImageWidget.php b/core/modules/image/src/Plugin/Field/FieldWidget/ImageWidget.php
index c0d9863..eb3a0b4 100644
--- a/core/modules/image/src/Plugin/Field/FieldWidget/ImageWidget.php
+++ b/core/modules/image/src/Plugin/Field/FieldWidget/ImageWidget.php
@@ -158,7 +158,7 @@ public static function process($element, FormStateInterface $form_state, $form)
     $item['fids'] = $element['fids']['#value'];
 
     $element['#theme'] = 'image_widget';
-    $element['#attached']['css'][] = drupal_get_path('module', 'image') . '/css/image.theme.css';
+    $element['#attached']['library'][] = 'image/form';
 
     // Add the image preview.
     if (!empty($element['#files']) && $element['#preview_image_style']) {
diff --git a/core/modules/locale/src/Form/TranslationStatusForm.php b/core/modules/locale/src/Form/TranslationStatusForm.php
index 3487589..c8e3017 100644
--- a/core/modules/locale/src/Form/TranslationStatusForm.php
+++ b/core/modules/locale/src/Form/TranslationStatusForm.php
@@ -167,7 +167,6 @@ public function buildForm(array $form, FormStateInterface $form_state) {
     );
 
     $form['#attached']['library'][] = 'locale/drupal.locale.admin';
-    $form['#attached']['css'] = array(drupal_get_path('module', 'locale') . '/css/locale.admin.css');
 
     $form['actions'] = array('#type' => 'actions');
     if ($languages_update) {
diff --git a/core/modules/node/node.libraries.yml b/core/modules/node/node.libraries.yml
index 231687e..8795628 100644
--- a/core/modules/node/node.libraries.yml
+++ b/core/modules/node/node.libraries.yml
@@ -1,5 +1,8 @@
 drupal.node:
   version: VERSION
+  css:
+    layout:
+      css/node.module.css: {}
   js:
     node.js: {}
   dependencies:
diff --git a/core/modules/search/search.libraries.yml b/core/modules/search/search.libraries.yml
index 624fc93..4c04600 100644
--- a/core/modules/search/search.libraries.yml
+++ b/core/modules/search/search.libraries.yml
@@ -3,3 +3,8 @@ drupal.search.results:
   css:
     theme:
       css/search.theme.css: {}
+
+admin:
+  css:
+    theme:
+      css/search.admin.css: {}
diff --git a/core/modules/search/src/SearchPageListBuilder.php b/core/modules/search/src/SearchPageListBuilder.php
index 93b87ef..25588be 100644
--- a/core/modules/search/src/SearchPageListBuilder.php
+++ b/core/modules/search/src/SearchPageListBuilder.php
@@ -254,9 +254,9 @@ public function buildForm(array $form, FormStateInterface $form_state) {
         'class' => array('container-inline'),
       ),
       '#attached' => array(
-        'css' => array(
-          drupal_get_path('module', 'search') . '/css/search.admin.css',
-        ),
+        'library' => [
+          'search/admin',
+        ],
       ),
     );
     // In order to prevent validation errors for the parent form, this cannot be
diff --git a/core/modules/simpletest/simpletest.module b/core/modules/simpletest/simpletest.module
index 98ffcf4..b736340 100644
--- a/core/modules/simpletest/simpletest.module
+++ b/core/modules/simpletest/simpletest.module
@@ -152,7 +152,7 @@ function simpletest_run_tests($test_list) {
     ),
     'finished' => '_simpletest_batch_finished',
     'progress_message' => '',
-    'css' => array(drupal_get_path('module', 'simpletest') . '/css/simpletest.module.css'),
+    'library' => array('simpletest/drupal.simpletest'),
     'init_message' => t('Processing test @num of @max - %test.', array('%test' => $info['name'], '@num' => '1', '@max' => count($test_list))),
   );
   batch_set($batch);
diff --git a/core/modules/simpletest/src/Form/SimpletestResultsForm.php b/core/modules/simpletest/src/Form/SimpletestResultsForm.php
index 7d39496..a127683 100644
--- a/core/modules/simpletest/src/Form/SimpletestResultsForm.php
+++ b/core/modules/simpletest/src/Form/SimpletestResultsForm.php
@@ -118,7 +118,7 @@ public function buildForm(array $form, FormStateInterface $form_state, $test_id
     }
 
     // Load all classes and include CSS.
-    $form['#attached']['css'][] = drupal_get_path('module', 'simpletest') . '/css/simpletest.module.css';
+    $form['#attached']['library'][] = 'simpletest/drupal.simpletest';
 
     // Keep track of which test cases passed or failed.
     $filter = array(
diff --git a/core/modules/system/system.libraries.yml b/core/modules/system/system.libraries.yml
index 61eb1b4..34c90dd 100644
--- a/core/modules/system/system.libraries.yml
+++ b/core/modules/system/system.libraries.yml
@@ -44,3 +44,9 @@ drupal.system.modules:
     - core/jquery
     - core/drupal
     - core/jquery.once
+
+diff:
+  version: VERSION
+  css:
+    component:
+      css/system.diff.css: {}
diff --git a/core/modules/system/tests/modules/ajax_forms_test/src/Form/AjaxFormsTestLazyLoadForm.php b/core/modules/system/tests/modules/ajax_forms_test/src/Form/AjaxFormsTestLazyLoadForm.php
index 96f5cd5..9ea17cd 100644
--- a/core/modules/system/tests/modules/ajax_forms_test/src/Form/AjaxFormsTestLazyLoadForm.php
+++ b/core/modules/system/tests/modules/ajax_forms_test/src/Form/AjaxFormsTestLazyLoadForm.php
@@ -57,18 +57,17 @@ public function buildForm(array $form, FormStateInterface $form_state) {
    */
   public function submitForm(array &$form, FormStateInterface $form_state) {
     if ($form_state->getValue('add_files')) {
-      $path = drupal_get_path('module', 'system');
       $attached = array(
         '#attached' => array(
-          'css' => array(
-            $path . '/css/system.admin.css' => array(),
-          ),
+          'library' => [
+            'system/admin',
+            'system/drupal.system',
+          ],
           'js' => array(
             0 => array(
               'type' => 'setting',
               'data' => array('ajax_forms_test_lazy_load_form_submit' => 'executed'),
             ),
-            $path . '/system.js' => array(),
           ),
         ),
       );
diff --git a/core/modules/views/includes/ajax.inc b/core/modules/views/includes/ajax.inc
index 16f4546..d59ce61 100644
--- a/core/modules/views/includes/ajax.inc
+++ b/core/modules/views/includes/ajax.inc
@@ -34,9 +34,6 @@ function views_ajax_form_wrapper($form_class, FormStateInterface &$form_state) {
 
   // These forms have the title built in, so set the title here:
   $title = $form_state->get('title') ?: '';
-  if (!$ajax && $title) {
-    $form['#attached']['css'][] = drupal_get_path('module', 'views_ui') . '/css/views_ui.admin.css';
-  }
 
   if ($ajax && (!$form_state->isExecuted() || $form_state->get('rerender'))) {
     // If the form didn't execute and we're using ajax, build up a
diff --git a/core/modules/views/tests/modules/views_test_data/views_test_data.views_execution.inc b/core/modules/views/tests/modules/views_test_data/views_test_data.views_execution.inc
index 1675be5..ade7ff1 100644
--- a/core/modules/views/tests/modules/views_test_data/views_test_data.views_execution.inc
+++ b/core/modules/views/tests/modules/views_test_data/views_test_data.views_execution.inc
@@ -47,9 +47,7 @@ function views_test_data_views_pre_render(ViewExecutable $view) {
   \Drupal::state()->set('views_hook_test_views_pre_render', TRUE);
 
   if (isset($view) && ($view->storage->id() == 'test_cache_header_storage')) {
-    $path = drupal_get_path('module', 'views_test_data');
-    $view->element['#attached']['js'][] = "$path/views_cache.test.js";
-    $view->element['#attached']['css'][] = "$path/views_cache.test.css";
+    $view->element['#attached']['library'][] = 'views_test_data/test';
     $view->build_info['pre_render_called'] = TRUE;
   }
 
diff --git a/core/modules/views_ui/src/ViewAddForm.php b/core/modules/views_ui/src/ViewAddForm.php
index 84bb713..d4c9410 100644
--- a/core/modules/views_ui/src/ViewAddForm.php
+++ b/core/modules/views_ui/src/ViewAddForm.php
@@ -55,8 +55,7 @@ protected function prepareEntity() {
    * {@inheritdoc}
    */
   public function form(array $form, FormStateInterface $form_state) {
-    $form['#attached']['css'] = static::getAdminCSS();
-    $form['#attached']['js'][] = drupal_get_path('module', 'views_ui') . '/js/views-admin.js';
+    $form['#attached']['library'][] = 'views_ui/admin.styling';
     $form['#attributes']['class'] = array('views-admin');
 
     $form['name'] = array(
diff --git a/core/modules/views_ui/src/ViewEditForm.php b/core/modules/views_ui/src/ViewEditForm.php
index 8b1e4a2..6ec6aac 100644
--- a/core/modules/views_ui/src/ViewEditForm.php
+++ b/core/modules/views_ui/src/ViewEditForm.php
@@ -107,8 +107,7 @@ public function form(array $form, FormStateInterface $form_state) {
     $form['#attached']['library'][] = 'core/drupal.states';
     $form['#attached']['library'][] = 'core/drupal.tabledrag';
     $form['#attached']['library'][] = 'views_ui/views_ui.admin';
-
-    $form['#attached']['css'] = static::getAdminCSS();
+    $form['#attached']['library'][] = 'views_ui/admin.styling';
 
     $form['#attached']['js'][] = array(
       'data' => array('views' => array('ajax' => array(
diff --git a/core/modules/views_ui/src/ViewFormBase.php b/core/modules/views_ui/src/ViewFormBase.php
index 7747078..0429918 100644
--- a/core/modules/views_ui/src/ViewFormBase.php
+++ b/core/modules/views_ui/src/ViewFormBase.php
@@ -77,27 +77,6 @@ protected function prepareEntity() {
   }
 
   /**
-   * Creates an array of Views admin CSS for adding or attaching.
-   *
-   * This returns an array of arrays. Each array represents a single
-   * file. The array format is:
-   * - file: The fully qualified name of the file to send to _drupal_add_css
-   * - options: An array of options to pass to _drupal_add_css.
-   */
-  public static function getAdminCSS() {
-    $module_path = drupal_get_path('module', 'views_ui');
-    $list = array();
-    $list[$module_path . '/css/views_ui.admin.css'] = array();
-    $list[$module_path . '/css/views_ui.admin.theme.css'] = array();
-
-    if (\Drupal::moduleHandler()->moduleExists('contextual')) {
-      $list[$module_path . '/css/views_ui.contextual.css'] = array();
-    }
-
-    return $list;
-  }
-
-  /**
    * Adds tabs for navigating across Displays when editing a View.
    *
    * This function can be called from hook_menu_local_tasks_alter() to implement
diff --git a/core/modules/views_ui/src/ViewListBuilder.php b/core/modules/views_ui/src/ViewListBuilder.php
index b29d9b0..10e0d7e 100644
--- a/core/modules/views_ui/src/ViewListBuilder.php
+++ b/core/modules/views_ui/src/ViewListBuilder.php
@@ -174,7 +174,6 @@ public function render() {
     $list['#type'] = 'container';
     $list['#attributes']['id'] = 'views-entity-list';
 
-    $list['#attached']['css'] = ViewFormBase::getAdminCSS();
     $list['#attached']['library'][] = 'core/drupal.ajax';
     $list['#attached']['library'][] = 'views_ui/views_ui.listing';
 
diff --git a/core/modules/views_ui/views_ui.libraries.yml b/core/modules/views_ui/views_ui.libraries.yml
index d809b10..112aa03 100644
--- a/core/modules/views_ui/views_ui.libraries.yml
+++ b/core/modules/views_ui/views_ui.libraries.yml
@@ -13,6 +13,7 @@ views_ui.admin:
     - core/drupal.ajax
     - core/drupal.dropbutton
     - views/views.ajax
+    - views_ui/admin.styling
 
 views_ui.listing:
   version: VERSION
@@ -22,3 +23,13 @@ views_ui.listing:
     - core/jquery
     - core/drupal
     - core/jquery.once
+    - views_ui/admin.styling
+
+admin.styling:
+  version: VERSION
+  css:
+    component:
+      css/views_ui.admin.css: {}
+    theme:
+      css/views_ui.admin.theme.css: {}
+      css/views_ui.contextual.css: {}
diff --git a/core/themes/bartik/bartik.libraries.yml b/core/themes/bartik/bartik.libraries.yml
index 6866d6b..dd34f5d 100644
--- a/core/themes/bartik/bartik.libraries.yml
+++ b/core/themes/bartik/bartik.libraries.yml
@@ -7,6 +7,16 @@ base:
       css/colors.css: {}
       css/print.css: { media: print }
 
+color.preview:
+  version: VERSION
+  css:
+    theme:
+      color/preview.css: {}
+  js:
+    color/preview.js: {}
+  dependencies:
+    - color/drupal.color
+
 maintenance_page:
   version: VERSION
   css:
diff --git a/core/themes/bartik/color/color.inc b/core/themes/bartik/color/color.inc
index 251c0fc..25e630d 100644
--- a/core/themes/bartik/color/color.inc
+++ b/core/themes/bartik/color/color.inc
@@ -120,7 +120,6 @@
   ),
 
   // Preview files.
-  'preview_css' => 'color/preview.css',
-  'preview_js' => 'color/preview.js',
+  'preview_library' => 'bartik/color.preview',
   'preview_html' => 'color/preview.html',
 );
diff --git a/core/themes/seven/seven.theme b/core/themes/seven/seven.theme
index 76ddfcc..c52b967 100644
--- a/core/themes/seven/seven.theme
+++ b/core/themes/seven/seven.theme
@@ -176,7 +176,6 @@ function seven_form_node_form_alter(&$form, FormStateInterface $form_state) {
   $node = $form_state->getFormObject()->getEntity();
 
   $form['#theme'] = array('node_edit_form');
-  $form['#attached']['css'][] = drupal_get_path('module', 'node') . '/css/node.module.css';
 
   $form['advanced']['#type'] = 'container';
   $is_new = !$node->isNew() ? format_date($node->getChangedTime(), 'short') : t('Not saved yet');
