forked from external-repos/squoosh
* Paste button * Logo and animated blobs * Predictable initial blob position * Initial blob shape * Update canvas on resize if not updating every frame * lol * Get styles from CSS * Background blobs * Fade into the center * Get initial focus * Pause time while page is hidden * Footer * Optimise amount of initial CSS * More CSS optimisation * Install button * Home page with demo loading * Tweak size * Replace thumbnails * Responsive demo section * Responsive main section * Remove debug stuff * Fix prerender SVG size * Changes from feedback * Blob nudges (#872) * more smaller blobs * less blobs that are practically invisible * more dynamic speed range and stronger gravity * Reverting resize observer change The content rect is different to getBoundingClientRect Co-authored-by: Adam Argyle <atom@argyleink.com>
63 lines
1.8 KiB
TypeScript
63 lines
1.8 KiB
TypeScript
/**
|
|
* Copyright 2020 Google Inc. All Rights Reserved.
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
import { h } from 'preact';
|
|
|
|
import { renderPage, writeFiles } from './utils';
|
|
import IndexPage from './pages/index';
|
|
import iconLargeMaskable from 'url:static-build/assets/icon-large-maskable.png';
|
|
import iconLarge from 'url:static-build/assets/icon-large.png';
|
|
|
|
interface Output {
|
|
[outputPath: string]: string;
|
|
}
|
|
const toOutput: Output = {
|
|
'index.html': renderPage(<IndexPage />),
|
|
'manifest.json': JSON.stringify({
|
|
name: 'Squoosh',
|
|
short_name: 'Squoosh',
|
|
start_url: '/?utm_medium=PWA&utm_source=launcher',
|
|
display: 'standalone',
|
|
orientation: 'any',
|
|
background_color: '#fff',
|
|
theme_color: '#ff3385',
|
|
icons: [
|
|
{
|
|
src: iconLarge,
|
|
type: 'image/png',
|
|
sizes: '1024x1024',
|
|
},
|
|
{
|
|
src: iconLargeMaskable,
|
|
type: 'image/png',
|
|
sizes: '1024x1024',
|
|
purpose: 'maskable',
|
|
},
|
|
],
|
|
share_target: {
|
|
action: '/?utm_medium=PWA&utm_source=share-target&share-target',
|
|
method: 'POST',
|
|
enctype: 'multipart/form-data',
|
|
params: {
|
|
files: [
|
|
{
|
|
name: 'file',
|
|
accept: ['image/*'],
|
|
},
|
|
],
|
|
},
|
|
},
|
|
}),
|
|
};
|
|
|
|
writeFiles(toOutput);
|