From 9aaf5e0dc0a2e1553e489dffe115fdfc8d6143d4 Mon Sep 17 00:00:00 2001 From: Manuel Ruwe Date: Mon, 10 Oct 2022 20:46:22 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=92=84=20apple=20standalone=20page=20impr?= =?UTF-8?q?ovements?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/icons/.gitkeep | 0 public/imgs/favicon.png | Bin 9384 -> 0 bytes public/{ => imgs/favicon}/favicon-squared.png | Bin public/{ => imgs/favicon}/favicon.png | Bin public/{ => imgs/favicon}/favicon.svg | 0 public/imgs/{ => logo}/logo-color.svg | 0 public/imgs/{ => logo}/logo.png | Bin public/imgs/{ => logo}/logo.svg | 0 public/imgs/pwa/apple-icon-180.png | Bin 0 -> 3250 bytes public/imgs/pwa/favicon-196.png | Bin 0 -> 3607 bytes .../manifest/manifest-icon-192.maskable.png | Bin 0 -> 3478 bytes .../manifest/manifest-icon-512.maskable.png | Bin 0 -> 11657 bytes public/site.webmanifest | 29 ++++++++++++++++++ src/components/layout/Layout.tsx | 12 ++++++-- src/components/layout/Logo.tsx | 2 +- src/components/layout/{ => header}/Header.tsx | 16 +++++----- .../layout/{ => header}/HeaderConfig.tsx | 15 ++++++--- .../layout/header/safariStatusBarStyle.tsx | 13 ++++++++ 18 files changed, 70 insertions(+), 17 deletions(-) delete mode 100644 public/icons/.gitkeep delete mode 100644 public/imgs/favicon.png rename public/{ => imgs/favicon}/favicon-squared.png (100%) rename public/{ => imgs/favicon}/favicon.png (100%) rename public/{ => imgs/favicon}/favicon.svg (100%) rename public/imgs/{ => logo}/logo-color.svg (100%) rename public/imgs/{ => logo}/logo.png (100%) rename public/imgs/{ => logo}/logo.svg (100%) create mode 100644 public/imgs/pwa/apple-icon-180.png create mode 100644 public/imgs/pwa/favicon-196.png create mode 100644 public/imgs/pwa/manifest/manifest-icon-192.maskable.png create mode 100644 public/imgs/pwa/manifest/manifest-icon-512.maskable.png create mode 100644 public/site.webmanifest rename src/components/layout/{ => header}/Header.tsx (73%) rename src/components/layout/{ => header}/HeaderConfig.tsx (56%) create mode 100644 src/components/layout/header/safariStatusBarStyle.tsx diff --git a/public/icons/.gitkeep b/public/icons/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/public/imgs/favicon.png b/public/imgs/favicon.png deleted file mode 100644 index cb0dc44894716b3c2c974ec0d6be5262e7cf794f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9384 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 F{~vbP06PEx diff --git a/public/favicon-squared.png b/public/imgs/favicon/favicon-squared.png similarity index 100% rename from public/favicon-squared.png rename to public/imgs/favicon/favicon-squared.png diff --git a/public/favicon.png b/public/imgs/favicon/favicon.png similarity index 100% rename from public/favicon.png rename to public/imgs/favicon/favicon.png diff --git a/public/favicon.svg b/public/imgs/favicon/favicon.svg similarity index 100% rename from public/favicon.svg rename to public/imgs/favicon/favicon.svg diff --git a/public/imgs/logo-color.svg b/public/imgs/logo/logo-color.svg similarity index 100% rename from public/imgs/logo-color.svg rename to public/imgs/logo/logo-color.svg diff --git a/public/imgs/logo.png b/public/imgs/logo/logo.png similarity index 100% rename from public/imgs/logo.png rename to public/imgs/logo/logo.png diff --git a/public/imgs/logo.svg b/public/imgs/logo/logo.svg similarity index 100% rename from public/imgs/logo.svg rename to public/imgs/logo/logo.svg diff --git a/public/imgs/pwa/apple-icon-180.png b/public/imgs/pwa/apple-icon-180.png new file mode 100644 index 0000000000000000000000000000000000000000..c153ef52272e0419deb05de5a93964bf84f53b44 GIT binary patch literal 3250 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 Z#+VvfY*UZUQ$AXNmb#u=iHdE|{{ZGcfT;ig literal 0 HcmV?d00001 diff --git a/public/imgs/pwa/manifest/manifest-icon-512.maskable.png b/public/imgs/pwa/manifest/manifest-icon-512.maskable.png new file mode 100644 index 0000000000000000000000000000000000000000..d6366700a9b692210d0393887ba5f4d44095dab3 GIT binary patch literal 11657 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 GzxqFr#9S8u literal 0 HcmV?d00001 diff --git a/public/site.webmanifest b/public/site.webmanifest new file mode 100644 index 000000000..96dae66d5 --- /dev/null +++ b/public/site.webmanifest @@ -0,0 +1,29 @@ +{ + "display": "standalone", + "icons": [ + { + "src": "/imgs/pwa/manifest/manifest-icon-192.maskable.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "any" + }, + { + "src": "/imgs/pwa/manifest/manifest-icon-192.maskable.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "/imgs/pwa/manifest/manifest-icon-512.maskable.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "any" + }, + { + "src": "/imgs/pwa/manifest/manifest-icon-512.maskable.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" + } + ] +} \ No newline at end of file diff --git a/src/components/layout/Layout.tsx b/src/components/layout/Layout.tsx index d762c2cb0..f010f5724 100644 --- a/src/components/layout/Layout.tsx +++ b/src/components/layout/Layout.tsx @@ -1,14 +1,22 @@ import { AppShell, createStyles } from '@mantine/core'; -import { Header } from './Header'; +import { Header } from './header/Header'; import { Footer } from './Footer'; import Aside from './Aside'; import Navbar from './Navbar'; -import { HeaderConfig } from './HeaderConfig'; +import { HeaderConfig } from './header/HeaderConfig'; import { Background } from './Background'; import { useConfig } from '../../tools/state'; const useStyles = createStyles((theme) => ({ main: {}, + appShell: { + // eslint-disable-next-line no-useless-computed-key + ['@media screen and (display-mode: standalone)']: { + '&': { + paddingTop: '88px !important', + }, + }, + }, })); export default function Layout({ children, style }: any) { diff --git a/src/components/layout/Logo.tsx b/src/components/layout/Logo.tsx index a4530a1de..530314b57 100644 --- a/src/components/layout/Logo.tsx +++ b/src/components/layout/Logo.tsx @@ -12,7 +12,7 @@ export function Logo({ style, withoutText }: any) { ({ hide: { @@ -23,7 +21,7 @@ const useStyles = createStyles((theme) => ({ })); export function Header(props: any) { - const { classes, cx } = useStyles(); + const { classes } = useStyles(); const { config } = useConfig(); const { colorScheme } = useMantineColorScheme(); diff --git a/src/components/layout/HeaderConfig.tsx b/src/components/layout/header/HeaderConfig.tsx similarity index 56% rename from src/components/layout/HeaderConfig.tsx rename to src/components/layout/header/HeaderConfig.tsx index bf746e855..8f873a9f0 100644 --- a/src/components/layout/HeaderConfig.tsx +++ b/src/components/layout/header/HeaderConfig.tsx @@ -1,7 +1,8 @@ /* eslint-disable react/no-invalid-html-attribute */ import React from 'react'; import Head from 'next/head'; -import { useConfig } from '../../tools/state'; +import { useConfig } from '../../../tools/state'; +import { SafariStatusBarStyle } from './safariStatusBarStyle'; export function HeaderConfig(props: any) { const { config } = useConfig(); @@ -9,15 +10,19 @@ export function HeaderConfig(props: any) { return ( {config.settings.title || 'Homarr 🦞'} - + + + {/* configure apple splash screen & touch icon */} - + + + ); } diff --git a/src/components/layout/header/safariStatusBarStyle.tsx b/src/components/layout/header/safariStatusBarStyle.tsx new file mode 100644 index 000000000..b7100ced0 --- /dev/null +++ b/src/components/layout/header/safariStatusBarStyle.tsx @@ -0,0 +1,13 @@ +import { useMantineTheme } from '@mantine/core'; + +export const SafariStatusBarStyle = () => { + const colorScheme = useMantineTheme(); + + const isDark = colorScheme.colorScheme === 'dark'; + + if (isDark) { + return ; + } + + return ; +};