Compare commits
	
		
			2 Commits
		
	
	
		
			30e26313b0
			...
			a1a3e21266
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | a1a3e21266 | ||
|  | 6bfe06f65c | 
| @@ -1,2 +0,0 @@ | |||||||
| node_modules |  | ||||||
| .eslintrc.js |  | ||||||
							
								
								
									
										42
									
								
								.eslintrc.js
									
									
									
									
									
								
							
							
						
						| @@ -1,42 +0,0 @@ | |||||||
| module.exports = { |  | ||||||
|   root: true, |  | ||||||
|   parser: '@typescript-eslint/parser', |  | ||||||
|   env: { |  | ||||||
|     browser: true, |  | ||||||
|     amd: true, |  | ||||||
|     node: true, |  | ||||||
|     es6: true, |  | ||||||
|   }, |  | ||||||
|   plugins: ['@typescript-eslint'], |  | ||||||
|   extends: [ |  | ||||||
|     'eslint:recommended', |  | ||||||
|     'plugin:@typescript-eslint/eslint-recommended', |  | ||||||
|     'plugin:@typescript-eslint/recommended', |  | ||||||
|     'plugin:jsx-a11y/recommended', |  | ||||||
|     'plugin:prettier/recommended', |  | ||||||
|     'next', |  | ||||||
|     'next/core-web-vitals', |  | ||||||
|   ], |  | ||||||
|   parserOptions: { |  | ||||||
|     project: true, |  | ||||||
|     tsconfigRootDir: __dirname, |  | ||||||
|   }, |  | ||||||
|   rules: { |  | ||||||
|     'prettier/prettier': 'error', |  | ||||||
|     'react/react-in-jsx-scope': 'off', |  | ||||||
|     'jsx-a11y/anchor-is-valid': [ |  | ||||||
|       'error', |  | ||||||
|       { |  | ||||||
|         components: ['Link'], |  | ||||||
|         specialLink: ['hrefLeft', 'hrefRight'], |  | ||||||
|         aspects: ['invalidHref', 'preferButton'], |  | ||||||
|       }, |  | ||||||
|     ], |  | ||||||
|     'react/prop-types': 0, |  | ||||||
|     '@typescript-eslint/no-unused-vars': 0, |  | ||||||
|     'react/no-unescaped-entities': 0, |  | ||||||
|     '@typescript-eslint/explicit-module-boundary-types': 'off', |  | ||||||
|     '@typescript-eslint/no-var-requires': 'off', |  | ||||||
|     '@typescript-eslint/ban-ts-comment': 'off', |  | ||||||
|   }, |  | ||||||
| } |  | ||||||
| @@ -67,29 +67,11 @@ export default function RootLayout({ children }: { children: React.ReactNode }) | |||||||
|       className={`${space_grotesk.variable} scroll-smooth`} |       className={`${space_grotesk.variable} scroll-smooth`} | ||||||
|       suppressHydrationWarning |       suppressHydrationWarning | ||||||
|     > |     > | ||||||
|       <link |       <link rel="icon" type="image/png" href="/static/favicons/favicon-96x96.png" sizes="96x96" /> | ||||||
|         rel="apple-touch-icon" |       <link rel="icon" type="image/svg+xml" href="/static/favicons/favicon.svg" /> | ||||||
|         sizes="76x76" |       <link rel="shortcut icon" href="/static/favicons/favicon.ico" /> | ||||||
|         href={`${basePath}/static/favicons/apple-touch-icon.png`} |       <link rel="apple-touch-icon" sizes="180x180" href="/static/favicons/apple-touch-icon.png" /> | ||||||
|       /> |       <link rel="manifest" href="/static/favicons/site.webmanifest" /> | ||||||
|       <link |  | ||||||
|         rel="icon" |  | ||||||
|         type="image/png" |  | ||||||
|         sizes="32x32" |  | ||||||
|         href={`${basePath}/static/favicons/favicon-32x32.png`} |  | ||||||
|       /> |  | ||||||
|       <link |  | ||||||
|         rel="icon" |  | ||||||
|         type="image/png" |  | ||||||
|         sizes="16x16" |  | ||||||
|         href={`${basePath}/static/favicons/favicon-16x16.png`} |  | ||||||
|       /> |  | ||||||
|       <link rel="manifest" href={`${basePath}/static/favicons/site.webmanifest`} /> |  | ||||||
|       <link |  | ||||||
|         rel="mask-icon" |  | ||||||
|         href={`${basePath}/static/favicons/safari-pinned-tab.svg`} |  | ||||||
|         color="#5bbad5" |  | ||||||
|       /> |  | ||||||
|       <meta name="msapplication-TileColor" content="#000000" /> |       <meta name="msapplication-TileColor" content="#000000" /> | ||||||
|       <meta name="theme-color" media="(prefers-color-scheme: light)" content="#fff" /> |       <meta name="theme-color" media="(prefers-color-scheme: light)" content="#fff" /> | ||||||
|       <meta name="theme-color" media="(prefers-color-scheme: dark)" content="#000" /> |       <meta name="theme-color" media="(prefers-color-scheme: dark)" content="#000" /> | ||||||
|   | |||||||
| @@ -1 +1,17 @@ | |||||||
| {"art":1,"store":1,"melis-sweetsimple":1,"visual-studio-code":1,"guide":4,"tailwind-nextjs-starter-blog":1,"disney":1,"github":1,"python":1,"projects":1,"code":1,"cygnus":1,"self-hosted":1,"server":1,"next-js":1} | { | ||||||
|  |   "github": 1, | ||||||
|  |   "guide": 4, | ||||||
|  |   "next-js": 1, | ||||||
|  |   "visual-studio-code": 1, | ||||||
|  |   "tailwind-nextjs-starter-blog": 1, | ||||||
|  |   "cygnus": 1, | ||||||
|  |   "self-hosted": 1, | ||||||
|  |   "server": 1, | ||||||
|  |   "disney": 1, | ||||||
|  |   "art": 1, | ||||||
|  |   "store": 1, | ||||||
|  |   "melis-sweetsimple": 1, | ||||||
|  |   "python": 1, | ||||||
|  |   "projects": 1, | ||||||
|  |   "code": 1 | ||||||
|  | } | ||||||
|   | |||||||
| @@ -17,6 +17,7 @@ export default function Footer() { | |||||||
|           <SocialIcon kind="instagram" href={siteMetadata.instagram} size={6} /> |           <SocialIcon kind="instagram" href={siteMetadata.instagram} size={6} /> | ||||||
|           <SocialIcon kind="threads" href={siteMetadata.threads} size={6} /> |           <SocialIcon kind="threads" href={siteMetadata.threads} size={6} /> | ||||||
|           <SocialIcon kind="medium" href={siteMetadata.medium} size={6} /> |           <SocialIcon kind="medium" href={siteMetadata.medium} size={6} /> | ||||||
|  |           <SocialIcon kind="resume" href={siteMetadata.resume} size={6} /> | ||||||
|         </div> |         </div> | ||||||
|         <div className="mb-2 flex space-x-2 text-sm text-gray-500 dark:text-gray-400"> |         <div className="mb-2 flex space-x-2 text-sm text-gray-500 dark:text-gray-400"> | ||||||
|           <div>{siteMetadata.author}</div> |           <div>{siteMetadata.author}</div> | ||||||
| @@ -26,7 +27,7 @@ export default function Footer() { | |||||||
|           <Link href="/">{siteMetadata.title}</Link> |           <Link href="/">{siteMetadata.title}</Link> | ||||||
|         </div> |         </div> | ||||||
|         <div className="mb-8 text-sm text-gray-500 dark:text-gray-400"> |         <div className="mb-8 text-sm text-gray-500 dark:text-gray-400"> | ||||||
|           <Link href="https://github.com/timlrx/tailwind-nextjs-starter-blog">Theme</Link> |           <Link href="https://git.jonb.io/jblu/jonbio">Theme</Link> | ||||||
|         </div> |         </div> | ||||||
|       </div> |       </div> | ||||||
|     </footer> |     </footer> | ||||||
|   | |||||||
| @@ -102,3 +102,12 @@ export function Medium(svgProps: SVGProps<SVGSVGElement>) { | |||||||
|     </svg> |     </svg> | ||||||
|   ) |   ) | ||||||
| } | } | ||||||
|  |  | ||||||
|  | export function Resume(svgProps: SVGProps<SVGSVGElement>) { | ||||||
|  |   return ( | ||||||
|  |     <svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" {...svgProps}> | ||||||
|  |       <title>Resume</title> | ||||||
|  |       <path d="M14.727 6.727H14V0H4.91c-.905 0-1.637.732-1.637 1.636v20.728c0 .904.732 1.636 1.636 1.636h14.182c.904 0 1.636-.732 1.636-1.636V6.727h-6zm-.545 10.455H7.09v-1.364h7.09v1.364zm2.727-3.273H7.091v-1.364h9.818v1.364zm0-3.273H7.091V9.273h9.818v1.363zM14.727   6h6l-6-6v6z" /> | ||||||
|  |     </svg> | ||||||
|  |   ) | ||||||
|  | } | ||||||
|   | |||||||
| @@ -10,6 +10,7 @@ import { | |||||||
|   Threads, |   Threads, | ||||||
|   Instagram, |   Instagram, | ||||||
|   Medium, |   Medium, | ||||||
|  |   Resume, | ||||||
| } from './icons' | } from './icons' | ||||||
|  |  | ||||||
| const components = { | const components = { | ||||||
| @@ -24,6 +25,7 @@ const components = { | |||||||
|   threads: Threads, |   threads: Threads, | ||||||
|   instagram: Instagram, |   instagram: Instagram, | ||||||
|   medium: Medium, |   medium: Medium, | ||||||
|  |   resume: Resume, | ||||||
| } | } | ||||||
|  |  | ||||||
| type SocialIconProps = { | type SocialIconProps = { | ||||||
|   | |||||||
| @@ -140,6 +140,7 @@ export const Authors = defineDocumentType(() => ({ | |||||||
|     linkedin: { type: 'string' }, |     linkedin: { type: 'string' }, | ||||||
|     github: { type: 'string' }, |     github: { type: 'string' }, | ||||||
|     layout: { type: 'string' }, |     layout: { type: 'string' }, | ||||||
|  |     resume: { type: 'string' }, | ||||||
|   }, |   }, | ||||||
|   computedFields, |   computedFields, | ||||||
| })) | })) | ||||||
|   | |||||||
| @@ -2,15 +2,16 @@ | |||||||
| name: Jonathan Branan | name: Jonathan Branan | ||||||
| avatar: https://s3.jonb.io/cdn/author/2.JPG | avatar: https://s3.jonb.io/cdn/author/2.JPG | ||||||
| occupation: Software Engineer | occupation: Software Engineer | ||||||
| company: Fortra | # company: | ||||||
| email: jonathan.branan@fortra.com | email: jonbranan@gmail.com | ||||||
| linkedin: https://www.linkedin.com/in/jonathanbranan/ | linkedin: https://www.linkedin.com/in/jonathanbranan/ | ||||||
| github: https://github.com/jonbranan | github: https://github.com/jonbranan | ||||||
|  | resume: https://s3.jonb.io/cdn/author/Resume.pdf | ||||||
| --- | --- | ||||||
|  |  | ||||||
| Jonathan Branan is a Software Engineer at Fortra. He is mostly self-taught however he did attend a vocational class at Rackspace Open Cloud Academy. | Jonathan Branan is a Software Engineer. He is mostly self-taught however he did attend a vocational class at Rackspace Open Cloud Academy. | ||||||
|  |  | ||||||
| He has worked for Geek Squad repairing computers, GlobalScape as a Lead of the Client Services department and as a Product Owner of MFT applications at Fortra. | He has worked for Geek Squad repairing computers, GlobalScape as a Lead of the Client Services department, a Product Owner of MFT applications and as a Software Engineer at Fortra. | ||||||
|  |  | ||||||
| He currently lives in San Antonio, Texas with his wife and two dogs. He enjoys Basketball, Video games, cooking, camping(backpacking, glamping), watching movies, | He currently lives in San Antonio, Texas with his wife and two dogs. He enjoys Basketball, Video games, cooking, camping(backpacking, glamping), watching movies, | ||||||
| making mixed drinks and building Lego's. Jonathan and his wife like to frequently travel. | making mixed drinks and building Lego's. Jonathan and his wife like to frequently travel. | ||||||
|   | |||||||
							
								
								
									
										3
									
								
								data/logo copy.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,3 @@ | |||||||
|  | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||||
|  | <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> | ||||||
|  | <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid meet" viewBox="344.5639097744361 330.27819548872174 111.73684210526318 91.21804511278197" width="53.87" height="43.61"><defs><path d="M453.3 331.28L453.3 359.85L388.64 418.5L388.64 388.42L453.3 331.28Z" id="aFZf6T5ED"></path><linearGradient id="gradientb2ThqnP5Op" gradientUnits="userSpaceOnUse" x1="420.97" y1="331.28" x2="420.97" y2="418.5"><stop style="stop-color: #06b6d4;stop-opacity: 1" offset="0%"></stop><stop style="stop-color: #67e8f9;stop-opacity: 1" offset="100%"></stop></linearGradient><path d="M410.23 331.28L410.23 359.85L345.56 418.5L345.56 388.42L410.23 331.28Z" id="a9fehgwfM"></path><linearGradient id="gradientk1wNV9Ostb" gradientUnits="userSpaceOnUse" x1="377.89" y1="331.28" x2="377.89" y2="418.5"><stop style="stop-color: #06b6d4;stop-opacity: 1" offset="0%"></stop><stop style="stop-color: #67e8f9;stop-opacity: 1" offset="100%"></stop></linearGradient></defs><g><g><use xlink:href="#aFZf6T5ED" opacity="1" fill="url(#gradientb2ThqnP5Op)"></use></g><g><use xlink:href="#a9fehgwfM" opacity="1" fill="url(#gradientk1wNV9Ostb)"></use></g></g></svg> | ||||||
| After Width: | Height: | Size: 1.3 KiB | 
| Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 38 KiB | 
| @@ -21,6 +21,7 @@ const siteMetadata = { | |||||||
|   // threads: 'https://www.threads.net', |   // threads: 'https://www.threads.net', | ||||||
|   // instagram: 'https://www.instagram.com', |   // instagram: 'https://www.instagram.com', | ||||||
|   // medium: 'https://medium.com', |   // medium: 'https://medium.com', | ||||||
|  |   resume: 'https://s3.jonb.io/cdn/author/Resume.pdf', | ||||||
|   locale: 'en-US', |   locale: 'en-US', | ||||||
|   // set to true if you want a navbar fixed to the top |   // set to true if you want a navbar fixed to the top | ||||||
|   stickyNav: true, |   stickyNav: true, | ||||||
|   | |||||||
							
								
								
									
										70
									
								
								eslint.config.mjs
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,70 @@ | |||||||
|  | import typescriptEslint from '@typescript-eslint/eslint-plugin' | ||||||
|  | import globals from 'globals' | ||||||
|  | import tsParser from '@typescript-eslint/parser' | ||||||
|  | import path from 'node:path' | ||||||
|  | import { fileURLToPath } from 'node:url' | ||||||
|  | import js from '@eslint/js' | ||||||
|  | import { FlatCompat } from '@eslint/eslintrc' | ||||||
|  |  | ||||||
|  | const __filename = fileURLToPath(import.meta.url) | ||||||
|  | const __dirname = path.dirname(__filename) | ||||||
|  | const compat = new FlatCompat({ | ||||||
|  |   baseDirectory: __dirname, | ||||||
|  | }) | ||||||
|  |  | ||||||
|  | export default [ | ||||||
|  |   { | ||||||
|  |     ignores: [], | ||||||
|  |   }, | ||||||
|  |   js.configs.recommended, | ||||||
|  |   ...compat.extends( | ||||||
|  |     'plugin:@typescript-eslint/eslint-recommended', | ||||||
|  |     'plugin:@typescript-eslint/recommended', | ||||||
|  |     'plugin:jsx-a11y/recommended', | ||||||
|  |     'plugin:prettier/recommended', | ||||||
|  |     'next', | ||||||
|  |     'next/core-web-vitals' | ||||||
|  |   ), | ||||||
|  |   { | ||||||
|  |     plugins: { | ||||||
|  |       '@typescript-eslint': typescriptEslint, | ||||||
|  |     }, | ||||||
|  |  | ||||||
|  |     languageOptions: { | ||||||
|  |       globals: { | ||||||
|  |         ...globals.browser, | ||||||
|  |         ...globals.amd, | ||||||
|  |         ...globals.node, | ||||||
|  |       }, | ||||||
|  |  | ||||||
|  |       parser: tsParser, | ||||||
|  |       ecmaVersion: 5, | ||||||
|  |       sourceType: 'commonjs', | ||||||
|  |  | ||||||
|  |       parserOptions: { | ||||||
|  |         project: true, | ||||||
|  |         tsconfigRootDir: __dirname, | ||||||
|  |       }, | ||||||
|  |     }, | ||||||
|  |  | ||||||
|  |     rules: { | ||||||
|  |       'prettier/prettier': 'error', | ||||||
|  |       'react/react-in-jsx-scope': 'off', | ||||||
|  |  | ||||||
|  |       'jsx-a11y/anchor-is-valid': [ | ||||||
|  |         'error', | ||||||
|  |         { | ||||||
|  |           components: ['Link'], | ||||||
|  |           specialLink: ['hrefLeft', 'hrefRight'], | ||||||
|  |           aspects: ['invalidHref', 'preferButton'], | ||||||
|  |         }, | ||||||
|  |       ], | ||||||
|  |       'react/prop-types': 'off', | ||||||
|  |       '@typescript-eslint/no-unused-vars': 'off', | ||||||
|  |       'react/no-unescaped-entities': 'off', | ||||||
|  |       '@typescript-eslint/explicit-module-boundary-types': 'off', | ||||||
|  |       '@typescript-eslint/no-var-requires': 'off', | ||||||
|  |       '@typescript-eslint/ban-ts-comment': 'off', | ||||||
|  |     }, | ||||||
|  |   }, | ||||||
|  | ] | ||||||
| @@ -9,7 +9,7 @@ interface Props { | |||||||
| } | } | ||||||
|  |  | ||||||
| export default function AuthorLayout({ children, content }: Props) { | export default function AuthorLayout({ children, content }: Props) { | ||||||
|   const { name, avatar, occupation, company, email, twitter, linkedin, github } = content |   const { name, avatar, occupation, company, email, twitter, linkedin, github, resume } = content | ||||||
|  |  | ||||||
|   return ( |   return ( | ||||||
|     <> |     <> | ||||||
| @@ -38,6 +38,7 @@ export default function AuthorLayout({ children, content }: Props) { | |||||||
|               <SocialIcon kind="github" href={github} /> |               <SocialIcon kind="github" href={github} /> | ||||||
|               <SocialIcon kind="linkedin" href={linkedin} /> |               <SocialIcon kind="linkedin" href={linkedin} /> | ||||||
|               <SocialIcon kind="x" href={twitter} /> |               <SocialIcon kind="x" href={twitter} /> | ||||||
|  |               <SocialIcon kind="resume" href={resume} /> | ||||||
|             </div> |             </div> | ||||||
|           </div> |           </div> | ||||||
|           <div className="prose max-w-none pb-8 pt-8 dark:prose-invert xl:col-span-2"> |           <div className="prose max-w-none pb-8 pt-8 dark:prose-invert xl:col-span-2"> | ||||||
|   | |||||||
| @@ -1,4 +1,3 @@ | |||||||
| /* eslint-disable jsx-a11y/anchor-is-valid */ |  | ||||||
| 'use client' | 'use client' | ||||||
|  |  | ||||||
| import { usePathname } from 'next/navigation' | import { usePathname } from 'next/navigation' | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								next-env.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						| @@ -2,4 +2,4 @@ | |||||||
| /// <reference types="next/image-types/global" /> | /// <reference types="next/image-types/global" /> | ||||||
|  |  | ||||||
| // NOTE: This file should not be edited | // NOTE: This file should not be edited | ||||||
| // see https://nextjs.org/docs/app/building-your-application/configuring/typescript for more information. | // see https://nextjs.org/docs/app/api-reference/config/typescript for more information. | ||||||
|   | |||||||
							
								
								
									
										16561
									
								
								package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						| @@ -13,7 +13,7 @@ | |||||||
|   }, |   }, | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "@headlessui/react": "2.2.0", |     "@headlessui/react": "2.2.0", | ||||||
|     "@next/bundle-analyzer": "15.0.2", |     "@next/bundle-analyzer": "15.1.4", | ||||||
|     "@tailwindcss/forms": "^0.5.9", |     "@tailwindcss/forms": "^0.5.9", | ||||||
|     "@tailwindcss/typography": "^0.5.15", |     "@tailwindcss/typography": "^0.5.15", | ||||||
|     "autoprefixer": "^10.4.13", |     "autoprefixer": "^10.4.13", | ||||||
| @@ -24,7 +24,7 @@ | |||||||
|     "gray-matter": "^4.0.2", |     "gray-matter": "^4.0.2", | ||||||
|     "hast-util-from-html-isomorphic": "^2.0.0", |     "hast-util-from-html-isomorphic": "^2.0.0", | ||||||
|     "image-size": "1.0.0", |     "image-size": "1.0.0", | ||||||
|     "next": "15.0.2", |     "next": "15.1.4", | ||||||
|     "next-contentlayer2": "0.5.3", |     "next-contentlayer2": "0.5.3", | ||||||
|     "next-themes": "^0.3.0", |     "next-themes": "^0.3.0", | ||||||
|     "pliny": "0.4.0", |     "pliny": "0.4.0", | ||||||
| @@ -47,6 +47,8 @@ | |||||||
|     "unist-util-visit": "^5.0.0" |     "unist-util-visit": "^5.0.0" | ||||||
|   }, |   }, | ||||||
|   "devDependencies": { |   "devDependencies": { | ||||||
|  |     "@eslint/eslintrc": "^3.2.0", | ||||||
|  |     "@eslint/js": "^9.16.0", | ||||||
|     "@svgr/webpack": "^8.0.1", |     "@svgr/webpack": "^8.0.1", | ||||||
|     "@types/mdx": "^2.0.12", |     "@types/mdx": "^2.0.12", | ||||||
|     "@types/react": "^18.2.73", |     "@types/react": "^18.2.73", | ||||||
| @@ -54,9 +56,10 @@ | |||||||
|     "@typescript-eslint/parser": "^8.12.0", |     "@typescript-eslint/parser": "^8.12.0", | ||||||
|     "cross-env": "^7.0.3", |     "cross-env": "^7.0.3", | ||||||
|     "eslint": "^9.14.0", |     "eslint": "^9.14.0", | ||||||
|     "eslint-config-next": "15.0.2", |     "eslint-config-next": "15.1.4", | ||||||
|     "eslint-config-prettier": "^9.1.0", |     "eslint-config-prettier": "^9.1.0", | ||||||
|     "eslint-plugin-prettier": "^5.2.0", |     "eslint-plugin-prettier": "^5.2.0", | ||||||
|  |     "globals": "^15.12.0", | ||||||
|     "husky": "^9.0.0", |     "husky": "^9.0.0", | ||||||
|     "lint-staged": "^13.0.0", |     "lint-staged": "^13.0.0", | ||||||
|     "prettier": "^3.0.0", |     "prettier": "^3.0.0", | ||||||
|   | |||||||
| Before Width: | Height: | Size: 3.2 KiB | 
| Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.9 KiB | 
| @@ -1,9 +0,0 @@ | |||||||
| <?xml version="1.0" encoding="utf-8"?> |  | ||||||
| <browserconfig> |  | ||||||
|     <msapplication> |  | ||||||
|         <tile> |  | ||||||
|             <square150x150logo src="/mstile-150x150.png"/> |  | ||||||
|             <TileColor>#000000</TileColor> |  | ||||||
|         </tile> |  | ||||||
|     </msapplication> |  | ||||||
| </browserconfig> |  | ||||||
| Before Width: | Height: | Size: 1.1 KiB | 
| Before Width: | Height: | Size: 1.4 KiB | 
							
								
								
									
										
											BIN
										
									
								
								public/static/favicons/favicon-96x96.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 2.0 KiB | 
| Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB | 
| Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 39 KiB | 
| Before Width: | Height: | Size: 4.3 KiB | 
| @@ -1,21 +0,0 @@ | |||||||
| <?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="107.000000pt" height="107.000000pt" viewBox="0 0 107.000000 107.000000" |  | ||||||
|  preserveAspectRatio="xMidYMid meet"> |  | ||||||
| <metadata> |  | ||||||
| Created by potrace 1.11, written by Peter Selinger 2001-2013 |  | ||||||
| </metadata> |  | ||||||
| <g transform="translate(0.000000,107.000000) scale(0.100000,-0.100000)" |  | ||||||
| fill="#000000" stroke="none"> |  | ||||||
| <path d="M609 942 c-17 -18 -95 -88 -289 -258 -117 -102 -177 -155 -204 -179 |  | ||||||
| -6 -5 -31 -28 -56 -50 l-45 -39 -1 -144 -1 -143 21 18 c11 10 25 23 31 28 7 6 |  | ||||||
| 46 41 88 79 86 77 86 77 216 196 52 47 103 93 115 103 11 10 50 45 86 77 l65 |  | ||||||
| 59 -1 131 c0 71 -3 132 -5 135 -3 2 -12 -3 -20 -13z"/> |  | ||||||
| <path d="M929 857 c-64 -56 -145 -128 -180 -159 -35 -31 -75 -66 -89 -78 -55 |  | ||||||
| -47 -68 -59 -150 -131 l-85 -76 2 -129 c1 -71 2 -135 2 -143 1 -11 5 -10 19 5 |  | ||||||
| 10 10 54 51 98 89 43 39 92 83 109 99 26 24 63 58 189 171 12 11 47 43 77 70 |  | ||||||
| 30 28 70 63 89 79 l35 29 1 138 c1 77 1 139 0 139 0 -1 -53 -47 -117 -103z"/> |  | ||||||
| </g> |  | ||||||
| </svg> |  | ||||||
| Before Width: | Height: | Size: 1.1 KiB | 
| @@ -1,14 +1,21 @@ | |||||||
| { | { | ||||||
|   "name": "", |   "name": "Joyful Fixations", | ||||||
|   "short_name": "", |   "short_name": "Joyful Fixations", | ||||||
|   "icons": [ |   "icons": [ | ||||||
|     { |     { | ||||||
|       "src": "/android-chrome-96x96.png", |       "src": "/static/favicons/web-app-manifest-192x192.png", | ||||||
|       "sizes": "96x96", |       "sizes": "192x192", | ||||||
|       "type": "image/png" |       "type": "image/png", | ||||||
|  |       "purpose": "maskable" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "src": "/static/favicons/web-app-manifest-512x512.png", | ||||||
|  |       "sizes": "512x512", | ||||||
|  |       "type": "image/png", | ||||||
|  |       "purpose": "maskable" | ||||||
|     } |     } | ||||||
|   ], |   ], | ||||||
|   "theme_color": "#000000", |   "theme_color": "#ffffff", | ||||||
|   "background_color": "#000000", |   "background_color": "#ffffff", | ||||||
|   "display": "standalone" |   "display": "standalone" | ||||||
| } | } | ||||||
							
								
								
									
										
											BIN
										
									
								
								public/static/favicons/web-app-manifest-192x192.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 4.3 KiB | 
							
								
								
									
										
											BIN
										
									
								
								public/static/favicons/web-app-manifest-512x512.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 23 KiB |