diff --git a/CHANGELOG.md b/CHANGELOG.md
index e3d3e1d..f991071 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,6 @@
+### v2.3.0 (TBA)
+- Added custom theme editor ([#246](https://github.com/pawelmalak/flame/issues/246))
+
### v2.2.2 (2022-03-21)
- Added option to get user location directly from the app ([#287](https://github.com/pawelmalak/flame/issues/287))
- Fixed bug with local search not working when using prefix ([#289](https://github.com/pawelmalak/flame/issues/289))
diff --git a/README.md b/README.md
index 290f230..a8424c9 100644
--- a/README.md
+++ b/README.md
@@ -11,7 +11,7 @@ Flame is self-hosted startpage for your server. Its design is inspired (heavily)
- 📌 Pin your favourite items to the homescreen for quick and easy access
- 🔍 Integrated search bar with local filtering, 11 web search providers and ability to add your own
- 🔑 Authentication system to protect your settings, apps and bookmarks
-- 🔨 Dozens of options to customize Flame interface to your needs, including support for custom CSS and 15 built-in color themes
+- 🔨 Dozens of options to customize Flame interface to your needs, including support for custom CSS, 15 built-in color themes and custom theme builder
- ☀️ Weather widget with current temperature, cloud coverage and animated weather status
- 🐳 Docker integration to automatically pick and add apps based on their labels
diff --git a/client/src/components/Settings/Themer/ThemeBuilder/ThemeBuilder.tsx b/client/src/components/Settings/Themer/ThemeBuilder/ThemeBuilder.tsx
index 4ae2822..50a2c5a 100644
--- a/client/src/components/Settings/Themer/ThemeBuilder/ThemeBuilder.tsx
+++ b/client/src/components/Settings/Themer/ThemeBuilder/ThemeBuilder.tsx
@@ -1,7 +1,9 @@
-import { useState } from 'react';
+import { useState, useEffect } from 'react';
// Redux
-import { useSelector } from 'react-redux';
+import { useSelector, useDispatch } from 'react-redux';
+import { bindActionCreators } from 'redux';
+import { actionCreators } from '../../../../store';
import { State } from '../../../../store/reducers';
// Other
@@ -21,11 +23,21 @@ interface Props {
export const ThemeBuilder = ({ themes }: Props): JSX.Element => {
const {
auth: { isAuthenticated },
+ theme: { themeInEdit },
} = useSelector((state: State) => state);
+ const { editTheme } = bindActionCreators(actionCreators, useDispatch());
+
const [showModal, toggleShowModal] = useState(false);
const [isInEdit, toggleIsInEdit] = useState(false);
+ useEffect(() => {
+ if (themeInEdit) {
+ toggleIsInEdit(false);
+ toggleShowModal(true);
+ }
+ }, [themeInEdit]);
+
return (