diff --git a/CHANGELOG.md b/CHANGELOG.md
index cdd9e96..7668bc9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,11 @@
# Changelog
+## 1.0.2
+
+### Patch Changes
+
+- 373f5a6: Fix dark theme adaptation for sidebar chrome, dialogs, charts, and scoped studio root tokens.
+
## 1.0.1
### Patch Changes
diff --git a/CHANGELOG.zh-CN.md b/CHANGELOG.zh-CN.md
index 9f90e07..dfeddc0 100644
--- a/CHANGELOG.zh-CN.md
+++ b/CHANGELOG.zh-CN.md
@@ -1,5 +1,11 @@
# 变更日志
+## [1.0.2] - 2026-08-10
+
+### 已修复
+
+- 修复深色主题:侧栏 Tab/分割条、弹窗、图表与 scoped studio root 的语义色适配
+
## [1.0.1] - 2026-08-07
### 已更改
diff --git a/package-lock.json b/package-lock.json
index 273de82..00ad0c1 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "@ioai/lerobot-studio",
- "version": "1.0.1",
+ "version": "1.0.2",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@ioai/lerobot-studio",
- "version": "1.0.1",
+ "version": "1.0.2",
"license": "MIT",
"dependencies": {
"@base-ui/react": "^1.7.0",
diff --git a/package.json b/package.json
index 9cd7bc6..2368da5 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "@ioai/lerobot-studio",
"private": false,
- "version": "1.0.1",
+ "version": "1.0.2",
"type": "module",
"packageManager": "npm@11.7.0",
"scripts": {
diff --git a/src/react/components/ErrorBoundary.tsx b/src/react/components/ErrorBoundary.tsx
index 0bfa360..903a1db 100644
--- a/src/react/components/ErrorBoundary.tsx
+++ b/src/react/components/ErrorBoundary.tsx
@@ -27,15 +27,24 @@ export function ErrorFallback({ error, onReset }: ErrorFallbackProps) {
const { t } = useTranslation();
const errorDetails = formatErrorForDisplay(error, import.meta.env.DEV);
+ const preferDark =
+ typeof window !== 'undefined' &&
+ (() => {
+ const saved = window.localStorage?.getItem('theme');
+ if (saved === 'dark') return true;
+ if (saved === 'light') return false;
+ return window.matchMedia('(prefers-color-scheme: dark)').matches;
+ })();
+
return (
-
{t('errorBoundary.title')}
+
{t('errorBoundary.title')}
{t('errorBoundary.description')}
diff --git a/src/react/components/LeRobotStudioProvider.tsx b/src/react/components/LeRobotStudioProvider.tsx
index 5d9fd2b..a26f390 100644
--- a/src/react/components/LeRobotStudioProvider.tsx
+++ b/src/react/components/LeRobotStudioProvider.tsx
@@ -67,13 +67,22 @@ export const LeRobotStudioProvider: React.FC
= ({
return (
{wrapRoot ? (
-
+
{children}
) : (
-
+
{children}
diff --git a/src/react/components/Navbar.tsx b/src/react/components/Navbar.tsx
index 0f33dd5..bd81f0b 100644
--- a/src/react/components/Navbar.tsx
+++ b/src/react/components/Navbar.tsx
@@ -107,7 +107,7 @@ export const Navbar: React.FC
= ({
const displayName = datasetName || t('common.companyName');
return (
-