1
0
mirror of https://github.com/kremalicious/blog.git synced 2024-12-23 01:30:01 +01:00

gatsby v3 updates

This commit is contained in:
Matthias Kretschmann 2021-03-06 01:35:05 +01:00
parent 3a872707ed
commit 78a99d651b
Signed by: m
GPG Key ID: 606EEEF3C479A91F
66 changed files with 6112 additions and 7917 deletions

View File

@ -5,7 +5,7 @@
"stylelint-prettier/recommended" "stylelint-prettier/recommended"
], ],
"plugins": ["stylelint-prettier"], "plugins": ["stylelint-prettier"],
"syntax": "scss", "syntax": "css",
"rules": { "rules": {
"prettier/prettier": true, "prettier/prettier": true,
"property-no-unknown": [ "property-no-unknown": [

13765
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -41,39 +41,39 @@
"fast-exif": "^1.0.1", "fast-exif": "^1.0.1",
"feather-icons": "^4.28.0", "feather-icons": "^4.28.0",
"fraction.js": "^4.0.13", "fraction.js": "^4.0.13",
"gatsby": "^2.32.8", "gatsby": "^3.0.3",
"gatsby-image": "^2.11.0", "gatsby-image": "^3.0.0",
"gatsby-plugin-catch-links": "^2.10.0", "gatsby-plugin-catch-links": "^3.0.0",
"gatsby-plugin-feed": "^2.13.1", "gatsby-plugin-feed": "^3.0.0",
"gatsby-plugin-lunr": "^1.5.2", "gatsby-plugin-lunr": "^1.5.2",
"gatsby-plugin-manifest": "^2.12.0", "gatsby-plugin-manifest": "^3.0.0",
"gatsby-plugin-matomo": "^0.9.0", "gatsby-plugin-matomo": "^0.9.0",
"gatsby-plugin-meta-redirect": "^1.1.1", "gatsby-plugin-meta-redirect": "^1.1.1",
"gatsby-plugin-offline": "^3.10.2", "gatsby-plugin-offline": "^4.0.0",
"gatsby-plugin-react-helmet": "^3.10.0", "gatsby-plugin-react-helmet": "^4.0.0",
"gatsby-plugin-sharp": "^2.14.3", "gatsby-plugin-sharp": "^3.0.0",
"gatsby-plugin-sitemap": "^2.12.0", "gatsby-plugin-sitemap": "^3.0.0",
"gatsby-plugin-svgr": "^2.1.0", "gatsby-plugin-svgr": "^3.0.0-beta.0",
"gatsby-plugin-use-dark-mode": "^1.2.0", "gatsby-plugin-use-dark-mode": "^1.3.0",
"gatsby-plugin-webpack-size": "^1.0.0", "gatsby-plugin-webpack-size": "^1.0.0",
"gatsby-redirect-from": "^0.3.0", "gatsby-redirect-from": "^0.3.0",
"gatsby-remark-autolink-headers": "^2.11.0", "gatsby-remark-autolink-headers": "^3.0.0",
"gatsby-remark-breaks": "^1.0.0", "gatsby-remark-breaks": "^1.0.0",
"gatsby-remark-copy-linked-files": "^2.10.0", "gatsby-remark-copy-linked-files": "^3.0.0",
"gatsby-remark-images": "^3.11.1", "gatsby-remark-images": "^4.0.0",
"gatsby-remark-images-medium-zoom": "^1.7.0", "gatsby-remark-images-medium-zoom": "^1.7.0",
"gatsby-remark-smartypants": "^2.10.0", "gatsby-remark-smartypants": "^3.0.0",
"gatsby-remark-vscode": "^3.2.0", "gatsby-remark-vscode": "^3.2.0",
"gatsby-source-filesystem": "^2.11.1", "gatsby-source-filesystem": "^3.0.0",
"gatsby-source-graphql": "^2.14.0", "gatsby-source-graphql": "^3.0.0",
"gatsby-transformer-remark": "^2.16.1", "gatsby-transformer-remark": "^3.0.0",
"gatsby-transformer-sharp": "^2.12.0", "gatsby-transformer-sharp": "^3.0.0",
"node-fetch": "^2.6.1", "node-fetch": "^2.6.1",
"pigeon-maps": "^0.17.1", "pigeon-maps": "^0.17.1",
"pigeon-marker": "^0.3.4", "pigeon-marker": "^0.3.4",
"react": "^16.14.0", "react": "^17.0.1",
"react-clipboard.js": "^2.0.16", "react-clipboard.js": "^2.0.16",
"react-dom": "^16.14.0", "react-dom": "^17.0.1",
"react-feather": "^2.0.9", "react-feather": "^2.0.9",
"react-helmet": "^6.1.0", "react-helmet": "^6.1.0",
"react-qr-svg": "^2.3.0", "react-qr-svg": "^2.3.0",
@ -117,6 +117,7 @@
"node-iptc": "^1.0.5", "node-iptc": "^1.0.5",
"npm-run-all": "^4.1.5", "npm-run-all": "^4.1.5",
"ora": "^5.3.0", "ora": "^5.3.0",
"postcss": "^8.2.7",
"prettier": "^2.2.1", "prettier": "^2.2.1",
"shortid": "^2.2.16", "shortid": "^2.2.16",
"stylelint": "^13.11.0", "stylelint": "^13.11.0",

4
src/@types/css.d.ts vendored Normal file
View File

@ -0,0 +1,4 @@
declare module '*.module.css' {
const classes: { [key: string]: string }
export default classes
}

View File

@ -1,13 +1,3 @@
declare module '*.module.css' {
const classes: { [key: string]: string }
export default classes
}
declare module '*.module.scss' {
const classes: { [key: string]: string }
export default classes
}
declare module '*.svg' { declare module '*.svg' {
import * as React from 'react' import * as React from 'react'
export const ReactComponent: React.FunctionComponent< export const ReactComponent: React.FunctionComponent<

View File

@ -35,6 +35,7 @@
@media (min-width: 40rem) and (min-height: 500px) { @media (min-width: 40rem) and (min-height: 500px) {
.document { .document {
margin-top: calc(var(--spacer) * 2.5); margin-top: calc(var(--spacer) * 2.5);
/* height of footer */ /* height of footer */
margin-bottom: calc(var(--spacer) * 12); margin-bottom: calc(var(--spacer) * 12);
position: relative; position: relative;

View File

@ -2,7 +2,7 @@ import React, { ReactElement } from 'react'
import Typekit from './atoms/Typekit' import Typekit from './atoms/Typekit'
import Header from './organisms/Header' import Header from './organisms/Header'
import Footer from './organisms/Footer' import Footer from './organisms/Footer'
import styles from './Layout.module.css' import * as styles from './Layout.module.css'
// if (process.env.NODE_ENV !== 'production') { // if (process.env.NODE_ENV !== 'production') {
// // eslint-disable-next-line // // eslint-disable-next-line

View File

@ -2,7 +2,7 @@ import React, { ReactElement } from 'react'
import { graphql, useStaticQuery } from 'gatsby' import { graphql, useStaticQuery } from 'gatsby'
import remark from 'remark' import remark from 'remark'
import remarkReact from 'remark-react' import remarkReact from 'remark-react'
import styles from './Changelog.module.css' import * as styles from './Changelog.module.css'
import { GitHub, GitHubRepo } from '../../@types/GitHub' import { GitHub, GitHubRepo } from '../../@types/GitHub'
export function PureChangelog({ export function PureChangelog({

View File

@ -17,10 +17,6 @@
transition: 0.15s ease-out; transition: 0.15s ease-out;
} }
.button:hover svg {
stroke: var(--text-color-dimmed);
}
.copied { .copied {
background: green; background: green;
} }
@ -28,3 +24,7 @@
.copied svg { .copied svg {
stroke: var(--text-color-dimmed); stroke: var(--text-color-dimmed);
} }
.button:hover svg {
stroke: var(--text-color-dimmed);
}

View File

@ -1,6 +1,6 @@
import React, { ReactElement } from 'react' import React, { ReactElement } from 'react'
import loadable from '@loadable/component' import loadable from '@loadable/component'
import styles from './Copy.module.css' import * as styles from './Copy.module.css'
import Icon from './Icon' import Icon from './Icon'
const Clipboard = loadable(() => import('react-clipboard.js')) const Clipboard = loadable(() => import('react-clipboard.js'))

View File

@ -16,6 +16,3 @@
:global(.dark) .divider::before { :global(.dark) .divider::before {
border-bottom-color: var(--brand-grey); border-bottom-color: var(--brand-grey);
} }
.dividerTop {
}

View File

@ -1,6 +1,6 @@
import React, { ReactElement } from 'react' import React, { ReactElement } from 'react'
import ExifMap from './ExifMap' import ExifMap from './ExifMap'
import styles from './Exif.module.css' import * as styles from './Exif.module.css'
import { Exif as ExifMeta } from '../../@types/Image' import { Exif as ExifMeta } from '../../@types/Image'
import Icon from './Icon' import Icon from './Icon'

View File

@ -1,5 +1,5 @@
import React, { ReactElement } from 'react' import React, { ReactElement } from 'react'
import styles from './Hamburger.module.css' import * as styles from './Hamburger.module.css'
export default function Hamburger({ export default function Hamburger({
onClick onClick

View File

@ -27,7 +27,7 @@ import {
import { ReactComponent as Jsonfeed } from '../../images/jsonfeed.svg' import { ReactComponent as Jsonfeed } from '../../images/jsonfeed.svg'
import { ReactComponent as Bitcoin } from '../../images/bitcoin.svg' import { ReactComponent as Bitcoin } from '../../images/bitcoin.svg'
import { ReactComponent as Stopwatch } from '../../images/stopwatch.svg' import { ReactComponent as Stopwatch } from '../../images/stopwatch.svg'
import styles from './Icon.module.css' import * as styles from './Icon.module.css'
const components: any = { const components: any = {
Download: ArrowDownCircle, Download: ArrowDownCircle,

View File

@ -23,9 +23,16 @@
border-bottom: var(--stroke-width) solid rgba(255, 255, 255, 0.2); border-bottom: var(--stroke-width) solid rgba(255, 255, 255, 0.2);
border-radius: var(--border-radius); border-radius: var(--border-radius);
overflow: hidden; overflow: hidden;
transition: 0.2s ease-out;
box-shadow: var(--box-shadow); box-shadow: var(--box-shadow);
} }
@media (min-width: 40rem) {
.frame {
border: var(--stroke-width) solid rgba(255, 255, 255, 0.2);
}
}
.image { .image {
composes: frame; composes: frame;
max-width: none; max-width: none;
@ -33,13 +40,6 @@
margin-bottom: calc(var(--spacer) * var(--line-height)); margin-bottom: calc(var(--spacer) * var(--line-height));
display: block; display: block;
position: relative; position: relative;
transition: 0.2s ease-out;
}
@media (min-width: 40rem) {
.image {
border: var(--stroke-width) solid rgba(255, 255, 255, 0.2);
}
} }
/* single photo post teasers */ /* single photo post teasers */
@ -48,13 +48,13 @@
margin-bottom: 0; margin-bottom: 0;
} }
a:hover .image, a:hover .frame,
a:focus .image { a:focus .frame {
border-color: var(--link-color); border-color: var(--link-color);
} }
a:hover .image .imageTitle, a:hover .imageTitle,
a:focus .image .imageTitle { a:focus .imageTitle {
opacity: 1; opacity: 1;
transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0);
} }

View File

@ -2,7 +2,7 @@ import React, { ReactElement } from 'react'
import { graphql } from 'gatsby' import { graphql } from 'gatsby'
import Img from 'gatsby-image' import Img from 'gatsby-image'
import { ImageProps } from '../../@types/Image' import { ImageProps } from '../../@types/Image'
import styles from './Image.module.css' import * as styles from './Image.module.css'
export const Image = ({ export const Image = ({
title, title,

View File

@ -15,6 +15,13 @@
appearance: none; appearance: none;
} }
.input::-moz-placeholder,
.input::-webkit-input-placeholder,
.input:-ms-input-placeholder {
color: var(--input-color-placeholder);
opacity: 1;
}
.input:focus { .input:focus {
border-color: var(--input-border-focus); border-color: var(--input-border-focus);
outline: 0; outline: 0;
@ -23,10 +30,3 @@
.input[disabled] { .input[disabled] {
color: var(--text-color-dimmed); color: var(--text-color-dimmed);
} }
.input::-moz-placeholder,
.input::-webkit-input-placeholder,
.input:-ms-input-placeholder {
color: var(--input-color-placeholder);
opacity: 1;
}

View File

@ -1,5 +1,5 @@
import React, { ReactElement } from 'react' import React, { ReactElement } from 'react'
import styles from './Input.module.css' import * as styles from './Input.module.css'
export default function Input({ className, ...props }: any): ReactElement { export default function Input({ className, ...props }: any): ReactElement {
return <input className={`${styles.input} ${className || ''}`} {...props} /> return <input className={`${styles.input} ${className || ''}`} {...props} />

View File

@ -1,6 +1,6 @@
import React, { ReactElement } from 'react' import React, { ReactElement } from 'react'
import { QRCode } from 'react-qr-svg' import { QRCode } from 'react-qr-svg'
import styles from './Qr.module.css' import * as styles from './Qr.module.css'
import Copy from './Copy' import Copy from './Copy'
export default function Qr({ export default function Qr({

View File

@ -1,6 +1,6 @@
import React, { ReactElement } from 'react' import React, { ReactElement } from 'react'
import { Link } from 'gatsby' import { Link } from 'gatsby'
import styles from './Tag.module.css' import * as styles from './Tag.module.css'
export default function Tag({ export default function Tag({
name, name,

View File

@ -2,7 +2,7 @@ import React, { ReactElement, useState } from 'react'
import { Helmet } from 'react-helmet' import { Helmet } from 'react-helmet'
import { Link } from 'gatsby' import { Link } from 'gatsby'
import Hamburger from '../atoms/Hamburger' import Hamburger from '../atoms/Hamburger'
import styles from './Menu.module.css' import * as styles from './Menu.module.css'
import { useSiteMetadata } from '../../hooks/use-site-metadata' import { useSiteMetadata } from '../../hooks/use-site-metadata'
import { MenuItem } from '../../@types/Site' import { MenuItem } from '../../@types/Site'

View File

@ -1,6 +1,6 @@
import React, { ReactElement } from 'react' import React, { ReactElement } from 'react'
import Icon from '../atoms/Icon' import Icon from '../atoms/Icon'
import styles from './Networks.module.css' import * as styles from './Networks.module.css'
function NetworkIcon({ link }: { link: string }) { function NetworkIcon({ link }: { link: string }) {
let IconComp let IconComp

View File

@ -1,6 +1,6 @@
import React, { ReactElement } from 'react' import React, { ReactElement } from 'react'
import { Link } from 'gatsby' import { Link } from 'gatsby'
import styles from './Pagination.module.css' import * as styles from './Pagination.module.css'
import shortid from 'shortid' import shortid from 'shortid'
import { PageContext } from '../../@types/Post' import { PageContext } from '../../@types/Post'
import Icon from '../atoms/Icon' import Icon from '../atoms/Icon'

View File

@ -1,6 +1,6 @@
import React, { ReactElement } from 'react' import React, { ReactElement } from 'react'
import Time from '../atoms/Time' import Time from '../atoms/Time'
import styles from './PostDate.module.css' import * as styles from './PostDate.module.css'
export default function PostDate({ export default function PostDate({
date, date,

View File

@ -7,25 +7,29 @@
transition: color 0.2s ease-out; transition: color 0.2s ease-out;
} }
.title + div {
padding-left: 0.2rem;
padding-right: 0.2rem;
}
.post { .post {
display: block; display: block;
} }
.post:hover {
text-decoration: none;
}
.post:hover .title {
color: var(--link-color);
}
.post figure { .post figure {
margin: 0; margin: 0;
} }
.time {
font-style: italic;
font-size: var(--font-size-small);
color: var(--text-color-light);
padding-left: 0.2rem;
padding-right: 0.2rem;
}
.empty { .empty {
composes: frame from '../atoms/Image.module.css'; composes: frame from '../atoms/Image.module.css';
display: block; display: block;
min-height: 95px; min-height: 95px;
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAACaADAAQAAAABAAAACQAAAAAvQpmhAAAAHElEQVQYGWNgoBL4T8gcggoIGcBA0ASCCmhsBQBhFwX7u70C8QAAAABJRU5ErkJggg==); background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAACaADAAQAAAABAAAACQAAAAAvQpmhAAAAHElEQVQYGWNgoBL4T8gcggoIGcBA0ASCCmhsBQBhFwX7u70C8QAAAABJRU5ErkJggg==);

View File

@ -3,7 +3,7 @@ import { Link, graphql } from 'gatsby'
import { Image } from '../atoms/Image' import { Image } from '../atoms/Image'
import { Post } from '../../@types/Post' import { Post } from '../../@types/Post'
import PostTitle from '../templates/Post/Title' import PostTitle from '../templates/Post/Title'
import styles from './PostTeaser.module.css' import * as styles from './PostTeaser.module.css'
export const postTeaserQuery = graphql` export const postTeaserQuery = graphql`
fragment PostTeaser on MarkdownRemark { fragment PostTeaser on MarkdownRemark {

View File

@ -1,7 +1,7 @@
import React, { ReactElement, useState } from 'react' import React, { ReactElement, useState } from 'react'
import { graphql, useStaticQuery } from 'gatsby' import { graphql, useStaticQuery } from 'gatsby'
import PostTeaser from './PostTeaser' import PostTeaser from './PostTeaser'
import styles from './RelatedPosts.module.css' import * as styles from './RelatedPosts.module.css'
import { Post, Frontmatter } from '../../@types/Post' import { Post, Frontmatter } from '../../@types/Post'
import { PhotoThumb } from '../templates/Photos' import { PhotoThumb } from '../templates/Photos'

View File

@ -1,5 +1,5 @@
import React, { ReactElement } from 'react' import React, { ReactElement } from 'react'
import styles from './SearchButton.module.css' import * as styles from './SearchButton.module.css'
import Icon from '../../atoms/Icon' import Icon from '../../atoms/Icon'
const SearchButton = (props: any): ReactElement => ( const SearchButton = (props: any): ReactElement => (

View File

@ -1,7 +1,7 @@
import React, { ReactElement } from 'react' import React, { ReactElement } from 'react'
import Input from '../../atoms/Input' import Input from '../../atoms/Input'
import Icon from '../../atoms/Icon' import Icon from '../../atoms/Icon'
import styles from './SearchInput.module.css' import * as styles from './SearchInput.module.css'
export default function SearchInput({ export default function SearchInput({
value, value,

View File

@ -3,7 +3,7 @@ import ReactDOM from 'react-dom'
import { graphql, useStaticQuery } from 'gatsby' import { graphql, useStaticQuery } from 'gatsby'
import PostTeaser from '../PostTeaser' import PostTeaser from '../PostTeaser'
import SearchResultsEmpty from './SearchResultsEmpty' import SearchResultsEmpty from './SearchResultsEmpty'
import styles from './SearchResults.module.css' import * as styles from './SearchResults.module.css'
import { Post } from '../../../@types/Post' import { Post } from '../../../@types/Post'
export interface Results { export interface Results {

View File

@ -18,6 +18,7 @@
display: inline-block; display: inline-block;
vertical-align: bottom; vertical-align: bottom;
animation: ellipsis steps(4, end) 1s infinite; animation: ellipsis steps(4, end) 1s infinite;
/* ascii code for the ellipsis character */ /* ascii code for the ellipsis character */
content: '\2026'; content: '\2026';
width: 0; width: 0;

View File

@ -1,5 +1,5 @@
import React, { ReactElement } from 'react' import React, { ReactElement } from 'react'
import styles from './SearchResultsEmpty.module.css' import * as styles from './SearchResultsEmpty.module.css'
import { Results } from './SearchResults' import { Results } from './SearchResults'
const SearchResultsEmpty = ({ const SearchResultsEmpty = ({

View File

@ -4,7 +4,7 @@ import { CSSTransition } from 'react-transition-group'
import SearchInput from './SearchInput' import SearchInput from './SearchInput'
import SearchButton from './SearchButton' import SearchButton from './SearchButton'
import SearchResults from './SearchResults' import SearchResults from './SearchResults'
import styles from './index.module.css' import * as styles from './index.module.css'
export default function Search(): ReactElement { export default function Search(): ReactElement {
const [searchOpen, setSearchOpen] = useState(false) const [searchOpen, setSearchOpen] = useState(false)

View File

@ -1,7 +1,7 @@
import React, { ReactElement } from 'react' import React, { ReactElement } from 'react'
import { Helmet } from 'react-helmet' import { Helmet } from 'react-helmet'
import useDarkMode from 'use-dark-mode' import useDarkMode from 'use-dark-mode'
import styles from './ThemeSwitch.module.css' import * as styles from './ThemeSwitch.module.css'
import Icon from '../atoms/Icon' import Icon from '../atoms/Icon'
import { useSiteMetadata } from '../../hooks/use-site-metadata' import { useSiteMetadata } from '../../hooks/use-site-metadata'

View File

@ -2,7 +2,7 @@ import React, { ReactElement } from 'react'
import { graphql, useStaticQuery } from 'gatsby' import { graphql, useStaticQuery } from 'gatsby'
import Img from 'gatsby-image' import Img from 'gatsby-image'
import IconLinks from './Networks' import IconLinks from './Networks'
import styles from './Vcard.module.css' import * as styles from './Vcard.module.css'
import { useSiteMetadata } from '../../hooks/use-site-metadata' import { useSiteMetadata } from '../../hooks/use-site-metadata'
const query = graphql` const query = graphql`

View File

@ -2,7 +2,7 @@ import React, { ReactElement, useState, useEffect } from 'react'
import { toDataUrl } from 'ethereum-blockies' import { toDataUrl } from 'ethereum-blockies'
import { formatEther } from '@ethersproject/units' import { formatEther } from '@ethersproject/units'
import useWeb3 from '../../../hooks/use-web3' import useWeb3 from '../../../hooks/use-web3'
import styles from './Account.module.css' import * as styles from './Account.module.css'
export default function Account(): ReactElement { export default function Account(): ReactElement {
const { library, account } = useWeb3() const { library, account } = useWeb3()

View File

@ -12,6 +12,7 @@
display: inline-block; display: inline-block;
vertical-align: bottom; vertical-align: bottom;
animation: ellipsis steps(4, end) 1s infinite; animation: ellipsis steps(4, end) 1s infinite;
/* ascii code for the ellipsis character */ /* ascii code for the ellipsis character */
content: '\2026'; content: '\2026';
width: 0; width: 0;

View File

@ -1,5 +1,5 @@
import React, { ReactElement } from 'react' import React, { ReactElement } from 'react'
import styles from './Alert.module.css' import * as styles from './Alert.module.css'
export function getTransactionMessage( export function getTransactionMessage(
transactionHash?: string transactionHash?: string

View File

@ -1,6 +1,6 @@
import React, { useState, useEffect, ReactElement } from 'react' import React, { useState, useEffect, ReactElement } from 'react'
import fetch from 'node-fetch' import fetch from 'node-fetch'
import styles from './Conversion.module.css' import * as styles from './Conversion.module.css'
export async function getFiat( export async function getFiat(
amount: number amount: number

View File

@ -2,7 +2,7 @@ import React, { ReactElement, useState } from 'react'
import Input from '../../atoms/Input' import Input from '../../atoms/Input'
import Account from './Account' import Account from './Account'
import Conversion from './Conversion' import Conversion from './Conversion'
import styles from './InputGroup.module.css' import * as styles from './InputGroup.module.css'
export default function InputGroup({ export default function InputGroup({
sendTransaction sendTransaction

View File

@ -19,6 +19,7 @@
display: inline-block; display: inline-block;
vertical-align: bottom; vertical-align: bottom;
animation: ellipsis steps(4, end) 1s infinite; animation: ellipsis steps(4, end) 1s infinite;
/* ascii code for the ellipsis character */ /* ascii code for the ellipsis character */
content: '\2026'; content: '\2026';
width: 0; width: 0;

View File

@ -3,7 +3,7 @@ import { parseEther } from '@ethersproject/units'
import useWeb3, { connectors, getErrorMessage } from '../../../hooks/use-web3' import useWeb3, { connectors, getErrorMessage } from '../../../hooks/use-web3'
import InputGroup from './InputGroup' import InputGroup from './InputGroup'
import Alert, { getTransactionMessage } from './Alert' import Alert, { getTransactionMessage } from './Alert'
import styles from './index.module.css' import * as styles from './index.module.css'
export default function Web3Donation({ export default function Web3Donation({
address address

View File

@ -17,6 +17,13 @@
} }
} }
.btc code {
font-size: 0.6rem;
background: none;
color: var(--link-color);
padding: 0;
}
.copyright { .copyright {
padding-top: calvar(--spacer); padding-top: calvar(--spacer);
padding-bottom: var(--spacer); padding-bottom: var(--spacer);
@ -32,16 +39,16 @@
color: var(--text-color-light); color: var(--text-color-light);
} }
.copyright a:hover,
.copyright button code {
color: var(--link-color);
}
.copyright a, .copyright a,
.copyright button { .copyright button {
margin-left: var(--spacer); margin-left: var(--spacer);
} }
.copyright a:hover,
.copyright button code {
color: var(--link-color);
}
.copyright a:first-child, .copyright a:first-child,
.copyright button:first-child { .copyright button:first-child {
margin-left: 0; margin-left: 0;
@ -56,10 +63,3 @@
stroke: var(--text-color-light); stroke: var(--text-color-light);
opacity: 0.7; opacity: 0.7;
} }
.btc code {
font-size: 0.6rem;
background: none;
color: var(--link-color);
padding: 0;
}

View File

@ -3,7 +3,7 @@ import { Link } from 'gatsby'
import Icon from '../atoms/Icon' import Icon from '../atoms/Icon'
import Vcard from '../molecules/Vcard' import Vcard from '../molecules/Vcard'
import { useSiteMetadata } from '../../hooks/use-site-metadata' import { useSiteMetadata } from '../../hooks/use-site-metadata'
import styles from './Footer.module.css' import * as styles from './Footer.module.css'
function Copyright() { function Copyright() {
const { name, uri, github } = useSiteMetadata().author const { name, uri, github } = useSiteMetadata().author

View File

@ -29,12 +29,12 @@
.title a { .title a {
display: block; display: block;
/* stylelint-disable-next-line font-family-no-missing-generic-family-keyword */
font: 0/0 a; font: 0/0 a;
color: transparent; color: transparent;
text-shadow: none; text-shadow: none;
background-color: transparent; background-color: transparent;
border: 0; border: 0;
width: 60px; width: 60px;
overflow: hidden; overflow: hidden;
} }

View File

@ -4,7 +4,7 @@ import Search from '../molecules/Search'
import Menu from '../molecules/Menu' import Menu from '../molecules/Menu'
import ThemeSwitch from '../molecules/ThemeSwitch' import ThemeSwitch from '../molecules/ThemeSwitch'
import { ReactComponent as Logo } from '../../images/logo.svg' import { ReactComponent as Logo } from '../../images/logo.svg'
import styles from './Header.module.css' import * as styles from './Header.module.css'
export default class Header extends PureComponent { export default class Header extends PureComponent {
render(): ReactElement { render(): ReactElement {

View File

@ -2,7 +2,7 @@ import React, { ReactElement } from 'react'
import { graphql } from 'gatsby' import { graphql } from 'gatsby'
import { Post, PageContext } from '../../@types/Post' import { Post, PageContext } from '../../@types/Post'
import Pagination from '../molecules/Pagination' import Pagination from '../molecules/Pagination'
import styles from './Archive.module.css' import * as styles from './Archive.module.css'
import PostTeaser from '../molecules/PostTeaser' import PostTeaser from '../molecules/PostTeaser'
import Page from './Page' import Page from './Page'

View File

@ -2,7 +2,7 @@ import React, { ReactElement, ReactNode } from 'react'
import { Helmet } from 'react-helmet' import { Helmet } from 'react-helmet'
import { Post } from '../../@types/Post' import { Post } from '../../@types/Post'
import SEO from '../atoms/SEO' import SEO from '../atoms/SEO'
import styles from './Page.module.css' import * as styles from './Page.module.css'
export default function Page({ export default function Page({
title, title,

View File

@ -3,7 +3,7 @@ import { graphql, Link, PageProps } from 'gatsby'
import Page from './Page' import Page from './Page'
import { Post, PageContext } from '../../@types/Post' import { Post, PageContext } from '../../@types/Post'
import { Image } from '../atoms/Image' import { Image } from '../atoms/Image'
import styles from './Photos.module.css' import * as styles from './Photos.module.css'
import Pagination from '../molecules/Pagination' import Pagination from '../molecules/Pagination'
export const PhotoThumb = ({ photo }: { photo: Post }): ReactElement => { export const PhotoThumb = ({ photo }: { photo: Post }): ReactElement => {

View File

@ -1,6 +1,6 @@
import React, { ReactElement } from 'react' import React, { ReactElement } from 'react'
import { useSiteMetadata } from '../../../hooks/use-site-metadata' import { useSiteMetadata } from '../../../hooks/use-site-metadata'
import styles from './Actions.module.css' import * as styles from './Actions.module.css'
import Icon from '../../atoms/Icon' import Icon from '../../atoms/Icon'
interface ActionProps { interface ActionProps {

View File

@ -2,7 +2,7 @@ import React, { ReactElement } from 'react'
import Changelog from '../../atoms/Changelog' import Changelog from '../../atoms/Changelog'
import { Post } from '../../../@types/Post' import { Post } from '../../../@types/Post'
import PostToc from './Toc' import PostToc from './Toc'
import styles from './Content.module.css' import * as styles from './Content.module.css'
export default function PostContent({ post }: { post: Post }): ReactElement { export default function PostContent({ post }: { post: Post }): ReactElement {
const separator = '<!-- more -->' const separator = '<!-- more -->'

View File

@ -1,5 +1,5 @@
import React, { ReactElement } from 'react' import React, { ReactElement } from 'react'
import styles from './Lead.module.css' import * as styles from './Lead.module.css'
import { Post } from '../../../@types/Post' import { Post } from '../../../@types/Post'
// Extract lead paragraph from content // Extract lead paragraph from content

View File

@ -1,7 +1,7 @@
import React, { ReactElement } from 'react' import React, { ReactElement } from 'react'
import { Link } from 'gatsby' import { Link } from 'gatsby'
import stylesPostMore from './More.module.css' import stylesPostMore from './More.module.css'
import styles from './LinkActions.module.css' import * as styles from './LinkActions.module.css'
import Icon from '../../atoms/Icon' import Icon from '../../atoms/Icon'
const PostLinkActions = ({ const PostLinkActions = ({

View File

@ -3,7 +3,7 @@ import { Link } from 'gatsby'
import slugify from 'slugify' import slugify from 'slugify'
import Tag from '../../atoms/Tag' import Tag from '../../atoms/Tag'
import { useSiteMetadata } from '../../../hooks/use-site-metadata' import { useSiteMetadata } from '../../../hooks/use-site-metadata'
import styles from './Meta.module.css' import * as styles from './Meta.module.css'
import { Post } from '../../../@types/Post' import { Post } from '../../../@types/Post'
import shortid from 'shortid' import shortid from 'shortid'
import PostDate from '../../molecules/PostDate' import PostDate from '../../molecules/PostDate'

View File

@ -1,7 +1,7 @@
import React, { ReactElement } from 'react' import React, { ReactElement } from 'react'
import { Link } from 'gatsby' import { Link } from 'gatsby'
import Icon from '../../atoms/Icon' import Icon from '../../atoms/Icon'
import styles from './More.module.css' import * as styles from './More.module.css'
const PostMore = ({ const PostMore = ({
to, to,

View File

@ -1,7 +1,7 @@
import React, { ReactElement } from 'react' import React, { ReactElement } from 'react'
import { Link } from 'gatsby' import { Link } from 'gatsby'
import Icon from '../../atoms/Icon' import Icon from '../../atoms/Icon'
import styles from './PrevNext.module.css' import * as styles from './PrevNext.module.css'
interface Node { interface Node {
title: string title: string

View File

@ -19,7 +19,6 @@
text-overflow: ellipsis; text-overflow: ellipsis;
overflow: hidden; overflow: hidden;
white-space: nowrap; white-space: nowrap;
width: 100%; width: 100%;
color: var(--text-color); color: var(--text-color);
font-family: var(--font-family-base); font-family: var(--font-family-base);

View File

@ -1,5 +1,5 @@
import React, { ReactElement } from 'react' import React, { ReactElement } from 'react'
import styles from './Title.module.css' import * as styles from './Title.module.css'
import Icon from '../../atoms/Icon' import Icon from '../../atoms/Icon'
import PostDate from '../../molecules/PostDate' import PostDate from '../../molecules/PostDate'

View File

@ -1,5 +1,5 @@
import React, { ReactElement } from 'react' import React, { ReactElement } from 'react'
import styles from './Toc.module.css' import * as styles from './Toc.module.css'
const PostToc = ({ const PostToc = ({
tableOfContents tableOfContents

View File

@ -12,7 +12,7 @@ import PostActions from './Actions'
import PostLinkActions from './LinkActions' import PostLinkActions from './LinkActions'
import PostMeta from './Meta' import PostMeta from './Meta'
import PrevNext from './PrevNext' import PrevNext from './PrevNext'
import styles from './index.module.css' import * as styles from './index.module.css'
import { Image } from '../../atoms/Image' import { Image } from '../../atoms/Image'
export default function Post({ export default function Post({

View File

@ -1,3 +1,5 @@
/* stylelint-disable custom-property-empty-line-before */
:root { :root {
/* Colors /* Colors
///////////////////////////////////// */ ///////////////////////////////////// */
@ -121,6 +123,8 @@
--body-background-color: #161a1b; --body-background-color: #161a1b;
--box-background-color: rgba(255, 255, 255, 0.03); --box-background-color: rgba(255, 255, 255, 0.03);
--box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2), 0 5px 16px rgba(0, 0, 0, 0.1);
--text-color: var(--brand-grey-light); --text-color: var(--brand-grey-light);
--text-color-light: var(--brand-grey); --text-color-light: var(--brand-grey);
--text-color-dimmed: var(--brand-grey-dark); --text-color-dimmed: var(--brand-grey-dark);
@ -130,3 +134,5 @@
--input-bg: var(--body-background-color); --input-bg: var(--body-background-color);
--input-color: var(--text-color); --input-color: var(--text-color);
} }
/* stylelint-enable custom-property-empty-line-before */

View File

@ -25,8 +25,6 @@ body {
color: var(--text-color); color: var(--text-color);
text-rendering: optimizeLegibility; text-rendering: optimizeLegibility;
font-feature-settings: 'liga', 'kern'; font-feature-settings: 'liga', 'kern';
/* -webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale; */
min-height: 100vh; min-height: 100vh;
background: var(--body-background-color); background: var(--body-background-color);
transition: 0.4s var(--easing); transition: 0.4s var(--easing);
@ -341,9 +339,10 @@ td {
///////////////////////////////////// */ ///////////////////////////////////// */
@import '_code.css'; @import '_code.css';
@import '_toast.css';
/* @import '_buttons'; /* @import '_buttons';
@import '_alerts'; */ @import '_alerts'; */
@import '_toast.css';
.medium-zoom-overlay { .medium-zoom-overlay {
background-color: var(--body-background-color) !important; background-color: var(--body-background-color) !important;

View File

@ -1,7 +1,7 @@
import React, { ReactElement } from 'react' import React, { ReactElement } from 'react'
import { Link, PageProps } from 'gatsby' import { Link, PageProps } from 'gatsby'
import Page from '../components/templates/Page' import Page from '../components/templates/Page'
import styles from './404.module.css' import * as styles from './404.module.css'
const page = { const page = {
frontmatter: { frontmatter: {

View File

@ -5,7 +5,7 @@ import SEO from '../components/atoms/SEO'
import PostTeaser from '../components/molecules/PostTeaser' import PostTeaser from '../components/molecules/PostTeaser'
import { PhotoThumb } from '../components/templates/Photos' import { PhotoThumb } from '../components/templates/Photos'
import PostMore from '../components/templates/Post/More' import PostMore from '../components/templates/Post/More'
import styles from './index.module.css' import * as styles from './index.module.css'
export default function Home({ data }: PageProps): ReactElement { export default function Home({ data }: PageProps): ReactElement {
return ( return (

View File

@ -2,7 +2,7 @@ import React, { ReactElement } from 'react'
import { graphql, PageProps } from 'gatsby' import { graphql, PageProps } from 'gatsby'
import Page from '../components/templates/Page' import Page from '../components/templates/Page'
import Tag from '../components/atoms/Tag' import Tag from '../components/atoms/Tag'
import styles from './tags.module.css' import * as styles from './tags.module.css'
const page = { const page = {
frontmatter: { frontmatter: {

View File

@ -8,7 +8,7 @@ import { useSiteMetadata } from '../hooks/use-site-metadata'
import { getLibrary } from '../hooks/use-web3' import { getLibrary } from '../hooks/use-web3'
import Qr from '../components/atoms/Qr' import Qr from '../components/atoms/Qr'
import Icon from '../components/atoms/Icon' import Icon from '../components/atoms/Icon'
import styles from './thanks.module.css' import * as styles from './thanks.module.css'
const LazyWeb3Donation = loadable( const LazyWeb3Donation = loadable(
() => import('../components/molecules/Web3Donation') () => import('../components/molecules/Web3Donation')