diff --git a/src/features/online-board/components/DetailsBackButton/DetailsBackButton.scss b/src/features/online-board/components/DetailsBackButton/DetailsBackButton.scss
new file mode 100644
index 00000000..808214e2
--- /dev/null
+++ b/src/features/online-board/components/DetailsBackButton/DetailsBackButton.scss
@@ -0,0 +1,22 @@
+.details-back-button {
+ display: inline-flex;
+ align-items: center;
+ gap: 8px;
+ padding: 8px 16px;
+ background: #e3f0ff;
+ color: #1a3a5c;
+ border-radius: 6px;
+ text-decoration: none;
+ font-size: 14px;
+ font-family: inherit;
+ cursor: pointer;
+
+ &:hover {
+ background: #c7dff5;
+ }
+
+ &__arrow {
+ display: inline-block;
+ font-size: 16px;
+ }
+}
diff --git a/src/features/online-board/components/DetailsBackButton/DetailsBackButton.test.tsx b/src/features/online-board/components/DetailsBackButton/DetailsBackButton.test.tsx
new file mode 100644
index 00000000..c7bdc107
--- /dev/null
+++ b/src/features/online-board/components/DetailsBackButton/DetailsBackButton.test.tsx
@@ -0,0 +1,50 @@
+// @vitest-environment jsdom
+import { describe, it, expect, vi } from "vitest";
+import { render, screen } from "@testing-library/react";
+import { DetailsBackButton } from "./DetailsBackButton.js";
+
+vi.mock("@modern-js/runtime/router", () => ({
+ Link: ({
+ children,
+ to,
+ ...props
+ }: {
+ children: React.ReactNode;
+ to: string;
+ [key: string]: unknown;
+ }) => (
+
+ {children}
+
+ ),
+}));
+
+vi.mock("@/i18n/provider.js", () => ({
+ useTranslation: () => ({ t: (k: string) => k }),
+}));
+
+describe("DetailsBackButton", () => {
+ it("has data-testid details-back-button", () => {
+ render();
+ expect(screen.getByTestId("details-back-button")).toBeTruthy();
+ });
+
+ it("links to /ru/onlineboard for locale='ru'", () => {
+ render();
+ expect(screen.getByTestId("details-back-button").getAttribute("href")).toBe(
+ "/ru/onlineboard",
+ );
+ });
+
+ it("uses the provided locale", () => {
+ render();
+ expect(screen.getByTestId("details-back-button").getAttribute("href")).toBe(
+ "/en/onlineboard",
+ );
+ });
+
+ it("renders SHARED.BACK-BOARD label", () => {
+ render();
+ expect(screen.getByText("SHARED.BACK-BOARD")).toBeTruthy();
+ });
+});
diff --git a/src/features/online-board/components/DetailsBackButton/DetailsBackButton.tsx b/src/features/online-board/components/DetailsBackButton/DetailsBackButton.tsx
new file mode 100644
index 00000000..e7f8cfd5
--- /dev/null
+++ b/src/features/online-board/components/DetailsBackButton/DetailsBackButton.tsx
@@ -0,0 +1,24 @@
+import type { FC } from "react";
+import { Link } from "@modern-js/runtime/router";
+import { useTranslation } from "@/i18n/provider.js";
+import "./DetailsBackButton.scss";
+
+export interface DetailsBackButtonProps {
+ locale: string;
+}
+
+export const DetailsBackButton: FC = ({ locale }) => {
+ const { t } = useTranslation();
+ return (
+
+
+ {"\u2190"}
+
+ {t("SHARED.BACK-BOARD")}
+
+ );
+};
diff --git a/src/features/online-board/components/DetailsBackButton/index.ts b/src/features/online-board/components/DetailsBackButton/index.ts
new file mode 100644
index 00000000..fb0a2bbb
--- /dev/null
+++ b/src/features/online-board/components/DetailsBackButton/index.ts
@@ -0,0 +1,2 @@
+export { DetailsBackButton } from "./DetailsBackButton.js";
+export type { DetailsBackButtonProps } from "./DetailsBackButton.js";