diff --git a/core/modules/field/field.module b/core/modules/field/field.module
index 2358edf..265732a 100644
--- a/core/modules/field/field.module
+++ b/core/modules/field/field.module
@@ -381,20 +381,15 @@ function template_preprocess_field(&$variables, $hook) {
   // Add default CSS classes. Since there can be many fields rendered on a page,
   // save some overhead by calling strtr() directly instead of
   // drupal_html_class().
-  $variables['entity_type_css'] = strtr($element['#entity_type'], '_', '-');
-  $variables['field_name_css'] = strtr($element['#field_name'], '_', '-');
-  $variables['field_type_css'] = strtr($element['#field_type'], '_', '-');
-  $variables['attributes']['class'] = array(
-    'field',
-    'field-' . $variables['entity_type_css'] . '--' . $variables['field_name_css'],
-    'field-name-' . $variables['field_name_css'],
-    'field-type-' . $variables['field_type_css'],
-    'field-label-' . $element['#label_display'],
-  );
+  $variables['attributes']['class']['entity_type_css'] = 'field-' . strtr($element['#entity_type'], '_', '-');
+  $variables['attributes']['class']['field_name_css'] = $variables['attributes']['class']['entity_type_css'] . '-' . strtr($element['#field_name'], '_', '-');
+  $variables['attributes']['class']['field_type_css'] = 'field-type-' . strtr($element['#field_type'], '_', '-');
+  $variables['attributes']['class']['label_position'] = 'field-label-' . $element['#label_display'];
+
   // Add a "clearfix" class to the wrapper since we float the label and the
   // field items in field.module.css if the label is inline.
   if ($element['#label_display'] == 'inline') {
-    $variables['attributes']['class'][] = 'clearfix';
+    $variables['attributes']['class']['clearfix'] = 'clearfix';
   }
 
   static $default_attributes;
diff --git a/core/modules/field/templates/field.html.twig b/core/modules/field/templates/field.html.twig
index a0d527a..75aee12 100644
--- a/core/modules/field/templates/field.html.twig
+++ b/core/modules/field/templates/field.html.twig
@@ -23,6 +23,10 @@
  * - content_attributes: HTML attributes for the content.
  * - items: List of all the field items.
  * - item_attributes: List of HTML attributes for each item.
+ * - attributes.class.entity_type_css: The entity type in a CSS friendly string.
+ * - attributes.class.field_name_css: The field name in a CSS friendly string.
+ * - attributes.class.field_type_css: The field type in a CSS friendly string.
+ * - attributes.class.label_position: The position of the label in relation to the field value.
  *
  * @see template_preprocess_field()
  *
