Add dark/tinted icon variants (#9241)
* add tinted icon style * new dark icon * use icon composer file * rename some icons, ensure default ios is still there * use solid fill instead of auto gradient * fix web build * back to gradient * add . for consistency * rename `default_old` to `legacy`
@@ -119,3 +119,8 @@ src/locale/locales/**/*.js
|
|||||||
|
|
||||||
# ogcard assets
|
# ogcard assets
|
||||||
bskyogcard/src/assets/fonts/noto-*
|
bskyogcard/src/assets/fonts/noto-*
|
||||||
|
|
||||||
|
# bskyweb build output
|
||||||
|
bskyweb/static/media/*.webp
|
||||||
|
bskyweb/static/media/*.jpg
|
||||||
|
bskyweb/static/media/*.png
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ module.exports = function (_config) {
|
|||||||
*
|
*
|
||||||
* @see https://docs.expo.dev/build-reference/variables/#built-in-environment-variables
|
* @see https://docs.expo.dev/build-reference/variables/#built-in-environment-variables
|
||||||
*/
|
*/
|
||||||
const PLATFORM = process.env.EAS_BUILD_PLATFORM
|
const PLATFORM = process.env.EAS_BUILD_PLATFORM ?? 'web'
|
||||||
|
|
||||||
const IS_TESTFLIGHT = process.env.EXPO_PUBLIC_ENV === 'testflight'
|
const IS_TESTFLIGHT = process.env.EXPO_PUBLIC_ENV === 'testflight'
|
||||||
const IS_PRODUCTION = process.env.EXPO_PUBLIC_ENV === 'production'
|
const IS_PRODUCTION = process.env.EXPO_PUBLIC_ENV === 'production'
|
||||||
@@ -50,6 +50,10 @@ module.exports = function (_config) {
|
|||||||
config: {
|
config: {
|
||||||
usesNonExemptEncryption: false,
|
usesNonExemptEncryption: false,
|
||||||
},
|
},
|
||||||
|
icon:
|
||||||
|
PLATFORM === 'web' // web build doesn't like .icon files
|
||||||
|
? './assets/app-icons/ios_icon_default_next.png'
|
||||||
|
: './assets/app-icons/ios_icon_default.icon',
|
||||||
infoPlist: {
|
infoPlist: {
|
||||||
UIBackgroundModes: ['remote-notification'],
|
UIBackgroundModes: ['remote-notification'],
|
||||||
NSCameraUsageDescription:
|
NSCameraUsageDescription:
|
||||||
@@ -171,7 +175,7 @@ module.exports = function (_config) {
|
|||||||
barStyle: 'light-content',
|
barStyle: 'light-content',
|
||||||
},
|
},
|
||||||
android: {
|
android: {
|
||||||
icon: './assets/app-icons/android_icon_default_next.png',
|
icon: './assets/app-icons/android_icon_default_light.png',
|
||||||
adaptiveIcon: {
|
adaptiveIcon: {
|
||||||
foregroundImage: './assets/icon-android-foreground.png',
|
foregroundImage: './assets/icon-android-foreground.png',
|
||||||
monochromeImage: './assets/icon-android-foreground.png',
|
monochromeImage: './assets/icon-android-foreground.png',
|
||||||
@@ -323,18 +327,13 @@ module.exports = function (_config) {
|
|||||||
* Default set
|
* Default set
|
||||||
*/
|
*/
|
||||||
default_light: {
|
default_light: {
|
||||||
ios: './assets/app-icons/ios_icon_default_light.png',
|
ios: './assets/app-icons/ios_icon_legacy_light.png',
|
||||||
android: './assets/app-icons/android_icon_default_light.png',
|
android: './assets/app-icons/android_icon_legacy_light.png',
|
||||||
prerendered: true,
|
prerendered: true,
|
||||||
},
|
},
|
||||||
default_dark: {
|
default_dark: {
|
||||||
ios: './assets/app-icons/ios_icon_default_dark.png',
|
ios: './assets/app-icons/ios_icon_legacy_dark.png',
|
||||||
android: './assets/app-icons/android_icon_default_dark.png',
|
android: './assets/app-icons/android_icon_legacy_dark.png',
|
||||||
prerendered: true,
|
|
||||||
},
|
|
||||||
next: {
|
|
||||||
ios: './assets/app-icons/ios_icon_default_next.png',
|
|
||||||
android: './assets/app-icons/android_icon_default_next.png',
|
|
||||||
prerendered: true,
|
prerendered: true,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 467 KiB After Width: | Height: | Size: 467 KiB |
|
Before Width: | Height: | Size: 432 KiB After Width: | Height: | Size: 432 KiB |
|
After Width: | Height: | Size: 771 KiB |
@@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
"fill" : {
|
||||||
|
"automatic-gradient" : "srgb:0.00000,0.41569,1.00000,1.00000"
|
||||||
|
},
|
||||||
|
"groups" : [
|
||||||
|
{
|
||||||
|
"layers" : [
|
||||||
|
{
|
||||||
|
"fill" : "none",
|
||||||
|
"glass" : false,
|
||||||
|
"image-name" : "iOS transparent.png",
|
||||||
|
"name" : "iOS transparent"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"shadow" : {
|
||||||
|
"kind" : "neutral",
|
||||||
|
"opacity" : 0.5
|
||||||
|
},
|
||||||
|
"translucency" : {
|
||||||
|
"enabled" : true,
|
||||||
|
"value" : 0.5
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"supported-platforms" : {
|
||||||
|
"circles" : [
|
||||||
|
"watchOS"
|
||||||
|
],
|
||||||
|
"squares" : "shared"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Before Width: | Height: | Size: 389 KiB After Width: | Height: | Size: 389 KiB |
|
Before Width: | Height: | Size: 321 KiB After Width: | Height: | Size: 321 KiB |
@@ -14,12 +14,12 @@ export function useAppIconSets() {
|
|||||||
name: _(msg({context: 'Name of app icon variant', message: 'Light'})),
|
name: _(msg({context: 'Name of app icon variant', message: 'Light'})),
|
||||||
iosImage: () => {
|
iosImage: () => {
|
||||||
return require(
|
return require(
|
||||||
`../../../../assets/app-icons/ios_icon_default_light.png`,
|
`../../../../assets/app-icons/ios_icon_legacy_light.png`,
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
androidImage: () => {
|
androidImage: () => {
|
||||||
return require(
|
return require(
|
||||||
`../../../../assets/app-icons/android_icon_default_light.png`,
|
`../../../../assets/app-icons/android_icon_legacy_light.png`,
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@@ -28,26 +28,12 @@ export function useAppIconSets() {
|
|||||||
name: _(msg({context: 'Name of app icon variant', message: 'Dark'})),
|
name: _(msg({context: 'Name of app icon variant', message: 'Dark'})),
|
||||||
iosImage: () => {
|
iosImage: () => {
|
||||||
return require(
|
return require(
|
||||||
`../../../../assets/app-icons/ios_icon_default_dark.png`,
|
`../../../../assets/app-icons/ios_icon_legacy_dark.png`,
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
androidImage: () => {
|
androidImage: () => {
|
||||||
return require(
|
return require(
|
||||||
`../../../../assets/app-icons/android_icon_default_dark.png`,
|
`../../../../assets/app-icons/android_icon_legacy_dark.png`,
|
||||||
)
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 'next',
|
|
||||||
name: _(msg({context: 'Name of app icon variant', message: 'Next'})),
|
|
||||||
iosImage: () => {
|
|
||||||
return require(
|
|
||||||
`../../../../assets/app-icons/ios_icon_default_next.png`,
|
|
||||||
)
|
|
||||||
},
|
|
||||||
androidImage: () => {
|
|
||||||
return require(
|
|
||||||
`../../../../assets/app-icons/android_icon_default_next.png`,
|
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||