diff --git a/packages/block-editor/src/hooks/custom-class-name.js b/packages/block-editor/src/hooks/custom-class-name.js
index 91ef07506fd95..a7f8cab8c8223 100644
--- a/packages/block-editor/src/hooks/custom-class-name.js
+++ b/packages/block-editor/src/hooks/custom-class-name.js
@@ -123,7 +123,8 @@ export function addTransforms( result, source, index, results ) {
// if source N does not exists we do nothing.
if ( source[ index ] ) {
const originClassName = source[ index ]?.attributes.className;
- if ( originClassName ) {
+ // Avoid overriding classes if the transformed block already includes them.
+ if ( originClassName && result.attributes.className === undefined ) {
return {
...result,
attributes: {
diff --git a/packages/block-library/src/embed/transforms.js b/packages/block-library/src/embed/transforms.js
index cf29511fde7af..82c46da1fa7f9 100644
--- a/packages/block-library/src/embed/transforms.js
+++ b/packages/block-library/src/embed/transforms.js
@@ -7,6 +7,7 @@ import { createBlock } from '@wordpress/blocks';
* Internal dependencies
*/
import metadata from './block.json';
+import { removeAspectRatioClasses } from './util';
const { name: EMBED_BLOCK } = metadata;
@@ -33,13 +34,14 @@ const transforms = {
type: 'block',
blocks: [ 'core/paragraph' ],
isMatch: ( { url } ) => !! url,
- transform: ( { url, caption } ) => {
+ transform: ( { url, caption, className } ) => {
let value = `${ url }`;
if ( caption?.trim() ) {
value += `
${ caption }`;
}
return createBlock( 'core/paragraph', {
content: value,
+ className: removeAspectRatioClasses( className ),
} );
},
},