diff -u b/core/modules/responsive_image/src/ResponsiveImageStyleForm.php b/core/modules/responsive_image/src/ResponsiveImageStyleForm.php --- b/core/modules/responsive_image/src/ResponsiveImageStyleForm.php +++ b/core/modules/responsive_image/src/ResponsiveImageStyleForm.php @@ -209,6 +209,20 @@ // Remove the image style mappings since the breakpoint ID has changed. $form_state->unsetValue('keyed_styles'); } + + // Check that at least 1 image styles is selected when using sizes. + foreach ($form_state->getValue('keyed_styles') as $breakpoint_id => $multipliers) { + foreach ($multipliers as $multiplier => $image_style_mapping) { + if ($image_style_mapping['image_mapping_type'] === 'sizes') { + if (empty($image_style_mapping['sizes'])) { + $form_state->setError($form['keyed_styles'][$breakpoint_id][$multiplier]['sizes'], 'Sizes is required.'); + } + if (empty(array_keys(array_filter($image_style_mapping['sizes_image_styles'])))) { + $form_state->setError($form['keyed_styles'][$breakpoint_id][$multiplier]['sizes_image_styles'], 'You have to select at least one image style.'); + } + } + } + } } }