diff --git a/src/screens/Settings/AppearanceSettings.tsx b/src/screens/Settings/AppearanceSettings.tsx
index 393c54755..7bfb1c1fc 100644
--- a/src/screens/Settings/AppearanceSettings.tsx
+++ b/src/screens/Settings/AppearanceSettings.tsx
@@ -14,6 +14,7 @@ import {
type NativeStackScreenProps,
} from '#/lib/routes/types'
import {isNative} from '#/platform/detection'
+import {useKawaiiMode, useSetKawaiiMode} from '#/state/preferences/kawaii'
import {useSetThemePrefs, useThemePrefs} from '#/state/shell'
import {SettingsListItem as AppIconSettingsListItem} from '#/screens/Settings/AppIconSettings/SettingsListItem'
import {type Alf, atoms as a, native, useAlf, useTheme} from '#/alf'
@@ -24,6 +25,7 @@ import {type Props as SVGIconProps} from '#/components/icons/common'
import {Moon_Stroke2_Corner0_Rounded as MoonIcon} from '#/components/icons/Moon'
import {Phone_Stroke2_Corner0_Rounded as PhoneIcon} from '#/components/icons/Phone'
import {Pizza_Stroke2_Corner0_Rounded as PizzaIcon} from '#/components/icons/Pizza'
+import {Sparkle_Stroke2_Corner0_Rounded as SparkleIcon} from '#/components/icons/Sparkle'
import {TextSize_Stroke2_Corner0_Rounded as TextSize} from '#/components/icons/TextSize'
import {TitleCase_Stroke2_Corner0_Rounded as Aa} from '#/components/icons/TitleCase'
import * as Layout from '#/components/Layout'
@@ -41,6 +43,9 @@ export function AppearanceSettingsScreen({}: Props) {
const {setColorMode, setColorScheme, setDarkTheme, setHue} =
useSetThemePrefs()
+ const kawaiiMode = useKawaiiMode()
+ const setKawaiiMode = useSetKawaiiMode()
+
const onChangeAppearance = useCallback(
(value: 'light' | 'system' | 'dark') => {
setColorMode(value)
@@ -238,6 +243,26 @@ export function AppearanceSettingsScreen({}: Props) {
onChange={onChangeFontScale}
/>
+
+
+
+
+
+ Logo
+
+ setKawaiiMode(value)}
+ style={[a.w_full]}>
+
+ Enable kawaii logo
+
+
+
+
+
{isNative && IS_INTERNAL && (
<>
diff --git a/src/state/preferences/kawaii.tsx b/src/state/preferences/kawaii.tsx
index 1835e0359..2f45bde2c 100644
--- a/src/state/preferences/kawaii.tsx
+++ b/src/state/preferences/kawaii.tsx
@@ -43,9 +43,24 @@ export function Provider({children}: React.PropsWithChildren<{}>) {
}
}, [setStateWrapped])
- return {children}
+ return (
+
+
+ {children}
+
+
+ )
}
export function useKawaiiMode() {
return React.useContext(stateContext)
}
+
+const setterContext = React.createContext<(kawaii: boolean) => void>(
+ (_: boolean) => {},
+)
+setterContext.displayName = 'KawaiiSetterContext'
+
+export function useSetKawaiiMode() {
+ return React.useContext(setterContext)
+}
diff --git a/src/view/com/auth/SplashScreen.tsx b/src/view/com/auth/SplashScreen.tsx
index 0bb360972..2688edeaa 100644
--- a/src/view/com/auth/SplashScreen.tsx
+++ b/src/view/com/auth/SplashScreen.tsx
@@ -5,6 +5,7 @@ import {msg, Trans} from '@lingui/macro'
import {useLingui} from '@lingui/react'
import {useHaptics} from '#/lib/haptics'
+import {useKawaiiMode} from '#/state/preferences/kawaii'
import {ErrorBoundary} from '#/view/com/util/ErrorBoundary'
import {CenteredView} from '#/view/com/util/Views'
import {Logo} from '#/view/icons/Logo'
@@ -26,6 +27,7 @@ export const SplashScreen = ({
const playHaptic = useHaptics()
const insets = useSafeAreaInsets()
+ const kawaii = useKawaiiMode()
return (
@@ -35,11 +37,13 @@ export const SplashScreen = ({
style={[a.flex_1]}>
-
+
-
-
-
+ {!kawaii && (
+
+
+
+ )}