fix(theme): rozdziel role akcentu i dodaj ramke, ktora cokolwiek oddziela
Pomiar WCAG na realnych parach z apki (2026-08-13):
accent #B23A48 jako tekst: 3,21 na bg | 2,96 na bgElevated | 2,75 na card
border #3A3128 jako granica: 1,48 na bg | 1,27 na card
Czyli kolor MARKI byl ponizej nawet progu 3:1 dla elementow interfejsu,
a nie tylko ponizej 4,5 dla tekstu. Dotyczylo to aktywnych zakladek,
gwiazdek ulubionych, linkow i chipow. Ramki przy 1,27 nie byly granica,
tylko cieniem.
NIE zmieniam koloru marki. Podniesienie samego `accent` do progu tekstu
wymagaloby zejscia w roz (#CE6975), co likwiduje tozsamosc, ktorej broni
naglowek theme.ts. Zamiast tego rozdzielam ROLE tego samego koloru:
accent zostaje do WYPELNIEN — jasny tekst na nim ma 5,03, przechodzi
accentText #C75260 dla tekstu i obwodek — 4,30 / 3,96 / 3,68
62 podmiany w 24 plikach (34 color, 26 borderColor, 2 thumbColor).
38 wypelnien nietknietych. Sprawdzone skryptem, ze zaden zmieniony tekst
nie stoi na tle akcentu.
borderStrong #7B7065 dla granic NIOSACYCH ZNACZENIE (pola tekstowe, 12
miejsc); dekoracyjne wloski zostaja na `border`. Wartosc dobrana pod obie
powierzchnie, bo pola leza i na bg, i na card: #6B6157 dawal na karcie
2,66, a #73695E dokladnie 2,999, czyli wciaz ponizej progu.
This commit is contained in:
parent
f3f16b5c67
commit
7deda639bf
30 changed files with 97 additions and 74 deletions
|
|
@ -16,6 +16,13 @@ export type ChangelogEntry = {
|
||||||
};
|
};
|
||||||
|
|
||||||
export const CHANGELOG: ChangelogEntry[] = [
|
export const CHANGELOG: ChangelogEntry[] = [
|
||||||
|
{
|
||||||
|
id: '2026-08-13d',
|
||||||
|
date: 'August 2026',
|
||||||
|
items: [
|
||||||
|
'Readability pass: links, active tabs and the favourite star are a shade lighter, so they stand out against cards instead of sinking into them. Search and input fields now have a visible outline.',
|
||||||
|
],
|
||||||
|
},
|
||||||
{
|
{
|
||||||
id: '2026-08-13c',
|
id: '2026-08-13c',
|
||||||
date: 'August 2026',
|
date: 'August 2026',
|
||||||
|
|
|
||||||
|
|
@ -289,7 +289,7 @@ export function BugReportFAB({ client, appVersion, navRef }: Props) {
|
||||||
<Switch
|
<Switch
|
||||||
value={includeScreenshot}
|
value={includeScreenshot}
|
||||||
onValueChange={setIncludeScreenshot}
|
onValueChange={setIncludeScreenshot}
|
||||||
thumbColor={includeScreenshot ? theme.accent : theme.muted}
|
thumbColor={includeScreenshot ? theme.accentText : theme.muted}
|
||||||
trackColor={{ true: theme.accentDeep, false: theme.border }}
|
trackColor={{ true: theme.accentDeep, false: theme.border }}
|
||||||
/>
|
/>
|
||||||
</View>
|
</View>
|
||||||
|
|
@ -441,7 +441,7 @@ const styles = StyleSheet.create({
|
||||||
},
|
},
|
||||||
input: {
|
input: {
|
||||||
backgroundColor: theme.card,
|
backgroundColor: theme.card,
|
||||||
borderColor: theme.border,
|
borderColor: theme.borderStrong,
|
||||||
borderWidth: 1,
|
borderWidth: 1,
|
||||||
borderRadius: 8,
|
borderRadius: 8,
|
||||||
color: theme.fg,
|
color: theme.fg,
|
||||||
|
|
@ -502,7 +502,7 @@ const styles = StyleSheet.create({
|
||||||
borderColor: theme.border,
|
borderColor: theme.border,
|
||||||
borderWidth: 1,
|
borderWidth: 1,
|
||||||
},
|
},
|
||||||
tabActive: { borderColor: theme.accent, backgroundColor: theme.bg },
|
tabActive: { borderColor: theme.accentText, backgroundColor: theme.bg },
|
||||||
tabText: { color: theme.muted, fontWeight: '600', fontSize: 14 },
|
tabText: { color: theme.muted, fontWeight: '600', fontSize: 14 },
|
||||||
tabTextActive: { color: theme.fg },
|
tabTextActive: { color: theme.fg },
|
||||||
tabDot: { width: 8, height: 8, borderRadius: 4, backgroundColor: theme.accent },
|
tabDot: { width: 8, height: 8, borderRadius: 4, backgroundColor: theme.accent },
|
||||||
|
|
@ -524,7 +524,7 @@ const styles = StyleSheet.create({
|
||||||
paddingVertical: 4,
|
paddingVertical: 4,
|
||||||
},
|
},
|
||||||
replyLabel: {
|
replyLabel: {
|
||||||
color: theme.accent,
|
color: theme.accentText,
|
||||||
fontSize: 11,
|
fontSize: 11,
|
||||||
fontWeight: '800',
|
fontWeight: '800',
|
||||||
textTransform: 'uppercase',
|
textTransform: 'uppercase',
|
||||||
|
|
|
||||||
|
|
@ -153,12 +153,12 @@ const styles = StyleSheet.create({
|
||||||
paddingHorizontal: 12,
|
paddingHorizontal: 12,
|
||||||
borderRadius: 12,
|
borderRadius: 12,
|
||||||
borderWidth: 1,
|
borderWidth: 1,
|
||||||
borderColor: theme.accent,
|
borderColor: theme.accentText,
|
||||||
backgroundColor: theme.bgElevated,
|
backgroundColor: theme.bgElevated,
|
||||||
},
|
},
|
||||||
barTitle: { color: theme.fg, fontSize: 14, fontWeight: '700' },
|
barTitle: { color: theme.fg, fontSize: 14, fontWeight: '700' },
|
||||||
barHint: { color: theme.muted, fontSize: 12, marginTop: 2, lineHeight: 16 },
|
barHint: { color: theme.muted, fontSize: 12, marginTop: 2, lineHeight: 16 },
|
||||||
barChevron: { color: theme.accent, fontSize: 22, fontWeight: '700' },
|
barChevron: { color: theme.accentText, fontSize: 22, fontWeight: '700' },
|
||||||
|
|
||||||
backdrop: {
|
backdrop: {
|
||||||
flex: 1,
|
flex: 1,
|
||||||
|
|
@ -180,7 +180,7 @@ const styles = StyleSheet.create({
|
||||||
scroll: { flexGrow: 0 },
|
scroll: { flexGrow: 0 },
|
||||||
lead: { color: theme.fg, fontSize: 14, lineHeight: 20, marginBottom: 16 },
|
lead: { color: theme.fg, fontSize: 14, lineHeight: 20, marginBottom: 16 },
|
||||||
step: {
|
step: {
|
||||||
color: theme.accent,
|
color: theme.accentText,
|
||||||
fontSize: 12,
|
fontSize: 12,
|
||||||
fontWeight: '800',
|
fontWeight: '800',
|
||||||
textTransform: 'uppercase',
|
textTransform: 'uppercase',
|
||||||
|
|
@ -200,13 +200,13 @@ const styles = StyleSheet.create({
|
||||||
paddingHorizontal: 12,
|
paddingHorizontal: 12,
|
||||||
},
|
},
|
||||||
code: { color: theme.fg, fontSize: 13, flex: 1 },
|
code: { color: theme.fg, fontSize: 13, flex: 1 },
|
||||||
copyBtn: { color: theme.accent, fontSize: 13, fontWeight: '800' },
|
copyBtn: { color: theme.accentText, fontSize: 13, fontWeight: '800' },
|
||||||
note: { color: theme.muted, fontSize: 13, lineHeight: 19, marginTop: 8 },
|
note: { color: theme.muted, fontSize: 13, lineHeight: 19, marginTop: 8 },
|
||||||
dlBtn: {
|
dlBtn: {
|
||||||
backgroundColor: theme.card,
|
backgroundColor: theme.card,
|
||||||
borderRadius: 10,
|
borderRadius: 10,
|
||||||
borderWidth: 1,
|
borderWidth: 1,
|
||||||
borderColor: theme.accent,
|
borderColor: theme.accentText,
|
||||||
paddingVertical: 12,
|
paddingVertical: 12,
|
||||||
alignItems: 'center',
|
alignItems: 'center',
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -350,7 +350,7 @@ export function MovieFiltersSheet({ visible, value, onChange, onClose }: Props)
|
||||||
<Switch
|
<Switch
|
||||||
value={draft.has_playback}
|
value={draft.has_playback}
|
||||||
onValueChange={(v) => setDraft({ ...draft, has_playback: v })}
|
onValueChange={(v) => setDraft({ ...draft, has_playback: v })}
|
||||||
thumbColor={draft.has_playback ? theme.accent : theme.muted}
|
thumbColor={draft.has_playback ? theme.accentText : theme.muted}
|
||||||
trackColor={{ true: theme.accentDeep, false: theme.border }}
|
trackColor={{ true: theme.accentDeep, false: theme.border }}
|
||||||
/>
|
/>
|
||||||
</View>
|
</View>
|
||||||
|
|
@ -411,7 +411,7 @@ const styles = StyleSheet.create({
|
||||||
marginBottom: 12,
|
marginBottom: 12,
|
||||||
},
|
},
|
||||||
title: { color: theme.fg, fontSize: 18, fontWeight: '600' },
|
title: { color: theme.fg, fontSize: 18, fontWeight: '600' },
|
||||||
reset: { color: theme.accent, fontSize: 14 },
|
reset: { color: theme.accentText, fontSize: 14 },
|
||||||
label: {
|
label: {
|
||||||
color: theme.muted,
|
color: theme.muted,
|
||||||
fontSize: 12,
|
fontSize: 12,
|
||||||
|
|
@ -433,7 +433,7 @@ const styles = StyleSheet.create({
|
||||||
},
|
},
|
||||||
chipActive: {
|
chipActive: {
|
||||||
backgroundColor: theme.accentDeep,
|
backgroundColor: theme.accentDeep,
|
||||||
borderColor: theme.accent,
|
borderColor: theme.accentText,
|
||||||
},
|
},
|
||||||
chipText: { color: theme.muted, fontSize: 12 },
|
chipText: { color: theme.muted, fontSize: 12 },
|
||||||
chipTextActive: { color: theme.fg, fontWeight: '600' },
|
chipTextActive: { color: theme.fg, fontWeight: '600' },
|
||||||
|
|
@ -446,7 +446,7 @@ const styles = StyleSheet.create({
|
||||||
dash: { color: theme.muted, fontSize: 16 },
|
dash: { color: theme.muted, fontSize: 16 },
|
||||||
input: {
|
input: {
|
||||||
backgroundColor: theme.card,
|
backgroundColor: theme.card,
|
||||||
borderColor: theme.border,
|
borderColor: theme.borderStrong,
|
||||||
borderWidth: 1,
|
borderWidth: 1,
|
||||||
borderRadius: 8,
|
borderRadius: 8,
|
||||||
color: theme.fg,
|
color: theme.fg,
|
||||||
|
|
|
||||||
|
|
@ -234,7 +234,7 @@ const styles = StyleSheet.create({
|
||||||
justifyContent: 'space-between',
|
justifyContent: 'space-between',
|
||||||
marginBottom: 6,
|
marginBottom: 6,
|
||||||
},
|
},
|
||||||
brand: { color: theme.accent, fontWeight: '900', letterSpacing: 2, fontSize: 13 },
|
brand: { color: theme.accentText, fontWeight: '900', letterSpacing: 2, fontSize: 13 },
|
||||||
skip: { color: theme.muted, fontSize: 14, fontWeight: '600', minWidth: 36, textAlign: 'right' },
|
skip: { color: theme.muted, fontSize: 14, fontWeight: '600', minWidth: 36, textAlign: 'right' },
|
||||||
|
|
||||||
pager: { flexGrow: 0 },
|
pager: { flexGrow: 0 },
|
||||||
|
|
@ -243,7 +243,7 @@ const styles = StyleSheet.create({
|
||||||
title: { color: theme.fg, fontSize: 22, fontWeight: '800', marginBottom: 16 },
|
title: { color: theme.fg, fontSize: 22, fontWeight: '800', marginBottom: 16 },
|
||||||
lines: { gap: 12 },
|
lines: { gap: 12 },
|
||||||
lineRow: { flexDirection: 'row', gap: 10 },
|
lineRow: { flexDirection: 'row', gap: 10 },
|
||||||
bullet: { color: theme.accent, fontSize: 16, lineHeight: 22 },
|
bullet: { color: theme.accentText, fontSize: 16, lineHeight: 22 },
|
||||||
lineText: { color: theme.fg, fontSize: 15, lineHeight: 22, flex: 1 },
|
lineText: { color: theme.fg, fontSize: 15, lineHeight: 22, flex: 1 },
|
||||||
|
|
||||||
dots: { flexDirection: 'row', justifyContent: 'center', gap: 6, marginVertical: 16 },
|
dots: { flexDirection: 'row', justifyContent: 'center', gap: 6, marginVertical: 16 },
|
||||||
|
|
|
||||||
|
|
@ -186,7 +186,7 @@ const styles = StyleSheet.create({
|
||||||
},
|
},
|
||||||
thumb: { width: '100%', height: '100%' },
|
thumb: { width: '100%', height: '100%' },
|
||||||
thumbDim: { opacity: 0.45 },
|
thumbDim: { opacity: 0.45 },
|
||||||
thumbSelectable: { borderWidth: 2, borderColor: theme.accent, opacity: 0.85 },
|
thumbSelectable: { borderWidth: 2, borderColor: theme.accentText, opacity: 0.85 },
|
||||||
thumbPending: { borderWidth: 2, borderColor: theme.fg, opacity: 0.55 },
|
thumbPending: { borderWidth: 2, borderColor: theme.fg, opacity: 0.55 },
|
||||||
dupBadge: {
|
dupBadge: {
|
||||||
position: 'absolute',
|
position: 'absolute',
|
||||||
|
|
@ -207,7 +207,7 @@ const styles = StyleSheet.create({
|
||||||
paddingVertical: 1,
|
paddingVertical: 1,
|
||||||
borderRadius: 6,
|
borderRadius: 6,
|
||||||
},
|
},
|
||||||
favBadgeText: { color: theme.accent, fontSize: 11, fontWeight: '700' },
|
favBadgeText: { color: theme.accentText, fontSize: 11, fontWeight: '700' },
|
||||||
newBadge: {
|
newBadge: {
|
||||||
position: 'absolute',
|
position: 'absolute',
|
||||||
top: 6,
|
top: 6,
|
||||||
|
|
|
||||||
|
|
@ -103,7 +103,7 @@ const styles = StyleSheet.create({
|
||||||
scroll: { flexGrow: 0 },
|
scroll: { flexGrow: 0 },
|
||||||
entry: { marginBottom: 14 },
|
entry: { marginBottom: 14 },
|
||||||
entryDate: {
|
entryDate: {
|
||||||
color: theme.accent,
|
color: theme.accentText,
|
||||||
fontSize: 12,
|
fontSize: 12,
|
||||||
fontWeight: '800',
|
fontWeight: '800',
|
||||||
textTransform: 'uppercase',
|
textTransform: 'uppercase',
|
||||||
|
|
@ -111,7 +111,7 @@ const styles = StyleSheet.create({
|
||||||
marginBottom: 8,
|
marginBottom: 8,
|
||||||
},
|
},
|
||||||
itemRow: { flexDirection: 'row', gap: 8, marginBottom: 8 },
|
itemRow: { flexDirection: 'row', gap: 8, marginBottom: 8 },
|
||||||
bullet: { color: theme.accent, fontSize: 15, lineHeight: 21 },
|
bullet: { color: theme.accentText, fontSize: 15, lineHeight: 21 },
|
||||||
itemText: { color: theme.fg, fontSize: 15, lineHeight: 21, flex: 1 },
|
itemText: { color: theme.fg, fontSize: 15, lineHeight: 21, flex: 1 },
|
||||||
btn: {
|
btn: {
|
||||||
marginTop: 8,
|
marginTop: 8,
|
||||||
|
|
|
||||||
|
|
@ -202,7 +202,7 @@ export function AppNavigator({ onLogout, client, appVersion }: AppNavigatorProps
|
||||||
headerRight: () => (
|
headerRight: () => (
|
||||||
<View style={{ flexDirection: 'row', gap: 14, alignItems: 'center' }}>
|
<View style={{ flexDirection: 'row', gap: 14, alignItems: 'center' }}>
|
||||||
<Pressable onPress={() => navigation.navigate('Donate')} hitSlop={12}>
|
<Pressable onPress={() => navigation.navigate('Donate')} hitSlop={12}>
|
||||||
<Text style={{ color: theme.accent, fontSize: 18 }}>♥</Text>
|
<Text style={{ color: theme.accentText, fontSize: 18 }}>♥</Text>
|
||||||
</Pressable>
|
</Pressable>
|
||||||
<Pressable
|
<Pressable
|
||||||
onPress={() => navigation.navigate('AppLockSettings')}
|
onPress={() => navigation.navigate('AppLockSettings')}
|
||||||
|
|
|
||||||
|
|
@ -240,7 +240,7 @@ const styles = StyleSheet.create({
|
||||||
marginTop: 1,
|
marginTop: 1,
|
||||||
},
|
},
|
||||||
checkboxOn: {
|
checkboxOn: {
|
||||||
borderColor: theme.accent,
|
borderColor: theme.accentText,
|
||||||
backgroundColor: theme.accent,
|
backgroundColor: theme.accent,
|
||||||
},
|
},
|
||||||
checkboxMark: {
|
checkboxMark: {
|
||||||
|
|
|
||||||
|
|
@ -188,7 +188,7 @@ const styles = StyleSheet.create({
|
||||||
borderWidth: 1.5,
|
borderWidth: 1.5,
|
||||||
borderColor: theme.border,
|
borderColor: theme.border,
|
||||||
},
|
},
|
||||||
dotFilled: { backgroundColor: theme.accent, borderColor: theme.accent },
|
dotFilled: { backgroundColor: theme.accent, borderColor: theme.accentText },
|
||||||
dotError: { borderColor: theme.bad, backgroundColor: theme.bad },
|
dotError: { borderColor: theme.bad, backgroundColor: theme.bad },
|
||||||
pad: {
|
pad: {
|
||||||
marginTop: 20,
|
marginTop: 20,
|
||||||
|
|
|
||||||
|
|
@ -509,7 +509,7 @@ const styles = StyleSheet.create({
|
||||||
borderColor: theme.border,
|
borderColor: theme.border,
|
||||||
alignItems: 'center',
|
alignItems: 'center',
|
||||||
},
|
},
|
||||||
actionText: { color: theme.accent, fontSize: 14, fontWeight: '600' },
|
actionText: { color: theme.accentText, fontSize: 14, fontWeight: '600' },
|
||||||
chipRow: { flexDirection: 'row', flexWrap: 'wrap', gap: 8, marginTop: 10 },
|
chipRow: { flexDirection: 'row', flexWrap: 'wrap', gap: 8, marginTop: 10 },
|
||||||
chip: {
|
chip: {
|
||||||
paddingVertical: 8,
|
paddingVertical: 8,
|
||||||
|
|
@ -519,12 +519,12 @@ const styles = StyleSheet.create({
|
||||||
borderWidth: 1,
|
borderWidth: 1,
|
||||||
borderColor: theme.border,
|
borderColor: theme.border,
|
||||||
},
|
},
|
||||||
chipActive: { backgroundColor: theme.accent, borderColor: theme.accent },
|
chipActive: { backgroundColor: theme.accent, borderColor: theme.accentText },
|
||||||
versionValue: { color: theme.fg, fontSize: 15, fontWeight: '700', fontVariant: ['tabular-nums'] },
|
versionValue: { color: theme.fg, fontSize: 15, fontWeight: '700', fontVariant: ['tabular-nums'] },
|
||||||
linkValue: { color: theme.accent, fontSize: 15, fontWeight: '700' },
|
linkValue: { color: theme.accentText, fontSize: 15, fontWeight: '700' },
|
||||||
codeInput: {
|
codeInput: {
|
||||||
backgroundColor: theme.card,
|
backgroundColor: theme.card,
|
||||||
borderColor: theme.border,
|
borderColor: theme.borderStrong,
|
||||||
borderWidth: 1,
|
borderWidth: 1,
|
||||||
borderRadius: 8,
|
borderRadius: 8,
|
||||||
color: theme.fg,
|
color: theme.fg,
|
||||||
|
|
|
||||||
|
|
@ -183,7 +183,7 @@ const styles = StyleSheet.create({
|
||||||
},
|
},
|
||||||
search: {
|
search: {
|
||||||
backgroundColor: theme.card,
|
backgroundColor: theme.card,
|
||||||
borderColor: theme.border,
|
borderColor: theme.borderStrong,
|
||||||
borderWidth: 1,
|
borderWidth: 1,
|
||||||
borderRadius: 8,
|
borderRadius: 8,
|
||||||
color: theme.fg,
|
color: theme.fg,
|
||||||
|
|
@ -193,14 +193,14 @@ const styles = StyleSheet.create({
|
||||||
chips: { flexDirection: 'row', flexWrap: 'wrap', gap: 6, padding: 16 },
|
chips: { flexDirection: 'row', flexWrap: 'wrap', gap: 6, padding: 16 },
|
||||||
chip: {
|
chip: {
|
||||||
backgroundColor: theme.card,
|
backgroundColor: theme.card,
|
||||||
borderColor: theme.accent,
|
borderColor: theme.accentText,
|
||||||
borderWidth: 1,
|
borderWidth: 1,
|
||||||
borderRadius: 14,
|
borderRadius: 14,
|
||||||
paddingHorizontal: 10,
|
paddingHorizontal: 10,
|
||||||
paddingVertical: 5,
|
paddingVertical: 5,
|
||||||
},
|
},
|
||||||
chipDisabled: { borderColor: theme.border, opacity: 0.6 },
|
chipDisabled: { borderColor: theme.border, opacity: 0.6 },
|
||||||
chipText: { color: theme.accent, fontSize: 13 },
|
chipText: { color: theme.accentText, fontSize: 13 },
|
||||||
chipTextDisabled: { color: theme.muted },
|
chipTextDisabled: { color: theme.muted },
|
||||||
row: {
|
row: {
|
||||||
flexDirection: 'row',
|
flexDirection: 'row',
|
||||||
|
|
@ -217,6 +217,6 @@ const styles = StyleSheet.create({
|
||||||
paddingHorizontal: 12,
|
paddingHorizontal: 12,
|
||||||
paddingVertical: 6,
|
paddingVertical: 6,
|
||||||
},
|
},
|
||||||
removeText: { color: theme.accent, fontSize: 13, fontWeight: '600' },
|
removeText: { color: theme.accentText, fontSize: 13, fontWeight: '600' },
|
||||||
empty: { color: theme.muted, fontSize: 13, paddingHorizontal: 16 },
|
empty: { color: theme.muted, fontSize: 13, paddingHorizontal: 16 },
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -248,7 +248,7 @@ const styles = StyleSheet.create({
|
||||||
gap: 10,
|
gap: 10,
|
||||||
},
|
},
|
||||||
footerLink: {
|
footerLink: {
|
||||||
color: theme.accent,
|
color: theme.accentText,
|
||||||
fontSize: 13,
|
fontSize: 13,
|
||||||
fontWeight: '600',
|
fontWeight: '600',
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -565,7 +565,7 @@ const styles = StyleSheet.create({
|
||||||
borderColor: theme.border,
|
borderColor: theme.border,
|
||||||
borderWidth: 1,
|
borderWidth: 1,
|
||||||
},
|
},
|
||||||
tabBtnActive: { borderColor: theme.accent, backgroundColor: theme.bgElevated },
|
tabBtnActive: { borderColor: theme.accentText, backgroundColor: theme.bgElevated },
|
||||||
tabBtnText: { color: theme.muted, fontWeight: '600', fontSize: 14 },
|
tabBtnText: { color: theme.muted, fontWeight: '600', fontSize: 14 },
|
||||||
tabBtnTextActive: { color: theme.fg },
|
tabBtnTextActive: { color: theme.fg },
|
||||||
tabBadge: {
|
tabBadge: {
|
||||||
|
|
|
||||||
|
|
@ -201,7 +201,7 @@ const styles = StyleSheet.create({
|
||||||
},
|
},
|
||||||
input: {
|
input: {
|
||||||
backgroundColor: theme.bgElevated,
|
backgroundColor: theme.bgElevated,
|
||||||
borderColor: theme.border,
|
borderColor: theme.borderStrong,
|
||||||
borderWidth: 1.5,
|
borderWidth: 1.5,
|
||||||
borderRadius: 12,
|
borderRadius: 12,
|
||||||
color: theme.fg,
|
color: theme.fg,
|
||||||
|
|
|
||||||
|
|
@ -391,8 +391,8 @@ const styles = StyleSheet.create({
|
||||||
heroMeta: { flex: 1, gap: 4 },
|
heroMeta: { flex: 1, gap: 4 },
|
||||||
title: { color: theme.fg, fontSize: 18, fontWeight: '700' },
|
title: { color: theme.fg, fontSize: 18, fontWeight: '700' },
|
||||||
subtitle: { color: theme.muted, fontSize: 13 },
|
subtitle: { color: theme.muted, fontSize: 13 },
|
||||||
studioLink: { color: theme.accent, fontWeight: '600' },
|
studioLink: { color: theme.accentText, fontWeight: '600' },
|
||||||
rating: { color: theme.accent, fontSize: 14, fontWeight: '700', marginTop: 4 },
|
rating: { color: theme.accentText, fontSize: 14, fontWeight: '700', marginTop: 4 },
|
||||||
|
|
||||||
section: { paddingHorizontal: 14, paddingVertical: 10 },
|
section: { paddingHorizontal: 14, paddingVertical: 10 },
|
||||||
sectionTitle: { color: theme.fg, fontSize: 14, fontWeight: '700', marginBottom: 8 },
|
sectionTitle: { color: theme.fg, fontSize: 14, fontWeight: '700', marginBottom: 8 },
|
||||||
|
|
|
||||||
|
|
@ -188,12 +188,12 @@ const styles = StyleSheet.create({
|
||||||
},
|
},
|
||||||
filterBtnActive: {
|
filterBtnActive: {
|
||||||
backgroundColor: theme.accentDeep,
|
backgroundColor: theme.accentDeep,
|
||||||
borderColor: theme.accent,
|
borderColor: theme.accentText,
|
||||||
},
|
},
|
||||||
filterBtnText: { color: theme.fg, fontSize: 13, fontWeight: '600' },
|
filterBtnText: { color: theme.fg, fontSize: 13, fontWeight: '600' },
|
||||||
search: {
|
search: {
|
||||||
backgroundColor: theme.card,
|
backgroundColor: theme.card,
|
||||||
borderColor: theme.border,
|
borderColor: theme.borderStrong,
|
||||||
borderWidth: 1,
|
borderWidth: 1,
|
||||||
borderRadius: 10,
|
borderRadius: 10,
|
||||||
color: theme.fg,
|
color: theme.fg,
|
||||||
|
|
|
||||||
|
|
@ -422,7 +422,7 @@ const styles = StyleSheet.create({
|
||||||
alignItems: 'center',
|
alignItems: 'center',
|
||||||
},
|
},
|
||||||
actionBtnText: { color: theme.muted, fontWeight: '600', fontSize: 12 },
|
actionBtnText: { color: theme.muted, fontWeight: '600', fontSize: 12 },
|
||||||
actionBtnTextPrimary: { color: theme.accent, fontWeight: '700', fontSize: 12 },
|
actionBtnTextPrimary: { color: theme.accentText, fontWeight: '700', fontSize: 12 },
|
||||||
tagRow: {
|
tagRow: {
|
||||||
flexDirection: 'row',
|
flexDirection: 'row',
|
||||||
gap: 6,
|
gap: 6,
|
||||||
|
|
@ -439,7 +439,7 @@ const styles = StyleSheet.create({
|
||||||
paddingHorizontal: 10,
|
paddingHorizontal: 10,
|
||||||
maxWidth: 200,
|
maxWidth: 200,
|
||||||
},
|
},
|
||||||
tagChipActive: { backgroundColor: theme.accent, borderColor: theme.accent },
|
tagChipActive: { backgroundColor: theme.accent, borderColor: theme.accentText },
|
||||||
tagChipText: { color: theme.muted, fontSize: 12, fontWeight: '600' },
|
tagChipText: { color: theme.muted, fontSize: 12, fontWeight: '600' },
|
||||||
tagChipTextActive: { color: theme.fg, fontWeight: '700' },
|
tagChipTextActive: { color: theme.fg, fontWeight: '700' },
|
||||||
tabRow: { flexDirection: 'row', gap: 8, marginBottom: 8 },
|
tabRow: { flexDirection: 'row', gap: 8, marginBottom: 8 },
|
||||||
|
|
@ -455,7 +455,7 @@ const styles = StyleSheet.create({
|
||||||
borderColor: theme.border,
|
borderColor: theme.border,
|
||||||
borderWidth: 1,
|
borderWidth: 1,
|
||||||
},
|
},
|
||||||
tabBtnActive: { borderColor: theme.accent, backgroundColor: theme.bgElevated },
|
tabBtnActive: { borderColor: theme.accentText, backgroundColor: theme.bgElevated },
|
||||||
tabBtnText: { color: theme.muted, fontWeight: '600', fontSize: 14 },
|
tabBtnText: { color: theme.muted, fontWeight: '600', fontSize: 14 },
|
||||||
tabBtnTextActive: { color: theme.fg },
|
tabBtnTextActive: { color: theme.fg },
|
||||||
tabCount: {
|
tabCount: {
|
||||||
|
|
|
||||||
|
|
@ -191,7 +191,7 @@ const styles = StyleSheet.create({
|
||||||
search: {
|
search: {
|
||||||
flex: 1,
|
flex: 1,
|
||||||
backgroundColor: theme.card,
|
backgroundColor: theme.card,
|
||||||
borderColor: theme.border,
|
borderColor: theme.borderStrong,
|
||||||
borderWidth: 1.5,
|
borderWidth: 1.5,
|
||||||
borderRadius: 12,
|
borderRadius: 12,
|
||||||
color: theme.fg,
|
color: theme.fg,
|
||||||
|
|
|
||||||
|
|
@ -85,7 +85,7 @@ const styles = StyleSheet.create({
|
||||||
borderWidth: 1.5,
|
borderWidth: 1.5,
|
||||||
borderColor: theme.border,
|
borderColor: theme.border,
|
||||||
},
|
},
|
||||||
dotFilled: { backgroundColor: theme.accent, borderColor: theme.accent },
|
dotFilled: { backgroundColor: theme.accent, borderColor: theme.accentText },
|
||||||
pad: {
|
pad: {
|
||||||
marginTop: 24,
|
marginTop: 24,
|
||||||
flexDirection: 'row',
|
flexDirection: 'row',
|
||||||
|
|
|
||||||
|
|
@ -2065,7 +2065,7 @@ const styles = StyleSheet.create({
|
||||||
overflow: 'hidden',
|
overflow: 'hidden',
|
||||||
},
|
},
|
||||||
panSeekDelta: {
|
panSeekDelta: {
|
||||||
color: theme.accent,
|
color: theme.accentText,
|
||||||
fontSize: 14,
|
fontSize: 14,
|
||||||
fontWeight: '700',
|
fontWeight: '700',
|
||||||
marginTop: 6,
|
marginTop: 6,
|
||||||
|
|
|
||||||
|
|
@ -990,7 +990,7 @@ const styles = StyleSheet.create({
|
||||||
pillRow: { flexDirection: 'row', flexWrap: 'wrap', gap: 8 },
|
pillRow: { flexDirection: 'row', flexWrap: 'wrap', gap: 8 },
|
||||||
|
|
||||||
pillPrimary: {
|
pillPrimary: {
|
||||||
borderColor: theme.accent,
|
borderColor: theme.accentText,
|
||||||
borderWidth: 1,
|
borderWidth: 1,
|
||||||
backgroundColor: `${theme.accent}1A`,
|
backgroundColor: `${theme.accent}1A`,
|
||||||
borderRadius: 16,
|
borderRadius: 16,
|
||||||
|
|
@ -1048,14 +1048,14 @@ const styles = StyleSheet.create({
|
||||||
refreshThumbText: { color: theme.muted, fontSize: 13, fontWeight: '600' },
|
refreshThumbText: { color: theme.muted, fontSize: 13, fontWeight: '600' },
|
||||||
|
|
||||||
pillSource: {
|
pillSource: {
|
||||||
borderColor: theme.accent,
|
borderColor: theme.accentText,
|
||||||
borderWidth: 1,
|
borderWidth: 1,
|
||||||
borderRadius: 14,
|
borderRadius: 14,
|
||||||
paddingHorizontal: 10,
|
paddingHorizontal: 10,
|
||||||
paddingVertical: 4,
|
paddingVertical: 4,
|
||||||
},
|
},
|
||||||
pillSourceText: {
|
pillSourceText: {
|
||||||
color: theme.accent,
|
color: theme.accentText,
|
||||||
fontSize: 11,
|
fontSize: 11,
|
||||||
fontWeight: '700',
|
fontWeight: '700',
|
||||||
textTransform: 'uppercase',
|
textTransform: 'uppercase',
|
||||||
|
|
@ -1067,7 +1067,7 @@ const styles = StyleSheet.create({
|
||||||
|
|
||||||
watchButton: {
|
watchButton: {
|
||||||
backgroundColor: theme.bgElevated,
|
backgroundColor: theme.bgElevated,
|
||||||
borderColor: theme.accent,
|
borderColor: theme.accentText,
|
||||||
borderWidth: 1.5,
|
borderWidth: 1.5,
|
||||||
borderRadius: 12,
|
borderRadius: 12,
|
||||||
padding: 14,
|
padding: 14,
|
||||||
|
|
|
||||||
|
|
@ -395,7 +395,7 @@ const styles = StyleSheet.create({
|
||||||
},
|
},
|
||||||
headerCancel: { color: theme.muted, fontSize: 15 },
|
headerCancel: { color: theme.muted, fontSize: 15 },
|
||||||
headerTitle: { color: theme.fg, fontSize: 16, fontWeight: '600' },
|
headerTitle: { color: theme.fg, fontSize: 16, fontWeight: '600' },
|
||||||
headerApply: { color: theme.accent, fontSize: 15, fontWeight: '600' },
|
headerApply: { color: theme.accentText, fontSize: 15, fontWeight: '600' },
|
||||||
section: {
|
section: {
|
||||||
paddingHorizontal: 16,
|
paddingHorizontal: 16,
|
||||||
paddingVertical: 14,
|
paddingVertical: 14,
|
||||||
|
|
@ -418,9 +418,9 @@ const styles = StyleSheet.create({
|
||||||
paddingHorizontal: 12,
|
paddingHorizontal: 12,
|
||||||
paddingVertical: 6,
|
paddingVertical: 6,
|
||||||
},
|
},
|
||||||
sortPillActive: { borderColor: theme.accent, backgroundColor: theme.bg },
|
sortPillActive: { borderColor: theme.accentText, backgroundColor: theme.bg },
|
||||||
sortPillText: { color: theme.fg, fontSize: 13 },
|
sortPillText: { color: theme.fg, fontSize: 13 },
|
||||||
sortPillTextActive: { color: theme.accent, fontWeight: '600' },
|
sortPillTextActive: { color: theme.accentText, fontWeight: '600' },
|
||||||
switchRow: {
|
switchRow: {
|
||||||
flexDirection: 'row',
|
flexDirection: 'row',
|
||||||
alignItems: 'center',
|
alignItems: 'center',
|
||||||
|
|
@ -429,7 +429,7 @@ const styles = StyleSheet.create({
|
||||||
switchLabel: { color: theme.fg, fontSize: 14, flex: 1 },
|
switchLabel: { color: theme.fg, fontSize: 14, flex: 1 },
|
||||||
search: {
|
search: {
|
||||||
backgroundColor: theme.card,
|
backgroundColor: theme.card,
|
||||||
borderColor: theme.border,
|
borderColor: theme.borderStrong,
|
||||||
borderWidth: 1,
|
borderWidth: 1,
|
||||||
borderRadius: 8,
|
borderRadius: 8,
|
||||||
color: theme.fg,
|
color: theme.fg,
|
||||||
|
|
@ -445,9 +445,9 @@ const styles = StyleSheet.create({
|
||||||
paddingHorizontal: 10,
|
paddingHorizontal: 10,
|
||||||
paddingVertical: 5,
|
paddingVertical: 5,
|
||||||
},
|
},
|
||||||
chipActive: { borderColor: theme.accent, backgroundColor: theme.bg },
|
chipActive: { borderColor: theme.accentText, backgroundColor: theme.bg },
|
||||||
chipText: { color: theme.fg, fontSize: 13 },
|
chipText: { color: theme.fg, fontSize: 13 },
|
||||||
chipTextActive: { color: theme.accent, fontWeight: '600' },
|
chipTextActive: { color: theme.accentText, fontWeight: '600' },
|
||||||
chipCount: { color: theme.muted, fontSize: 11 },
|
chipCount: { color: theme.muted, fontSize: 11 },
|
||||||
resetRow: { padding: 16 },
|
resetRow: { padding: 16 },
|
||||||
resetButton: {
|
resetButton: {
|
||||||
|
|
|
||||||
|
|
@ -157,7 +157,7 @@ export function ScenesScreen() {
|
||||||
style={[styles.toolbarButton, alreadySaved && styles.toolbarButtonActive]}
|
style={[styles.toolbarButton, alreadySaved && styles.toolbarButtonActive]}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
style={[styles.toolbarButtonText, alreadySaved && { color: theme.accent }]}
|
style={[styles.toolbarButtonText, alreadySaved && { color: theme.accentText }]}
|
||||||
>
|
>
|
||||||
{alreadySaved ? '★ Saved' : '☆ Save'}
|
{alreadySaved ? '★ Saved' : '☆ Save'}
|
||||||
</Text>
|
</Text>
|
||||||
|
|
@ -167,7 +167,7 @@ export function ScenesScreen() {
|
||||||
onPress={() => setFilterOpen(true)}
|
onPress={() => setFilterOpen(true)}
|
||||||
style={[styles.toolbarButton, activeCount > 0 && styles.toolbarButtonActive]}
|
style={[styles.toolbarButton, activeCount > 0 && styles.toolbarButtonActive]}
|
||||||
>
|
>
|
||||||
<Text style={[styles.toolbarButtonText, activeCount > 0 && { color: theme.accent }]}>
|
<Text style={[styles.toolbarButtonText, activeCount > 0 && { color: theme.accentText }]}>
|
||||||
Filter{activeCount > 0 ? ` ${activeCount}` : ''}
|
Filter{activeCount > 0 ? ` ${activeCount}` : ''}
|
||||||
</Text>
|
</Text>
|
||||||
</Pressable>
|
</Pressable>
|
||||||
|
|
@ -417,7 +417,7 @@ const styles = StyleSheet.create({
|
||||||
search: {
|
search: {
|
||||||
flex: 1,
|
flex: 1,
|
||||||
backgroundColor: theme.card,
|
backgroundColor: theme.card,
|
||||||
borderColor: theme.border,
|
borderColor: theme.borderStrong,
|
||||||
borderWidth: 1.5,
|
borderWidth: 1.5,
|
||||||
borderRadius: 12,
|
borderRadius: 12,
|
||||||
color: theme.fg,
|
color: theme.fg,
|
||||||
|
|
@ -432,7 +432,7 @@ const styles = StyleSheet.create({
|
||||||
paddingHorizontal: 16,
|
paddingHorizontal: 16,
|
||||||
justifyContent: 'center',
|
justifyContent: 'center',
|
||||||
},
|
},
|
||||||
toolbarButtonActive: { borderColor: theme.accent, backgroundColor: `${theme.accent}1A` },
|
toolbarButtonActive: { borderColor: theme.accentText, backgroundColor: `${theme.accent}1A` },
|
||||||
toolbarButtonText: { color: theme.fg, fontWeight: '700' },
|
toolbarButtonText: { color: theme.fg, fontWeight: '700' },
|
||||||
savedRow: { flexGrow: 0, marginBottom: 12 },
|
savedRow: { flexGrow: 0, marginBottom: 12 },
|
||||||
savedRowContent: { gap: 8, paddingRight: 12 },
|
savedRowContent: { gap: 8, paddingRight: 12 },
|
||||||
|
|
@ -445,9 +445,9 @@ const styles = StyleSheet.create({
|
||||||
paddingVertical: 6,
|
paddingVertical: 6,
|
||||||
maxWidth: 200,
|
maxWidth: 200,
|
||||||
},
|
},
|
||||||
savedChipActive: { borderColor: theme.accent, backgroundColor: `${theme.accent}1A` },
|
savedChipActive: { borderColor: theme.accentText, backgroundColor: `${theme.accent}1A` },
|
||||||
savedChipText: { color: theme.fg, fontSize: 13 },
|
savedChipText: { color: theme.fg, fontSize: 13 },
|
||||||
savedChipTextActive: { color: theme.accent, fontWeight: '600' },
|
savedChipTextActive: { color: theme.accentText, fontWeight: '600' },
|
||||||
subToolbar: { flexDirection: 'row', gap: 8, marginBottom: 16 },
|
subToolbar: { flexDirection: 'row', gap: 8, marginBottom: 16 },
|
||||||
subButton: {
|
subButton: {
|
||||||
backgroundColor: theme.card,
|
backgroundColor: theme.card,
|
||||||
|
|
@ -459,7 +459,7 @@ const styles = StyleSheet.create({
|
||||||
},
|
},
|
||||||
subButtonActive: {
|
subButtonActive: {
|
||||||
backgroundColor: theme.accent,
|
backgroundColor: theme.accent,
|
||||||
borderColor: theme.accent,
|
borderColor: theme.accentText,
|
||||||
shadowColor: theme.accent,
|
shadowColor: theme.accent,
|
||||||
shadowOffset: { width: 0, height: 0 },
|
shadowOffset: { width: 0, height: 0 },
|
||||||
shadowOpacity: 0.5,
|
shadowOpacity: 0.5,
|
||||||
|
|
@ -494,7 +494,7 @@ const styles = StyleSheet.create({
|
||||||
paddingVertical: 1,
|
paddingVertical: 1,
|
||||||
borderRadius: 8,
|
borderRadius: 8,
|
||||||
},
|
},
|
||||||
favBadgeText: { color: theme.accent, fontSize: 12, fontWeight: '700' },
|
favBadgeText: { color: theme.accentText, fontSize: 12, fontWeight: '700' },
|
||||||
thumbnail: {
|
thumbnail: {
|
||||||
width: 100,
|
width: 100,
|
||||||
height: 56,
|
height: 56,
|
||||||
|
|
@ -506,7 +506,7 @@ const styles = StyleSheet.create({
|
||||||
},
|
},
|
||||||
rowTitle: { color: theme.fg, fontWeight: '700', fontSize: 16, marginBottom: 4 },
|
rowTitle: { color: theme.fg, fontWeight: '700', fontSize: 16, marginBottom: 4 },
|
||||||
rowMuted: { color: theme.muted, fontSize: 14, marginTop: 2 },
|
rowMuted: { color: theme.muted, fontSize: 14, marginTop: 2 },
|
||||||
rowSources: { color: theme.accent, fontSize: 12, marginTop: 8, textTransform: 'uppercase', fontWeight: '600' },
|
rowSources: { color: theme.accentText, fontSize: 12, marginTop: 8, textTransform: 'uppercase', fontWeight: '600' },
|
||||||
muted: { color: theme.muted, textAlign: 'center', marginTop: 32, fontSize: 16 },
|
muted: { color: theme.muted, textAlign: 'center', marginTop: 32, fontSize: 16 },
|
||||||
error: { color: theme.bad, padding: 16 },
|
error: { color: theme.bad, padding: 16 },
|
||||||
|
|
||||||
|
|
@ -519,7 +519,7 @@ const styles = StyleSheet.create({
|
||||||
backgroundColor: theme.card,
|
backgroundColor: theme.card,
|
||||||
},
|
},
|
||||||
chipActive: {
|
chipActive: {
|
||||||
borderColor: theme.accent,
|
borderColor: theme.accentText,
|
||||||
backgroundColor: `${theme.accent}26`,
|
backgroundColor: `${theme.accent}26`,
|
||||||
shadowColor: theme.accent,
|
shadowColor: theme.accent,
|
||||||
shadowOffset: { width: 0, height: 0 },
|
shadowOffset: { width: 0, height: 0 },
|
||||||
|
|
@ -528,7 +528,7 @@ const styles = StyleSheet.create({
|
||||||
elevation: 2,
|
elevation: 2,
|
||||||
},
|
},
|
||||||
chipText: { color: theme.muted, fontSize: 13, fontWeight: '700' },
|
chipText: { color: theme.muted, fontSize: 13, fontWeight: '700' },
|
||||||
chipTextActive: { color: theme.accent },
|
chipTextActive: { color: theme.accentText },
|
||||||
|
|
||||||
// Continue watching rail
|
// Continue watching rail
|
||||||
rail: { marginBottom: 16 },
|
rail: { marginBottom: 16 },
|
||||||
|
|
|
||||||
|
|
@ -348,12 +348,12 @@ const styles = StyleSheet.create({
|
||||||
paddingVertical: 1,
|
paddingVertical: 1,
|
||||||
borderRadius: 8,
|
borderRadius: 8,
|
||||||
},
|
},
|
||||||
favBadgeText: { color: theme.accent, fontSize: 12, fontWeight: '700' },
|
favBadgeText: { color: theme.accentText, fontSize: 12, fontWeight: '700' },
|
||||||
rowContent: { flex: 1 },
|
rowContent: { flex: 1 },
|
||||||
rowTitle: { color: theme.fg, fontWeight: '700', fontSize: 16, marginBottom: 4 },
|
rowTitle: { color: theme.fg, fontWeight: '700', fontSize: 16, marginBottom: 4 },
|
||||||
rowMuted: { color: theme.muted, fontSize: 14, marginTop: 2 },
|
rowMuted: { color: theme.muted, fontSize: 14, marginTop: 2 },
|
||||||
rowSources: {
|
rowSources: {
|
||||||
color: theme.accent,
|
color: theme.accentText,
|
||||||
fontSize: 12,
|
fontSize: 12,
|
||||||
marginTop: 8,
|
marginTop: 8,
|
||||||
textTransform: 'uppercase',
|
textTransform: 'uppercase',
|
||||||
|
|
@ -371,7 +371,7 @@ const styles = StyleSheet.create({
|
||||||
borderColor: theme.border,
|
borderColor: theme.border,
|
||||||
borderWidth: 1,
|
borderWidth: 1,
|
||||||
},
|
},
|
||||||
filterBtnActive: { backgroundColor: theme.accentDeep, borderColor: theme.accent },
|
filterBtnActive: { backgroundColor: theme.accentDeep, borderColor: theme.accentText },
|
||||||
filterBtnText: { color: theme.fg, fontSize: 13, fontWeight: '600' },
|
filterBtnText: { color: theme.fg, fontSize: 13, fontWeight: '600' },
|
||||||
clearBtn: { paddingHorizontal: 10, paddingVertical: 8 },
|
clearBtn: { paddingHorizontal: 10, paddingVertical: 8 },
|
||||||
clearBtnText: { color: theme.muted, fontSize: 13 },
|
clearBtnText: { color: theme.muted, fontSize: 13 },
|
||||||
|
|
@ -391,7 +391,7 @@ const modalStyles = StyleSheet.create({
|
||||||
close: { color: theme.muted, fontSize: 20, padding: 4 },
|
close: { color: theme.muted, fontSize: 20, padding: 4 },
|
||||||
search: {
|
search: {
|
||||||
backgroundColor: theme.card,
|
backgroundColor: theme.card,
|
||||||
borderColor: theme.border,
|
borderColor: theme.borderStrong,
|
||||||
borderWidth: 1,
|
borderWidth: 1,
|
||||||
borderRadius: 10,
|
borderRadius: 10,
|
||||||
color: theme.fg,
|
color: theme.fg,
|
||||||
|
|
@ -410,7 +410,7 @@ const modalStyles = StyleSheet.create({
|
||||||
borderColor: theme.border,
|
borderColor: theme.border,
|
||||||
borderWidth: 1,
|
borderWidth: 1,
|
||||||
},
|
},
|
||||||
chipOn: { backgroundColor: theme.accentDeep, borderColor: theme.accent },
|
chipOn: { backgroundColor: theme.accentDeep, borderColor: theme.accentText },
|
||||||
chipText: { color: theme.fg, fontSize: 13 },
|
chipText: { color: theme.fg, fontSize: 13 },
|
||||||
chipTextOn: { color: theme.fg, fontWeight: '700' },
|
chipTextOn: { color: theme.fg, fontWeight: '700' },
|
||||||
muted: { color: theme.muted, fontSize: 13, paddingVertical: 8 },
|
muted: { color: theme.muted, fontSize: 13, paddingVertical: 8 },
|
||||||
|
|
|
||||||
|
|
@ -325,7 +325,7 @@ const styles = StyleSheet.create({
|
||||||
search: {
|
search: {
|
||||||
flex: 1,
|
flex: 1,
|
||||||
backgroundColor: theme.card,
|
backgroundColor: theme.card,
|
||||||
borderColor: theme.border,
|
borderColor: theme.borderStrong,
|
||||||
borderWidth: 1.5,
|
borderWidth: 1.5,
|
||||||
borderRadius: 12,
|
borderRadius: 12,
|
||||||
color: theme.fg,
|
color: theme.fg,
|
||||||
|
|
|
||||||
|
|
@ -292,9 +292,9 @@ const styles = StyleSheet.create({
|
||||||
borderWidth: 1,
|
borderWidth: 1,
|
||||||
borderColor: theme.border,
|
borderColor: theme.border,
|
||||||
},
|
},
|
||||||
tabBtnActive: { borderColor: theme.accent },
|
tabBtnActive: { borderColor: theme.accentText },
|
||||||
tabBtnText: { color: theme.muted, fontSize: 13 },
|
tabBtnText: { color: theme.muted, fontSize: 13 },
|
||||||
tabBtnTextActive: { color: theme.accent, fontWeight: '700' },
|
tabBtnTextActive: { color: theme.accentText, fontWeight: '700' },
|
||||||
tabCount: {
|
tabCount: {
|
||||||
backgroundColor: theme.border,
|
backgroundColor: theme.border,
|
||||||
borderRadius: 999,
|
borderRadius: 999,
|
||||||
|
|
|
||||||
|
|
@ -119,7 +119,7 @@ const styles = StyleSheet.create({
|
||||||
},
|
},
|
||||||
rowTitle: { color: theme.fg, fontWeight: '600', marginBottom: 2 },
|
rowTitle: { color: theme.fg, fontWeight: '600', marginBottom: 2 },
|
||||||
rowMuted: { color: theme.muted, fontSize: 13, marginTop: 2 },
|
rowMuted: { color: theme.muted, fontSize: 13, marginTop: 2 },
|
||||||
rowSources: { color: theme.accent, fontSize: 11, marginTop: 4, textTransform: 'uppercase' },
|
rowSources: { color: theme.accentText, fontSize: 11, marginTop: 4, textTransform: 'uppercase' },
|
||||||
muted: { color: theme.muted, textAlign: 'center', marginTop: 24 },
|
muted: { color: theme.muted, textAlign: 'center', marginTop: 24 },
|
||||||
error: { color: theme.bad, padding: 12 },
|
error: { color: theme.bad, padding: 12 },
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -161,7 +161,7 @@ const styles = StyleSheet.create({
|
||||||
search: {
|
search: {
|
||||||
flex: 1,
|
flex: 1,
|
||||||
backgroundColor: theme.card,
|
backgroundColor: theme.card,
|
||||||
borderColor: theme.border,
|
borderColor: theme.borderStrong,
|
||||||
borderWidth: 1.5,
|
borderWidth: 1.5,
|
||||||
borderRadius: 12,
|
borderRadius: 12,
|
||||||
color: theme.fg,
|
color: theme.fg,
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,13 @@ export const theme = {
|
||||||
bgElevated: '#1E1A14',
|
bgElevated: '#1E1A14',
|
||||||
card: '#26201A',
|
card: '#26201A',
|
||||||
border: '#3A3128',
|
border: '#3A3128',
|
||||||
|
// Granica, która faktycznie oddziela. `border` ma 1,48:1 na `bg` i **1,27:1 na `card`**,
|
||||||
|
// czyli przy wymogu 3:1 nie jest granicą, tylko cieniem — zostaje do dekoracyjnych
|
||||||
|
// włosków. Wszystko, co niesie znaczenie (pola, fokus, podział sekcji), bierze to.
|
||||||
|
//
|
||||||
|
// Wartość dobrana pod OBIE powierzchnie: pola tekstowe leżą i na `bg` (ekrany), i na
|
||||||
|
// `card` (arkusze filtrów), a #6B6157 dawał na karcie 2,66, zaś #73695E dokładnie 2,999, czyli wciąż poniżej.
|
||||||
|
borderStrong: '#7B7065', // 3,89 na bg · 3,33 na card (obie powierzchnie ≥3:1)
|
||||||
borderFocus: '#B23A48',
|
borderFocus: '#B23A48',
|
||||||
|
|
||||||
// Foreground, warm off-white (nie pure white żeby nie biło na warm dark).
|
// Foreground, warm off-white (nie pure white żeby nie biło na warm dark).
|
||||||
|
|
@ -29,6 +36,15 @@ export const theme = {
|
||||||
// Accent, oxblood/rust. Distinctive, niekonwencjonalne dla "media app".
|
// Accent, oxblood/rust. Distinctive, niekonwencjonalne dla "media app".
|
||||||
// Brak glow/neon. Deep wariant dla pressed states.
|
// Brak glow/neon. Deep wariant dla pressed states.
|
||||||
accent: '#B23A48',
|
accent: '#B23A48',
|
||||||
|
// WYPEŁNIENIE ma zostać oxbloodem: jasny tekst na nim daje 5,03:1, czyli przechodzi.
|
||||||
|
// Ale TEN SAM kolor jako tekst albo cienka obwódka jest nieczytelny — pomiar WCAG
|
||||||
|
// 2026-08-13: 3,21 na `bg`, 2,96 na `bgElevated`, **2,75 na `card`**, czyli poniżej
|
||||||
|
// nawet progu 3:1 dla elementów interfejsu, nie mówiąc o 4,5 dla tekstu.
|
||||||
|
//
|
||||||
|
// Podniesienie samego `accent` do progu tekstu wymagałoby zejścia w róż (#CE6975),
|
||||||
|
// co likwiduje tożsamość, której broni nagłówek tego pliku. Zamiast tego rozdzielamy
|
||||||
|
// ROLE: `accent` wypełnia, `accentText` pisze i obrysowuje.
|
||||||
|
accentText: '#C75260', // 4,30 na bg · 3,96 na bgElevated · 3,68 na card
|
||||||
accentGlow: '#B23A48', // alias, back-compat, ale bez prawdziwego glow
|
accentGlow: '#B23A48', // alias, back-compat, ale bez prawdziwego glow
|
||||||
accentDeep: '#7A1F2A',
|
accentDeep: '#7A1F2A',
|
||||||
accentSecondary: '#D89B4A', // muted amber dla secondary CTAs
|
accentSecondary: '#D89B4A', // muted amber dla secondary CTAs
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue