diff --git a/docs/.vitepress/theme/components/icons/IconsOverview.vue b/docs/.vitepress/theme/components/icons/IconsOverview.vue
index 18515d0d2..1b8df676d 100644
--- a/docs/.vitepress/theme/components/icons/IconsOverview.vue
+++ b/docs/.vitepress/theme/components/icons/IconsOverview.vue
@@ -14,7 +14,15 @@ import CarbonAdOverlay from './CarbonAdOverlay.vue';
const ICON_SIZE = 56;
const ICON_GRID_GAP = 8;
-const DEFAULT_GRID_ITEMS = 10 * 160;
+
+const initialGridItems = computed(() => {
+ if (containerWidth.value === 0) return 120;
+
+ const itemsPerRow = columnSize.value || 10;
+ const visibleRows = Math.ceil(window.innerHeight / (ICON_SIZE + ICON_GRID_GAP));
+
+ return Math.min(itemsPerRow * (visibleRows + 2), 200);
+});
const props = defineProps<{
icons: IconEntity[];
@@ -115,15 +123,14 @@ function handleCloseDrawer() {
/>