diff --git a/core/includes/ajax.inc b/core/includes/ajax.inc
index c67e981..c84446d 100644
--- a/core/includes/ajax.inc
+++ b/core/includes/ajax.inc
@@ -411,7 +411,7 @@ function ajax_base_page_theme() {
     // to see the default theme, token validation isn't required for that, and
     // bypassing it allows most use-cases to work even when accessed from the
     // page cache.
-    if ($theme === variable_get('theme_default', 'stark') || drupal_valid_token($token, $theme)) {
+    if ($theme === config('system.theme')->get('default') || drupal_valid_token($token, $theme)) {
       return $theme;
     }
   }
diff --git a/core/includes/theme.inc b/core/includes/theme.inc
index 35b9cd3..8fe4e35 100644
--- a/core/includes/theme.inc
+++ b/core/includes/theme.inc
@@ -90,7 +90,7 @@ function drupal_theme_initialize() {
 
   // Only select the user selected theme if it is available in the
   // list of themes that can be accessed.
-  $theme = !empty($user->theme) && drupal_theme_access($user->theme) ? $user->theme : variable_get('theme_default', 'stark');
+  $theme = !empty($user->theme) && drupal_theme_access($user->theme) ? $user->theme : config('system.theme')->get('default');
 
   // Allow modules to override the theme. Validation has already been performed
   // inside menu_get_custom_theme(), so we do not need to check it again here.
@@ -1528,7 +1528,7 @@ function theme_enable($theme_list) {
  */
 function theme_disable($theme_list) {
   // Don't disable the default theme.
-  if ($pos = array_search(variable_get('theme_default', 'stark'), $theme_list) !== FALSE) {
+  if ($pos = array_search(config('system.theme')->get('default'), $theme_list) !== FALSE) {
     unset($theme_list[$pos]);
     if (empty($theme_list)) {
       return;
diff --git a/core/includes/theme.maintenance.inc b/core/includes/theme.maintenance.inc
index 4b3e80c..8a8e972 100644
--- a/core/includes/theme.maintenance.inc
+++ b/core/includes/theme.maintenance.inc
@@ -50,7 +50,7 @@ function _drupal_maintenance_theme() {
     //   Stark otherwise. Since there is no low-level access to configuration
     //   currently, we only consult settings.php and fall back to Bartik
     //   otherwise, as it looks generic enough and way more user-friendly.
-    $custom_theme = variable_get('maintenance_theme', variable_get('theme_default', 'bartik'));
+    $custom_theme = variable_get('maintenance_theme', config('system.theme')->get('default'));
   }
 
   // Ensure that system.module is loaded.
diff --git a/core/modules/block/block.admin.inc b/core/modules/block/block.admin.inc
index f9fa425..777a46e 100644
--- a/core/modules/block/block.admin.inc
+++ b/core/modules/block/block.admin.inc
@@ -311,7 +311,7 @@ function block_admin_configure($form, &$form_state, $module, $delta) {
     '#tree' => TRUE,
   );
 
-  $theme_default = variable_get('theme_default', 'stark');
+  $theme_default = config('system.theme')->get('default');
   $admin_theme = config('system.theme')->get('admin');
   foreach (list_themes() as $key => $theme) {
     // Only display enabled themes
diff --git a/core/modules/block/block.module b/core/modules/block/block.module
index 26bcb25..cc19be3 100644
--- a/core/modules/block/block.module
+++ b/core/modules/block/block.module
@@ -63,7 +63,7 @@ function block_help($path, $arg) {
       return '<p>' . t('Use this page to create a new custom block.') . '</p>';
   }
   if ($arg[0] == 'admin' && $arg[1] == 'structure' && $arg['2'] == 'block' && (empty($arg[3]) || $arg[3] == 'list')) {
-    $demo_theme = !empty($arg[4]) ? $arg[4] : variable_get('theme_default', 'stark');
+    $demo_theme = !empty($arg[4]) ? $arg[4] : config('system.theme')->get('default');
     $themes = list_themes();
     $output = '<p>' . t('This page provides a drag-and-drop interface for assigning a block to a region, and for controlling the order of blocks within regions. Since not all themes implement the same regions, or display regions in the same way, blocks are positioned on a per-theme basis. Remember that your changes will not be saved until you click the <em>Save blocks</em> button at the bottom of the page. Click the <em>configure</em> link next to each block to configure its specific title and visibility settings.') . '</p>';
     $output .= '<p>' . l(t('Demonstrate block regions (@theme)', array('@theme' => $themes[$demo_theme]->info['name'])), 'admin/structure/block/demo/' . $demo_theme) . '</p>';
@@ -103,7 +103,7 @@ function block_permission() {
  * Implements hook_menu().
  */
 function block_menu() {
-  $default_theme = variable_get('theme_default', 'stark');
+  $default_theme = config('system.theme')->get('default');
   $items['admin/structure/block'] = array(
     'title' => 'Blocks',
     'description' => 'Configure what block content appears in your site\'s sidebars and other regions.',
@@ -306,7 +306,7 @@ function block_page_build(&$page) {
       $page['page_top']['backlink'] = array(
         '#type' => 'link',
         '#title' => t('Exit block region demonstration'),
-        '#href' => 'admin/structure/block' . (variable_get('theme_default', 'stark') == $theme ? '' : '/list/' . $theme),
+        '#href' => 'admin/structure/block' . (config('system.theme')->get('default') == $theme ? '' : '/list/' . $theme),
         // Add the "overlay-restore" class to indicate this link should restore
         // the context in which the region demonstration page was opened.
         '#options' => array('attributes' => array('class' => array('block-demo-backlink', 'overlay-restore'))),
@@ -675,7 +675,7 @@ function block_theme_initialize($theme) {
   // Initialize theme's blocks if none already registered.
   $has_blocks = (bool) db_query_range('SELECT 1 FROM {block} WHERE theme = :theme', 0, 1, array(':theme' => $theme))->fetchField();
   if (!$has_blocks) {
-    $default_theme = variable_get('theme_default', 'stark');
+    $default_theme = config('system.theme')->get('default');
     // Apply only to new theme's visible regions.
     $regions = system_region_list($theme, REGIONS_VISIBLE);
     $result = db_query("SELECT * FROM {block} WHERE theme = :theme", array(':theme' => $default_theme), array('fetch' => PDO::FETCH_ASSOC));
diff --git a/core/modules/block/lib/Drupal/block/Tests/BlockHiddenRegionTest.php b/core/modules/block/lib/Drupal/block/Tests/BlockHiddenRegionTest.php
index af5acb9..bad0a97 100644
--- a/core/modules/block/lib/Drupal/block/Tests/BlockHiddenRegionTest.php
+++ b/core/modules/block/lib/Drupal/block/Tests/BlockHiddenRegionTest.php
@@ -37,7 +37,7 @@ function setUp() {
       ->key(array(
         'module' => 'search',
         'delta' => 'form',
-        'theme' => variable_get('theme_default', 'stark'),
+        'theme' => config('system.theme')->get('default'),
       ))
       ->fields(array(
         'status' => 1,
@@ -65,6 +65,9 @@ function testBlockNotInHiddenRegion() {
     $theme = 'block_test_theme';
     theme_enable(array($theme));
     variable_set('theme_default', $theme);
+    config('system.theme')
+      ->set('default', $theme)
+      ->save();
     menu_router_rebuild();
 
     // Ensure that "block_test_theme" is set as the default theme.
diff --git a/core/modules/block/lib/Drupal/block/Tests/BlockInvalidRegionTest.php b/core/modules/block/lib/Drupal/block/Tests/BlockInvalidRegionTest.php
index f372c13..6b8a527 100644
--- a/core/modules/block/lib/Drupal/block/Tests/BlockInvalidRegionTest.php
+++ b/core/modules/block/lib/Drupal/block/Tests/BlockInvalidRegionTest.php
@@ -45,7 +45,7 @@ function testBlockInInvalidRegion() {
       ->key(array(
         'module' => 'block_test',
         'delta' => 'test_html_id',
-        'theme' => variable_get('theme_default', 'stark'),
+        'theme' => config('system.theme')->get('default'),
       ))
       ->fields(array(
         'status' => 1,
@@ -69,7 +69,7 @@ function testBlockInInvalidRegion() {
       ->key(array(
         'module' => 'block_test',
         'delta' => 'test_html_id',
-        'theme' => variable_get('theme_default', 'stark'),
+        'theme' => config('system.theme')->get('default'),
       ))
       ->fields(array(
         'region' => 'invalid_region',
diff --git a/core/modules/block/lib/Drupal/block/Tests/NewDefaultThemeBlocksTest.php b/core/modules/block/lib/Drupal/block/Tests/NewDefaultThemeBlocksTest.php
index 85247b5..470f700 100644
--- a/core/modules/block/lib/Drupal/block/Tests/NewDefaultThemeBlocksTest.php
+++ b/core/modules/block/lib/Drupal/block/Tests/NewDefaultThemeBlocksTest.php
@@ -39,7 +39,7 @@ function testNewDefaultThemeBlocks() {
 
     // Ensure no other theme's blocks are in the block table yet.
     $themes = array();
-    $themes['default'] = variable_get('theme_default', 'stark');
+    $themes['default'] = config('system.theme')->get('default');
     if ($admin_theme = config('system.theme')->get('admin')) {
       $themes['admin'] = $admin_theme;
     }
@@ -59,7 +59,9 @@ function testNewDefaultThemeBlocks() {
     // the default theme had.
     $new_theme = 'bartik';
     theme_enable(array($new_theme));
-    variable_set('theme_default', $new_theme);
+    config('system.theme')
+      ->set('default', $new_theme)
+      ->save();
     $result = db_query('SELECT * FROM {block} WHERE theme = :theme', array(':theme' => $new_theme));
     foreach ($result as $block) {
       unset($block->theme, $block->bid);
diff --git a/core/modules/color/lib/Drupal/color/Tests/ColorTest.php b/core/modules/color/lib/Drupal/color/Tests/ColorTest.php
index d1f3b1e..8f41fe4 100644
--- a/core/modules/color/lib/Drupal/color/Tests/ColorTest.php
+++ b/core/modules/color/lib/Drupal/color/Tests/ColorTest.php
@@ -76,7 +76,9 @@ function testColor() {
    * Tests the Color module functionality using the given theme.
    */
   function _testColor($theme, $test_values) {
-    variable_set('theme_default', $theme);
+    config('system.theme')
+      ->set('default', $theme)
+      ->save();
     $settings_path = 'admin/appearance/settings/' . $theme;
 
     $this->drupalLogin($this->big_user);
@@ -122,7 +124,9 @@ function _testColor($theme, $test_values) {
    * Tests whether the provided color is valid.
    */
   function testValidColor() {
-    variable_set('theme_default', 'bartik');
+    config('system.theme')
+      ->set('default', 'bartik')
+      ->save();
     $settings_path = 'admin/appearance/settings/bartik';
 
     $this->drupalLogin($this->big_user);
diff --git a/core/modules/comment/lib/Drupal/comment/Tests/CommentLinksTest.php b/core/modules/comment/lib/Drupal/comment/Tests/CommentLinksTest.php
index d049aa3..4b6b99b 100644
--- a/core/modules/comment/lib/Drupal/comment/Tests/CommentLinksTest.php
+++ b/core/modules/comment/lib/Drupal/comment/Tests/CommentLinksTest.php
@@ -35,7 +35,9 @@ public static function getInfo() {
   function testCommentLinks() {
     // Bartik theme alters comment links, so use a different theme.
     theme_enable(array('stark'));
-    variable_set('theme_default', 'stark');
+    config('system.theme')
+      ->set('default', 'stark')
+      ->save();
 
     // Remove additional user permissions from $this->web_user added by setUp(),
     // since this test is limited to anonymous and authenticated roles only.
diff --git a/core/modules/shortcut/lib/Drupal/shortcut/Tests/ShortcutLinksTest.php b/core/modules/shortcut/lib/Drupal/shortcut/Tests/ShortcutLinksTest.php
index cd45303..60a9760 100644
--- a/core/modules/shortcut/lib/Drupal/shortcut/Tests/ShortcutLinksTest.php
+++ b/core/modules/shortcut/lib/Drupal/shortcut/Tests/ShortcutLinksTest.php
@@ -122,7 +122,9 @@ function testShortcutLinkDelete() {
    */
   function testNoShortcutLink() {
     // Change to a theme that displays shortcuts.
-    variable_set('theme_default', 'seven');
+    config('system.theme')
+      ->set('default', 'seven')
+      ->save();
 
     $this->drupalGet('page-that-does-not-exist');
     $this->assertNoRaw('add-shortcut', 'Add to shortcuts link was not shown on a page not found.');
diff --git a/core/modules/statistics/lib/Drupal/statistics/Tests/StatisticsReportsTest.php b/core/modules/statistics/lib/Drupal/statistics/Tests/StatisticsReportsTest.php
index 80e6c38..90fce80 100644
--- a/core/modules/statistics/lib/Drupal/statistics/Tests/StatisticsReportsTest.php
+++ b/core/modules/statistics/lib/Drupal/statistics/Tests/StatisticsReportsTest.php
@@ -83,7 +83,7 @@ function testPopularContentBlock() {
 
     // Configure and save the block.
     $block = block_load('statistics', 'popular');
-    $block->theme = variable_get('theme_default', 'stark');
+    $block->theme = config('system.theme')->get('default');
     $block->status = 1;
     $block->pages = '';
     $block->region = 'sidebar_first';
diff --git a/core/modules/system/lib/Drupal/system/Tests/Ajax/FrameworkTest.php b/core/modules/system/lib/Drupal/system/Tests/Ajax/FrameworkTest.php
index e7aa0e0..f8944f9 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Ajax/FrameworkTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Ajax/FrameworkTest.php
@@ -157,7 +157,9 @@ function testLazyLoadOverriddenCSS() {
     // The test theme overrides system.base.css without an implementation,
     // thereby removing it.
     theme_enable(array('test_theme'));
-    variable_set('theme_default', 'test_theme');
+    config('system.theme')
+      ->set('default', 'test_theme')
+      ->save();
 
     // This gets the form, and emulates an Ajax submission on it, including
     // adding markup to the HEAD and BODY for any lazy loaded JS/CSS files.
diff --git a/core/modules/system/lib/Drupal/system/Tests/Batch/PageTest.php b/core/modules/system/lib/Drupal/system/Tests/Batch/PageTest.php
index 97593f2..be6bcef 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Batch/PageTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Batch/PageTest.php
@@ -35,7 +35,9 @@ public static function getInfo() {
   function testBatchProgressPageTheme() {
     // Make sure that the page which starts the batch (an administrative page)
     // is using a different theme than would normally be used by the batch API.
-    variable_set('theme_default', 'bartik');
+    config('system.theme')
+      ->set('default', 'bartik')
+      ->save();
     theme_enable(array('seven'));
     config('system.theme')->set('admin', 'seven')->save();
     // Log in as an administrator who can see the administrative theme.
diff --git a/core/modules/system/lib/Drupal/system/Tests/Menu/RouterTest.php b/core/modules/system/lib/Drupal/system/Tests/Menu/RouterTest.php
index 179ea93..9daabf4 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Menu/RouterTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Menu/RouterTest.php
@@ -37,7 +37,9 @@ function setUp() {
     // Make the tests below more robust by explicitly setting the default theme
     // and administrative theme that they expect.
     theme_enable(array('bartik'));
-    variable_set('theme_default', 'bartik');
+    config('system.theme')
+      ->set('default', 'bartik')
+      ->save();
     config('system.theme')->set('admin', 'seven')->save();
     theme_disable(array('stark'));
 
diff --git a/core/modules/system/lib/Drupal/system/Tests/System/ThemeTest.php b/core/modules/system/lib/Drupal/system/Tests/System/ThemeTest.php
index 111e6b7..9662649 100644
--- a/core/modules/system/lib/Drupal/system/Tests/System/ThemeTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/System/ThemeTest.php
@@ -206,7 +206,9 @@ function testAdministrationTheme() {
     $this->assertRaw('core/themes/stark', 'Site default theme used on the add content page.');
 
     // Reset to the default theme settings.
-    variable_set('theme_default', 'bartik');
+    config('system.theme')
+      ->set('default', 'bartik')
+      ->save();
     $edit = array(
       'admin_theme' => '0',
       'node_admin_theme' => FALSE,
@@ -228,7 +230,7 @@ function testSwitchDefaultTheme() {
     theme_enable(array('bartik'));
     $this->drupalGet('admin/appearance');
     $this->clickLink(t('Set default'));
-    $this->assertEqual(variable_get('theme_default', ''), 'bartik');
+    $this->assertEqual(config('system.theme')->get('default'), 'bartik');
 
     // Test the default theme on the secondary links (blocks admin page).
     $this->drupalGet('admin/structure/block');
diff --git a/core/modules/system/lib/Drupal/system/Tests/Theme/EntityFilteringThemeTest.php b/core/modules/system/lib/Drupal/system/Tests/Theme/EntityFilteringThemeTest.php
index 27f3e6a..3545553 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Theme/EntityFilteringThemeTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Theme/EntityFilteringThemeTest.php
@@ -130,7 +130,9 @@ function testThemedEntity() {
 
     // Check each path in all available themes.
     foreach ($this->themes as $theme) {
-      variable_set('theme_default', $theme);
+      config('system.theme')
+        ->set('default', $theme)
+        ->save();
       foreach ($paths as $path) {
         $this->drupalGet($path);
         $this->assertResponse(200);
diff --git a/core/modules/system/lib/Drupal/system/Tests/Theme/ThemeInfoStylesTest.php b/core/modules/system/lib/Drupal/system/Tests/Theme/ThemeInfoStylesTest.php
index c2b6c43..54ee1d2 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Theme/ThemeInfoStylesTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Theme/ThemeInfoStylesTest.php
@@ -34,7 +34,9 @@ public static function getInfo() {
    */
   function testStylesheets() {
     theme_enable(array('test_basetheme', 'test_subtheme'));
-    variable_set('theme_default', 'test_subtheme');
+    config('system.theme')
+      ->set('default', 'test_subtheme')
+      ->save();
 
     $base = drupal_get_path('theme', 'test_basetheme');
     // Unlike test_basetheme (and the original module CSS), the subtheme decides
diff --git a/core/modules/system/lib/Drupal/system/Tests/Theme/ThemeTest.php b/core/modules/system/lib/Drupal/system/Tests/Theme/ThemeTest.php
index 5267300..6c7feb7 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Theme/ThemeTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Theme/ThemeTest.php
@@ -132,7 +132,9 @@ function testCSSOverride() {
    * Ensures a themes template is overrideable based on the 'template' filename.
    */
   function testTemplateOverride() {
-    variable_set('theme_default', 'test_theme');
+    config('system.theme')
+      ->set('default', 'test_theme')
+      ->save();
     $this->drupalGet('theme-test/template-test');
     $this->assertText('Success: Template overridden.', 'Template overridden by defined \'template\' filename.');
   }
diff --git a/core/modules/system/lib/Drupal/system/Tests/Theme/ThemeTestTwig.php b/core/modules/system/lib/Drupal/system/Tests/Theme/ThemeTestTwig.php
index 6a9d988..82444d1 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Theme/ThemeTestTwig.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Theme/ThemeTestTwig.php
@@ -38,7 +38,9 @@ function setUp() {
    * Ensures a themes template is overrideable based on the 'template' filename.
    */
   function testTemplateOverride() {
-    variable_set('theme_default', 'test_theme_twig');
+    config('system.theme')
+      ->set('default', 'test_theme_twig')
+      ->save();
     $this->drupalGet('theme-test/template-test');
     $this->assertText('Success: Template overridden.', t('Template overridden by defined \'template\' filename.'));
   }
diff --git a/core/modules/system/system.admin.inc b/core/modules/system/system.admin.inc
index a5194f7..6b11422 100644
--- a/core/modules/system/system.admin.inc
+++ b/core/modules/system/system.admin.inc
@@ -118,7 +118,7 @@ function system_themes_page() {
   $themes = system_rebuild_theme_data();
   uasort($themes, 'system_sort_modules_by_info_name');
 
-  $theme_default = variable_get('theme_default', 'stark');
+  $theme_default = config('system.theme')->get('default');
   $theme_groups  = array();
   $admin_theme = config('system.theme')->get('admin');
 
@@ -309,7 +309,7 @@ function system_theme_disable() {
     // Check if the specified theme is one recognized by the system.
     if (!empty($themes[$theme])) {
       // Do not disable the default or admin theme.
-      if ($theme == variable_get('theme_default', 'stark') || $theme == config('system.theme')->get('admin')) {
+      if ($theme === config('system.theme')->get('default') || $theme === config('system.theme')->get('admin')) {
         drupal_set_message(t('%theme is the default theme and cannot be disabled.', array('%theme' => $themes[$theme]->info['name'])), 'error');
       }
       else {
@@ -342,6 +342,9 @@ function system_theme_default() {
       }
       // Set the default theme.
       variable_set('theme_default', $theme);
+      config('system.theme')
+        ->set('default', $theme)
+        ->save();
 
       // Rebuild the menu. This duplicates the menu_router_rebuild() in
       // theme_enable(). However, modules must know the current default theme in
diff --git a/core/modules/system/system.install b/core/modules/system/system.install
index 8c7d72a..1eae7d8 100644
--- a/core/modules/system/system.install
+++ b/core/modules/system/system.install
@@ -509,7 +509,9 @@ function system_requirements($phase) {
 function system_install() {
   // Enable the default theme. Can't use theme_enable() this early in
   // installation.
-  variable_set('theme_default', 'stark');
+  config('system.theme')
+    ->set('default', 'stark')
+    ->save();
   config_install_default_config('theme', 'stark');
 
   // Populate the cron key state variable.
@@ -2258,7 +2260,8 @@ function system_update_8040() {
  */
 function system_update_8041() {
   update_variables_to_config('system.theme', array(
-    'admin_theme' => 'admin'
+    'admin_theme' => 'admin',
+    'theme_default' => 'default'
   ));
 }
 
diff --git a/core/modules/system/tests/modules/design_test/design_test.module b/core/modules/system/tests/modules/design_test/design_test.module
index b8a1a80..1efec86 100644
--- a/core/modules/system/tests/modules/design_test/design_test.module
+++ b/core/modules/system/tests/modules/design_test/design_test.module
@@ -99,7 +99,7 @@ function design_test_menu_local_tasks_alter(&$data, $router_item, $root_path) {
     $actions = &$data['actions']['output'];
     // Determine the currently selected theme, if any.
     $selected_theme = drupal_container()->get('request')->query->get('theme');
-    $default_theme = variable_get('theme_default', 'stark');
+    $default_theme = config('system.theme')->get('default');
 
     // Expand all enabled themes into action links.
     $themes = list_themes();
diff --git a/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/ThemeTest.php b/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/ThemeTest.php
index 35a65ea..c14a562 100644
--- a/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/ThemeTest.php
+++ b/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/ThemeTest.php
@@ -25,7 +25,9 @@ function setUp() {
 
     // Make sure we are using distinct default and administrative themes for
     // the duration of these tests.
-    variable_set('theme_default', 'bartik');
+    config('system.theme')
+      ->set('default', 'bartik')
+      ->save();
     theme_enable(array('seven'));
     config('system.theme')->set('admin', 'seven')->save();
 
diff --git a/core/modules/user/lib/Drupal/user/Tests/UserBlocksTests.php b/core/modules/user/lib/Drupal/user/Tests/UserBlocksTests.php
index ed8ad5a..69921f6 100644
--- a/core/modules/user/lib/Drupal/user/Tests/UserBlocksTests.php
+++ b/core/modules/user/lib/Drupal/user/Tests/UserBlocksTests.php
@@ -37,7 +37,7 @@ function setUp() {
       ->key(array(
         'module' => 'user',
         'delta' => 'login',
-        'theme' => variable_get('theme_default', 'stark'),
+        'theme' => config('system.theme')->get('default'),
       ))
       ->fields(array(
         'status' => 1,
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/display/DisplayPluginBase.php b/core/modules/views/lib/Drupal/views/Plugin/views/display/DisplayPluginBase.php
index fa8207d..932203e 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/display/DisplayPluginBase.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/display/DisplayPluginBase.php
@@ -1714,7 +1714,7 @@ public function buildOptionsForm(&$form, &$form_state) {
           $this->theme = $theme;
         }
         elseif (empty($this->theme)) {
-          $this->theme = variable_get('theme_default', 'bartik');
+          $this->theme = config('system.theme')->get('default');
         }
 
         if (isset($GLOBALS['theme']) && $GLOBALS['theme'] == $this->theme) {
diff --git a/core/profiles/standard/standard.install b/core/profiles/standard/standard.install
index 0961820..7e2b276 100644
--- a/core/profiles/standard/standard.install
+++ b/core/profiles/standard/standard.install
@@ -71,7 +71,9 @@ function standard_install() {
   // Enable Bartik theme and set it as default theme instead of Stark.
   // @see system_install()
   $default_theme = 'bartik';
-  variable_set('theme_default', $default_theme);
+  config('system.theme')
+    ->set('default', $default_theme)
+    ->save();
   theme_enable(array($default_theme));
   theme_disable(array('stark'));
 
diff --git a/sites/default/default.settings.php b/sites/default/default.settings.php
index e60b2f5..d3a0b97 100644
--- a/sites/default/default.settings.php
+++ b/sites/default/default.settings.php
@@ -379,12 +379,12 @@
  *
  * The following overrides are examples:
  * - site_name: Defines the site's name.
- * - theme_default: Defines the default theme for this site.
+ * - $conf['system.site']['theme_default']: Defines the default theme for this site.
  * - anonymous: Defines the human-readable name of anonymous users.
  * Remove the leading hash signs to enable.
  */
 # $conf['system.site']['name'] = 'My Drupal site';
-# $conf['theme_default'] = 'stark';
+# $conf['system.theme']['default'] = 'stark';
 # $conf['anonymous'] = 'Visitor';
 
 /**
