diff --git a/next-env.d.ts b/next-env.d.ts
index fd36f9494e2c202c823cdc0f25a6d2e48d352a2b..53e1f337473e28b0be964f2f31040f09cf4321e8 100644
--- a/next-env.d.ts
+++ b/next-env.d.ts
@@ -1,5 +1,4 @@
 /// <reference types="next" />
-/// <reference types="next/image-types/global" />
 /// <reference types="next/navigation-types/compat/navigation" />
 
 // NOTE: This file should not be edited
diff --git a/src/components/Map/Drawer/Drawer.component.test.tsx b/src/components/Map/Drawer/Drawer.component.test.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..af462cab5db5d8323374e6309a741e8d28f80aae
--- /dev/null
+++ b/src/components/Map/Drawer/Drawer.component.test.tsx
@@ -0,0 +1,12 @@
+import { screen, render, RenderResult } from '@testing-library/react';
+import { Drawer } from './Drawer.component';
+
+const renderComponent = (): RenderResult => render(<Drawer />);
+
+describe('Drawer - component', () => {
+  it('should render Drawer', () => {
+    renderComponent();
+
+    expect(screen.getByRole('drawer')).toBeInTheDocument();
+  });
+});
diff --git a/src/components/Map/Drawer/Drawer.component.tsx b/src/components/Map/Drawer/Drawer.component.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..b1b085ec361db7a1295fde9eccf62ca8b3782526
--- /dev/null
+++ b/src/components/Map/Drawer/Drawer.component.tsx
@@ -0,0 +1,44 @@
+import { useState } from 'react';
+import { Button } from '@/shared/Button';
+import { twMerge } from 'tailwind-merge';
+import { IconButton } from '@/shared/IconButton';
+
+const drawerRole = 'drawer';
+const closeButtonRole = 'close-drawer-button';
+
+export const Drawer = (): JSX.Element | null => {
+  const [open, setOpenDrawer] = useState(false);
+
+  return (
+    <>
+      <Button
+        className="absolute top-[110px] left-[100px] z-10 peer"
+        onClick={(): void => setOpenDrawer(true)}
+      >
+        Open Drawer
+      </Button>
+
+      <div
+        className={twMerge(
+          'absolute top-[104px] left-[88px] z-10 w-[432px] h-calc-drawer bg-white-pearl text-font-500 transition-all duration-500 transform -translate-x-full',
+          open && 'translate-x-0',
+        )}
+        role={drawerRole}
+      >
+        <div className="flex justify-between items-center text-xl px-6 py-8 border-b border-b-divide">
+          <div>
+            <span className="font-normal">Search: </span>
+            <span className="font-semibold">NADH</span>
+          </div>
+          <IconButton
+            className="bg-white-pearl"
+            classNameIcon="fill-font-500"
+            icon="close"
+            role={closeButtonRole}
+            onClick={(): void => setOpenDrawer(false)}
+          />
+        </div>
+      </div>
+    </>
+  );
+};
diff --git a/src/components/Map/Drawer/index.ts b/src/components/Map/Drawer/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..1c73307cde3d4eba0c979efef619faccb268d19f
--- /dev/null
+++ b/src/components/Map/Drawer/index.ts
@@ -0,0 +1 @@
+export { Drawer } from './Drawer.component';
diff --git a/src/components/Map/Map.component.tsx b/src/components/Map/Map.component.tsx
index 8c11af5fbec6e194ad6cea178f68b8f86498291b..b2b8b6cbc78f7eac4d945b30b8d0de97d57cee6b 100644
--- a/src/components/Map/Map.component.tsx
+++ b/src/components/Map/Map.component.tsx
@@ -1,8 +1,10 @@
 import mapImg from '@/assets/images/image.jpg';
+import { Drawer } from '@/components/Map/Drawer';
 import Image from 'next/image';
 
 export const Map = (): JSX.Element => (
-  <div className="w-100 h-screen bg-black" data-testid="map-container">
-    <Image src={mapImg} fill sizes="100vw" alt="map" />
+  <div className="w-100 h-screen bg-black relative z-0" data-testid="map-container">
+    <Drawer />
+    <Image src={mapImg} fill sizes="100vw" alt="map" className="z-0" />
   </div>
 );
diff --git a/src/shared/Icon/Icon.component.tsx b/src/shared/Icon/Icon.component.tsx
index 09ab33c8f3b5c828b5b30247f419f986fc6af4be..b23a3ad43cb93631acb252e238ae2531626c3ff3 100644
--- a/src/shared/Icon/Icon.component.tsx
+++ b/src/shared/Icon/Icon.component.tsx
@@ -1,16 +1,17 @@
-import { ChevronRightIcon } from '@/assets/vectors/icons/ChevronRightIcon';
-import { ChevronLeftIcon } from '@/assets/vectors/icons/ChevronLeftIcon';
-import { ChevronUpIcon } from '@/assets/vectors/icons/ChevronUpIcon';
-import { ChevronDownIcon } from '@/assets/vectors/icons/ChevronDownIcon';
-import { PlusIcon } from '@/assets/vectors/icons/PlusIcon';
-import { ArrowIcon } from '@/assets/vectors/icons/ArrowIcon';
-import { DotsIcon } from '@/assets/vectors/icons/DotsIcon';
-import { AdminIcon } from '@/assets/vectors/icons/AdminIcon';
-import { ExportIcon } from '@/assets/vectors/icons/ExportIcon';
-import { InfoIcon } from '@/assets/vectors/icons/InfoIcon';
-import { LegendIcon } from '@/assets/vectors/icons/LegendIcon';
-import { PageIcon } from '@/assets/vectors/icons/PageIcon';
-import { PluginIcon } from '@/assets/vectors/icons/PluginIcon';
+import { ChevronRightIcon } from '@/shared/Icon/Icons/ChevronRightIcon';
+import { ChevronLeftIcon } from '@/shared/Icon/Icons/ChevronLeftIcon';
+import { AdminIcon } from '@/shared/Icon/Icons/AdminIcon';
+import { ArrowIcon } from '@/shared/Icon/Icons/ArrowIcon';
+import { ChevronDownIcon } from '@/shared/Icon/Icons/ChevronDownIcon';
+import { ChevronUpIcon } from '@/shared/Icon/Icons/ChevronUpIcon';
+import { DotsIcon } from '@/shared/Icon/Icons/DotsIcon';
+import { ExportIcon } from '@/shared/Icon/Icons/ExportIcon';
+import { InfoIcon } from '@/shared/Icon/Icons/InfoIcon';
+import { LegendIcon } from '@/shared/Icon/Icons/LegendIcon';
+import { PageIcon } from '@/shared/Icon/Icons/PageIcon';
+import { PluginIcon } from '@/shared/Icon/Icons/PluginIcon';
+import { PlusIcon } from '@/shared/Icon/Icons/PlusIcon';
+import { CloseIcon } from '@/shared/Icon/Icons/CloseIcon';
 
 import type { IconTypes } from '@/types/iconTypes';
 
@@ -33,6 +34,7 @@ const icons = {
   legend: LegendIcon,
   page: PageIcon,
   plugin: PluginIcon,
+  close: CloseIcon,
 } as const;
 
 export const Icon = ({ name, className = '' }: IconProps): JSX.Element => {
diff --git a/src/assets/vectors/icons/AdminIcon.tsx b/src/shared/Icon/Icons/AdminIcon.tsx
similarity index 100%
rename from src/assets/vectors/icons/AdminIcon.tsx
rename to src/shared/Icon/Icons/AdminIcon.tsx
diff --git a/src/assets/vectors/icons/ArrowIcon.tsx b/src/shared/Icon/Icons/ArrowIcon.tsx
similarity index 100%
rename from src/assets/vectors/icons/ArrowIcon.tsx
rename to src/shared/Icon/Icons/ArrowIcon.tsx
diff --git a/src/assets/vectors/icons/ChevronDownIcon.tsx b/src/shared/Icon/Icons/ChevronDownIcon.tsx
similarity index 100%
rename from src/assets/vectors/icons/ChevronDownIcon.tsx
rename to src/shared/Icon/Icons/ChevronDownIcon.tsx
diff --git a/src/assets/vectors/icons/ChevronLeftIcon.tsx b/src/shared/Icon/Icons/ChevronLeftIcon.tsx
similarity index 100%
rename from src/assets/vectors/icons/ChevronLeftIcon.tsx
rename to src/shared/Icon/Icons/ChevronLeftIcon.tsx
diff --git a/src/assets/vectors/icons/ChevronRightIcon.tsx b/src/shared/Icon/Icons/ChevronRightIcon.tsx
similarity index 100%
rename from src/assets/vectors/icons/ChevronRightIcon.tsx
rename to src/shared/Icon/Icons/ChevronRightIcon.tsx
diff --git a/src/assets/vectors/icons/ChevronUpIcon.tsx b/src/shared/Icon/Icons/ChevronUpIcon.tsx
similarity index 100%
rename from src/assets/vectors/icons/ChevronUpIcon.tsx
rename to src/shared/Icon/Icons/ChevronUpIcon.tsx
diff --git a/src/shared/Icon/Icons/CloseIcon.tsx b/src/shared/Icon/Icons/CloseIcon.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..13d1a5f5c041b007d9f7e2dc7a66e58a82828af7
--- /dev/null
+++ b/src/shared/Icon/Icons/CloseIcon.tsx
@@ -0,0 +1,23 @@
+interface CloseIconProps {
+  className?: string;
+}
+
+export const CloseIcon = ({ className }: CloseIconProps): JSX.Element => (
+  <svg
+    width="24"
+    height="24"
+    viewBox="0 0 24 24"
+    fill="none"
+    className={className}
+    xmlns="http://www.w3.org/2000/svg"
+  >
+    <g clipPath="url(#clip0_2059_12637)">
+      <path d="M11.9997 10.5867L16.9497 5.63672L18.3637 7.05072L13.4137 12.0007L18.3637 16.9507L16.9497 18.3647L11.9997 13.4147L7.04974 18.3647L5.63574 16.9507L10.5857 12.0007L5.63574 7.05072L7.04974 5.63672L11.9997 10.5867Z" />
+    </g>
+    <defs>
+      <clipPath id="clip0_2059_12637">
+        <rect width="24" height="24" fill="white" />
+      </clipPath>
+    </defs>
+  </svg>
+);
diff --git a/src/assets/vectors/icons/DotsIcon.tsx b/src/shared/Icon/Icons/DotsIcon.tsx
similarity index 100%
rename from src/assets/vectors/icons/DotsIcon.tsx
rename to src/shared/Icon/Icons/DotsIcon.tsx
diff --git a/src/assets/vectors/icons/ExportIcon.tsx b/src/shared/Icon/Icons/ExportIcon.tsx
similarity index 100%
rename from src/assets/vectors/icons/ExportIcon.tsx
rename to src/shared/Icon/Icons/ExportIcon.tsx
diff --git a/src/assets/vectors/icons/InfoIcon.tsx b/src/shared/Icon/Icons/InfoIcon.tsx
similarity index 100%
rename from src/assets/vectors/icons/InfoIcon.tsx
rename to src/shared/Icon/Icons/InfoIcon.tsx
diff --git a/src/assets/vectors/icons/LegendIcon.tsx b/src/shared/Icon/Icons/LegendIcon.tsx
similarity index 100%
rename from src/assets/vectors/icons/LegendIcon.tsx
rename to src/shared/Icon/Icons/LegendIcon.tsx
diff --git a/src/assets/vectors/icons/PageIcon.tsx b/src/shared/Icon/Icons/PageIcon.tsx
similarity index 100%
rename from src/assets/vectors/icons/PageIcon.tsx
rename to src/shared/Icon/Icons/PageIcon.tsx
diff --git a/src/assets/vectors/icons/PluginIcon.tsx b/src/shared/Icon/Icons/PluginIcon.tsx
similarity index 100%
rename from src/assets/vectors/icons/PluginIcon.tsx
rename to src/shared/Icon/Icons/PluginIcon.tsx
diff --git a/src/assets/vectors/icons/PlusIcon.tsx b/src/shared/Icon/Icons/PlusIcon.tsx
similarity index 100%
rename from src/assets/vectors/icons/PlusIcon.tsx
rename to src/shared/Icon/Icons/PlusIcon.tsx
diff --git a/src/shared/IconButton/IconButton.component.tsx b/src/shared/IconButton/IconButton.component.tsx
index e5270caf9f2633b73a08f865b6199ad246c25eed..847832941d30d77ccc155fd5c4086562a2ce4ad5 100644
--- a/src/shared/IconButton/IconButton.component.tsx
+++ b/src/shared/IconButton/IconButton.component.tsx
@@ -6,6 +6,7 @@ import type { IconTypes } from '@/types/iconTypes';
 
 export interface IconButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
   className?: string;
+  classNameIcon?: string;
   icon: IconTypes;
   isActive?: boolean;
 }
@@ -17,6 +18,7 @@ const getActiveFillOrStrokeColor = (icon: IconTypes): string => {
 
 export const IconButton = ({
   className = '',
+  classNameIcon = '',
   icon,
   isActive = false,
   ...props
@@ -43,6 +45,7 @@ export const IconButton = ({
             ? 'fill-font-400 group-hover:fill-primary-500 group-active:fill-primary-500'
             : 'stroke-font-400 group-hover:stroke-primary-500 group-active:stroke-primary-500',
           isActive && getActiveFillOrStrokeColor(icon),
+          classNameIcon,
         )}
         name={icon}
       />
diff --git a/src/types/iconTypes.ts b/src/types/iconTypes.ts
index b312344a7ace070a823af4f5f7ec6269d5e480a8..9b14f66b477ef940782e3c94b8d1079b8683af89 100644
--- a/src/types/iconTypes.ts
+++ b/src/types/iconTypes.ts
@@ -11,4 +11,5 @@ export type IconTypes =
   | 'info'
   | 'legend'
   | 'page'
-  | 'plugin';
+  | 'plugin'
+  | 'close';
diff --git a/tailwind.config.ts b/tailwind.config.ts
index 18b85c28fe6459f3c5806534c12dc18ee2507fd6..4eca2c5bd0dd2690b27fe51b42b3d3b9f2e92394 100644
--- a/tailwind.config.ts
+++ b/tailwind.config.ts
@@ -24,6 +24,10 @@ const config: Config = {
         'med-sea-green': '#3ab65d',
         cultured: '#f7f7f8',
         'white-pearl': '#ffffff',
+        divide: '#e1e0e6',
+      },
+      height: {
+        'calc-drawer': 'calc(100% - 104px)',
       },
     },
     fontFamily: {