diff --git a/TODO.md b/TODO.md
index aad0a1f..a74038a 100644
--- a/TODO.md
+++ b/TODO.md
@@ -76,7 +76,7 @@
 
 ## Стиль
 
-- [ ] Тёмная тема
+- [X] Тёмная тема
 - [ ] Больше метаданных для превью ссылки страницы
 
 ## Баги
diff --git a/app/App.tsx b/app/App.tsx
index d122cc3..e908c30 100644
--- a/app/App.tsx
+++ b/app/App.tsx
@@ -12,7 +12,7 @@ export const App = (props) => {
   }, []);
 
   return (
-    <body className={`${inter.className} overflow-x-hidden`}>
+    <body className={`${inter.className} overflow-x-hidden dark:bg-[#0d1117] dark:text-white`}>
       <Navbar />
       {props.children}
     </body>
diff --git a/app/components/Comments/Comments.Main.tsx b/app/components/Comments/Comments.Main.tsx
index 76f7ad7..a38eb79 100644
--- a/app/components/Comments/Comments.Main.tsx
+++ b/app/components/Comments/Comments.Main.tsx
@@ -19,7 +19,7 @@ export const CommentsMain = (props: {
           </div>
           <Button
             size={"sm"}
-            className="text-gray-500 border border-gray-600 rounded-full"
+            className="text-gray-500 border border-gray-600 rounded-full hover:bg-black hover:text-white hover:border-black dark:text-gray-400 dark:border-gray-500"
             color="inline"
           >
             Показать все
@@ -45,19 +45,21 @@ export const CommentsMain = (props: {
             Оставить комментарий
           </Button>
         </form>
-        {props.comments.map((comment: any) => (
-          <CommentsComment
-            key={comment.id}
-            profile={comment.profile}
-            comment={{
-              id: comment.id,
-              timestamp: comment.timestamp,
-              message: comment.message,
-              likes: comment.likes_count,
-              reply_count: comment.reply_count,
-            }}
-          />
-        ))}
+        <div className="flex flex-col gap-2">
+          {props.comments.map((comment: any) => (
+            <CommentsComment
+              key={comment.id}
+              profile={comment.profile}
+              comment={{
+                id: comment.id,
+                timestamp: comment.timestamp,
+                message: comment.message,
+                likes: comment.likes_count,
+                reply_count: comment.reply_count,
+              }}
+            />
+          ))}
+        </div>
       </div>
     </Card>
   );
diff --git a/app/components/Navbar/Navbar.tsx b/app/components/Navbar/Navbar.tsx
index 04e55bb..6ef9b0d 100644
--- a/app/components/Navbar/Navbar.tsx
+++ b/app/components/Navbar/Navbar.tsx
@@ -2,11 +2,20 @@
 import Link from "next/link";
 import { usePathname } from "next/navigation";
 import { useUserStore } from "#/store/auth";
-import { Dropdown } from "flowbite-react";
+import { usePreferencesStore } from "#/store/preferences";
+import {
+  Dropdown,
+  Modal,
+  Button,
+  DarkThemeToggle,
+  useThemeMode,
+} from "flowbite-react";
+import { useState } from "react";
 
 export const Navbar = () => {
   const pathname = usePathname();
   const userStore: any = useUserStore((state) => state);
+  const [isSettingModalOpen, setIsSettingModalOpen] = useState(false);
 
   const navLinks = [
     {
@@ -57,47 +66,125 @@ export const Navbar = () => {
   ];
 
   return (
-    <header className="fixed bottom-0 left-0 z-50 w-full text-white bg-black sm:sticky sm:top-0">
-      <div className="container flex items-center justify-between px-4 py-4 mx-auto">
-        <nav className="flex gap-4">
-          {navLinks.map((link) => {
-            return (
-              <Link
-                key={link.id}
-                href={link.href}
-                className={`flex-col items-center sm:flex-row ${
-                  link.withAuthOnly && !userStore.isAuth
-                    ? "hidden"
-                    : link.mobileMenu
-                    ? "hidden sm:flex"
-                    : "flex"
-                }`}
-              >
-                <span
-                  className={`iconify ${
-                    pathname == link.href ? link.iconActive : link.icon
-                  } w-6 h-6`}
-                ></span>
-                <span
-                  className={`${
-                    pathname == link.href ? "font-bold" : ""
-                  } text-xs sm:text-base`}
+    <>
+      <header className="fixed bottom-0 left-0 z-50 w-full text-white bg-black sm:sticky sm:top-0">
+        <div className="container flex items-center justify-between px-4 py-4 mx-auto">
+          <nav className="flex gap-4">
+            {navLinks.map((link) => {
+              return (
+                <Link
+                  key={link.id}
+                  href={link.href}
+                  className={`flex-col items-center sm:flex-row ${
+                    link.withAuthOnly && !userStore.isAuth
+                      ? "hidden"
+                      : link.mobileMenu
+                      ? "hidden sm:flex"
+                      : "flex"
+                  }`}
                 >
-                  {link.title}
-                </span>
-              </Link>
-            );
-          })}
-        </nav>
-        {userStore.isAuth ? (
-          <div className="flex flex-col items-center justify-center gap-1 text-xs sm:flex-row sm:text-base">
-            <img
-              src={userStore.user.avatar}
-              alt=""
-              className="w-6 h-6 rounded-full"
-            />
+                  <span
+                    className={`iconify ${
+                      pathname == link.href ? link.iconActive : link.icon
+                    } w-6 h-6`}
+                  ></span>
+                  <span
+                    className={`${
+                      pathname == link.href ? "font-bold" : ""
+                    } text-xs sm:text-base`}
+                  >
+                    {link.title}
+                  </span>
+                </Link>
+              );
+            })}
+          </nav>
+          {userStore.isAuth ? (
+            <div className="flex flex-col items-center justify-center gap-1 text-xs sm:flex-row sm:text-base">
+              <img
+                src={userStore.user.avatar}
+                alt=""
+                className="w-6 h-6 rounded-full"
+              />
+              <Dropdown
+                label={userStore.user.login}
+                inline={true}
+                dismissOnClick={true}
+                theme={{
+                  arrowIcon:
+                    "ml-1 w-4 h-4 [transform:rotateX(180deg)] sm:transform-none",
+                }}
+              >
+                <Dropdown.Item className="text-sm md:text-base">
+                  <Link
+                    href={`/profile/${userStore.user.id}`}
+                    className="flex items-center gap-1"
+                  >
+                    <span
+                      className={`iconify ${
+                        pathname == `/profile/${userStore.user.id}`
+                          ? "font-bold mdi--user"
+                          : "mdi--user-outline"
+                      } w-4 h-4 sm:w-6 sm:h-6`}
+                    ></span>
+                    <span>Профиль</span>
+                  </Link>
+                </Dropdown.Item>
+                {navLinks.map((link) => {
+                  return (
+                    <Dropdown.Item
+                      key={link.id + "_mobile"}
+                      className={`${
+                        link.mobileMenu ? "block sm:hidden" : "hidden"
+                      } text-sm md:text-base`}
+                    >
+                      <Link
+                        href={link.href}
+                        className={`flex items-center gap-1`}
+                      >
+                        <span
+                          className={`iconify ${
+                            pathname == link.href ? link.iconActive : link.icon
+                          } w-4 h-4 sm:w-6 sm:h-6`}
+                        ></span>
+                        <span
+                          className={`${
+                            pathname == link.href ? "font-bold" : ""
+                          }`}
+                        >
+                          {link.title}
+                        </span>
+                      </Link>
+                    </Dropdown.Item>
+                  );
+                })}
+                <Dropdown.Item
+                  onClick={() => {
+                    setIsSettingModalOpen(true);
+                  }}
+                  className="flex items-center gap-1 text-sm md:text-base"
+                >
+                  <span
+                    className={`iconify material-symbols--settings-outline-rounded w-4 h-4 sm:w-6 sm:h-6`}
+                  ></span>
+                  <span>Настройки</span>
+                </Dropdown.Item>
+                <Dropdown.Item
+                  onClick={() => {
+                    userStore.logout();
+                  }}
+                  className="flex items-center gap-1 text-sm md:text-base"
+                >
+                  <span
+                    className={`iconify material-symbols--logout-rounded w-4 h-4 sm:w-6 sm:h-6`}
+                  ></span>
+                  <span>Выйти</span>
+                </Dropdown.Item>
+              </Dropdown>
+            </div>
+          ) : (
             <Dropdown
-              label={userStore.user.login}
+              label="Меню"
               inline={true}
               dismissOnClick={true}
               theme={{
@@ -106,76 +193,82 @@ export const Navbar = () => {
               }}
             >
               <Dropdown.Item className="text-sm md:text-base">
-                <Link href={`/profile/${userStore.user.id}`} className="flex items-center gap-1">
+                <Link
+                  href="/login"
+                  className="flex items-center gap-1"
+                >
                   <span
-                    className={`iconify ${pathname == `/profile/${userStore.user.id}` ? "font-bold mdi--user" : "mdi--user-outline"} w-4 h-4 sm:w-6 sm:h-6`}
+                    className={`w-4 h-4 sm:w-6 sm:h-6 iconify ${
+                      pathname == "/login"
+                        ? "mdi--user-circle"
+                        : "mdi--user-circle-outline"
+                    }`}
                   ></span>
-                  <span>Профиль</span>
+                  <span
+                    className={`${
+                      pathname == "/login" ? "font-bold" : ""
+                    } text-xs sm:text-base`}
+                  >
+                    Войти
+                  </span>
                 </Link>
               </Dropdown.Item>
-              {navLinks.map((link) => {
-                return (
-                  <Dropdown.Item
-                    key={link.id + "_mobile"}
-                    className={`${
-                      link.mobileMenu ? "block sm:hidden" : "hidden"
-                    } text-sm md:text-base`}
-                  >
-                    <Link
-                      href={link.href}
-                      className={`flex items-center gap-1`}
-                    >
-                      <span
-                        className={`iconify ${
-                          pathname == link.href ? link.iconActive : link.icon
-                        } w-4 h-4 sm:w-6 sm:h-6`}
-                      ></span>
-                      <span
-                        className={`${
-                          pathname == link.href ? "font-bold" : ""
-                        }`}
-                      >
-                        {link.title}
-                      </span>
-                    </Link>
-                  </Dropdown.Item>
-                );
-              })}
               <Dropdown.Item
                 onClick={() => {
-                  userStore.logout();
+                  setIsSettingModalOpen(true);
                 }}
-                className="text-sm md:text-base"
+                className="flex items-center gap-1 text-sm md:text-base"
               >
                 <span
-                  className={`iconify material-symbols--logout-rounded w-4 h-4 sm:w-6 sm:h-6`}
+                  className={`iconify material-symbols--settings-outline-rounded w-4 h-4 sm:w-6 sm:h-6`}
                 ></span>
-                <span>Выйти</span>
+                <span>Настройки</span>
               </Dropdown.Item>
             </Dropdown>
-          </div>
-        ) : (
-          <Link
-            href="/login"
-            className="flex flex-col items-center justify-center gap-1 sm:flex-row"
-          >
-            <span
-              className={`w-6 h-6 iconify ${
-                pathname == "/login"
-                  ? "mdi--user-circle"
-                  : "mdi--user-circle-outline"
-              }`}
-            ></span>
-            <span
-              className={`${
-                pathname == "/login" ? "font-bold" : ""
-              } text-xs sm:text-base`}
-            >
-              Войти
-            </span>
-          </Link>
-        )}
-      </div>
-    </header>
+          )}
+        </div>
+      </header>
+      <SettingsModal
+        isOpen={isSettingModalOpen}
+        setIsOpen={setIsSettingModalOpen}
+      />
+    </>
+  );
+};
+
+const SettingsModal = (props: { isOpen: boolean; setIsOpen: any }) => {
+  const preferenceStore = usePreferencesStore();
+
+  const { computedMode, setMode } = useThemeMode();
+
+  return (
+    <Modal
+      dismissible
+      show={props.isOpen}
+      onClose={() => props.setIsOpen(false)}
+    >
+      <Modal.Header>Настройки</Modal.Header>
+      <Modal.Body>
+        <div className="space-y-6">
+          <div className="flex items-center justify-between">
+            <p className="font-bold dark:text-white">Тема</p>
+            <Button.Group>
+              <Button
+                color={computedMode == "light" ? "blue" : "gray"}
+                onClick={() => setMode("light")}
+              >
+                Светлая
+              </Button>
+              <Button
+                color={computedMode == "dark" ? "blue" : "gray"}
+                onClick={() => setMode("dark")}
+              >
+                Темная
+              </Button>
+            </Button.Group>
+          </div>
+        </div>
+      </Modal.Body>
+    </Modal>
   );
 };
diff --git a/app/components/RelatedSection/RelatedSection.tsx b/app/components/RelatedSection/RelatedSection.tsx
index e9a75b2..5f504f9 100644
--- a/app/components/RelatedSection/RelatedSection.tsx
+++ b/app/components/RelatedSection/RelatedSection.tsx
@@ -29,7 +29,7 @@ export const RelatedSection = (props: any) => {
             {props.release_count} {declension} во франшизе
           </p>
           <Link href={`/related/${props.id}`}>
-          <div className="flex items-center px-8 py-2 transition border border-black rounded-full hover:text-white hover:bg-black">
+          <div className="flex items-center px-8 py-2 transition border border-black rounded-full hover:text-white hover:bg-black dark:border-white hover:dark:text-black hover:dark:bg-white">
             <p className="text-xl font-bold">Перейти</p>
             <span className="w-6 h-6 iconify mdi--arrow-right"></span>
           </div>
diff --git a/app/components/ReleaseCourusel/ReleaseCourusel.module.css b/app/components/ReleaseCourusel/ReleaseCourusel.module.css
index 157046c..fce52de 100644
--- a/app/components/ReleaseCourusel/ReleaseCourusel.module.css
+++ b/app/components/ReleaseCourusel/ReleaseCourusel.module.css
@@ -9,5 +9,7 @@
 @media (hover: hover) {
   .section:hover .swiper-button {
     display: flex !important;
+    width: 64px;
+    height: 64px;
   }
 }
diff --git a/app/components/ReleaseCourusel/ReleaseCourusel.tsx b/app/components/ReleaseCourusel/ReleaseCourusel.tsx
index c3b5482..faaa3cb 100644
--- a/app/components/ReleaseCourusel/ReleaseCourusel.tsx
+++ b/app/components/ReleaseCourusel/ReleaseCourusel.tsx
@@ -39,7 +39,7 @@ export const ReleaseCourusel = (props: {
 
   return (
     <section className={`${Styles.section}`}>
-      <div className="flex justify-between px-4 py-2 border-b-2 border-black">
+      <div className="flex justify-between px-4 py-2 border-b-2 border-black dark:border-white">
         <h1 className="font-bold text-md sm:text-xl md:text-lg xl:text-xl">
           {props.sectionTitle}
         </h1>
diff --git a/app/components/ReleaseInfo/ReleaseInfo.Basics.tsx b/app/components/ReleaseInfo/ReleaseInfo.Basics.tsx
index 53ba3e4..2aa6a14 100644
--- a/app/components/ReleaseInfo/ReleaseInfo.Basics.tsx
+++ b/app/components/ReleaseInfo/ReleaseInfo.Basics.tsx
@@ -15,10 +15,10 @@ export const ReleaseInfoBasics = (props: {
         ></img>
         <div className="flex flex-col max-w-2xl gap-2 text-sm md:text-base">
           <div className="flex flex-col gap-1">
-            <p className="text-xl font-bold text-black md:text-2xl">
+            <p className="text-xl font-bold text-black md:text-2xl dark:text-white">
               {props.title.ru}
             </p>
-            <p className="text-sm text-gray-500 md:text-base">
+            <p className="text-sm text-gray-500 md:text-base dark:text-gray-400">
               {props.title.original}
             </p>
           </div>
diff --git a/app/components/ReleaseInfo/ReleaseInfo.Info.tsx b/app/components/ReleaseInfo/ReleaseInfo.Info.tsx
index 95cf5bc..5856351 100644
--- a/app/components/ReleaseInfo/ReleaseInfo.Info.tsx
+++ b/app/components/ReleaseInfo/ReleaseInfo.Info.tsx
@@ -53,7 +53,7 @@ export const ReleaseInfoInfo = (props: {
           </Table.Row>
           <Table.Row>
             <Table.Cell className="py-0">
-              <span className="w-8 h-8 iconify-color mdi--animation-play-outline "></span>
+              <span className="w-8 h-8 iconify-color mdi--animation-play-outline dark:invert"></span>
             </Table.Cell>
             <Table.Cell className="font-medium text-gray-900 whitespace-nowrap dark:text-white">
               {props.episodes.released ? props.episodes.released : "?"}
@@ -64,7 +64,7 @@ export const ReleaseInfoInfo = (props: {
           </Table.Row>
           <Table.Row>
             <Table.Cell className="py-0">
-              <span className="w-8 h-8 iconify-color mdi--calendar-outline "></span>
+              <span className="w-8 h-8 iconify-color mdi--calendar-outline dark:invert"></span>
             </Table.Cell>
             <Table.Cell className="font-medium text-gray-900 dark:text-white">
               {props.category}
@@ -76,7 +76,7 @@ export const ReleaseInfoInfo = (props: {
           </Table.Row>
           <Table.Row>
             <Table.Cell className="py-0">
-              <span className="w-8 h-8 iconify-color mdi--people-group-outline "></span>
+              <span className="w-8 h-8 iconify-color mdi--people-group-outline dark:invert"></span>
             </Table.Cell>
             <Table.Cell className="font-medium text-gray-900 dark:text-white">
               {props.studio && (
@@ -112,7 +112,7 @@ export const ReleaseInfoInfo = (props: {
           </Table.Row>
           <Table.Row>
             <Table.Cell className="py-0">
-              <span className="w-8 h-8 iconify-color mdi--tag-outline "></span>
+              <span className="w-8 h-8 iconify-color mdi--tag-outline dark:invert"></span>
             </Table.Cell>
             <Table.Cell className="font-medium text-gray-900 dark:text-white">
               {props.genres &&
@@ -129,7 +129,7 @@ export const ReleaseInfoInfo = (props: {
           {props.status.toLowerCase() == "анонс" && (
             <Table.Row>
               <Table.Cell className="py-0">
-                <span className="w-8 h-8 iconify-color mdi--clock-outline "></span>
+                <span className="w-8 h-8 iconify-color mdi--clock-outline dark:invert"></span>
               </Table.Cell>
               <Table.Cell className="font-medium text-gray-900 whitespace-nowrap dark:text-white">
                 {props.aired_on_date != 0 ? (
diff --git a/app/components/ReleaseInfo/ReleaseInfo.Rating.tsx b/app/components/ReleaseInfo/ReleaseInfo.Rating.tsx
index 379b422..dbe1be0 100644
--- a/app/components/ReleaseInfo/ReleaseInfo.Rating.tsx
+++ b/app/components/ReleaseInfo/ReleaseInfo.Rating.tsx
@@ -46,7 +46,7 @@ export const ReleaseInfoRating = (props: {
                 </p>
                 <Button
                   size={"xs"}
-                  className="text-gray-500 border border-gray-600 rounded-full"
+                  className="text-gray-500 border border-gray-600 rounded-full hover:bg-black hover:text-white hover:border-black dark:text-gray-400 dark:border-gray-500"
                   color="inline"
                 >
                   изменить
@@ -55,7 +55,7 @@ export const ReleaseInfoRating = (props: {
             ) : (
               <Button
                 size={"xs"}
-                className="text-gray-500 border border-gray-600 rounded-full"
+                className="text-gray-500 border border-gray-600 rounded-full hover:bg-black hover:text-white hover:border-black dark:text-gray-400 dark:border-gray-500"
                 color="inline"
               >
                 оценить
diff --git a/app/components/ReleaseInfo/ReleaseInfo.Related.tsx b/app/components/ReleaseInfo/ReleaseInfo.Related.tsx
index 85cd3bf..dbd6c40 100644
--- a/app/components/ReleaseInfo/ReleaseInfo.Related.tsx
+++ b/app/components/ReleaseInfo/ReleaseInfo.Related.tsx
@@ -17,7 +17,7 @@ export const ReleaseInfoRelated = (props: {
 }) => {
   return (
     <Card>
-      <div className="flex justify-between py-2 border-b-2 border-black">
+      <div className="flex justify-between py-2 border-b-2 border-black dark:border-white">
         <h1>Связанные релизы</h1>
         {props.related && (
           <Link href={`/related/${props.related.id}`}>
diff --git a/app/components/ReleaseInfo/ReleaseInfo.UserList.tsx b/app/components/ReleaseInfo/ReleaseInfo.UserList.tsx
index 5ad4808..6909950 100644
--- a/app/components/ReleaseInfo/ReleaseInfo.UserList.tsx
+++ b/app/components/ReleaseInfo/ReleaseInfo.UserList.tsx
@@ -13,7 +13,7 @@ const lists = [
 const DropdownTheme = {
   floating: {
     target:
-      "flex-1 bg-blue-600 enabled:hover:bg-blue-700 focus:ring-4 focus:outline-none focus:ring-blue-300 text-center dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800",
+      "flex-1",
   },
 };
 
@@ -57,6 +57,7 @@ export const ReleaseInfoUserList = (props: {
             label={lists[props.userList].name}
             dismissOnClick={true}
             theme={DropdownTheme}
+            color="blue"
           >
             {lists.map((list) => (
               <Dropdown.Item
@@ -68,7 +69,7 @@ export const ReleaseInfoUserList = (props: {
             ))}
           </Dropdown>
           <Button
-            className="bg-blue-600 enabled:hover:bg-blue-700 focus:ring-4 focus:outline-none focus:ring-blue-300 dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800"
+            color="blue"
             onClick={() => {
               _addToFavorite();
             }}
diff --git a/app/components/ReleaseLink/ReleaseLink.16_9.tsx b/app/components/ReleaseLink/ReleaseLink.16_9.tsx
index 7e1d34b..ac7dc86 100644
--- a/app/components/ReleaseLink/ReleaseLink.16_9.tsx
+++ b/app/components/ReleaseLink/ReleaseLink.16_9.tsx
@@ -21,12 +21,14 @@ export const ReleaseLink169 = (props: any) => {
   return (
     <Link href={`/release/${props.id}`}>
       <div className="w-full aspect-video group">
-        <div className="relative w-full h-full overflow-hidden bg-gradient-to-t from-black to-transparent">
-          <img
+        <div className="relative w-full h-full overflow-hidden bg-center bg-no-repeat bg-cover rounded-sm group-hover:animate-bg_zoom animate-bg_zoom_rev group-hover:[background-size:110%] " style={{
+            backgroundImage: `linear-gradient(to bottom, rgba(0, 0, 0, 0.1) 0%, rgba(0, 0, 0, 0.9) 100%), url(${props.image})`,
+          }}>
+          {/* <img
             className="absolute z-0 object-cover w-full h-full transition mix-blend-overlay group-hover:scale-110"
             src={props.image}
             alt=""
-          />
+          /> */}
           <div className="absolute flex flex-wrap items-start justify-start gap-0.5 sm:gap-1 left-2 top-2">
             <Chip
               bg_color={
diff --git a/app/components/ReleasePlayer/ReleasePlayer.tsx b/app/components/ReleasePlayer/ReleasePlayer.tsx
index bd799ce..240e57a 100644
--- a/app/components/ReleasePlayer/ReleasePlayer.tsx
+++ b/app/components/ReleasePlayer/ReleasePlayer.tsx
@@ -8,16 +8,10 @@ import { useState, useEffect } from "react";
 
 const DropdownTheme = {
   floating: {
-    target:
-      "w-full md:min-w-[256px] md:w-fit bg-blue-600 enabled:hover:bg-blue-700 focus:ring-4 focus:outline-none focus:ring-blue-300 text-center dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800",
+    target: "w-full md:min-w-[256px] md:w-fit",
   },
 };
 
-const ButtonThemeInactive =
-  "bg-blue-600 enabled:hover:bg-blue-700 focus:ring-4 focus:outline-none focus:ring-blue-300 dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800";
-const ButtonThemeActive =
-  "bg-blue-800 dark:bg-blue-600 disabled:opacity-100 dark:disabled:opacity-100";
-
 async function _fetch(url: string) {
   const data = fetch(url)
     .then((res) => {
@@ -103,10 +97,7 @@ export const ReleasePlayer = (props: { id: number }) => {
       ) : (
         <>
           <div className="flex flex-wrap gap-2">
-            <Dropdown
-              label={`Озвучка: ${selectedVoiceover.name}`}
-              theme={DropdownTheme}
-            >
+            <Dropdown label={`Озвучка: ${selectedVoiceover.name}`} color="blue">
               {voiceoverInfo.map((voiceover: any) => (
                 <Dropdown.Item
                   key={`voiceover_${voiceover.id}`}
@@ -116,10 +107,7 @@ export const ReleasePlayer = (props: { id: number }) => {
                 </Dropdown.Item>
               ))}
             </Dropdown>
-            <Dropdown
-              label={`Плеер: ${selectedSource.name}`}
-              theme={DropdownTheme}
-            >
+            <Dropdown label={`Плеер: ${selectedSource.name}`} color="blue">
               {sourcesInfo.map((source: any) => (
                 <Dropdown.Item
                   key={`source_${source.id}`}
@@ -141,11 +129,12 @@ export const ReleasePlayer = (props: { id: number }) => {
             <div className="flex gap-2 p-2 overflow-x-auto scrollbar-thin">
               {episodeInfo.map((episode: any) => (
                 <Button
-                  className={`text-center min-w-fit ${
+                  color={
                     selectedEpisode.position === episode.position
-                      ? ButtonThemeActive
-                      : ButtonThemeInactive
-                  }`}
+                      ? "blue"
+                      : "light"
+                  }
+                  theme={{base: "min-w-fit disabled:opacity-100"}}
                   key={`episode_${episode.position}`}
                   onClick={() => {
                     setSelectedEpisode(episode);
diff --git a/app/components/ReleaseSection/ReleaseSection.tsx b/app/components/ReleaseSection/ReleaseSection.tsx
index 083a8f1..a1612dc 100644
--- a/app/components/ReleaseSection/ReleaseSection.tsx
+++ b/app/components/ReleaseSection/ReleaseSection.tsx
@@ -4,7 +4,7 @@ export const ReleaseSection = (props: any) => {
   return (
     <section>
       {props.sectionTitle && (
-        <div className="flex justify-between px-4 py-2 border-b-2 border-black">
+        <div className="flex justify-between px-4 py-2 border-b-2 border-black dark:border-white">
           <h1 className="font-bold text-md sm:text-xl md:text-lg xl:text-xl">
             {props.sectionTitle}
           </h1>
diff --git a/app/layout.tsx b/app/layout.tsx
index a116406..f14b144 100644
--- a/app/layout.tsx
+++ b/app/layout.tsx
@@ -1,5 +1,6 @@
 import "./globals.css";
 import { App } from "./App";
+import { ThemeModeScript } from "flowbite-react";
 
 export const metadata = {
   title: {
@@ -11,7 +12,10 @@ export const metadata = {
 
 export default function RootLayout({ children }) {
   return (
-    <html lang="en">
+    <html lang="en" suppressHydrationWarning>
+      <head>
+        <ThemeModeScript />
+      </head>
       <App>{children}</App>
     </html>
   );
diff --git a/app/pages/BookmarksCategory.tsx b/app/pages/BookmarksCategory.tsx
index 3cc26e2..9d9d005 100644
--- a/app/pages/BookmarksCategory.tsx
+++ b/app/pages/BookmarksCategory.tsx
@@ -62,13 +62,13 @@ export function BookmarksCategoryPage(props: any) {
   const DropdownTheme = {
     floating: {
       target:
-        "w-fit bg-blue-600 enabled:hover:bg-blue-700 focus:ring-4 focus:outline-none focus:ring-blue-300 text-center dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800",
+        "w-fit bg-blue-600 enabled:hover:bg-blue-700 focus:ring-4 focus:outline-none focus:ring-blue-300 text-center dark:bg-blue-600 dark:enabled:hover:bg-blue-700 dark:focus:ring-blue-800",
     },
   };
 
   return (
     <main className="container pt-2 pb-16 mx-auto sm:pt-4 sm:pb-0">
-      <div className="flex items-center justify-between px-4 py-2 border-b-2 border-black">
+      <div className="flex items-center justify-between px-4 py-2 border-b-2 border-black dark:border-white">
         <h1 className="font-bold text-md sm:text-xl md:text-lg xl:text-xl">
           {props.SectionTitleMapping[props.slug]}
         </h1>
diff --git a/app/pages/Favorites.tsx b/app/pages/Favorites.tsx
index 563b95b..c06fe10 100644
--- a/app/pages/Favorites.tsx
+++ b/app/pages/Favorites.tsx
@@ -61,13 +61,13 @@ export function FavoritesPage() {
   const DropdownTheme = {
     floating: {
       target:
-        "w-fit bg-blue-600 enabled:hover:bg-blue-700 focus:ring-4 focus:outline-none focus:ring-blue-300 text-center dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800",
+        "w-fit bg-blue-600 enabled:hover:bg-blue-700 focus:ring-4 focus:outline-none focus:ring-blue-300 text-center dark:bg-blue-600 dark:enabled:hover:bg-blue-700 dark:focus:ring-blue-800",
     },
   };
 
   return (
     <main className="container pt-2 pb-16 mx-auto sm:pt-4 sm:pb-0">
-      <div className="flex items-center justify-between px-4 py-2 border-b-2 border-black">
+      <div className="flex items-center justify-between px-4 py-2 border-b-2 border-black dark:border-white">
         <h1 className="font-bold text-md sm:text-xl md:text-lg xl:text-xl">
           Избранное
         </h1>
diff --git a/app/pages/History.tsx b/app/pages/History.tsx
index 81c76da..28b9a31 100644
--- a/app/pages/History.tsx
+++ b/app/pages/History.tsx
@@ -57,7 +57,7 @@ export function HistoryPage() {
 
   return (
     <main className="container pt-2 pb-16 mx-auto sm:pt-4 sm:pb-0">
-      <div className="flex items-center justify-between px-4 py-2 border-b-2 border-black">
+      <div className="flex items-center justify-between px-4 py-2 border-b-2 border-black dark:border-white">
         <h1 className="font-bold text-md sm:text-xl md:text-lg xl:text-xl">
           История
         </h1>
diff --git a/app/pages/Related.tsx b/app/pages/Related.tsx
index 1f5e340..9908e46 100644
--- a/app/pages/Related.tsx
+++ b/app/pages/Related.tsx
@@ -58,7 +58,7 @@ export function RelatedPage(props: {id: number|string, title: string}) {
 
   return (
     <main className="container pt-2 pb-16 mx-auto sm:pt-4 sm:pb-0">
-      <div className="flex items-center justify-between px-4 py-2 border-b-2 border-black">
+      <div className="flex items-center justify-between px-4 py-2 border-b-2 border-black dark:border-white">
         <h1 className="font-bold text-md sm:text-xl md:text-lg xl:text-xl">
           Франшиза {props.title}
         </h1>
diff --git a/app/store/preferences.ts b/app/store/preferences.ts
index fb138c6..d0ec4d8 100644
--- a/app/store/preferences.ts
+++ b/app/store/preferences.ts
@@ -1,10 +1,42 @@
 "use client";
 import { create } from "zustand";
-import { persist, createJSONStorage } from "zustand/middleware";
+import { persist } from "zustand/middleware";
 
-export const usePreferencesStore = create(
+interface preferencesState {
+  flags: {
+    // saveSearchHistory: boolean;
+    saveWatchHistory: boolean;
+    // theme: "light" | "dark" | "black" | "system";
+  };
+  params: {
+    isFirstLaunch: boolean;
+    // color: {
+    //   primary: string;
+    //   secondary: string;
+    //   accent: string;
+    // }
+  };
+  setFlags: (flags: preferencesState["flags"]) => void;
+  setParams: (params: preferencesState["params"]) => void;
+}
+
+export const usePreferencesStore = create<preferencesState>()(
   persist(
     (set, get) => ({
+      flags: {
+        // saveSearchHistory: true,
+        saveWatchHistory: true,
+        // theme: "light",
+      },
+      params: {
+        isFirstLaunch: true,
+      },
+      setFlags(flags) {
+        set({ flags });
+      },
+      setParams(params) {
+        set({ params });
+      },
     }),
     {
       name: "preferences",
diff --git a/tailwind.config.js b/tailwind.config.js
index d8dda9d..2e4702a 100644
--- a/tailwind.config.js
+++ b/tailwind.config.js
@@ -11,7 +11,34 @@ module.exports = {
   ],
   plugins: [
     addIconSelectors(["mdi", "material-symbols", "twemoji", "fa6-brands"]),
-    require('tailwind-scrollbar'),
+    require("tailwind-scrollbar"),
     flowbite.plugin(),
   ],
+  darkMode: "selector",
+  theme: {
+    extend: {
+      animation: {
+        bg_zoom: "bg_zoom 150ms linear",
+        bg_zoom_rev: "bg_zoom_rev 150ms linear",
+      },
+      keyframes: {
+        bg_zoom: {
+          "0%": {
+            "background-size": "100% auto",
+          },
+          "100%": {
+            "background-size": "110% auto",
+          },
+        },
+        bg_zoom_rev: {
+          "0%": {
+            "background-size": "110% auto",
+          },
+          "100%": {
+            "background-size": "100% auto",
+          },
+        },
+      },
+    },
+  },
 };