Right now theme is allowed as 'light' or 'dark'. I think it's quite limiting, especially if there is multiple light themes, as well as dark. And doesn't align with semantic colors, which are used by web designers.

I propose to move out night / light mode logic from react-navigation.

So, theme prop is becoming object, with full colors, required to theme react-navigation component.

const theme = {

bottomTab: {

background: 'white',

text: 'black'

},

drawer: {

background: 'black',

text: 'white'

}

}

In that case we will have full logic for themeing / styling outside (using semantic colors).

And great flexibility to theme.react-navigation.

colors: {

primary: {

'50': '#e5f3ed',

'100': '#c1e2d3',

...

},

secondary: {

'50': '#f8e8f0',

'100': '#efc4db',

...

},

black: {

highEmphasis: '#000000DE',

mediumEmphasis: '#00000099',

disabled: '#00000061',

inactive: '#0000008A',

},

white: {

highEmphasis: '#FFFFFFFF',

mediumEmphasis: '#FFFFFFB3',

disabled: '#FFFFFF80',

inactive: '#FFFFFF8A',

},

surface: {

card: '#fafafa',

},

}

I can use theme consistently across whole application, and just apply these colors to theme prop for react-navigation.