diff --git a/src/common/interfaces/componentsProp.ts b/src/common/interfaces/componentsProp.ts
index 7f1a31c24c10b69f0762269bf61a829f5d7b5ac6..1f7dcb89159df0d269849e4ab735d34f3b6035cd 100644
--- a/src/common/interfaces/componentsProp.ts
+++ b/src/common/interfaces/componentsProp.ts
@@ -98,6 +98,17 @@ export interface ISelectGroup {
   iconRightColor?: TThemeColor;
 }
 
+export type TInputDivScheme =
+  | `${number}by${number}`
+  | `${number}-${number}`
+  | `${number}-${number}-${number}-${number}`
+  | `${number}-${number}-${number}-${number}-${number}`
+  | `${number}-${number}-${number}-${number}-${number}-${number}`
+  | `${number}-${number}-${number}-${number}-${number}-${number}-${number}`
+  | `${number}-${number}-${number}-${number}-${number}-${number}-${number}-${number}`
+  | `${number}-${number}-${number}-${number}-${number}-${number}-${number}-${number}-${number}`
+  | `${number}-${number}-${number}-${number}-${number}-${number}-${number}-${number}-${number}-${number}`;
+
 export interface ISBOption {
   label: string;
   value?: never;
diff --git a/src/common/interfaces/componentsProps.ts b/src/common/interfaces/componentsProps.ts
index cc0686ab0f9b01eff7f2913a8a9f196ccb7e3388..f6b1b0debb5f0522690669edb58d9b4719d81a23 100644
--- a/src/common/interfaces/componentsProps.ts
+++ b/src/common/interfaces/componentsProps.ts
@@ -19,6 +19,7 @@ import type {
   ISliderOptions,
   ITableColumn,
   ITreeItem,
+  TInputDivScheme,
   TToastType,
 } from '@interfaces/componentsProp';
 
@@ -223,6 +224,19 @@ export interface ISelectProps {
   noBackground?: boolean;
 }
 
+export interface IInputDivProps {
+  scheme?: TInputDivScheme;
+  size?: TSize;
+  secret?: boolean;
+  dashed?: boolean;
+  numbersOnly?: boolean;
+  bottomOnly?: boolean;
+  theme?: TThemeColor;
+  darknessTheme?: TDarkness;
+  textColor?: TThemeColor;
+  darknessTextColor?: TDarkness;
+}
+
 export interface ISBProps {
   options: ISBOption[];
   size?: TSize;
diff --git a/src/components/InputDiv/InputDiv.stories.ts b/src/components/InputDiv/InputDiv.stories.ts
new file mode 100644
index 0000000000000000000000000000000000000000..c47fdc904891c306244cddbaf4eeaa3b35f8ec30
--- /dev/null
+++ b/src/components/InputDiv/InputDiv.stories.ts
@@ -0,0 +1,55 @@
+import type { Meta, StoryObj } from '@storybook/vue3';
+
+import InputDiv from './InputDiv.vue';
+
+const meta: Meta = {
+  title: 'Components/InputDiv',
+  component: InputDiv,
+  tags: ['pick'],
+  parameters: {
+    docs: {
+      description: {
+        component: 'One of the options for implementing input.',
+      },
+    },
+  },
+  argTypes: {
+    size: { control: 'select', options: ['small', 'normal', 'large', 'huge'] },
+    secret: { control: 'boolean' },
+    dashed: { control: 'boolean' },
+    numbersOnly: { control: 'boolean' },
+    bottomOnly: { control: 'boolean' },
+    scheme: { control: 'text' },
+    theme: {
+      control: 'select',
+      options: [
+        'white',
+        'blue',
+        'sky',
+        'cyan',
+        'teal',
+        'green',
+        'yellow',
+        'orange',
+        'pink',
+        'fuchsia',
+        'purple',
+        'indigo',
+        'rose',
+        'red',
+        'black',
+      ],
+    },
+  },
+  args: {},
+} satisfies Meta<typeof InputDiv>;
+
+export default meta;
+
+type Story = StoryObj<typeof meta>;
+
+export const Simple: Story = {
+  args: {
+    active: true,
+  },
+};
diff --git a/src/components/InputDiv/InputDiv.vue b/src/components/InputDiv/InputDiv.vue
new file mode 100644
index 0000000000000000000000000000000000000000..0a62abd91961ed0adc253fe3af8474b59116bdaf
--- /dev/null
+++ b/src/components/InputDiv/InputDiv.vue
@@ -0,0 +1,57 @@
+<script setup lang="ts">
+import type { IInputDivProps } from '@interfaces/componentsProps';
+import { computed } from 'vue';
+import { convertThemeToColor, convertThemeToTextColor, getValueFromSize } from '@helpers/common';
+
+const props = withDefaults(defineProps<IInputDivProps>(), {
+  scheme: '4by1',
+  size: 'normal',
+  theme: 'white',
+});
+
+const inputPartsBy = computed(() => {
+  if (!props.scheme.includes('by')) return null;
+  const splat = props.scheme.split('by');
+  const by = splat[1];
+  const result = [];
+  for (let i = 0; i < +splat[0]; i++) {
+    result.push(Array(by).keys());
+  }
+  return result;
+});
+const inputPartsDash = computed(() => {
+  if (!props.scheme.includes('-')) return null;
+  return props.scheme.split('-').map((item) => Array(item).keys());
+});
+
+const themeColor = computed(() => convertThemeToColor(props.theme, props.darknessTheme));
+const color = computed(() =>
+  props.textColor
+    ? convertThemeToColor(props.textColor, props.darknessTextColor)
+    : convertThemeToTextColor(props.theme, props.darknessTheme),
+);
+const sizeCoefficient = computed(() => getValueFromSize(props.size, [0.75, 1, 2, 3]));
+</script>
+
+<template>
+  <section class="inputDiv-container">
+    {{ inputPartsBy }}
+    {{ inputPartsDash }}
+    <div v-show="inputPartsBy" class="list">
+      <div v-for="item of inputPartsBy" :key="item" class="item"><input type="text" class="input" /></div>
+    </div>
+    <div v-show="inputPartsDash" class="list">
+      <div v-for="item of inputPartsDash" :key="item" class="item"><input type="text" class="input" /></div>
+    </div>
+  </section>
+</template>
+
+<style scoped>
+.list {
+  display: flex;
+  gap: 20px;
+}
+.input {
+  border: 1px solid black;
+}
+</style>
diff --git a/src/components/Toast/Toast.stories.ts b/src/components/Toast/Toast.stories.ts
index 7b36869c727801899ffda9251d94a2edd51e5f49..b4c0c5c278bd361dbd15e3a2f0d19aa3e23f3340 100644
--- a/src/components/Toast/Toast.stories.ts
+++ b/src/components/Toast/Toast.stories.ts
@@ -11,7 +11,7 @@ const meta: Meta = {
   parameters: {
     docs: {
       description: {
-        component: 'A component is used to categorize content. Can be used with icons.',
+        component: 'A component to display messages in an overlay',
       },
     },
   },