diff --git a/packages/block-editor/src/components/colors/use-colors.native.js b/packages/block-editor/src/components/colors/use-colors.native.js
new file mode 100644
index 0000000000000..49a29b6404836
--- /dev/null
+++ b/packages/block-editor/src/components/colors/use-colors.native.js
@@ -0,0 +1,10 @@
+const TextColor = ( props ) => <>{ props.children }>;
+
+const InspectorControlsColorPanel = () => null;
+
+export default function __experimentalUseColors() {
+ return {
+ TextColor,
+ InspectorControlsColorPanel,
+ };
+}
diff --git a/packages/block-library/src/heading/edit.js b/packages/block-library/src/heading/edit.js
index 3e43660a300ef..cc68a15f0d79b 100644
--- a/packages/block-library/src/heading/edit.js
+++ b/packages/block-library/src/heading/edit.js
@@ -12,7 +12,7 @@ import HeadingToolbar from './heading-toolbar';
* WordPress dependencies
*/
import { __ } from '@wordpress/i18n';
-import { PanelBody } from '@wordpress/components';
+import { PanelBody, __experimentalText as Text } from '@wordpress/components';
import { createBlock } from '@wordpress/blocks';
import {
AlignmentToolbar,
@@ -22,7 +22,7 @@ import {
__experimentalUseColors,
__experimentalBlock as Block,
} from '@wordpress/block-editor';
-import { useRef } from '@wordpress/element';
+import { useRef, Platform } from '@wordpress/element';
function HeadingEdit( { attributes, setAttributes, mergeBlocks, onReplace } ) {
const ref = useRef();
@@ -42,8 +42,8 @@ function HeadingEdit( { attributes, setAttributes, mergeBlocks, onReplace } ) {
<>
setAttributes( { level: newLevel } )
@@ -56,20 +56,22 @@ function HeadingEdit( { attributes, setAttributes, mergeBlocks, onReplace } ) {
} }
/>
-
-
- { __( 'Level' ) }
-
- setAttributes( { level: newLevel } )
- }
- />
-
-
+ { Platform.OS === 'web' && (
+
+
+ { __( 'Level' ) }
+
+ setAttributes( { level: newLevel } )
+ }
+ />
+
+
+ ) }
{ InspectorControlsColorPanel }
>
diff --git a/packages/block-library/src/heading/edit.native.js b/packages/block-library/src/heading/edit.native.js
deleted file mode 100644
index 8d8d8b49aef99..0000000000000
--- a/packages/block-library/src/heading/edit.native.js
+++ /dev/null
@@ -1,81 +0,0 @@
-/**
- * Internal dependencies
- */
-import HeadingToolbar from './heading-toolbar';
-
-/**
- * External dependencies
- */
-import { View } from 'react-native';
-
-/**
- * WordPress dependencies
- */
-import { __ } from '@wordpress/i18n';
-import {
- RichText,
- BlockControls,
- __experimentalUseColors,
-} from '@wordpress/block-editor';
-import { createBlock } from '@wordpress/blocks';
-
-const HeadingEdit = ( {
- attributes,
- mergeBlocks,
- onFocus,
- onReplace,
- setAttributes,
- style,
-} ) => {
- const { align, content, level, placeholder } = attributes;
-
- /* eslint-disable @wordpress/no-unused-vars-before-return */
- const { TextColor } = __experimentalUseColors( [
- { name: 'textColor', property: 'color' },
- ] );
- /* eslint-enable @wordpress/no-unused-vars-before-return */
-
- return (
-
-
-
- setAttributes( { level: newLevel } )
- }
- isCollapsed={ false }
- />
-
-
-
- setAttributes( { content: value } )
- }
- onMerge={ mergeBlocks }
- onSplit={ ( value ) => {
- if ( ! value ) {
- return createBlock( 'core/paragraph' );
- }
-
- return createBlock( 'core/heading', {
- ...attributes,
- content: value,
- } );
- } }
- onReplace={ onReplace }
- onRemove={ () => onReplace( [] ) }
- placeholder={ placeholder || __( 'Write heading…' ) }
- textAlign={ align }
- />
-
-
- );
-};
-
-export default HeadingEdit;
diff --git a/packages/block-library/src/heading/heading-level-icon.js b/packages/block-library/src/heading/heading-level-icon.js
index 29a60cd93d721..eef2b3af3b5e7 100644
--- a/packages/block-library/src/heading/heading-level-icon.js
+++ b/packages/block-library/src/heading/heading-level-icon.js
@@ -18,8 +18,8 @@ export default function HeadingLevelIcon( { level, isPressed = false } ) {
return (