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

more photo style fixes, clean up footer

This commit is contained in:
Matthias Kretschmann 2019-10-04 21:12:02 +02:00
parent cc15aa149b
commit 02e0edb7d0
Signed by: m
GPG Key ID: 606EEEF3C479A91F
16 changed files with 64 additions and 70 deletions

View File

@ -55,10 +55,10 @@ const constructExifFields = (exifData, createNodeField, node) => {
ExposureTime, ExposureTime,
FocalLength, FocalLength,
ExposureBiasValue, ExposureBiasValue,
ExposureMode ExposureMode,
LensModel
} = exifData.exif } = exifData.exif
const model = `${Model}`
const iso = `ISO ${ISO}` const iso = `ISO ${ISO}`
const fstop = `ƒ ${FNumber}` const fstop = `ƒ ${FNumber}`
const focalLength = `${FocalLength}mm` const focalLength = `${FocalLength}mm`
@ -81,10 +81,11 @@ const constructExifFields = (exifData, createNodeField, node) => {
name: 'exif', name: 'exif',
value: { value: {
iso, iso,
model, model: Model,
fstop, fstop,
shutterspeed, shutterspeed,
focalLength, focalLength,
lensModel: LensModel,
exposure, exposure,
gps: { latitude, longitude } gps: { latitude, longitude }
} }

View File

@ -42,14 +42,14 @@
background-color: $body-background-color--dark; background-color: $body-background-color--dark;
color: $text-color--dark; color: $text-color--dark;
border-top-color: darken($brand-grey, 15%); border-top-color: darken($brand-grey, 15%);
border-bottom-color: darken($brand-grey, 15%); border-bottom-color: darken($body-background-color--dark, 3%);
box-shadow: 0 1px 4px darken($brand-main, 10%), box-shadow: 0 1px 8px rgba(darken($brand-main, 15%), 0.1),
0 -1px 4px darken($brand-main, 15%); 0 -1px 4px darken($brand-main, 15%);
} }
@media (min-width: $screen-sm) and (min-height: 500px) { @media (min-width: $screen-sm) and (min-height: 500px) {
margin-top: $spacer * 2.65; margin-top: $spacer * 2.65;
margin-bottom: $spacer * 19; // height of footer margin-bottom: $spacer * 18; // height of footer
position: relative; position: relative;
z-index: 2; z-index: 2;
min-height: 500px; min-height: 500px;

View File

@ -21,7 +21,7 @@
display: block; display: block;
flex: 1 1 20%; flex: 1 1 20%;
white-space: nowrap; white-space: nowrap;
padding: $spacer / 1.5; padding: $spacer $spacer / 1.5;
border-bottom: 1px dashed $brand-grey-dimmed; border-bottom: 1px dashed $brand-grey-dimmed;
&:first-child { &:first-child {
@ -29,17 +29,18 @@
} }
:global(.dark) & { :global(.dark) & {
border-bottom-color: $brand-grey; border-bottom-color: rgba($brand-grey, 0.6);
} }
} }
@media (min-width: $screen-sm) { @media (min-width: $screen-sm) {
margin-bottom: 0; margin-bottom: 0;
font-size: $font-size-small;
span { span {
border-left: 1px dashed $brand-grey-dimmed; border-left: 1px dashed $brand-grey-dimmed;
border-bottom: 0; border-bottom: 0;
padding: $spacer; padding: $spacer * 1.5 $spacer;
&, &,
&:first-child { &:first-child {
@ -51,7 +52,7 @@
} }
:global(.dark) & { :global(.dark) & {
border-left-color: $brand-grey; border-left-color: rgba($brand-grey, 0.6);
} }
} }
} }
@ -62,5 +63,5 @@
@include media-frame; @include media-frame;
overflow: hidden; overflow: hidden;
height: 160px; height: 200px;
} }

View File

@ -8,6 +8,7 @@ interface ExifProps {
fstop: string fstop: string
shutterspeed: string shutterspeed: string
focalLength: string focalLength: string
lensModel: string
exposure: string exposure: string
gps: { gps: {
latitude: string latitude: string
@ -18,15 +19,17 @@ interface ExifProps {
export default function Exif({ exif }: { exif: ExifProps }) { export default function Exif({ exif }: { exif: ExifProps }) {
const { iso, model, fstop, shutterspeed, focalLength, exposure, gps } = exif const { iso, model, fstop, shutterspeed, focalLength, exposure, gps } = exif
// iPhone lenses
return ( return (
<aside className={styles.exif}> <aside className={styles.exif}>
<div className={styles.data}> <div className={styles.data}>
{model && <span title="Camera model">{model}</span>} {model && <span title="Camera model">{model}</span>}
{focalLength && <span title="Focal length">{focalLength}</span>}
{fstop && <span title="Aperture">{fstop}</span>} {fstop && <span title="Aperture">{fstop}</span>}
{shutterspeed && <span title="Shutter speed">{shutterspeed}</span>} {shutterspeed && <span title="Shutter speed">{shutterspeed}</span>}
{exposure && <span title="Exposure">{exposure}</span>} {exposure && <span title="Exposure">{exposure}</span>}
{iso && <span title="ISO">{iso}</span>} {iso && <span title="ISO">{iso}</span>}
{focalLength && <span title="Focal length">{focalLength}</span>}
</div> </div>
{gps.latitude && ( {gps.latitude && (
<div className={styles.map}>{gps && <ExifMap gps={gps} />}</div> <div className={styles.map}>{gps && <ExifMap gps={gps} />}</div>

View File

@ -51,7 +51,7 @@ export default function ExifMap({
<Map <Map
center={[latitude, longitude]} center={[latitude, longitude]}
zoom={zoom} zoom={zoom}
height={160} height={200}
attribution={false} attribution={false}
provider={isDarkMode ? providers['dark'] : providers['light']} provider={isDarkMode ? providers['dark'] : providers['light']}
metaWheelZoom={true} metaWheelZoom={true}

View File

@ -4,7 +4,8 @@
text-align: center; text-align: center;
width: 2rem; width: 2rem;
padding: $spacer / 4; padding: $spacer / 4;
margin: 0; margin-left: $spacer / 4;
margin-right: $spacer / 4;
display: inline-block; display: inline-block;
color: $text-color-light; color: $text-color-light;

View File

@ -1,16 +0,0 @@
@import 'variables';
// Subscribe component
.subscribe {
margin: $spacer auto;
p {
text-align: center;
margin: 0;
}
}
.title {
font-size: $font-size-h5;
margin-bottom: $spacer / 2;
}

View File

@ -1,16 +0,0 @@
import React from 'react'
import IconLinks from './IconLinks'
import styles from './Subscribe.module.scss'
import { useSiteMetadata } from '../../hooks/use-site-metadata'
export default function Subscribe() {
const { rss, jsonfeed } = useSiteMetadata()
const links = [rss, jsonfeed]
return (
<aside className={styles.subscribe}>
<h1 className={styles.title}>Subscribe</h1>
<IconLinks links={links} />
</aside>
)
}

View File

@ -4,9 +4,7 @@
.themeSwitch { .themeSwitch {
position: relative; position: relative;
display: inline-block; display: inline-block;
margin-right: $spacer; margin-bottom: $spacer * $line-height;
opacity: 0.75;
bottom: -0.1rem;
svg { svg {
width: 0.8rem; width: 0.8rem;

View File

@ -1,10 +1,14 @@
@import 'variables'; @import 'variables';
@import 'mixins'; @import 'mixins';
.vcard {
margin-bottom: $spacer * 2;
}
.avatar { .avatar {
@include media-frame; @include media-frame;
margin-bottom: ($spacer / 2); margin-bottom: $spacer / 3;
&, &,
img { img {
@ -16,7 +20,7 @@
.description { .description {
font-size: $font-size-h5; font-size: $font-size-h5;
margin-top: 0; margin-top: 0;
margin-bottom: ($spacer / 4); margin-bottom: ($spacer / $line-height);
a { a {
display: block; display: block;

View File

@ -23,12 +23,13 @@ const query = graphql`
export default function Vcard() { export default function Vcard() {
const data = useStaticQuery(query) const data = useStaticQuery(query)
const { twitter, github, facebook, name, uri } = useSiteMetadata().author const { author, rss, jsonfeed } = useSiteMetadata()
const { twitter, github, name, uri } = author
const avatar = data.avatar.edges[0].node.childImageSharp.fixed const avatar = data.avatar.edges[0].node.childImageSharp.fixed
const links = [twitter, github, facebook] const links = [twitter, github, rss, jsonfeed]
return ( return (
<div className="vcard author"> <div className={styles.vcard}>
<Img <Img
className={styles.avatar} className={styles.avatar}
fixed={avatar} fixed={avatar}

View File

@ -22,6 +22,20 @@
} }
} }
.theme {
margin: $spacer auto;
p {
text-align: center;
margin: 0;
}
}
.themeTitle {
font-size: $font-size-h5;
margin-bottom: $spacer / 2;
}
.copyright { .copyright {
padding-top: $spacer; padding-top: $spacer;
padding-bottom: $spacer; padding-bottom: $spacer;
@ -31,22 +45,28 @@
font-size: $font-size-mini; font-size: $font-size-mini;
} }
a,
button {
margin-left: $spacer;
&:first-child {
margin-left: 0;
}
}
svg { svg {
width: 15px; width: 15px;
height: 15px; height: 15px;
margin-right: 0.2em; margin-right: 0.25rem;
margin-bottom: -2px; margin-bottom: -2px;
display: inline-block; display: inline-block;
} }
} }
.btc { .btc {
margin-left: ($spacer / 2);
// stylelint-disable-next-line // stylelint-disable-next-line
svg { svg {
width: 10px; width: 10px;
margin-right: 0;
} }
code { code {

View File

@ -1,7 +1,7 @@
import React, { useState } from 'react' import React, { useState } from 'react'
import Container from '../atoms/Container' import Container from '../atoms/Container'
import Vcard from '../molecules/Vcard' import Vcard from '../molecules/Vcard'
import Subscribe from '../molecules/Subscribe' import ThemeSwitch from '../molecules/ThemeSwitch'
import ModalThanks from '../molecules/ModalThanks' import ModalThanks from '../molecules/ModalThanks'
import { ReactComponent as Github } from '../../images/github.svg' import { ReactComponent as Github } from '../../images/github.svg'
@ -28,9 +28,6 @@ function Copyright({
<a href={uri} rel="me"> <a href={uri} rel="me">
{name} {name}
</a> </a>
</p>
<p>
<a href={`${github}/blog`}> <a href={`${github}/blog`}>
<Github /> <Github />
View source View source
@ -58,8 +55,9 @@ export default function Footer() {
return ( return (
<footer role="contentinfo" className={styles.footer}> <footer role="contentinfo" className={styles.footer}>
<Container> <Container>
<ThemeSwitch />
<Vcard /> <Vcard />
<Subscribe />
<Copyright showModal={showModal} toggleModal={toggleModal} /> <Copyright showModal={showModal} toggleModal={toggleModal} />
</Container> </Container>
</footer> </footer>

View File

@ -3,7 +3,6 @@ import { Link } from 'gatsby'
import Container from '../atoms/Container' import Container from '../atoms/Container'
import Search from '../Search' import Search from '../Search'
import Menu from '../molecules/Menu' import Menu from '../molecules/Menu'
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.scss' import styles from './Header.module.scss'
@ -20,7 +19,6 @@ export default function Header() {
</h1> </h1>
<nav role="navigation" className={styles.nav}> <nav role="navigation" className={styles.nav}>
<ThemeSwitch />
<Search lng="en" /> <Search lng="en" />
<Menu /> <Menu />
</nav> </nav>

View File

@ -244,12 +244,12 @@
border-radius: $border-radius; border-radius: $border-radius;
box-shadow: 0 1px 3px rgba($brand-grey, 0.2); box-shadow: 0 1px 3px rgba($brand-grey, 0.2);
:global(.dark) & {
box-shadow: 0 3px 5px rgba(darken($brand-main, 20%), 0.15),
0 5px 16px rgba(darken($brand-main, 20%), 0.15);
}
@media (min-width: $screen-sm) { @media (min-width: $screen-sm) {
border: 2px solid transparent; border: 2px solid transparent;
} }
:global(.dark) & {
box-shadow: 0 3px 5px rgba(darken($brand-main, 20%), 0.25),
0 5px 16px rgba(darken($brand-main, 20%), 0.25);
}
} }

View File

@ -75,6 +75,7 @@ export const pageQuery = graphql`
fstop fstop
shutterspeed shutterspeed
focalLength focalLength
lensModel
exposure exposure
gps { gps {
latitude latitude