Wordle LOTR uses a fully custom dark theme for the game screen. Two source files carry all visual design tokens:Documentation Index
Fetch the complete documentation index at: https://mintlify.com/PixelGenetics/Wordle-LOTR-RN/llms.txt
Use this file to discover all available pages before exploring further.
constants/theme.ts provides the light/dark color palette and platform-aware font stacks that shared components consume, while styles/homeStyle.ts defines every StyleSheet rule used by the game screen itself. The game UI deliberately ignores the system color scheme and renders a fixed dark background regardless of user preference.
Color Constants
constants/theme.ts exports a Colors object with separate light and dark maps. These are consumed by ThemedText, ThemedView, and Collapsible via the useThemeColor hook.
Font Constants
constants/theme.ts also exports a Fonts object built with Platform.select. Each platform receives a set of four named font stacks: sans, serif, rounded, and mono.
ios variant maps directly to Apple’s semantic system font descriptors. The web variant specifies full CSS font stacks with cross-browser fallbacks. The default variant (Android and any other platform) uses React Native’s built-in generic font identifiers.
Game Screen Colors
The game screen (app/screen/home.tsx) defines four color constants at module scope. These are applied directly to each letter tile’s backgroundColor based on the result of validarIntento.
| Constant | Hex | Meaning |
|---|---|---|
COLOR_DEFAULT | #2d3748 | Unfilled tile — shown before a guess is submitted |
COLOR_CORRECT | #60ce4a | ✅ Correct letter, correct position |
COLOR_PRESENT | #e5ff00 | 🟡 Correct letter, wrong position |
COLOR_ABSENT | #4a5568 | ⬛ Letter not in the target word |
Game StyleSheet
All style rules for the game screen live instyles/homeStyle.ts and are exported as a single styles object created with StyleSheet.create(). The table below documents each named style, the element it targets, and its key visual properties.
| Style name | Element | Key properties |
|---|---|---|
container | Root View | flex: 1, paddingTop: 80, alignItems: 'center', backgroundColor: '#1a202c' |
wordDisplay | ”WORD QUEST” title Text | color: '#ffffff', fontSize: 24, fontWeight: 'bold', marginBottom: 20 |
gridContainer | Letter tile row View | flexDirection: 'row', gap: 6, height: 60, width: '100%', justifyContent: 'center', alignItems: 'center', marginBottom: 20 |
box | Individual letter tile View | width: 45, height: 45, borderWidth: 2, borderColor: '#4a5568', borderRadius: 4 |
boxText | Letter inside tile Text | color: '#ffffff', fontSize: 20, fontWeight: 'bold' |
input | Guess TextInput | width: '80%', height: 55, backgroundColor: '#2d3748', color: '#ffffff', paddingHorizontal: 15, borderRadius: 8, fontSize: 18, textAlign: 'center', marginBottom: 10 |
messageContainer | Feedback message wrapper View | height: 40, justifyContent: 'center' |
messageText | Correct/incorrect Text | fontSize: 16, fontWeight: 'bold', textAlign: 'center' |
hintContainer | Hint block wrapper View | height: 120, width: '90%', justifyContent: 'center', alignItems: 'center', marginBottom: 10 |
hint | Hint text Text | color: '#a0aec0', fontStyle: 'italic', textAlign: 'center', fontSize: 14, lineHeight: 20, marginEnd: 50, marginStart: 50 |
acceptButton | ”Aceptar” submit Pressable | width: '80%', height: 55, backgroundColor: '#132f4e', borderWidth: 1, borderColor: '#4180ae', borderRadius: 8, alignItems: 'center', justifyContent: 'center', marginTop: 10, marginBottom: 10 |
acceptButtonText | Submit button label Text | color: '#ffffff', fontSize: 16, fontWeight: 'bold' |
answerButton | ”Ver respuesta” reveal Pressable | width: '80%', backgroundColor: '#38a169', paddingVertical: 14, paddingHorizontal: 20, borderRadius: 8, alignItems: 'center', justifyContent: 'center', marginTop: 10, borderWidth: 1, borderColor: '#68d391' |
answerButtonText | Reveal button label Text | color: '#ffffff', fontSize: 16, fontWeight: 'bold' |
answerText | Revealed answer Text | color: '#ffffff', fontSize: 22, fontWeight: 'bold', textAlign: 'center', marginTop: 10 |
refreshButton | ”Nueva Palabra” Pressable | marginTop: 'auto', marginBottom: 90, paddingVertical: 12, paddingHorizontal: 30, backgroundColor: '#4a5568', borderRadius: 5 |
label | Generic label Text | color: '#a0aec0', fontSize: 14, marginBottom: 5 |
The app sets
userInterfaceStyle: "automatic" in app.json, so ThemedText and ThemedView components do respond to the system dark/light mode preference. However, the game screen itself uses a hard-coded backgroundColor: '#1a202c' on its root View, overriding any theme-aware background for the playing surface.