diff --git a/.env.example b/.env.example index 1e03a03d..9061586a 100644 --- a/.env.example +++ b/.env.example @@ -1,21 +1,16 @@ -# Production: - AIRTABLE_API_KEY= AIRTABLE_BASE= FAUNADB_SERVER_SECRET= GH_PUBLIC_TOKEN= -HCAPTCHA_SITE_KEY= HCAPTCHA_SECRET_KEY= -SENTRY_DSN= -SPOTIFY_REFRESH_TOKEN= -SPOTIFY_CLIENT_SECRET= -SPOTIFY_CLIENT_ID= - -# CI: - +HCAPTCHA_SITE_KEY= LHCI_ADMIN_TOKEN= LHCI_GITHUB_APP_TOKEN= LHCI_TOKEN= -SENTRY_AUTH_TOKEN= PERCY_TOKEN= +SENTRY_AUTH_TOKEN= +SENTRY_DSN= +SPOTIFY_CLIENT_ID= +SPOTIFY_CLIENT_SECRET= +SPOTIFY_REFRESH_TOKEN= WEBMENTIONS_TOKEN= diff --git a/.eslintrc.cjs b/.eslintrc.cjs index a7b3d0c5..3bcfcf99 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -4,7 +4,7 @@ module.exports = { plugins: ["jsx-a11y", "prettier"], parser: "@babel/eslint-parser", parserOptions: { - ecmaVersion: 2018, + ecmaVersion: 2020, }, ignorePatterns: ["public/**", "static/assets/**"], }; diff --git a/assets/sass/components/_animation.scss b/assets/sass/components/_animation.scss index 0f864668..7486cc8a 100644 --- a/assets/sass/components/_animation.scss +++ b/assets/sass/components/_animation.scss @@ -1,18 +1,19 @@ @use "../abstracts/themes"; -.wave { +.wave, +.beat { display: inline-block; +} + +.wave { animation: wave 5s infinite; animation-delay: 1s; transform-origin: 65% 80%; - will-change: transform; } .beat { - display: inline-block; animation: beat 10s infinite; // 6 bpm, call 911 if you see this please. animation-delay: 7.5s; // offset from wave animation - will-change: transform; } @keyframes wave { diff --git a/assets/sass/pages/_contact.scss b/assets/sass/pages/_contact.scss index fd132013..d3f64bbc 100644 --- a/assets/sass/pages/_contact.scss +++ b/assets/sass/pages/_contact.scss @@ -27,7 +27,6 @@ div.layout-contact { margin: 0.6em 0; border: 2px solid; border-radius: 0.3em; - font-size: 0.9em; @include themes.themed( ( @@ -49,8 +48,10 @@ div.layout-contact { } textarea { - height: 10em; + height: 12em; + min-height: 6em; margin-bottom: 0; + line-height: 1.5; // allow vertical resizing & disable horizontal resize: vertical; // stylelint-disable-line plugin/no-unsupported-browser-features @@ -63,12 +64,12 @@ div.layout-contact { button { flex-shrink: 0; - padding: 0.8em 1.2em; + padding: 1em 1.25em; margin-right: 1.5em; border: 0; border-radius: 0.3em; + font-size: 1.1em; cursor: pointer; - line-height: 1.5; user-select: none; @include themes.themed( @@ -95,7 +96,6 @@ div.layout-contact { } span.contact-form-result { - font-size: 0.925em; font-weight: 600; &#contact-form-result-success { @@ -122,9 +122,8 @@ div.layout-contact { } div#contact-form-md-info { - font-size: 0.75em; + font-size: 0.825em; line-height: 1.75; - margin: 0.2em 0 0.6em 0; a { // disable fancy underline without `.no-underline` diff --git a/layouts/_default/contact.html b/layouts/_default/contact.html index 3209ab9e..9feffb7d 100644 --- a/layouts/_default/contact.html +++ b/layouts/_default/contact.html @@ -4,8 +4,8 @@
{{ .Content }} -
-
+
+ {{ end }} diff --git a/package.json b/package.json index 3f0f1892..8566d46c 100644 --- a/package.json +++ b/package.json @@ -57,7 +57,7 @@ "@babel/preset-env": "^7.16.4", "@babel/preset-react": "^7.16.0", "@jakejarvis/eslint-config": "github:jakejarvis/eslint-config#main", - "@svgr/webpack": "^6.1.1", + "@svgr/webpack": "^6.1.2", "autoprefixer": "^10.4.0", "babel-loader": "^8.2.3", "clean-css": "^5.2.2", @@ -84,7 +84,7 @@ "markdownlint-cli": "~0.30.0", "mini-css-extract-plugin": "^2.4.5", "npm-run-all": "^4.1.5", - "postcss": "^8.4.4", + "postcss": "^8.4.5", "postcss-focus": "^5.0.1", "postcss-loader": "^6.2.1", "postcss-svgo": "^5.0.3", diff --git a/webpack.config.js b/webpack.config.js index c53cd3aa..e71547e3 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -30,10 +30,6 @@ export default (env, argv) => { path: path.resolve(__dirname, "static/assets/"), publicPath: "/assets/", clean: true, - environment: { - // https://github.com/babel/babel-loader#top-level-function-iife-is-still-arrow-on-webpack-5 - arrowFunction: false, - }, devtoolModuleFilenameTemplate: "webpack:///[resource-path]", }, resolve: { @@ -186,7 +182,6 @@ export default (env, argv) => { maxAssetSize: 990000, // ~99 KiB }, optimization: { - sideEffects: true, minimize: isProd, minimizer: [ new TerserPlugin({ @@ -200,7 +195,7 @@ export default (env, argv) => { }, format: { // cut all comments except for the banner declared above via LicensePlugin: - comments: (_astNode, comment) => comment.value.toLowerCase().includes("third-party libraries"), + comments: (astNode, comment) => comment.value.toLowerCase().includes("third-party libraries"), ascii_only: true, // some symbols get disfigured otherwise }, mangle: true, diff --git a/yarn.lock b/yarn.lock index 42e610d1..552105b1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1272,12 +1272,12 @@ "@svgr/babel-plugin-transform-react-native-svg" "^6.0.0" "@svgr/babel-plugin-transform-svg-component" "^6.1.0" -"@svgr/core@^6.1.1": - version "6.1.1" - resolved "https://registry.yarnpkg.com/@svgr/core/-/core-6.1.1.tgz#04a7c0ce9fab2f8671ab1d99199778cc869091b6" - integrity sha512-/NP+24cQmcEdJYptoFWO34SHkNx2x4KOGAMcnTpzOPQifvb1ecupWNEPeHBDY18utd0OMpl2kWf0ZnyN5VsVlg== +"@svgr/core@^6.1.2": + version "6.1.2" + resolved "https://registry.yarnpkg.com/@svgr/core/-/core-6.1.2.tgz#17db14b8d559cb9dc4afa459aa487c00bf6cab80" + integrity sha512-G1UVZcPS5R+HfBG5QC7n2ibkax8RXki2sbKHySTTnajeNXbzriBJcpF4GpYzWptfvD2gmqTDY9XaX+x08TUyGQ== dependencies: - "@svgr/plugin-jsx" "^6.1.0" + "@svgr/plugin-jsx" "^6.1.2" camelcase "^6.2.0" cosmiconfig "^7.0.1" @@ -1289,38 +1289,38 @@ "@babel/types" "^7.15.6" entities "^3.0.1" -"@svgr/plugin-jsx@^6.1.0": - version "6.1.0" - resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-6.1.0.tgz#2ba2d3cbb02d4f6e988fdfe5615baa04b8d0524b" - integrity sha512-grAeVnwjr4eyzzscX6d5dK202nQcKGt5STry3BrCNuw8RZkMVFYumjH/qLnInO2ugc0ESSo8eCkb+30vXVxSTg== +"@svgr/plugin-jsx@^6.1.2": + version "6.1.2" + resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-6.1.2.tgz#8a2815aaa46cc3d5cffa963e92b06bd0c33e7748" + integrity sha512-K/w16g3BznTjVjLyUyV0fE7LLl1HSq5KJjvczFVVvx9QG0+3xtU7RX6gvoVnTvYlrNo8QxxqLWVAU3HQm68Eew== dependencies: "@babel/core" "^7.15.5" "@svgr/babel-preset" "^6.1.0" "@svgr/hast-util-to-babel-ast" "^6.0.0" svg-parser "^2.0.2" -"@svgr/plugin-svgo@^6.1.0": - version "6.1.0" - resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-6.1.0.tgz#30af6b64326a2c104c493de7c9b3ddda266c4e2e" - integrity sha512-NQtYlvPg6yk3wxm1EeeI3kNh/NoSxwW/Zjkvy3vf4CJJHKryB3TnkLsY8Z5hDOERT3Hadksh9RyZnSszEG7q5w== +"@svgr/plugin-svgo@^6.1.2": + version "6.1.2" + resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-6.1.2.tgz#4fe7a2defe237f0493dee947dde6fa5cea57e6c1" + integrity sha512-UHVSRZV3RdaggDT60OMIEmhskN736DOF6PuBcCaql6jBDA9+SZkA5ZMEw73ZLAlwdOAmw+0Gi4vx/xvAfnmerw== dependencies: cosmiconfig "^7.0.1" deepmerge "^4.2.2" svgo "^2.5.0" -"@svgr/webpack@^6.1.1": - version "6.1.1" - resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-6.1.1.tgz#73b64f545f1f36644106694c72eb46f305d46305" - integrity sha512-22Ba6/9u/7UHnnwWQBDEIy3GrKbacMHUfS1+0XO1sjiEwQFV+eoJnnwnNX5PVS3pEx0srIKhaCCs9RtUrsM8+w== +"@svgr/webpack@^6.1.2": + version "6.1.2" + resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-6.1.2.tgz#23fd605e9163deb7ef3feef52545ff11dc9989bf" + integrity sha512-5RzzWxFquywENwvnsiGjZ7IED+0l2lnICR3OKQ6OUyGgxlu+ac73NmDSXp6EPBz/ZTArpMZtug7jiPMUkXxnlg== dependencies: "@babel/core" "^7.15.5" "@babel/plugin-transform-react-constant-elements" "^7.14.5" "@babel/preset-env" "^7.15.6" "@babel/preset-react" "^7.14.5" "@babel/preset-typescript" "^7.15.0" - "@svgr/core" "^6.1.1" - "@svgr/plugin-jsx" "^6.1.0" - "@svgr/plugin-svgo" "^6.1.0" + "@svgr/core" "^6.1.2" + "@svgr/plugin-jsx" "^6.1.2" + "@svgr/plugin-svgo" "^6.1.2" "@szmarczak/http-timer@^4.0.5": version "4.0.6" @@ -8086,10 +8086,10 @@ postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: picocolors "^0.2.1" source-map "^0.6.1" -postcss@^8.2.15, postcss@^8.2.4, postcss@^8.3.11, postcss@^8.3.5, postcss@^8.3.6, postcss@^8.4.4: - version "8.4.4" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.4.tgz#d53d4ec6a75fd62557a66bb41978bf47ff0c2869" - integrity sha512-joU6fBsN6EIer28Lj6GDFoC/5yOZzLCfn0zHAn/MYXI7aPt4m4hK5KC5ovEZXy+lnCjmYIbQWngvju2ddyEr8Q== +postcss@^8.2.15, postcss@^8.2.4, postcss@^8.3.11, postcss@^8.3.5, postcss@^8.3.6, postcss@^8.4.5: + version "8.4.5" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.5.tgz#bae665764dfd4c6fcc24dc0fdf7e7aa00cc77f95" + integrity sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg== dependencies: nanoid "^3.1.30" picocolors "^1.0.0"