diff --git a/core/modules/block/templates/block-admin-display-form.html.twig b/core/modules/block/templates/block-admin-display-form.html.twig
new file mode 100644
index 0000000..23d7064
--- /dev/null
+++ b/core/modules/block/templates/block-admin-display-form.html.twig
@@ -0,0 +1,57 @@
+{#
+/**
+ * @file
+ * Default theme implementation to configure blocks.
+ *
+ * Available variables:
+ * - block_regions: An array of regions. Keyed by name with the title as value.
+ * - block_listing: An array of blocks keyed by region and then delta.
+ * - form_submit: A renderable form submit button.
+ *
+ * Each block_listing[region] contains an array of blocks for that region.
+ *
+ * Each data in block_listing[region] contains:
+ * - data.region_title: Region title for the listed block.
+ * - data.block_title: Block title.
+ * - data.region_select: Drop-down menu for assigning a region.
+ * - data.weight_select: Drop-down menu for setting weights.
+ * - data.configure_link: Block configuration link.
+ * - data.delete_link: For deleting user added blocks.
+ *
+ * @see template_preprocess()
+ * @see template_preprocess_block_admin_display_form()
+ * @see theme_block_admin_display()
+ *
+ * @ingroup themeable
+ */
+#}
+<table id="blocks" class="sticky-enabled">
+  <thead>
+    <tr>
+      <th>{{ 'Block' | t }}</th>
+      <th>{{ 'Region' | t }}</th>
+      <th>{{ 'Weight' | t }}</th>
+      <th colspan="2">{{ 'Operations' | t }}</th>
+    </tr>
+  </thead>
+  <tbody>
+    {% for region, title in block_regions %}
+      <tr class="region-title region-title-{{ region }}">
+        <td colspan="5">{{ title }}</td>
+      </tr>
+      <tr class="region-message region-{{ region }}-message  {{ block_listing[region] ? 'region-empty' : 'region-populated' }}">
+        <td colspan="5"><em>{{ 'No blocks in this region' | t }}</em></td>
+      </tr>
+      {% for delta, data in block_listing[region] %}
+      <tr class="draggable {{ cycle(["even", "odd"], loop.index) }}{{ data.row_class ? data.row_class : '' }}">
+        <td class="block">{{ data.block_title }}</td>
+        <td>{{ data.region_select }}</td>
+        <td>{{ data.weight_select }}</td>
+        <td>{{ data.configure_link }}</td>
+        <td>{{ data.delete_link }}</td>
+      </tr>
+      {% endfor %}
+    {% endfor %}
+  </tbody>
+</table>
+{{ render_var(form_submit) }}
diff --git a/core/modules/block/templates/block-admin-display-form.tpl.php b/core/modules/block/templates/block-admin-display-form.tpl.php
deleted file mode 100644
index 4fa3e70..0000000
--- a/core/modules/block/templates/block-admin-display-form.tpl.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-/**
- * @file
- * Default theme implementation to configure blocks.
- *
- * Available variables:
- * - $block_regions: An array of regions. Keyed by name with the title as value.
- * - $block_listing: An array of blocks keyed by region and then delta.
- * - $form_submit: Form submit button.
- *
- * Each $block_listing[$region] contains an array of blocks for that region.
- *
- * Each $data in $block_listing[$region] contains:
- * - $data->region_title: Region title for the listed block.
- * - $data->block_title: Block title.
- * - $data->region_select: Drop-down menu for assigning a region.
- * - $data->weight_select: Drop-down menu for setting weights.
- * - $data->operations: Block operations.
- *
- * @see template_preprocess_block_admin_display_form()
- * @see theme_block_admin_display()
- *
- * @ingroup themeable
- */
-?>
-<table id="blocks" class="sticky-enabled">
-  <thead>
-    <tr>
-      <th><?php print t('Block'); ?></th>
-      <th><?php print t('Region'); ?></th>
-      <th><?php print t('Weight'); ?></th>
-      <th><?php print t('Operations'); ?></th>
-    </tr>
-  </thead>
-  <tbody>
-    <?php $row = 0; ?>
-    <?php foreach ($block_regions as $region => $title): ?>
-      <tr class="region-title region-title-<?php print $region?>">
-        <td colspan="5"><?php print $title; ?></td>
-      </tr>
-      <tr class="region-message region-<?php print $region?>-message <?php print empty($block_listing[$region]) ? 'region-empty' : 'region-populated'; ?>">
-        <td colspan="5"><em><?php print t('No blocks in this region'); ?></em></td>
-      </tr>
-      <?php foreach ($block_listing[$region] as $delta => $data): ?>
-      <tr class="draggable <?php print $row % 2 == 0 ? 'odd' : 'even'; ?><?php print $data->row_class ? ' ' . $data->row_class : ''; ?>">
-        <td class="block"><?php print $data->block_title; ?></td>
-        <td><?php print $data->region_select; ?></td>
-        <td><?php print $data->weight_select; ?></td>
-        <td><?php print $data->operations; ?></td>
-      </tr>
-      <?php $row++; ?>
-      <?php endforeach; ?>
-    <?php endforeach; ?>
-  </tbody>
-</table>
-
-<?php print $form_submit; ?>
diff --git a/core/modules/block/templates/block.html.twig b/core/modules/block/templates/block.html.twig
new file mode 100644
index 0000000..3da287c
--- /dev/null
+++ b/core/modules/block/templates/block.html.twig
@@ -0,0 +1,50 @@
+{#
+/**
+ * @file
+ * Default theme implementation to display a container.
+ *
+ * Available variables:
+ * - subject: Block subject.
+ * - contents: The contents of this block.
+ * - attributes: Remaining html attributes for the containing element.
+ * - attributes.id: A valid html ID and guaranteed unique.
+ * - attributes.class: Classes that can be used to style contextually through
+ *   CSS. These can be manipulated through from preprocess functions. The
+ *   default values can be one or more of the following:
+ *   - block: The current template type, i.e., "theming hook".
+ *   - block-[module]: The module generating the block. For example, the user
+ *     module is responsible for handling the default user navigation block. In
+ *     that case the class would be 'block-user'.
+ * - block.module: Module that generated the block.
+ * - block.delta: An ID for the block, unique within each module.
+ * - block.region: The block region embedding the current block.
+ *
+ * Helper variables:
+ * - block_id: Counter dependent on each block region.
+ * - id: Same output as $block_id but independent of any block region.
+ * - is_front: Flags true when presented in the front page.
+ * - logged_in: Flags true when the current user is a logged-in member.
+ * - is_admin: Flags true when the current user is an administrator.
+ *
+ * @TODO update include path once http://drupal.org/node/1777532 is resolved.
+ *
+ * @see template_preprocess()
+ * @see template_preprocess_container()
+ *
+ * @ingroup themeable
+ */
+ @todo: remove the ID since blocks can be added more than once on a page.
+ @todo: remove the div around content - and make sure this doesn't break any
+  CSS defined in modules.
+#}
+<div id="{{ attributes.id }}" class="{{ attributes.class }}"{{ attributes }}>
+  {{ title_prefix }}
+  {% if subject %}
+    <h2{{ title_attributes }}>{{ subject }}</h2>
+  {% endif %}
+  {{ title_suffix }}
+
+  <div class="content {{ content_attributes.class }}"{{ content_attributes }}>
+   {{ content }}
+  </div>
+</div>
diff --git a/core/modules/block/templates/block.tpl.php b/core/modules/block/templates/block.tpl.php
deleted file mode 100644
index 8c42131..0000000
--- a/core/modules/block/templates/block.tpl.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-
-/**
- * @file
- * Default theme implementation to display a block.
- *
- * Available variables:
- * - $block->subject: Block title.
- * - $content: Block content.
- * - $block->module: Module that generated the block.
- * - $block->delta: An ID for the block, unique within each module.
- * - $block->region: The block region embedding the current block.
- * - $attributes: An instance of Attributes class that can be manipulated as an
- *    array and printed as a string.
- *    It includes the 'class' information, which includes:
- *   - block: The current template type, i.e., "theming hook".
- *   - block-[module]: The module generating the block. For example, the user
- *     module is responsible for handling the default user navigation block. In
- *     that case the class would be 'block-user'.
- * - $title_prefix (array): An array containing additional output populated by
- *   modules, intended to be displayed in front of the main title tag that
- *   appears in the template.
- * - $title_suffix (array): An array containing additional output populated by
- *   modules, intended to be displayed after the main title tag that appears in
- *   the template.
- *
- * Helper variables:
- * - $block_zebra: Outputs 'odd' and 'even' dependent on each block region.
- * - $zebra: Same output as $block_zebra but independent of any block region.
- * - $block_id: Counter dependent on each block region.
- * - $id: Same output as $block_id but independent of any block region.
- * - $is_front: Flags true when presented in the front page.
- * - $logged_in: Flags true when the current user is a logged-in member.
- * - $is_admin: Flags true when the current user is an administrator.
- * - $block_html_id: A valid HTML ID and guaranteed unique.
- *
- * @see template_preprocess()
- * @see template_preprocess_block()
- * @see template_process()
- *
- * @ingroup themeable
- */
-?>
-<?php if (isset($block_html_id)): ?>
-  <div id="<?php print $block_html_id; ?>" <?php print $attributes; ?>>
-<?php else: ?>
-  <div <?php print $attributes; ?>>
-<?php endif; ?>
-
-  <?php print render($title_prefix); ?>
-<?php if ($block->subject): ?>
-  <h2<?php print $title_attributes; ?>><?php print $block->subject ?></h2>
-<?php endif;?>
-  <?php print render($title_suffix); ?>
-
-  <div<?php print $content_attributes; ?>>
-    <?php print $content ?>
-  </div>
-</div>
