diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6b30f42..d813e66 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
+- Web-Install-Hinweis auf der Startseite als dezente Textzeile statt umrahmter Karte mit Emoji und Untertitel
+- Store-/OG-Grafik: Schritt „Denken" zeigt eine Denkblase mit dem Haus-Motiv des App-Icons statt der Mascot-Figur
- Startseite entschlackt: „Spiel starten" ist die einzige auffällige Aktion (ohne Dauer-Puls); Tägliche Challenge als dezenter Textlink darunter (ohne ⚡, Farbrahmen, Countdown); Level/Galerie/Freies Malen als einfarbige Textlinks im Footer; Statistik als eine Textzeile statt drei Emoji-Karten; Streak-Badge und schwebende Sterne entfernt — die Serie steht nur noch in Malis Begrüßung
- Merke-Phase: dünner, einfarbiger Restzeit-Balken statt 80px-Countdown-Kreis mit Gelb/Rot-Warnfarben (war bei 3 s Anzeigezeit dauerhaft im Warnmodus)
- App-Icon/Splash/Store-Grafik: ruhigeres, entsättigtes Hellblau `#A9DCEB` statt `#60D5FA`
diff --git a/assets/icons/feature-graphic.png b/assets/icons/feature-graphic.png
index 8fd1455..e160c3d 100644
Binary files a/assets/icons/feature-graphic.png and b/assets/icons/feature-graphic.png differ
diff --git a/assets/icons/feature-graphic.svg b/assets/icons/feature-graphic.svg
index d11f640..55f7934 100644
--- a/assets/icons/feature-graphic.svg
+++ b/assets/icons/feature-graphic.svg
@@ -34,21 +34,16 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
Denken
diff --git a/components/WebInstallBanner.tsx b/components/WebInstallBanner.tsx
index edc3cf6..2d2e076 100644
--- a/components/WebInstallBanner.tsx
+++ b/components/WebInstallBanner.tsx
@@ -1,10 +1,10 @@
import React from 'react';
-import { View, Text, StyleSheet, TouchableOpacity, Linking } from 'react-native';
+import { Text, StyleSheet, TouchableOpacity, Linking } from 'react-native';
import { useTranslation } from '@services/i18n';
import { useTheme } from '@services/ThemeContext';
import { isWeb } from '../utils/platform';
import { getPlayStoreUrl } from '../constants/ExternalLinks';
-import { Spacing, FontSize, FontWeight, FontFamily, BorderRadius } from '../constants/Layout';
+import { Spacing, FontSize, FontWeight, FontFamily } from '../constants/Layout';
/**
* Nur auf Web sichtbarer Install-Hinweis oberhalb des Spiel-CTAs.
@@ -15,6 +15,9 @@ import { Spacing, FontSize, FontWeight, FontFamily, BorderRadius } from '../cons
* Installationen konvertiert. Dieser Banner macht die Android-App direkt im
* sichtbaren Bereich zum Angebot — mit Attributions-Link, damit die Installs
* in der Play Console als Web-Traffic erkennbar sind.
+ *
+ * Bewusst nur eine dezente Textzeile (kein Rahmen, kein Emoji), damit
+ * "Spiel starten" die einzige auffällige Aktion der Startseite bleibt.
*/
export default function WebInstallBanner() {
const { t } = useTranslation();
@@ -31,52 +34,25 @@ export default function WebInstallBanner() {
onPress={open}
accessibilityRole="link"
accessibilityLabel={t('webInstall.title')}
- style={[styles.container, { backgroundColor: colors.surface, borderColor: colors.primary }]}
+ style={styles.container}
>
- 📲
-
-
- {t('webInstall.title')}
-
-
- {t('webInstall.subtitle')}
-
-
- ›
+
+ {t('webInstall.title')} ›
+
);
}
const styles = StyleSheet.create({
container: {
- flexDirection: 'row',
- alignItems: 'center',
- gap: Spacing.sm,
- marginTop: Spacing.sm,
- paddingVertical: Spacing.sm,
+ alignSelf: 'center',
+ minHeight: 44,
+ justifyContent: 'center',
paddingHorizontal: Spacing.md,
- borderRadius: BorderRadius.lg,
- borderWidth: 1.5,
- },
- icon: {
- fontSize: 20,
- },
- textBlock: {
- flex: 1,
},
title: {
fontSize: FontSize.sm,
- fontWeight: FontWeight.bold,
- fontFamily: FontFamily.bold,
- },
- subtitle: {
- fontSize: FontSize.xs,
- fontWeight: FontWeight.regular,
- fontFamily: FontFamily.regular,
- marginTop: 1,
- },
- chevron: {
- fontSize: 22,
- fontWeight: FontWeight.bold,
+ fontWeight: FontWeight.semibold,
+ fontFamily: FontFamily.semibold,
},
});
diff --git a/components/__tests__/WebInstallBanner.test.tsx b/components/__tests__/WebInstallBanner.test.tsx
index 204aafd..37aff1e 100644
--- a/components/__tests__/WebInstallBanner.test.tsx
+++ b/components/__tests__/WebInstallBanner.test.tsx
@@ -19,14 +19,12 @@ jest.mock('../../services/ThemeContext', () => ({
import WebInstallBanner from '../WebInstallBanner';
describe('WebInstallBanner', () => {
- it('zeigt Titel und Untertitel', () => {
+ it('zeigt nur eine dezente Titelzeile', () => {
const { UNSAFE_getAllByType } = render();
- const texts = UNSAFE_getAllByType(Text)
- .map((n: any) => n.props.children)
- .flat();
+ const texts = UNSAFE_getAllByType(Text);
- expect(texts).toContain('webInstall.title');
- expect(texts).toContain('webInstall.subtitle');
+ expect(texts).toHaveLength(1);
+ expect(texts[0].props.children).toContain('webInstall.title');
});
it('öffnet den Play Store mit Banner-Attribution', async () => {
diff --git a/locales/de/translations.json b/locales/de/translations.json
index 7c5b019..3ff3f97 100644
--- a/locales/de/translations.json
+++ b/locales/de/translations.json
@@ -23,8 +23,7 @@
"privacyPolicy": "Datenschutz"
},
"webInstall": {
- "title": "Android-App gratis im Play Store",
- "subtitle": "Auch ohne Internet spielbar"
+ "title": "Android-App gratis im Play Store"
},
"levels": {
"title": "Level auswählen",
diff --git a/locales/en/translations.json b/locales/en/translations.json
index 2e0cf44..d863042 100644
--- a/locales/en/translations.json
+++ b/locales/en/translations.json
@@ -23,8 +23,7 @@
"privacyPolicy": "Privacy Policy"
},
"webInstall": {
- "title": "Free Android app on Google Play",
- "subtitle": "Plays without an internet connection"
+ "title": "Free Android app on Google Play"
},
"levels": {
"title": "Select Level",
diff --git a/locales/es/translations.json b/locales/es/translations.json
index 3cfd009..5985cd5 100644
--- a/locales/es/translations.json
+++ b/locales/es/translations.json
@@ -23,8 +23,7 @@
"privacyPolicy": "Política de privacidad"
},
"webInstall": {
- "title": "App de Android gratis en Google Play",
- "subtitle": "También funciona sin conexión"
+ "title": "App de Android gratis en Google Play"
},
"levels": {
"title": "Elegir nivel",
diff --git a/locales/fr/translations.json b/locales/fr/translations.json
index c259dc4..71541ae 100644
--- a/locales/fr/translations.json
+++ b/locales/fr/translations.json
@@ -23,8 +23,7 @@
"privacyPolicy": "Politique de confidentialité"
},
"webInstall": {
- "title": "Appli Android gratuite sur Google Play",
- "subtitle": "Fonctionne aussi sans connexion"
+ "title": "Appli Android gratuite sur Google Play"
},
"levels": {
"title": "Choisir un niveau",
diff --git a/locales/it/translations.json b/locales/it/translations.json
index 5bf7614..5f4bda8 100644
--- a/locales/it/translations.json
+++ b/locales/it/translations.json
@@ -23,8 +23,7 @@
"privacyPolicy": "Informativa sulla privacy"
},
"webInstall": {
- "title": "App Android gratuita su Google Play",
- "subtitle": "Funziona anche senza Internet"
+ "title": "App Android gratuita su Google Play"
},
"levels": {
"title": "Scegli livello",
diff --git a/locales/nl/translations.json b/locales/nl/translations.json
index 8a11e89..78d5a14 100644
--- a/locales/nl/translations.json
+++ b/locales/nl/translations.json
@@ -23,8 +23,7 @@
"privacyPolicy": "Privacybeleid"
},
"webInstall": {
- "title": "Gratis Android-app in Google Play",
- "subtitle": "Speelt ook zonder internet"
+ "title": "Gratis Android-app in Google Play"
},
"levels": {
"title": "Level kiezen",
diff --git a/locales/pl/translations.json b/locales/pl/translations.json
index e132345..ccfbbed 100644
--- a/locales/pl/translations.json
+++ b/locales/pl/translations.json
@@ -23,8 +23,7 @@
"privacyPolicy": "Polityka prywatności"
},
"webInstall": {
- "title": "Darmowa aplikacja na Androida w Google Play",
- "subtitle": "Działa też bez internetu"
+ "title": "Darmowa aplikacja na Androida w Google Play"
},
"levels": {
"title": "Wybierz poziom",
diff --git a/public/feature-graphic.png b/public/feature-graphic.png
index 8fd1455..e160c3d 100644
Binary files a/public/feature-graphic.png and b/public/feature-graphic.png differ