aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/Notes/components/Export.js58
-rw-r--r--apps/Notes/components/Import.js4
-rw-r--r--apps/Notes/components/List.js12
-rw-r--r--apps/Notes/helpers/import.js2
-rw-r--r--apps/Notes/styles/_export.scss14
-rw-r--r--apps/Notes/styles/_import.scss1
-rw-r--r--apps/Notes/styles/_noteView.scss3
-rw-r--r--apps/Notes/styles/_notesList.scss4
-rw-r--r--apps/Youtube/styles/_results.scss1
-rw-r--r--components/Header.js13
-rw-r--r--components/Layout.js26
-rw-r--r--helpers/logout.js12
-rw-r--r--next.config.js4
-rw-r--r--pages/Notes.js60
-rw-r--r--pages/api/notes/index.js1
-rw-r--r--public/android-chrome-192x192.pngbin0 -> 2056 bytes
-rw-r--r--public/android-chrome-512x512.pngbin0 -> 12262 bytes
-rw-r--r--public/apple-touch-icon.pngbin0 -> 4867 bytes
-rw-r--r--public/browserconfig.xml9
-rw-r--r--public/favicon-16x16.pngbin0 -> 625 bytes
-rw-r--r--public/favicon-32x32.pngbin0 -> 884 bytes
-rw-r--r--public/favicon.icobin0 -> 15086 bytes
-rw-r--r--public/mstile-144x144.pngbin0 -> 1543 bytes
-rw-r--r--public/mstile-150x150.pngbin0 -> 4153 bytes
-rw-r--r--public/mstile-310x150.pngbin0 -> 4607 bytes
-rw-r--r--public/mstile-310x310.pngbin0 -> 8694 bytes
-rw-r--r--public/mstile-70x70.pngbin0 -> 3015 bytes
-rw-r--r--public/notes/android-chrome-192x192.pngbin0 -> 2056 bytes
-rw-r--r--public/notes/android-chrome-512x512.pngbin0 -> 9572 bytes
-rw-r--r--public/notes/apple-touch-icon.pngbin0 -> 3345 bytes
-rw-r--r--public/notes/browserconfig.xml9
-rw-r--r--public/notes/favicon-16x16.pngbin0 -> 654 bytes
-rw-r--r--public/notes/favicon-32x32.pngbin0 -> 763 bytes
-rw-r--r--public/notes/favicon.icobin0 -> 15086 bytes
-rw-r--r--public/notes/mstile-144x144.pngbin0 -> 2027 bytes
-rw-r--r--public/notes/mstile-150x150.pngbin0 -> 2201 bytes
-rw-r--r--public/notes/mstile-310x150.pngbin0 -> 2384 bytes
-rw-r--r--public/notes/mstile-310x310.pngbin0 -> 5995 bytes
-rw-r--r--public/notes/mstile-70x70.pngbin0 -> 1632 bytes
-rw-r--r--public/notes/safari-pinned-tab.svg19
-rw-r--r--public/notes/site.webmanifest19
-rw-r--r--public/safari-pinned-tab.svg452
-rw-r--r--public/site.webmanifest19
-rw-r--r--styles/global.scss22
-rw-r--r--styles/global/_window.scss8
-rw-r--r--styles/main/_icon.scss6
-rw-r--r--styles/main/_layout.scss7
47 files changed, 726 insertions, 59 deletions
diff --git a/apps/Notes/components/Export.js b/apps/Notes/components/Export.js
index 4ab1d64..516c0ec 100644
--- a/apps/Notes/components/Export.js
+++ b/apps/Notes/components/Export.js
@@ -3,6 +3,8 @@ import React, { useState } from 'react'
import useSettings from 'hooks/useSettings'
import useNotes from '../hooks/useNotes'
import { handleSelect, handleSelectAll, handleExport } from '../helpers/export'
+import { faCheck, faTimes } from '@fortawesome/free-solid-svg-icons'
+import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
const Export = ({ setAction }) => {
const { notes } = useNotes()
@@ -29,29 +31,43 @@ const Export = ({ setAction }) => {
/>
<p>{t('notes_to_export')}</p>
<div className={styles.export__select}>
- <input
- type='checkbox'
- name='selectAll'
- onChange={e => handleSelectAll(e, notes, setIds)}
- checked={notes.length === ids.length}
- />
- <label htmlFor='selectAll'>{t('select_all')}</label>
+ <label>
+ <input
+ type='checkbox'
+ name='selectAll'
+ onChange={e => handleSelectAll(e, notes, setIds)}
+ checked={notes.length === ids.length}
+ className='hidden'
+ />
+ <span style={{ color: notes.length === ids.length ? 'green' : 'brown' }}>
+ <FontAwesomeIcon icon={notes.length === ids.length ? faCheck : faTimes} />
+ </span>
+ {t('select_all')}
+ </label>
</div>
<ul>
- {notes.sort(sortFn).map(note => (
- <li key={note.noteId}>
- <input
- type='checkbox'
- name={note.noteId}
- value={note.noteId}
- checked={ids.includes(note.noteId)}
- onChange={() => handleSelect(note.noteId, ids, setIds)}
- />
- <label htlmfor={note.noteId}>
- {note.title}
- </label><br />
- </li>
- ))}
+ {notes.sort(sortFn).map(note => {
+ const checked = ids.includes(note.noteId)
+
+ return (
+ <li key={note.noteId}>
+ <label>
+ <input
+ type='checkbox'
+ name={note.noteId}
+ value={note.noteId}
+ checked={ids.includes(note.noteId)}
+ onChange={() => handleSelect(note.noteId, ids, setIds)}
+ className='hidden'
+ />
+ <span style={{ color: checked ? 'green' : 'brown' }}>
+ <FontAwesomeIcon icon={checked ? faCheck : faTimes} />
+ </span>
+ {note.title}
+ </label>
+ </li>
+ )
+ })}
</ul>
</div>
</section>
diff --git a/apps/Notes/components/Import.js b/apps/Notes/components/Import.js
index 5827310..fa1fa48 100644
--- a/apps/Notes/components/Import.js
+++ b/apps/Notes/components/Import.js
@@ -13,7 +13,9 @@ const Import = ({ setAction }) => {
return (
<section className={styles.import}>
<div className='window__submenu'>
- <div onClick={() => { setAction('') }}>{t('back')}</div>
+ <div>
+ <div onClick={() => { setAction('') }}>{t('back')}</div>
+ </div>
</div>
<div className='window__scroll'>
<form onSubmit={e => handleImport(e, files, mutateNotes, setDone)}>
diff --git a/apps/Notes/components/List.js b/apps/Notes/components/List.js
index 0e6c8fa..7d88c8d 100644
--- a/apps/Notes/components/List.js
+++ b/apps/Notes/components/List.js
@@ -1,4 +1,5 @@
import styles from '../styles/Notes.module.scss'
+import { useRouter } from 'next/router'
import React, { useState, useEffect } from 'react'
import useUser from 'hooks/useUser'
import useSettings from 'hooks/useSettings'
@@ -7,8 +8,9 @@ import useSort from '../hooks/useSort'
import ListItem from './ListItem'
import Actions from './Actions'
import { Splash } from 'components'
+import handleLogout from 'helpers/logout'
-const List = () => {
+const List = ({ logout }) => {
const [fetchedNote, setFetchedNote] = useState()
const [action, setAction] = useState('')
const [loading, setLoading] = useState(false)
@@ -16,7 +18,8 @@ const List = () => {
const { notes, error } = useNotes()
const [sortedBy, sortBy, sortFn] = useSort(3)
const { t } = useSettings()
- const { user } = useUser({
+ const router = useRouter()
+ const { user, mutateUser } = useUser({
redirectToLogin: true,
redirectToVerify: true
})
@@ -41,6 +44,11 @@ const List = () => {
<div className='mobile-only' onClick={() => { setShowSort(s => !s) }}>{t('sort')}</div>
<div onClick={() => setAction('importNotes')}>{t('import')}</div>
<div onClick={() => setAction('exportNotes')}>{t('export')}</div>
+ {logout && (
+ <div onClick={e => handleLogout(e, router, mutateUser)}>
+ {t('logout')}
+ </div>
+ )}
</div>
</div>
<div className='window__scroll'>
diff --git a/apps/Notes/helpers/import.js b/apps/Notes/helpers/import.js
index bbdceaa..01ad00e 100644
--- a/apps/Notes/helpers/import.js
+++ b/apps/Notes/helpers/import.js
@@ -24,7 +24,7 @@ export const handleImport = async (e, files, mutateNotes, setDone) => {
try {
const notes = await fetchJson('/api/notes', {
method: 'POST',
- headers: { 'Content-Type': 'application/json' },
+ headers: { 'Content-Type': 'plain/text; charset=utf-8' },
body: JSON.stringify({ title, content })
})
if (i === files.length - 1) await mutateNotes(notes)
diff --git a/apps/Notes/styles/_export.scss b/apps/Notes/styles/_export.scss
index d5951f3..40aae89 100644
--- a/apps/Notes/styles/_export.scss
+++ b/apps/Notes/styles/_export.scss
@@ -6,6 +6,20 @@
padding-bottom: 1em;
}
+ label {
+ padding-top: .125em;
+ display: flex;
+ line-height: 1.25;
+
+ span {
+ flex-shrink: 0;
+ display: inline-block;
+ width: 1.5em;
+ margin-right: .5em;
+ text-align: center;
+ }
+ }
+
&__select {
display: inline-block;
border-bottom: 1px dashed var(--color-decor);
diff --git a/apps/Notes/styles/_import.scss b/apps/Notes/styles/_import.scss
index 5d167a8..efdd047 100644
--- a/apps/Notes/styles/_import.scss
+++ b/apps/Notes/styles/_import.scss
@@ -4,7 +4,6 @@
to {opacity: 1;}
}
- padding: 1rem;
position: absolute;
top: 0;
right: 0;
diff --git a/apps/Notes/styles/_noteView.scss b/apps/Notes/styles/_noteView.scss
index 63e3fa3..51e7edd 100644
--- a/apps/Notes/styles/_noteView.scss
+++ b/apps/Notes/styles/_noteView.scss
@@ -12,13 +12,14 @@
animation: fade-in .3s;
h2 {
+ padding: .75em;
font-size: 1.25em;
font-weight: 600;
user-select: text;
}
p {
- padding-top: 1em;
+ padding: .75em;
line-height: 1.33;
white-space: pre-line;
user-select: text;
diff --git a/apps/Notes/styles/_notesList.scss b/apps/Notes/styles/_notesList.scss
index 4580d62..57c606a 100644
--- a/apps/Notes/styles/_notesList.scss
+++ b/apps/Notes/styles/_notesList.scss
@@ -5,13 +5,11 @@
}
display: block;
- overflow: auto;
width: 100%;
table-layout: fixed;
word-wrap: break-word;
height: 100%;
- margin-top: -1em;
- padding-top: 1em;
+ padding: .5em;
& > tbody,
& > thead {
diff --git a/apps/Youtube/styles/_results.scss b/apps/Youtube/styles/_results.scss
index 854d1e5..b7d8e9e 100644
--- a/apps/Youtube/styles/_results.scss
+++ b/apps/Youtube/styles/_results.scss
@@ -19,6 +19,7 @@
border: 1px dashed var(--color-window-buttons);
flex-shrink: 1;
flex-grow: 1;
+ width: 1em;
&:placeholder {
font: inherit;
diff --git a/components/Header.js b/components/Header.js
index 5e4ff12..2db8178 100644
--- a/components/Header.js
+++ b/components/Header.js
@@ -3,11 +3,11 @@ import React, { useState } from 'react'
import { useRouter } from 'next/router'
import Link from 'next/link'
import useUser from 'hooks/useUser'
-import fetchJson from 'helpers/fetchJson'
import { focus, toggleMin, open, close } from 'helpers/windowActions'
import appList from 'configs/appList'
import useSettings from 'hooks/useSettings'
import useApps from 'hooks/useApps'
+import handleLogout from 'helpers/logout'
import { faArrowUp, faTimes } from '@fortawesome/free-solid-svg-icons'
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
@@ -19,15 +19,6 @@ const Header = () => {
const { t } = useSettings()
const router = useRouter()
- const handleLogout = async (e) => {
- e.preventDefault()
- mutateUser(
- await fetchJson('/api/logout', { method: 'POST' }),
- false
- )
- router.push('/login')
- }
-
const handleClick = (app, setApps) => {
if (app.min) {
toggleMin(app.name, apps, setApps)
@@ -118,7 +109,7 @@ const Header = () => {
</li>
)}
<li>
- <span onClick={handleLogout}>
+ <span onClick={e => handleLogout(e, router, mutateUser)}>
{t('logout')}
</span>
</li>
diff --git a/components/Layout.js b/components/Layout.js
index 7caa5a5..8c48dd5 100644
--- a/components/Layout.js
+++ b/components/Layout.js
@@ -1,4 +1,5 @@
import styles from 'styles/Main.module.scss'
+import Head from 'next/head'
import React from 'react'
import { Header, Popup } from 'components'
import useSettings from 'hooks/useSettings'
@@ -12,13 +13,24 @@ const Layout = ({
if (!settings || !settings.theme || !settings.language) return null
return (
- <section className={styles.layout + ' ' + settings.theme}>
- <main>
- <div className='container'>{children}</div>
- </main>
- <Header />
- <Popup />
- </section>
+ <>
+ <Head>
+ <link rel='apple-touch-icon' sizes='180x180' href='/apple-touch-icon.png' />
+ <link rel='icon' type='image/png' sizes='32x32' href='/favicon-32x32.png' />
+ <link rel='icon' type='image/png' sizes='16x16' href='/favicon-16x16.png' />
+ <link rel='manifest' href='/site.webmanifest' />
+ <link rel='mask-icon' href='/safari-pinned-tab.svg' color='#5bbad5' />
+ <meta name='msapplication-TileColor' content='#da532c' />
+ <meta name='theme-color' content='#ffffff' />
+ </Head>
+ <section className={styles.layout + ' ' + settings.theme}>
+ <main>
+ <div className='container'>{children}</div>
+ </main>
+ <Header />
+ <Popup />
+ </section>
+ </>
)
}
diff --git a/helpers/logout.js b/helpers/logout.js
new file mode 100644
index 0000000..f530e8c
--- /dev/null
+++ b/helpers/logout.js
@@ -0,0 +1,12 @@
+import fetchJson from 'helpers/fetchJson'
+
+const handleLogout = async (e, router, mutateUser) => {
+ e.preventDefault()
+ mutateUser(
+ await fetchJson('/api/logout', { method: 'POST' }),
+ false
+ )
+ router.push('/login')
+}
+
+export default handleLogout
diff --git a/next.config.js b/next.config.js
index c7bf3a8..4bee3af 100644
--- a/next.config.js
+++ b/next.config.js
@@ -1,5 +1,5 @@
module.exports = {
eslint: {
- dirs: ['apps', 'components', 'pages', 'configs', 'helpers', 'hocs', 'hooks'], // Only run ESLint on the 'pages' and 'utils' directories during production builds (next build)
- },
+ dirs: ['apps', 'components', 'pages', 'configs', 'helpers', 'hocs', 'hooks']
+ }
}
diff --git a/pages/Notes.js b/pages/Notes.js
new file mode 100644
index 0000000..5ed91cf
--- /dev/null
+++ b/pages/Notes.js
@@ -0,0 +1,60 @@
+import styles from 'styles/Main.module.scss'
+import React, { useMemo, Suspense, useEffect } from 'react'
+import Head from 'next/head'
+import useApps from 'hooks/useApps'
+import useSettings from 'hooks/useSettings'
+import useUser from 'hooks/useUser'
+import { Splash, Popup } from 'components'
+
+const NotesApp = () => {
+ const { user } = useUser({
+ redirectToLogin: true,
+ redirectToVerify: true
+ })
+ const app = { name: 'Notes', min: false, max: true, height: '48em', width: '64em', pos: [], buttons: [], props: {} }
+ const { apps, setApps } = useApps([app])
+ const { settings } = useSettings()
+
+ useEffect(() => setApps([app]), [])
+
+ if (!user || !apps || apps.length < 1 || !settings || !settings.theme || !settings.language) return null
+
+ return (
+ <>
+ <Head>
+ <title>My Notes</title>
+ <link rel='apple-touch-icon' sizes='180x180' href='/notes/apple-touch-icon.png' />
+ <link rel='icon' type='image/png' sizes='32x32' href='/notes/favicon-32x32.png' />
+ <link rel='icon' type='image/png' sizes='16x16' href='/notes/favicon-16x16.png' />
+ <link rel='manifest' href='/notes/site.webmanifest' />
+ <link rel='mask-icon' href='/notes/safari-pinned-tab.svg' color='#ffc40d' />
+ <link rel='shortcut icon' href='/notes/favicon.ico' />
+ <meta name='msapplication-TileColor' content='#ffc40d' />
+ <meta name='msapplication-config' content='/notes/browserconfig.xml' />
+ <meta name='theme-color' content='#ffffff' />
+ </Head>
+ <section className={styles.layout + ' ' + settings.theme}>
+ <main className='window__content noHeader'>
+ <NotesContainer />
+ </main>
+ <Popup />
+ </section>
+ </>
+ )
+}
+
+const NotesContainer = () => {
+ const Notes = React.lazy(() => import('apps/Notes'))
+
+ const Component = useMemo(() => (
+ <Suspense fallback={<Splash fixed />}>
+ <Notes logout />
+ </Suspense>
+ ), [])
+
+ return Notes
+ ? Component
+ : null
+}
+
+export default NotesApp
diff --git a/pages/api/notes/index.js b/pages/api/notes/index.js
index 2c53909..8530c53 100644
--- a/pages/api/notes/index.js
+++ b/pages/api/notes/index.js
@@ -40,6 +40,7 @@ export default withSession(async (req, res) => {
res.status(200).json(notes)
})
} catch (error) {
+ console.log(error)
res.status(400).json([])
}
break
diff --git a/public/android-chrome-192x192.png b/public/android-chrome-192x192.png
new file mode 100644
index 0000000..ddd0620
--- /dev/null
+++ b/public/android-chrome-192x192.png
Binary files differ
diff --git a/public/android-chrome-512x512.png b/public/android-chrome-512x512.png
new file mode 100644
index 0000000..8278472
--- /dev/null
+++ b/public/android-chrome-512x512.png
Binary files differ
diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png
new file mode 100644
index 0000000..bfccc03
--- /dev/null
+++ b/public/apple-touch-icon.png
Binary files differ
diff --git a/public/browserconfig.xml b/public/browserconfig.xml
new file mode 100644
index 0000000..b3930d0
--- /dev/null
+++ b/public/browserconfig.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<browserconfig>
+ <msapplication>
+ <tile>
+ <square150x150logo src="/mstile-150x150.png"/>
+ <TileColor>#da532c</TileColor>
+ </tile>
+ </msapplication>
+</browserconfig>
diff --git a/public/favicon-16x16.png b/public/favicon-16x16.png
new file mode 100644
index 0000000..fc497b6
--- /dev/null
+++ b/public/favicon-16x16.png
Binary files differ
diff --git a/public/favicon-32x32.png b/public/favicon-32x32.png
new file mode 100644
index 0000000..6b79276
--- /dev/null
+++ b/public/favicon-32x32.png
Binary files differ
diff --git a/public/favicon.ico b/public/favicon.ico
new file mode 100644
index 0000000..4bee8dd
--- /dev/null
+++ b/public/favicon.ico
Binary files differ
diff --git a/public/mstile-144x144.png b/public/mstile-144x144.png
new file mode 100644
index 0000000..530f936
--- /dev/null
+++ b/public/mstile-144x144.png
Binary files differ
diff --git a/public/mstile-150x150.png b/public/mstile-150x150.png
new file mode 100644
index 0000000..6a13717
--- /dev/null
+++ b/public/mstile-150x150.png
Binary files differ
diff --git a/public/mstile-310x150.png b/public/mstile-310x150.png
new file mode 100644
index 0000000..c21dbe2
--- /dev/null
+++ b/public/mstile-310x150.png
Binary files differ
diff --git a/public/mstile-310x310.png b/public/mstile-310x310.png
new file mode 100644
index 0000000..b762537
--- /dev/null
+++ b/public/mstile-310x310.png
Binary files differ
diff --git a/public/mstile-70x70.png b/public/mstile-70x70.png
new file mode 100644
index 0000000..d82a35c
--- /dev/null
+++ b/public/mstile-70x70.png
Binary files differ
diff --git a/public/notes/android-chrome-192x192.png b/public/notes/android-chrome-192x192.png
new file mode 100644
index 0000000..e685cdb
--- /dev/null
+++ b/public/notes/android-chrome-192x192.png
Binary files differ
diff --git a/public/notes/android-chrome-512x512.png b/public/notes/android-chrome-512x512.png
new file mode 100644
index 0000000..8e926a6
--- /dev/null
+++ b/public/notes/android-chrome-512x512.png
Binary files differ
diff --git a/public/notes/apple-touch-icon.png b/public/notes/apple-touch-icon.png
new file mode 100644
index 0000000..8665828
--- /dev/null
+++ b/public/notes/apple-touch-icon.png
Binary files differ
diff --git a/public/notes/browserconfig.xml b/public/notes/browserconfig.xml
new file mode 100644
index 0000000..17e4e5a
--- /dev/null
+++ b/public/notes/browserconfig.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<browserconfig>
+ <msapplication>
+ <tile>
+ <square150x150logo src="/notes/mstile-150x150.png"/>
+ <TileColor>#ffc40d</TileColor>
+ </tile>
+ </msapplication>
+</browserconfig>
diff --git a/public/notes/favicon-16x16.png b/public/notes/favicon-16x16.png
new file mode 100644
index 0000000..1114f0f
--- /dev/null
+++ b/public/notes/favicon-16x16.png
Binary files differ
diff --git a/public/notes/favicon-32x32.png b/public/notes/favicon-32x32.png
new file mode 100644
index 0000000..3ca0128
--- /dev/null
+++ b/public/notes/favicon-32x32.png
Binary files differ
diff --git a/public/notes/favicon.ico b/public/notes/favicon.ico
new file mode 100644
index 0000000..7623944
--- /dev/null
+++ b/public/notes/favicon.ico
Binary files differ
diff --git a/public/notes/mstile-144x144.png b/public/notes/mstile-144x144.png
new file mode 100644
index 0000000..e5f480d
--- /dev/null
+++ b/public/notes/mstile-144x144.png
Binary files differ
diff --git a/public/notes/mstile-150x150.png b/public/notes/mstile-150x150.png
new file mode 100644
index 0000000..7b1ce37
--- /dev/null
+++ b/public/notes/mstile-150x150.png
Binary files differ
diff --git a/public/notes/mstile-310x150.png b/public/notes/mstile-310x150.png
new file mode 100644
index 0000000..07fe91a
--- /dev/null
+++ b/public/notes/mstile-310x150.png
Binary files differ
diff --git a/public/notes/mstile-310x310.png b/public/notes/mstile-310x310.png
new file mode 100644
index 0000000..6574d40
--- /dev/null
+++ b/public/notes/mstile-310x310.png
Binary files differ
diff --git a/public/notes/mstile-70x70.png b/public/notes/mstile-70x70.png
new file mode 100644
index 0000000..2de179c
--- /dev/null
+++ b/public/notes/mstile-70x70.png
Binary files differ
diff --git a/public/notes/safari-pinned-tab.svg b/public/notes/safari-pinned-tab.svg
new file mode 100644
index 0000000..8bd8c5e
--- /dev/null
+++ b/public/notes/safari-pinned-tab.svg
@@ -0,0 +1,19 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
+ "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
+ width="700.000000pt" height="700.000000pt" viewBox="0 0 700.000000 700.000000"
+ preserveAspectRatio="xMidYMid meet">
+<metadata>
+Created by potrace 1.14, written by Peter Selinger 2001-2017
+</metadata>
+<g transform="translate(0.000000,700.000000) scale(0.100000,-0.100000)"
+fill="#000000" stroke="none">
+<path d="M774 6545 c-173 -38 -296 -160 -324 -325 -8 -47 -10 -842 -8 -2820
+l3 -2755 23 -57 c30 -75 105 -156 180 -196 122 -65 8 -62 1957 -62 l1770 0
+1093 1093 1092 1092 0 1826 c0 1273 -3 1843 -11 1884 -30 165 -151 283 -328
+321 -96 20 -5353 19 -5447 -1z m5776 -3923 c0 -4 -488 -495 -1085 -1092
+l-1085 -1085 -2 895 c-2 492 -2 926 0 965 6 157 119 289 271 315 59 10 1901
+12 1901 2z"/>
+</g>
+</svg>
diff --git a/public/notes/site.webmanifest b/public/notes/site.webmanifest
new file mode 100644
index 0000000..4b8f6fb
--- /dev/null
+++ b/public/notes/site.webmanifest
@@ -0,0 +1,19 @@
+{
+ "name": "Notes",
+ "short_name": "Notes",
+ "icons": [
+ {
+ "src": "/notes/android-chrome-192x192.png",
+ "sizes": "192x192",
+ "type": "image/png"
+ },
+ {
+ "src": "/notes/android-chrome-512x512.png",
+ "sizes": "512x512",
+ "type": "image/png"
+ }
+ ],
+ "theme_color": "#ffffff",
+ "background_color": "#ffffff",
+ "display": "standalone"
+}
diff --git a/public/safari-pinned-tab.svg b/public/safari-pinned-tab.svg
new file mode 100644
index 0000000..7b1112e
--- /dev/null
+++ b/public/safari-pinned-tab.svg
@@ -0,0 +1,452 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
+ "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
+ width="700.000000pt" height="700.000000pt" viewBox="0 0 700.000000 700.000000"
+ preserveAspectRatio="xMidYMid meet">
+<metadata>
+Created by potrace 1.14, written by Peter Selinger 2001-2017
+</metadata>
+<g transform="translate(0.000000,700.000000) scale(0.100000,-0.100000)"
+fill="#000000" stroke="none">
+<path d="M737 6406 c-51 -15 -102 -58 -129 -109 l-23 -42 1 -560 c1 -548 3
+-627 15 -619 7 4 33 -47 30 -59 -1 -5 4 -5 10 -1 7 4 17 1 23 -7 34 -43 105
+-55 319 -54 92 0 167 -3 167 -7 0 -5 5 -8 11 -8 5 0 8 4 5 9 -3 5 10 8 29 8
+19 -1 35 -5 35 -9 0 -4 5 -8 11 -8 5 0 8 4 5 9 -3 5 10 8 29 8 19 -1 35 -5 35
+-9 0 -4 5 -8 11 -8 5 0 8 4 5 9 -3 5 10 8 29 8 19 -1 35 -5 35 -9 0 -4 5 -8
+11 -8 5 0 8 4 5 8 -2 4 83 7 190 7 107 0 194 -3 194 -7 0 -5 5 -8 11 -8 5 0 8
+4 4 9 -3 6 3 9 12 9 31 -2 95 13 118 28 12 8 25 11 30 7 4 -5 5 -3 2 3 -8 14
+36 57 48 47 4 -5 5 -3 2 3 -4 7 0 29 9 50 14 33 16 108 16 580 0 298 -3 557
+-7 576 -15 67 -76 130 -145 151 -58 18 -1093 20 -1153 3z"/>
+<path d="M2908 6398 c-57 -26 -96 -64 -119 -117 -19 -42 -20 -73 -19 -618 1
+-354 5 -571 11 -568 5 4 9 -3 9 -14 0 -12 5 -21 10 -21 6 0 16 -11 22 -25 6
+-14 15 -25 19 -25 5 0 18 -8 29 -17 11 -10 25 -19 30 -19 6 -1 11 -2 13 -4 11
+-9 92 -13 270 -14 114 -1 207 -4 207 -8 0 -5 5 -8 11 -8 5 0 8 4 5 9 -3 5 10
+8 29 8 19 -1 35 -5 35 -9 0 -4 5 -8 11 -8 5 0 8 4 5 8 -7 12 318 9 326 -3 5
+-7 8 -7 8 0 0 6 41 10 108 10 59 -1 117 2 128 6 13 5 26 3 33 -4 9 -9 11 -8 6
+6 -5 11 -2 17 8 17 8 0 20 7 27 15 7 8 16 13 20 10 5 -3 18 11 30 30 12 19 25
+33 30 30 4 -3 6 3 3 14 -3 10 0 22 6 25 7 5 11 181 11 571 0 621 1 605 -63
+673 -29 31 -53 46 -97 60 -8 3 -263 6 -567 7 -525 2 -554 1 -595 -17z"/>
+<path d="M5107 6404 c-61 -21 -94 -51 -122 -109 l-27 -54 1 -548 c0 -301 2
+-557 5 -568 12 -56 10 -52 49 -95 12 -14 34 -31 49 -39 15 -8 26 -17 24 -20
+-4 -6 32 -10 119 -14 22 -1 43 -6 47 -12 5 -7 8 -6 8 1 0 5 11 10 25 10 14 0
+25 -4 25 -8 0 -4 5 -8 11 -8 5 0 8 4 5 9 -3 5 10 8 29 8 19 -1 35 -5 35 -9 0
+-4 5 -8 11 -8 5 0 8 4 5 8 -7 12 318 9 326 -3 5 -7 8 -7 8 1 0 11 78 13 97 1
+6 -4 14 -4 17 1 6 9 127 9 142 0 6 -4 14 -4 18 -1 4 4 48 8 99 9 148 2 181 11
+243 70 61 58 61 58 60 672 -1 522 -2 559 -20 592 -26 49 -55 79 -101 103 -39
+21 -48 22 -595 23 -437 1 -563 -2 -593 -12z"/>
+<path d="M1996 4998 c3 -5 10 -6 15 -3 13 9 11 12 -6 12 -8 0 -12 -4 -9 -9z"/>
+<path d="M2856 4967 c3 -10 9 -15 12 -12 3 3 0 11 -7 18 -10 9 -11 8 -5 -6z"/>
+<path d="M615 4960 c-3 -5 -1 -10 4 -10 6 0 11 5 11 10 0 6 -2 10 -4 10 -3 0
+-8 -4 -11 -10z"/>
+<path d="M2013 4955 c0 -8 4 -12 9 -9 5 3 6 10 3 15 -9 13 -12 11 -12 -6z"/>
+<path d="M6310 4966 c0 -2 7 -7 16 -10 8 -3 12 -2 9 4 -6 10 -25 14 -25 6z"/>
+<path d="M735 4940 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0 -7
+-4 -4 -10z"/>
+<path d="M770 4939 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
+-5 -10 -11z"/>
+<path d="M2895 4940 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0
+-7 -4 -4 -10z"/>
+<path d="M2935 4940 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0
+-7 -4 -4 -10z"/>
+<path d="M4170 4940 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
+-4 -4 -4 -10z"/>
+<path d="M6190 4940 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
+-4 -4 -4 -10z"/>
+<path d="M6250 4940 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
+-4 -4 -4 -10z"/>
+<path d="M6290 4940 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
+-4 -4 -4 -10z"/>
+<path d="M1910 4936 c0 -2 8 -10 18 -17 15 -13 16 -12 3 4 -13 16 -21 21 -21
+13z"/>
+<path d="M1954 4920 c0 -13 4 -16 10 -10 7 7 7 13 0 20 -6 6 -10 3 -10 -10z"/>
+<path d="M827 4919 c7 -7 15 -10 18 -7 3 3 -2 9 -12 12 -14 6 -15 5 -6 -5z"/>
+<path d="M1467 4919 c7 -7 15 -10 18 -7 3 3 -2 9 -12 12 -14 6 -15 5 -6 -5z"/>
+<path d="M1820 4926 c0 -2 8 -10 18 -17 15 -13 16 -12 3 4 -13 16 -21 21 -21
+13z"/>
+<path d="M3067 4919 c7 -7 15 -10 18 -7 3 3 -2 9 -12 12 -14 6 -15 5 -6 -5z"/>
+<path d="M5170 4926 c0 -2 7 -7 16 -10 8 -3 12 -2 9 4 -6 10 -25 14 -25 6z"/>
+<path d="M730 4900 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
+-4 -4 -4 -10z"/>
+<path d="M1050 4900 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
+-4 -4 -4 -10z"/>
+<path d="M1095 4900 c-3 -5 -1 -10 4 -10 6 0 11 5 11 10 0 6 -2 10 -4 10 -3 0
+-8 -4 -11 -10z"/>
+<path d="M1135 4900 c-3 -5 -1 -10 4 -10 6 0 11 5 11 10 0 6 -2 10 -4 10 -3 0
+-8 -4 -11 -10z"/>
+<path d="M1170 4900 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
+-4 -4 -4 -10z"/>
+<path d="M1295 4900 c-3 -5 -1 -10 4 -10 6 0 11 5 11 10 0 6 -2 10 -4 10 -3 0
+-8 -4 -11 -10z"/>
+<path d="M1330 4900 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
+-4 -4 -4 -10z"/>
+<path d="M1690 4900 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
+-4 -4 -4 -10z"/>
+<path d="M1735 4900 c-3 -5 -1 -10 4 -10 6 0 11 5 11 10 0 6 -2 10 -4 10 -3 0
+-8 -4 -11 -10z"/>
+<path d="M2895 4900 c-3 -5 -1 -10 4 -10 6 0 11 5 11 10 0 6 -2 10 -4 10 -3 0
+-8 -4 -11 -10z"/>
+<path d="M2930 4900 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
+-4 -4 -4 -10z"/>
+<path d="M3290 4900 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
+-4 -4 -4 -10z"/>
+<path d="M3335 4900 c-3 -5 -1 -10 4 -10 6 0 11 5 11 10 0 6 -2 10 -4 10 -3 0
+-8 -4 -11 -10z"/>
+<path d="M3375 4900 c-3 -5 -1 -10 4 -10 6 0 11 5 11 10 0 6 -2 10 -4 10 -3 0
+-8 -4 -11 -10z"/>
+<path d="M3410 4900 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
+-4 -4 -4 -10z"/>
+<path d="M4160 4900 c-9 -6 -10 -10 -3 -10 6 0 15 5 18 10 8 12 4 12 -15 0z"/>
+<path d="M5295 4900 c-3 -5 -1 -10 4 -10 6 0 11 5 11 10 0 6 -2 10 -4 10 -3 0
+-8 -4 -11 -10z"/>
+<path d="M5330 4900 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
+-4 -4 -4 -10z"/>
+<path d="M6010 4900 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
+-4 -4 -4 -10z"/>
+<path d="M6055 4900 c-3 -5 -1 -10 4 -10 6 0 11 5 11 10 0 6 -2 10 -4 10 -3 0
+-8 -4 -11 -10z"/>
+<path d="M6255 4900 c-3 -5 -1 -10 4 -10 6 0 11 5 11 10 0 6 -2 10 -4 10 -3 0
+-8 -4 -11 -10z"/>
+<path d="M3514 4880 c0 -13 4 -16 10 -10 7 7 7 13 0 20 -6 6 -10 3 -10 -10z"/>
+<path d="M5434 4880 c0 -13 4 -16 10 -10 7 7 7 13 0 20 -6 6 -10 3 -10 -10z"/>
+<path d="M876 4882 c-3 -5 1 -9 9 -9 8 0 12 4 9 9 -3 4 -7 8 -9 8 -2 0 -6 -4
+-9 -8z"/>
+<path d="M1475 4880 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0
+-7 -4 -4 -10z"/>
+<path d="M1516 4882 c-3 -5 1 -9 9 -9 8 0 12 4 9 9 -3 4 -7 8 -9 8 -2 0 -6 -4
+-9 -8z"/>
+<path d="M3075 4880 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0
+-7 -4 -4 -10z"/>
+<path d="M3116 4882 c-3 -5 1 -9 9 -9 8 0 12 4 9 9 -3 4 -7 8 -9 8 -2 0 -6 -4
+-9 -8z"/>
+<path d="M3550 4880 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
+-4 -4 -4 -10z"/>
+<path d="M3590 4881 c0 -6 4 -13 10 -16 6 -3 7 1 4 9 -7 18 -14 21 -14 7z"/>
+<path d="M5470 4880 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
+-4 -4 -4 -10z"/>
+<path d="M5510 4881 c0 -6 4 -13 10 -16 6 -3 7 1 4 9 -7 18 -14 21 -14 7z"/>
+<path d="M695 4860 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0 -7
+-4 -4 -10z"/>
+<path d="M730 4859 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
+-5 -10 -11z"/>
+<path d="M1055 4860 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0
+-7 -4 -4 -10z"/>
+<path d="M1090 4859 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
+-5 -10 -11z"/>
+<path d="M1130 4859 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
+-5 -10 -11z"/>
+<path d="M1175 4860 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0
+-7 -4 -4 -10z"/>
+<path d="M1290 4859 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
+-5 -10 -11z"/>
+<path d="M1335 4860 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0
+-7 -4 -4 -10z"/>
+<path d="M1695 4860 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0
+-7 -4 -4 -10z"/>
+<path d="M1730 4859 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
+-5 -10 -11z"/>
+<path d="M2890 4859 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
+-5 -10 -11z"/>
+<path d="M3295 4860 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0
+-7 -4 -4 -10z"/>
+<path d="M3330 4859 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
+-5 -10 -11z"/>
+<path d="M3370 4859 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
+-5 -10 -11z"/>
+<path d="M3415 4860 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0
+-7 -4 -4 -10z"/>
+<path d="M3690 4860 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
+-4 -4 -4 -10z"/>
+<path d="M5290 4859 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
+-5 -10 -11z"/>
+<path d="M5335 4860 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0
+-7 -4 -4 -10z"/>
+<path d="M5610 4860 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
+-4 -4 -4 -10z"/>
+<path d="M6015 4860 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0
+-7 -4 -4 -10z"/>
+<path d="M6050 4859 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
+-5 -10 -11z"/>
+<path d="M6255 4860 c-3 -5 -1 -10 4 -10 6 0 11 5 11 10 0 6 -2 10 -4 10 -3 0
+-8 -4 -11 -10z"/>
+<path d="M6290 4860 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
+-4 -4 -4 -10z"/>
+<path d="M825 4840 c-3 -6 1 -7 9 -4 18 7 21 14 7 14 -6 0 -13 -4 -16 -10z"/>
+<path d="M865 4840 c-3 -6 1 -7 9 -4 18 7 21 14 7 14 -6 0 -13 -4 -16 -10z"/>
+<path d="M1465 4840 c-3 -6 1 -7 9 -4 18 7 21 14 7 14 -6 0 -13 -4 -16 -10z"/>
+<path d="M1505 4840 c-3 -6 1 -7 9 -4 18 7 21 14 7 14 -6 0 -13 -4 -16 -10z"/>
+<path d="M1790 4839 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
+-5 -10 -11z"/>
+<path d="M2940 4846 c0 -2 8 -10 18 -17 15 -13 16 -12 3 4 -13 16 -21 21 -21
+13z"/>
+<path d="M3065 4840 c-3 -6 1 -7 9 -4 18 7 21 14 7 14 -6 0 -13 -4 -16 -10z"/>
+<path d="M3105 4840 c-3 -6 1 -7 9 -4 18 7 21 14 7 14 -6 0 -13 -4 -16 -10z"/>
+<path d="M3555 4841 c-3 -5 -2 -12 3 -15 5 -3 9 1 9 9 0 17 -3 19 -12 6z"/>
+<path d="M5475 4841 c-3 -5 -2 -12 3 -15 5 -3 9 1 9 9 0 17 -3 19 -12 6z"/>
+<path d="M725 4215 c-48 -17 -117 -88 -131 -137 -11 -33 -13 -1121 -2 -1159 2
+-9 12 -28 21 -43 10 -15 15 -32 11 -38 -4 -6 -3 -8 4 -4 5 3 23 -5 39 -18 44
+-37 95 -46 271 -46 128 0 162 -3 156 -12 -6 -10 -4 -10 7 0 9 8 50 12 127 12
+88 0 112 -3 106 -12 -6 -10 -4 -10 7 0 9 8 50 12 127 12 88 0 112 -3 106 -12
+-6 -10 -4 -10 7 0 9 8 54 12 146 12 96 0 144 4 169 15 20 8 40 12 45 9 5 -3 9
+2 9 10 0 9 7 16 15 16 8 0 15 3 15 8 0 4 11 19 24 34 14 14 23 28 20 31 -2 2
+0 17 6 33 13 33 17 1078 5 1135 -12 52 -54 107 -104 137 l-46 27 -560 2 c-462
+2 -567 0 -600 -12z"/>
+<path d="M2905 4211 c-49 -22 -87 -57 -112 -102 -17 -32 -18 -68 -18 -599 1
+-557 3 -642 17 -633 4 2 17 -11 28 -29 11 -18 20 -29 20 -24 0 5 7 3 15 -4 8
+-7 12 -17 8 -24 -3 -6 -3 -8 1 -4 4 3 26 0 48 -8 26 -9 82 -14 155 -14 88 0
+113 -3 107 -12 -6 -10 -4 -10 7 0 8 7 42 12 87 12 56 0 71 -3 66 -12 -6 -10
+-4 -10 7 0 9 8 50 12 127 12 88 0 112 -3 106 -12 -6 -10 -4 -10 7 0 9 8 50 12
+127 12 88 0 112 -3 106 -12 -6 -10 -4 -10 8 0 11 9 47 13 115 12 54 -1 105 0
+113 3 49 16 51 17 44 4 -4 -6 3 -2 15 11 20 20 34 26 53 23 4 0 4 7 1 16 -5
+12 -2 15 10 10 9 -3 16 -3 15 1 -5 13 24 72 33 67 12 -8 11 1123 -1 1164 -15
+53 -56 105 -103 132 l-42 24 -565 2 c-530 2 -567 1 -605 -16z"/>
+<path d="M5079 4205 c-48 -25 -87 -68 -108 -122 -10 -25 -13 -154 -13 -577 0
+-300 3 -555 7 -568 12 -41 34 -85 50 -98 13 -11 13 -15 3 -23 -10 -7 -10 -8 2
+-4 16 5 83 -27 74 -36 -3 -3 1 -5 8 -4 7 0 82 -1 166 -1 119 -2 152 -5 146
+-14 -6 -10 -4 -10 7 0 10 9 82 12 287 12 216 0 272 -3 266 -12 -6 -10 -4 -10
+7 0 9 8 51 12 132 12 116 0 197 13 197 33 0 5 8 6 17 3 10 -4 14 -4 11 0 -4 3
+4 17 18 30 61 62 59 37 60 643 0 334 -3 570 -9 593 -13 51 -81 125 -132 143
+-32 11 -146 14 -595 14 l-555 0 -46 -24z"/>
+<path d="M2015 2820 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0
+-7 -4 -4 -10z"/>
+<path d="M6330 2779 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
+-5 -10 -11z"/>
+<path d="M6290 2759 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
+-5 -10 -11z"/>
+<path d="M810 2739 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
+-5 -10 -11z"/>
+<path d="M970 2739 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
+-5 -10 -11z"/>
+<path d="M1210 2739 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
+-5 -10 -11z"/>
+<path d="M1450 2739 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
+-5 -10 -11z"/>
+<path d="M1610 2739 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
+-5 -10 -11z"/>
+<path d="M1770 2739 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
+-5 -10 -11z"/>
+<path d="M2895 2740 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0
+-7 -4 -4 -10z"/>
+<path d="M2935 2740 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0
+-7 -4 -4 -10z"/>
+<path d="M3050 2739 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
+-5 -10 -11z"/>
+<path d="M3210 2739 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
+-5 -10 -11z"/>
+<path d="M3450 2739 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
+-5 -10 -11z"/>
+<path d="M3690 2739 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
+-5 -10 -11z"/>
+<path d="M3930 2739 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
+-5 -10 -11z"/>
+<path d="M5290 2739 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
+-5 -10 -11z"/>
+<path d="M5450 2739 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
+-5 -10 -11z"/>
+<path d="M5610 2739 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
+-5 -10 -11z"/>
+<path d="M5850 2739 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
+-5 -10 -11z"/>
+<path d="M6010 2740 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
+-4 -4 -4 -10z"/>
+<path d="M6170 2739 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
+-5 -10 -11z"/>
+<path d="M5035 2720 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0
+-7 -4 -4 -10z"/>
+<path d="M895 2700 c-3 -5 -1 -10 4 -10 6 0 11 5 11 10 0 6 -2 10 -4 10 -3 0
+-8 -4 -11 -10z"/>
+<path d="M935 2700 c-3 -5 -1 -10 4 -10 6 0 11 5 11 10 0 6 -2 10 -4 10 -3 0
+-8 -4 -11 -10z"/>
+<path d="M1415 2700 c-3 -5 -1 -10 4 -10 6 0 11 5 11 10 0 6 -2 10 -4 10 -3 0
+-8 -4 -11 -10z"/>
+<path d="M3655 2700 c-3 -5 -1 -10 4 -10 6 0 11 5 11 10 0 6 -2 10 -4 10 -3 0
+-8 -4 -11 -10z"/>
+<path d="M5735 2700 c-3 -5 -1 -10 4 -10 6 0 11 5 11 10 0 6 -2 10 -4 10 -3 0
+-8 -4 -11 -10z"/>
+<path d="M5975 2700 c-3 -5 -1 -10 4 -10 6 0 11 5 11 10 0 6 -2 10 -4 10 -3 0
+-8 -4 -11 -10z"/>
+<path d="M6010 2699 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
+-5 -10 -11z"/>
+<path d="M5113 2675 c0 -8 4 -12 9 -9 5 3 6 10 3 15 -9 13 -12 11 -12 -6z"/>
+<path d="M935 2660 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0 -7
+-4 -4 -10z"/>
+<path d="M970 2660 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
+-4 -4 -4 -10z"/>
+<path d="M1010 2660 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
+-4 -4 -4 -10z"/>
+<path d="M1415 2660 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0
+-7 -4 -4 -10z"/>
+<path d="M1450 2660 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
+-4 -4 -4 -10z"/>
+<path d="M1490 2660 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
+-4 -4 -4 -10z"/>
+<path d="M3050 2660 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
+-4 -4 -4 -10z"/>
+<path d="M3090 2660 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
+-4 -4 -4 -10z"/>
+<path d="M3210 2660 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
+-4 -4 -4 -10z"/>
+<path d="M3250 2660 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
+-4 -4 -4 -10z"/>
+<path d="M3655 2660 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0
+-7 -4 -4 -10z"/>
+<path d="M3690 2660 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
+-4 -4 -4 -10z"/>
+<path d="M3730 2660 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
+-4 -4 -4 -10z"/>
+<path d="M5290 2660 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
+-4 -4 -4 -10z"/>
+<path d="M5330 2660 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
+-4 -4 -4 -10z"/>
+<path d="M5735 2660 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0
+-7 -4 -4 -10z"/>
+<path d="M782 2038 c-64 -7 -105 -28 -149 -78 -49 -54 -50 -75 -47 -670 2
+-305 4 -563 6 -572 1 -9 6 -14 10 -12 7 5 12 -19 9 -39 -1 -5 2 -6 7 -3 12 7
+54 -38 45 -49 -5 -4 -2 -5 5 -1 8 5 19 1 28 -10 9 -11 12 -13 9 -6 -6 12 -3
+12 15 2 12 -7 51 -13 86 -14 35 0 64 -5 64 -11 0 -7 3 -7 8 0 9 12 62 14 62 2
+0 -4 5 -5 12 -1 17 11 78 10 78 -1 0 -7 3 -7 8 0 9 12 62 14 62 2 0 -4 5 -5
+12 -1 17 11 78 10 78 -1 0 -7 3 -7 8 0 8 11 62 15 62 4 0 -4 15 -4 33 0 17 4
+44 4 59 0 17 -4 29 -3 32 4 3 9 5 9 5 0 1 -7 7 -10 15 -7 21 8 136 10 136 2 0
+-4 13 -3 30 2 19 5 32 5 36 -2 4 -6 10 -5 15 3 6 10 9 10 9 2 0 -7 6 -10 14
+-7 20 7 136 10 136 3 0 -8 38 -4 46 4 12 12 26 8 18 -5 -6 -10 -4 -10 7 0 17
+15 53 16 43 0 -4 -7 -3 -8 5 -4 6 4 9 12 6 17 -4 5 -1 9 4 9 28 0 83 54 111
+108 22 42 22 45 22 590 0 381 -4 561 -12 591 -15 57 -84 126 -142 142 -48 13
+-996 19 -1106 7z"/>
+<path d="M2985 2042 c-65 -7 -106 -24 -143 -62 -75 -73 -73 -56 -70 -685 3
+-609 1 -582 60 -645 12 -13 22 -29 20 -35 -2 -5 0 -7 3 -3 4 4 22 0 39 -9 17
+-10 39 -16 48 -14 10 1 26 -3 38 -9 12 -6 20 -7 20 -1 0 10 31 7 49 -3 5 -4
+12 0 14 6 4 10 6 10 6 1 1 -7 7 -10 15 -7 22 8 136 10 136 2 0 -4 7 -5 16 -1
+22 8 224 9 224 1 0 -4 13 -3 30 2 19 5 32 5 36 -2 4 -6 10 -5 15 3 6 10 9 10
+9 2 0 -7 6 -10 14 -7 22 8 136 10 136 2 0 -4 7 -5 15 -2 23 9 185 10 185 2 0
+-4 6 -5 13 -3 22 9 107 11 107 2 0 -4 9 -3 20 3 11 6 25 8 30 5 5 -3 11 -1 15
+5 4 6 10 8 15 5 4 -3 11 2 14 11 4 9 13 14 21 10 8 -3 15 0 15 7 0 12 39 52
+52 52 3 0 10 4 15 9 5 5 3 6 -4 2 -16 -9 -16 -6 2 37 13 31 15 120 15 585 0
+392 -3 559 -12 583 -25 74 -89 131 -164 145 -36 7 -1010 12 -1069 6z"/>
+<path d="M5153 2039 c-86 -11 -160 -71 -184 -150 -14 -49 -14 -1115 1 -1153 6
+-16 8 -31 6 -34 -3 -2 5 -13 17 -24 12 -11 16 -16 8 -12 -9 5 -12 3 -7 -4 4
+-7 14 -12 22 -12 8 0 14 -7 14 -15 0 -8 5 -14 12 -12 7 1 12 -3 13 -10 0 -6 4
+-15 9 -20 5 -5 6 -3 2 5 -9 15 -6 15 35 -2 19 -7 46 -13 62 -12 15 1 27 -3 27
+-9 0 -6 3 -7 8 0 9 12 62 14 62 2 0 -4 5 -5 12 -1 17 11 78 10 78 -1 0 -7 3
+-7 8 0 9 12 62 14 62 2 0 -4 5 -5 12 -1 17 11 78 10 78 -1 0 -7 3 -7 8 0 9 12
+62 14 62 2 0 -4 5 -5 12 -1 17 11 78 10 78 -1 0 -7 3 -7 8 0 9 12 62 14 62 2
+0 -4 5 -5 12 -1 17 11 78 10 78 -1 0 -7 3 -7 8 0 9 12 62 14 62 2 0 -4 5 -5
+12 -1 17 11 78 10 78 -1 0 -7 3 -7 8 0 9 12 62 14 62 2 0 -4 5 -5 12 -1 17 11
+78 10 78 -1 0 -7 3 -7 8 0 4 6 34 11 67 12 33 2 61 7 63 13 2 5 9 10 16 10 25
+0 78 62 96 113 16 48 18 96 16 602 -2 599 -1 585 -60 648 -14 16 -47 37 -73
+49 -45 20 -65 20 -562 22 -284 0 -539 -2 -568 -5z"/>
+<path d="M4170 619 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
+-5 -10 -11z"/>
+<path d="M620 606 c0 -2 8 -10 18 -17 15 -13 16 -12 3 4 -13 16 -21 21 -21 13z"/>
+<path d="M2875 581 c-3 -5 -2 -12 3 -15 5 -3 9 1 9 9 0 17 -3 19 -12 6z"/>
+<path d="M3354 569 c-3 -6 -2 -15 3 -20 5 -5 9 -1 9 11 0 23 -2 24 -12 9z"/>
+<path d="M895 560 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0 -7
+-4 -4 -10z"/>
+<path d="M1055 560 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0 -7
+-4 -4 -10z"/>
+<path d="M1215 560 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0 -7
+-4 -4 -10z"/>
+<path d="M3855 560 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0 -7
+-4 -4 -10z"/>
+<path d="M3970 559 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
+-5 -10 -11z"/>
+<path d="M5140 566 c0 -2 8 -10 18 -17 15 -13 16 -12 3 4 -13 16 -21 21 -21
+13z"/>
+<path d="M5215 560 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0 -7
+-4 -4 -10z"/>
+<path d="M5375 560 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0 -7
+-4 -4 -10z"/>
+<path d="M5535 560 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0 -7
+-4 -4 -10z"/>
+<path d="M5695 560 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0 -7
+-4 -4 -10z"/>
+<path d="M5855 560 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0 -7
+-4 -4 -10z"/>
+<path d="M6015 560 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0 -7
+-4 -4 -10z"/>
+<path d="M6175 560 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0 -7
+-4 -4 -10z"/>
+<path d="M935 540 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0 -7
+-4 -4 -10z"/>
+<path d="M1095 540 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0 -7
+-4 -4 -10z"/>
+<path d="M1255 540 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0 -7
+-4 -4 -10z"/>
+<path d="M3895 540 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0 -7
+-4 -4 -10z"/>
+<path d="M3930 540 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
+-4 -4 -4 -10z"/>
+<path d="M5255 540 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0 -7
+-4 -4 -10z"/>
+<path d="M5415 540 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0 -7
+-4 -4 -10z"/>
+<path d="M5575 540 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0 -7
+-4 -4 -10z"/>
+<path d="M5735 540 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0 -7
+-4 -4 -10z"/>
+<path d="M5895 540 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0 -7
+-4 -4 -10z"/>
+<path d="M6055 540 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0 -7
+-4 -4 -10z"/>
+<path d="M1460 526 c0 -2 8 -10 18 -17 15 -13 16 -12 3 4 -13 16 -21 21 -21
+13z"/>
+<path d="M2900 526 c0 -2 8 -10 18 -17 15 -13 16 -12 3 4 -13 16 -21 21 -21
+13z"/>
+<path d="M2946 518 c3 -5 10 -6 15 -3 13 9 11 12 -6 12 -8 0 -12 -4 -9 -9z"/>
+<path d="M3380 526 c0 -2 8 -10 18 -17 15 -13 16 -12 3 4 -13 16 -21 21 -21
+13z"/>
+<path d="M4076 513 c-6 -14 -5 -15 5 -6 7 7 10 15 7 18 -3 3 -9 -2 -12 -12z"/>
+<path d="M5156 518 c3 -5 10 -6 15 -3 13 9 11 12 -6 12 -8 0 -12 -4 -9 -9z"/>
+<path d="M935 500 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0 -7
+-4 -4 -10z"/>
+<path d="M1095 500 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0 -7
+-4 -4 -10z"/>
+<path d="M1255 500 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0 -7
+-4 -4 -10z"/>
+<path d="M1335 500 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0 -7
+-4 -4 -10z"/>
+<path d="M1370 500 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
+-4 -4 -4 -10z"/>
+<path d="M1615 500 c-3 -5 -1 -10 4 -10 6 0 11 5 11 10 0 6 -2 10 -4 10 -3 0
+-8 -4 -11 -10z"/>
+<path d="M3055 500 c-3 -5 -1 -10 4 -10 6 0 11 5 11 10 0 6 -2 10 -4 10 -3 0
+-8 -4 -11 -10z"/>
+<path d="M3535 500 c-3 -5 -1 -10 4 -10 6 0 11 5 11 10 0 6 -2 10 -4 10 -3 0
+-8 -4 -11 -10z"/>
+<path d="M5255 500 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0 -7
+-4 -4 -10z"/>
+<path d="M5415 500 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0 -7
+-4 -4 -10z"/>
+<path d="M5575 500 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0 -7
+-4 -4 -10z"/>
+<path d="M5735 500 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0 -7
+-4 -4 -10z"/>
+<path d="M5895 500 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0 -7
+-4 -4 -10z"/>
+<path d="M6055 500 c3 -5 8 -10 11 -10 2 0 4 5 4 10 0 6 -5 10 -11 10 -5 0 -7
+-4 -4 -10z"/>
+<path d="M5113 485 c0 -8 4 -15 9 -15 4 0 8 4 8 9 0 6 -4 12 -8 15 -5 3 -9 -1
+-9 -9z"/>
+<path d="M2950 486 c0 -2 7 -7 16 -10 8 -3 12 -2 9 4 -6 10 -25 14 -25 6z"/>
+<path d="M4076 473 c-6 -14 -5 -15 5 -6 7 7 10 15 7 18 -3 3 -9 -2 -12 -12z"/>
+<path d="M1370 459 c0 -5 5 -7 10 -4 6 3 10 8 10 11 0 2 -4 4 -10 4 -5 0 -10
+-5 -10 -11z"/>
+<path d="M1615 460 c-3 -5 -1 -10 4 -10 6 0 11 5 11 10 0 6 -2 10 -4 10 -3 0
+-8 -4 -11 -10z"/>
+<path d="M1650 460 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
+-4 -4 -4 -10z"/>
+<path d="M1690 460 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
+-4 -4 -4 -10z"/>
+<path d="M3055 460 c-3 -5 -1 -10 4 -10 6 0 11 5 11 10 0 6 -2 10 -4 10 -3 0
+-8 -4 -11 -10z"/>
+<path d="M3090 460 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
+-4 -4 -4 -10z"/>
+<path d="M3130 460 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
+-4 -4 -4 -10z"/>
+<path d="M3535 460 c-3 -5 -1 -10 4 -10 6 0 11 5 11 10 0 6 -2 10 -4 10 -3 0
+-8 -4 -11 -10z"/>
+<path d="M3570 460 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
+-4 -4 -4 -10z"/>
+<path d="M3610 460 c0 -5 5 -10 11 -10 5 0 7 5 4 10 -3 6 -8 10 -11 10 -2 0
+-4 -4 -4 -10z"/>
+</g>
+</svg>
diff --git a/public/site.webmanifest b/public/site.webmanifest
new file mode 100644
index 0000000..febbf4e
--- /dev/null
+++ b/public/site.webmanifest
@@ -0,0 +1,19 @@
+{
+ "name": "My Apps",
+ "short_name": "My Apps",
+ "icons": [
+ {
+ "src": "/android-chrome-192x192.png",
+ "sizes": "192x192",
+ "type": "image/png"
+ },
+ {
+ "src": "/android-chrome-512x512.png",
+ "sizes": "512x512",
+ "type": "image/png"
+ }
+ ],
+ "theme_color": "#ffffff",
+ "background_color": "#ffffff",
+ "display": "standalone"
+}
diff --git a/styles/global.scss b/styles/global.scss
index ad4a51a..7fcdb41 100644
--- a/styles/global.scss
+++ b/styles/global.scss
@@ -8,12 +8,24 @@ main {
left: 0;
bottom: 0;
right: 0;
+
+ &.noHeader {
+ top: 0;
+ }
+}
+
+html {
+ position: fixed;
+ height: 100vh;
+ width: 100vw;
}
body {
- margin: 0;
+ position: fixed;
height: 100vh;
+ width: 100vw;
overflow: hidden;
+ margin: 0;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
'Helvetica Neue', Arial, Noto Sans, sans-serif, 'Apple Color Emoji',
@@ -28,8 +40,8 @@ textarea, input {
.container {
margin: 1.5rem auto;
- padding-left: 2rem;
- padding-right: 2rem;
+ padding-left: 1rem;
+ padding-right: 1rem;
}
.fixed {
@@ -40,6 +52,10 @@ textarea, input {
left: 0;
}
+.hidden {
+ display: none;
+}
+
.mobile-only {
display: none!important;
diff --git a/styles/global/_window.scss b/styles/global/_window.scss
index 9f224a9..7b1c07b 100644
--- a/styles/global/_window.scss
+++ b/styles/global/_window.scss
@@ -90,6 +90,9 @@
right: 0;
bottom: 0;
left: 0;
+ }
+
+ &.window__content {
border-bottom-left-radius: .5em;
border-bottom-right-radius: .5em;
}
@@ -100,7 +103,7 @@
}
}
- .window__submenu {
+ &__submenu {
display: block;
height: 2em;
width: 100%;
@@ -152,9 +155,8 @@
}
&__scroll {
- height: 100%;
+ height: calc(100% - 2em);
overflow: auto;
- padding: 1em;
}
&__buttons--popup {
diff --git a/styles/main/_icon.scss b/styles/main/_icon.scss
index efa2ee0..9f9eae6 100644
--- a/styles/main/_icon.scss
+++ b/styles/main/_icon.scss
@@ -1,17 +1,19 @@
.icon {
text-decoration: none;
display: inline-block;
- padding: 1em;
text-align: center;
outline: none;
+ width: 6em;
+ height: 7em;
img {
width: 3em;
+ margin: .5em;
}
p {
margin-top: .25em;
- padding: .25em;
+ padding: .25em 0;
transition: .2s background;
border-radius: .5em;
}
diff --git a/styles/main/_layout.scss b/styles/main/_layout.scss
index 48374a5..abdd845 100644
--- a/styles/main/_layout.scss
+++ b/styles/main/_layout.scss
@@ -3,5 +3,10 @@
height: 100vh;
background: var(--color-bg);
background: linear-gradient(to bottom right, var(--color-bg) 0%, var(--color-bg-alt) 100%);
- position: relative;
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ overflow: hidden;
}