diff --git a/packages/block-library/src/gallery/columns-control/index.js b/packages/block-library/src/gallery/columns-control/index.js
new file mode 100644
index 00000000000000..8eb15c87037bbc
--- /dev/null
+++ b/packages/block-library/src/gallery/columns-control/index.js
@@ -0,0 +1,17 @@
+/**
+ * WordPress dependencies
+ */
+import { RangeControl } from '@wordpress/components';
+
+const ColumnsControl = ( { label, value, onChange, min, max } ) => (
+
+);
+
+export default ColumnsControl;
diff --git a/packages/block-library/src/gallery/columns-control/index.native.js b/packages/block-library/src/gallery/columns-control/index.native.js
new file mode 100644
index 00000000000000..ab819c916a9988
--- /dev/null
+++ b/packages/block-library/src/gallery/columns-control/index.native.js
@@ -0,0 +1,17 @@
+/**
+ * WordPress dependencies
+ */
+import { StepperControl } from '@wordpress/components';
+
+const ColumnsControl = ( { label, value, onChange, min, max } ) => (
+
+);
+
+export default ColumnsControl;
diff --git a/packages/block-library/src/gallery/edit.js b/packages/block-library/src/gallery/edit.js
index 7eef494e707250..0ac6170870d32e 100644
--- a/packages/block-library/src/gallery/edit.js
+++ b/packages/block-library/src/gallery/edit.js
@@ -20,9 +20,7 @@ import {
import { compose } from '@wordpress/compose';
import {
PanelBody,
- RangeControl,
SelectControl,
- StepperControl,
ToggleControl,
withNotices,
} from '@wordpress/components';
@@ -39,8 +37,8 @@ import { withViewportMatch } from '@wordpress/viewport';
import { sharedIcon } from './shared-icon';
import { defaultColumnsNumber, pickRelevantMediaFiles } from './shared';
import Gallery from './gallery';
+import ColumnsControl from './columns-control';
-const ColumnsControl = Platform.OS === 'web' ? RangeControl : StepperControl;
const MAX_COLUMNS = 8;
const linkOptions = [
{ value: 'attachment', label: __( 'Attachment Page' ) },
@@ -384,7 +382,6 @@ class GalleryEdit extends Component {
{ images.length > 1 && (