new icons
@ -22,7 +22,7 @@ The above picture might be blurry depending on the device you're using so here's
|
|||||||
They are completely styled with CSS3 so they're sharp on all screens no matter how high the dpi. Have a look at the [full demo](http://lab.kremalicious.com/kbdfun/) or grab the project folder with the CSS & LESS files from GitHub. The code is under the MIT license so you're free to use it in any personal or commercial project.
|
They are completely styled with CSS3 so they're sharp on all screens no matter how high the dpi. Have a look at the [full demo](http://lab.kremalicious.com/kbdfun/) or grab the project folder with the CSS & LESS files from GitHub. The code is under the MIT license so you're free to use it in any personal or commercial project.
|
||||||
|
|
||||||
<p class="content-download">
|
<p class="content-download">
|
||||||
<a class="btn-primary icon-eye" href="http://lab.kremalicious.com/kbdfun/">Demo</a>
|
<a class="btn-primary icon-compass" href="http://lab.kremalicious.com/kbdfun/">Demo</a>
|
||||||
<a class="icon-github" href="https://github.com/kremalicious/kbdfun/">Github</a>
|
<a class="icon-github" href="https://github.com/kremalicious/kbdfun/">Github</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ tags:
|
|||||||
The badges provided by all app store providers just don't play well together with their varying typography and different sizing. So let's make them all visually unified, infinitely scalable, with pure text for easier localization and some web interaction styles. And while we’re at it: different sizes with the same markup by using some modifier classes.
|
The badges provided by all app store providers just don't play well together with their varying typography and different sizing. So let's make them all visually unified, infinitely scalable, with pure text for easier localization and some web interaction styles. And while we’re at it: different sizes with the same markup by using some modifier classes.
|
||||||
|
|
||||||
<p class="content-download">
|
<p class="content-download">
|
||||||
<a class="btn-primary icon-eye" href="https://lab.kremalicious.com/appstorebadges/">Demo</a>
|
<a class="btn-primary icon-compass" href="https://lab.kremalicious.com/appstorebadges/">Demo</a>
|
||||||
<a class="icon-github" href="https://github.com/kremalicious/appstorebadges/">GitHub</a>
|
<a class="icon-github" href="https://github.com/kremalicious/appstorebadges/">GitHub</a>
|
||||||
<a href="http://codepen.io/kremalicious/details/EVVraP/">Codepen</a>
|
<a href="http://codepen.io/kremalicious/details/EVVraP/">Codepen</a>
|
||||||
</p>
|
</p>
|
||||||
|
@ -87,7 +87,12 @@ module.exports = {
|
|||||||
{
|
{
|
||||||
resolve: 'gatsby-plugin-svgr',
|
resolve: 'gatsby-plugin-svgr',
|
||||||
options: {
|
options: {
|
||||||
icon: true
|
icon: false,
|
||||||
|
svgoConfig: {
|
||||||
|
plugins: {
|
||||||
|
removeViewBox: false
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -34,6 +34,7 @@
|
|||||||
"date-fns": "^2.6.0",
|
"date-fns": "^2.6.0",
|
||||||
"dms2dec": "^1.1.0",
|
"dms2dec": "^1.1.0",
|
||||||
"fast-exif": "^1.0.1",
|
"fast-exif": "^1.0.1",
|
||||||
|
"feather-icons": "^4.24.1",
|
||||||
"fraction.js": "^4.0.12",
|
"fraction.js": "^4.0.12",
|
||||||
"gatsby": "^2.17.15",
|
"gatsby": "^2.17.15",
|
||||||
"gatsby-image": "^2.2.33",
|
"gatsby-image": "^2.2.33",
|
||||||
@ -71,6 +72,7 @@
|
|||||||
"react-blockies": "^1.4.1",
|
"react-blockies": "^1.4.1",
|
||||||
"react-clipboard.js": "^2.0.13",
|
"react-clipboard.js": "^2.0.13",
|
||||||
"react-dom": "^16.12.0",
|
"react-dom": "^16.12.0",
|
||||||
|
"react-feather": "^2.0.3",
|
||||||
"react-helmet": "^5.2.1",
|
"react-helmet": "^5.2.1",
|
||||||
"react-modal": "^3.11.1",
|
"react-modal": "^3.11.1",
|
||||||
"react-pose": "^4.0.9",
|
"react-pose": "^4.0.9",
|
||||||
|
@ -1,15 +1,24 @@
|
|||||||
@import 'variables';
|
@import 'variables';
|
||||||
@import 'mixins';
|
@import 'mixins';
|
||||||
|
|
||||||
|
.hamburger {
|
||||||
|
width: 24px;
|
||||||
|
height: 24px;
|
||||||
|
display: block;
|
||||||
|
position: relative;
|
||||||
|
transform: rotate(0deg);
|
||||||
|
cursor: pointer;
|
||||||
|
margin-top: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
.hamburgerLine {
|
.hamburgerLine {
|
||||||
@include transition;
|
@include transition;
|
||||||
|
|
||||||
display: block;
|
display: block;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
height: 3px;
|
height: 1px;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
background: $text-color-light;
|
border-bottom: 0.1rem solid $brand-grey-light;
|
||||||
border-radius: 20px;
|
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
left: 0;
|
left: 0;
|
||||||
transform: rotate(0deg);
|
transform: rotate(0deg);
|
||||||
@ -20,12 +29,12 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
&:nth-child(2) {
|
&:nth-child(2) {
|
||||||
top: 5px;
|
top: 7px;
|
||||||
transform-origin: left center;
|
transform-origin: left center;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:nth-child(3) {
|
&:nth-child(3) {
|
||||||
top: 10px;
|
top: 14px;
|
||||||
transform-origin: left center;
|
transform-origin: left center;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -43,7 +52,7 @@
|
|||||||
|
|
||||||
&:nth-child(3) {
|
&:nth-child(3) {
|
||||||
transform: rotate(-45deg);
|
transform: rotate(-45deg);
|
||||||
top: 12px;
|
top: 16px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -62,17 +71,7 @@
|
|||||||
outline: 0;
|
outline: 0;
|
||||||
|
|
||||||
.hamburgerLine {
|
.hamburgerLine {
|
||||||
background: $brand-cyan;
|
border-color: $brand-cyan;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.hamburger {
|
|
||||||
width: 18px;
|
|
||||||
height: 18px;
|
|
||||||
display: block;
|
|
||||||
position: relative;
|
|
||||||
transform: rotate(0deg);
|
|
||||||
cursor: pointer;
|
|
||||||
margin-top: 6px;
|
|
||||||
}
|
|
||||||
|
12
src/components/atoms/Icon.module.scss
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
@import 'variables';
|
||||||
|
|
||||||
|
.icon {
|
||||||
|
width: 1em;
|
||||||
|
height: 1em;
|
||||||
|
stroke: currentColor;
|
||||||
|
stroke-width: 0.1rem;
|
||||||
|
stroke-linecap: round;
|
||||||
|
stroke-linejoin: round;
|
||||||
|
fill: none;
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
25
src/components/atoms/Icon.test.tsx
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
import React from 'react'
|
||||||
|
import { render } from '@testing-library/react'
|
||||||
|
|
||||||
|
import Icon from './Icon'
|
||||||
|
|
||||||
|
describe('Icon', () => {
|
||||||
|
it('renders correctly', () => {
|
||||||
|
const { container, rerender } = render(<Icon name={'Compass'} />)
|
||||||
|
expect(container.firstChild.nodeName).toBe('svg')
|
||||||
|
|
||||||
|
rerender(<Icon name={'Download'} />)
|
||||||
|
expect(container.firstChild.nodeName).toBe('svg')
|
||||||
|
|
||||||
|
rerender(<Icon name={'Blog'} />)
|
||||||
|
expect(container.firstChild.nodeName).toBe('svg')
|
||||||
|
|
||||||
|
rerender(<Icon name={'Twitter'} />)
|
||||||
|
expect(container.firstChild.nodeName).toBe('svg')
|
||||||
|
})
|
||||||
|
|
||||||
|
it('does not render with unknown name', () => {
|
||||||
|
const { container } = render(<Icon name={'whatever'} />)
|
||||||
|
expect(container.firstChild).not.toBeInTheDocument()
|
||||||
|
})
|
||||||
|
})
|
31
src/components/atoms/Icon.tsx
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
import React from 'react'
|
||||||
|
|
||||||
|
// https://featherstyles.com
|
||||||
|
import * as Feather from 'react-feather'
|
||||||
|
// custom icons
|
||||||
|
import { ReactComponent as Jsonfeed } from '../../images/jsonfeed.svg'
|
||||||
|
import { ReactComponent as Bitcoin } from '../../images/bitcoin.svg'
|
||||||
|
import styles from './Icon.module.scss'
|
||||||
|
|
||||||
|
const Icon = ({ name }: { name: string }) => {
|
||||||
|
const components: any = {
|
||||||
|
Download: Feather.ArrowDownCircle,
|
||||||
|
Blog: Feather.Edit,
|
||||||
|
Keybase: Feather.Key,
|
||||||
|
Jsonfeed,
|
||||||
|
Bitcoin
|
||||||
|
}
|
||||||
|
|
||||||
|
const IconMapped = components[name]
|
||||||
|
const Icon = (Feather as any)[name]
|
||||||
|
|
||||||
|
if (!IconMapped && !Icon) return null
|
||||||
|
|
||||||
|
return IconMapped ? (
|
||||||
|
<IconMapped className={styles.icon} />
|
||||||
|
) : (
|
||||||
|
<Icon className={styles.icon} />
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default Icon
|
@ -26,7 +26,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.modal__content {
|
.modalContent {
|
||||||
outline: 0;
|
outline: 0;
|
||||||
background: $body-background-color;
|
background: $body-background-color;
|
||||||
position: relative;
|
position: relative;
|
||||||
@ -47,25 +47,29 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.modal__close {
|
.modalClose {
|
||||||
display: block;
|
display: block;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
background: transparent;
|
background: transparent;
|
||||||
border: 0;
|
border: 0;
|
||||||
appearance: none;
|
appearance: none;
|
||||||
line-height: 1;
|
|
||||||
font-size: $font-size-h2;
|
|
||||||
padding: 4px;
|
padding: 4px;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
top: $spacer / 4;
|
||||||
right: ($spacer/4);
|
right: ($spacer/4);
|
||||||
color: $brand-grey-light;
|
|
||||||
font-weight: 500;
|
|
||||||
outline: 0;
|
outline: 0;
|
||||||
|
|
||||||
|
svg {
|
||||||
|
width: 24px;
|
||||||
|
height: 24px;
|
||||||
|
stroke: $brand-grey-light;
|
||||||
|
}
|
||||||
|
|
||||||
&:hover,
|
&:hover,
|
||||||
&:focus {
|
&:focus {
|
||||||
color: $brand-grey;
|
svg {
|
||||||
|
stroke: $brand-cyan;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -80,7 +84,7 @@
|
|||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
.modal__title {
|
.modalTitle {
|
||||||
font-size: $font-size-h4;
|
font-size: $font-size-h4;
|
||||||
margin-top: $spacer / 2;
|
margin-top: $spacer / 2;
|
||||||
margin-bottom: $spacer / 2;
|
margin-bottom: $spacer / 2;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
import ReactModal from 'react-modal'
|
import ReactModal from 'react-modal'
|
||||||
|
import Icon from './Icon'
|
||||||
import styles from './Modal.module.scss'
|
import styles from './Modal.module.scss'
|
||||||
|
|
||||||
if (process.env.NODE_ENV !== 'test') ReactModal.setAppElement('#___gatsby')
|
if (process.env.NODE_ENV !== 'test') ReactModal.setAppElement('#___gatsby')
|
||||||
@ -22,16 +22,16 @@ export default function Modal({
|
|||||||
return (
|
return (
|
||||||
<ReactModal
|
<ReactModal
|
||||||
overlayClassName={styles.modal}
|
overlayClassName={styles.modal}
|
||||||
className={styles.modal__content}
|
className={styles.modalContent}
|
||||||
htmlOpenClassName={styles.isModalOpen}
|
htmlOpenClassName={styles.isModalOpen}
|
||||||
shouldReturnFocusAfterClose={false}
|
shouldReturnFocusAfterClose={false}
|
||||||
isOpen={isOpen}
|
isOpen={isOpen}
|
||||||
{...props}
|
{...props}
|
||||||
>
|
>
|
||||||
{title && <h1 className={styles.modal__title}>{title}</h1>}
|
{title && <h1 className={styles.modalTitle}>{title}</h1>}
|
||||||
{children}
|
{children}
|
||||||
<button className={styles.modal__close} onClick={handleCloseModal}>
|
<button className={styles.modalClose} onClick={handleCloseModal}>
|
||||||
×
|
<Icon name="X" />
|
||||||
</button>
|
</button>
|
||||||
</ReactModal>
|
</ReactModal>
|
||||||
)
|
)
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
import { QRCode } from 'react-qr-svg'
|
import { QRCode } from 'react-qr-svg'
|
||||||
import Clipboard from 'react-clipboard.js'
|
import Clipboard from 'react-clipboard.js'
|
||||||
import { ReactComponent as IconClipboard } from '../../images/clipboard.svg'
|
|
||||||
|
|
||||||
import styles from './Qr.module.scss'
|
import styles from './Qr.module.scss'
|
||||||
|
import Icon from './Icon'
|
||||||
|
|
||||||
const onCopySuccess = (e: any) => {
|
const onCopySuccess = (e: any) => {
|
||||||
e.trigger.classList.add(styles.copied)
|
e.trigger.classList.add(styles.copied)
|
||||||
@ -36,7 +36,7 @@ export default function Qr({
|
|||||||
onSuccess={e => onCopySuccess(e)}
|
onSuccess={e => onCopySuccess(e)}
|
||||||
className={styles.button}
|
className={styles.button}
|
||||||
>
|
>
|
||||||
<IconClipboard />
|
<Icon name="Clipboard" />
|
||||||
</Clipboard>
|
</Clipboard>
|
||||||
</pre>
|
</pre>
|
||||||
</>
|
</>
|
||||||
|
@ -18,28 +18,10 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
svg {
|
svg {
|
||||||
transition: color 0.3s ease-in-out;
|
width: 24px;
|
||||||
|
height: 24px;
|
||||||
|
transition: stroke 0.3s ease-in-out;
|
||||||
display: block;
|
display: block;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.twitter:hover {
|
|
||||||
fill: #019ad2;
|
|
||||||
}
|
|
||||||
|
|
||||||
.facebook:hover {
|
|
||||||
fill: #3b5998;
|
|
||||||
}
|
|
||||||
|
|
||||||
.github:hover {
|
|
||||||
fill: #333;
|
|
||||||
}
|
|
||||||
|
|
||||||
.rss:hover {
|
|
||||||
fill: #e15a00;
|
|
||||||
}
|
|
||||||
|
|
||||||
.json:hover {
|
|
||||||
fill: #8be028;
|
|
||||||
}
|
|
||||||
|
@ -1,30 +1,23 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
import styles from './IconLinks.module.scss'
|
import styles from './IconLinks.module.scss'
|
||||||
|
import Icon from '../atoms/Icon'
|
||||||
import { ReactComponent as Twitter } from '../../images/twitter.svg'
|
|
||||||
import { ReactComponent as Github } from '../../images/github.svg'
|
|
||||||
import { ReactComponent as Facebook } from '../../images/facebook.svg'
|
|
||||||
import { ReactComponent as Rss } from '../../images/rss.svg'
|
|
||||||
import { ReactComponent as Jsonfeed } from '../../images/jsonfeed.svg'
|
|
||||||
|
|
||||||
function NetworkIcon({ link }: { link: string }) {
|
function NetworkIcon({ link }: { link: string }) {
|
||||||
let Icon
|
let IconComp
|
||||||
|
|
||||||
if (link.includes('twitter')) {
|
if (link.includes('twitter')) {
|
||||||
Icon = <Twitter className={styles.twitter} />
|
IconComp = <Icon name="Twitter" />
|
||||||
} else if (link.includes('github')) {
|
} else if (link.includes('github')) {
|
||||||
Icon = <Github className={styles.github} />
|
IconComp = <Icon name="GitHub" />
|
||||||
} else if (link.includes('facebook')) {
|
|
||||||
Icon = <Facebook className={styles.facebook} />
|
|
||||||
} else if (link.includes('feed.xml')) {
|
} else if (link.includes('feed.xml')) {
|
||||||
Icon = <Rss className={styles.rss} />
|
IconComp = <Icon name="Rss" />
|
||||||
} else if (link.includes('feed.json')) {
|
} else if (link.includes('feed.json')) {
|
||||||
Icon = <Jsonfeed className={styles.json} />
|
IconComp = <Icon name="Jsonfeed" />
|
||||||
} else {
|
} else {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
return Icon
|
return IconComp
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function IconLinks({ links }: { links: string[] }) {
|
export default function IconLinks({ links }: { links: string[] }) {
|
||||||
|
@ -13,21 +13,21 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
svg {
|
svg {
|
||||||
fill: $text-color-light;
|
stroke: $brand-grey-light;
|
||||||
width: 21px;
|
width: 24px;
|
||||||
height: 21px;
|
height: 24px;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover,
|
&:hover,
|
||||||
&:focus {
|
&:focus {
|
||||||
svg {
|
svg {
|
||||||
fill: $brand-cyan;
|
stroke: $brand-cyan;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&:active {
|
&:active {
|
||||||
svg {
|
svg {
|
||||||
fill: darken($brand-cyan, 30%);
|
stroke: darken($brand-cyan, 30%);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
import { ReactComponent as SearchIcon } from '../../../images/magnifying-glass.svg'
|
|
||||||
import styles from './SearchButton.module.scss'
|
import styles from './SearchButton.module.scss'
|
||||||
|
import Icon from '../../atoms/Icon'
|
||||||
|
|
||||||
const SearchButton = (props: any) => (
|
const SearchButton = (props: any) => (
|
||||||
<button
|
<button
|
||||||
@ -9,7 +9,7 @@ const SearchButton = (props: any) => (
|
|||||||
className={styles.searchButton}
|
className={styles.searchButton}
|
||||||
{...props}
|
{...props}
|
||||||
>
|
>
|
||||||
<SearchIcon />
|
<Icon name="Search" />
|
||||||
</button>
|
</button>
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -11,12 +11,18 @@
|
|||||||
.searchInputClose {
|
.searchInputClose {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: $spacer / 2;
|
right: $spacer / 2;
|
||||||
top: $spacer / 5;
|
top: $spacer / 2;
|
||||||
font-size: $font-size-h3;
|
|
||||||
color: $brand-grey-light;
|
svg {
|
||||||
|
stroke: $brand-grey-light;
|
||||||
|
width: 24px;
|
||||||
|
height: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
&:hover,
|
&:hover,
|
||||||
&:focus {
|
&:focus {
|
||||||
color: $link-color;
|
svg {
|
||||||
|
stroke: $link-color;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
import Input from '../../atoms/Input'
|
import Input from '../../atoms/Input'
|
||||||
|
import Icon from '../../atoms/Icon'
|
||||||
import styles from './SearchInput.module.scss'
|
import styles from './SearchInput.module.scss'
|
||||||
|
|
||||||
export default function SearchInput({
|
export default function SearchInput({
|
||||||
@ -26,7 +27,7 @@ export default function SearchInput({
|
|||||||
onClick={onToggle}
|
onClick={onToggle}
|
||||||
title="Close search"
|
title="Close search"
|
||||||
>
|
>
|
||||||
×
|
<Icon name="X" />
|
||||||
</button>
|
</button>
|
||||||
</>
|
</>
|
||||||
)
|
)
|
||||||
|
@ -7,15 +7,14 @@
|
|||||||
margin-bottom: $spacer * $line-height;
|
margin-bottom: $spacer * $line-height;
|
||||||
|
|
||||||
svg {
|
svg {
|
||||||
width: 0.8rem;
|
stroke: $brand-grey-light;
|
||||||
height: 0.8rem;
|
width: $font-size-base;
|
||||||
|
height: $font-size-base;
|
||||||
margin-top: -0.05rem;
|
margin-top: -0.05rem;
|
||||||
fill: $brand-grey-light;
|
|
||||||
|
|
||||||
&:last-child {
|
&:last-child {
|
||||||
margin-top: -0.1rem;
|
width: $font-size-base * 0.9;
|
||||||
width: 0.7rem;
|
height: $font-size-base * 0.9;
|
||||||
height: 0.7rem;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,15 +1,14 @@
|
|||||||
import React from 'react'
|
import React 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 { ReactComponent as Day } from '../../images/day.svg'
|
|
||||||
import { ReactComponent as Night } from '../../images/night.svg'
|
|
||||||
import styles from './ThemeSwitch.module.scss'
|
import styles from './ThemeSwitch.module.scss'
|
||||||
|
import Icon from '../atoms/Icon'
|
||||||
|
|
||||||
const ThemeToggle = () => (
|
const ThemeToggle = () => (
|
||||||
<span id="toggle" className={styles.checkboxContainer} aria-live="assertive">
|
<span id="toggle" className={styles.checkboxContainer} aria-live="assertive">
|
||||||
<Day />
|
<Icon name="Sun" />
|
||||||
<span className={styles.checkboxFake} />
|
<span className={styles.checkboxFake} />
|
||||||
<Night />
|
<Icon name="Moon" />
|
||||||
</span>
|
</span>
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -18,10 +18,6 @@
|
|||||||
bottom: 0;
|
bottom: 0;
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
svg {
|
|
||||||
fill: $brand-grey-light;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.theme {
|
.theme {
|
||||||
@ -67,20 +63,15 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
svg {
|
svg {
|
||||||
width: 15px;
|
width: $font-size-small;
|
||||||
height: 15px;
|
height: $font-size-small;
|
||||||
margin-right: 0.25rem;
|
margin-right: $spacer / 8;
|
||||||
margin-bottom: -2px;
|
margin-bottom: -0.15rem;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.btc {
|
.btc {
|
||||||
// stylelint-disable-next-line
|
|
||||||
svg {
|
|
||||||
width: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
code {
|
code {
|
||||||
font-size: 0.6rem;
|
font-size: 0.6rem;
|
||||||
background: none;
|
background: none;
|
||||||
|
@ -1,12 +1,10 @@
|
|||||||
import React, { useState } from 'react'
|
import React, { useState } from 'react'
|
||||||
import Container from '../atoms/Container'
|
import Container from '../atoms/Container'
|
||||||
|
import Icon from '../atoms/Icon'
|
||||||
import Vcard from '../molecules/Vcard'
|
import Vcard from '../molecules/Vcard'
|
||||||
import ThemeSwitch from '../molecules/ThemeSwitch'
|
import ThemeSwitch from '../molecules/ThemeSwitch'
|
||||||
import ModalThanks from './ModalThanks'
|
import ModalThanks from './ModalThanks'
|
||||||
|
|
||||||
import { ReactComponent as Github } from '../../images/github.svg'
|
|
||||||
import { ReactComponent as Bitcoin } from '../../images/bitcoin.svg'
|
|
||||||
|
|
||||||
import styles from './Footer.module.scss'
|
import styles from './Footer.module.scss'
|
||||||
import { useSiteMetadata } from '../../hooks/use-site-metadata'
|
import { useSiteMetadata } from '../../hooks/use-site-metadata'
|
||||||
|
|
||||||
@ -29,11 +27,11 @@ function Copyright({
|
|||||||
{name}
|
{name}
|
||||||
</a>
|
</a>
|
||||||
<a href={`${github}/blog`}>
|
<a href={`${github}/blog`}>
|
||||||
<Github />
|
<Icon name="GitHub" />
|
||||||
View source
|
View source
|
||||||
</a>
|
</a>
|
||||||
<button className={styles.btc} onClick={toggleModal}>
|
<button className={styles.btc} onClick={toggleModal}>
|
||||||
<Bitcoin />
|
<Icon name="Bitcoin" />
|
||||||
<code>{bitcoin}</code>
|
<code>{bitcoin}</code>
|
||||||
</button>
|
</button>
|
||||||
</p>
|
</p>
|
||||||
|
@ -1,9 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
||||||
<svg version="1.1" id="Arrow_circled_down" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
|
|
||||||
y="0px" viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
|
|
||||||
<path d="M10,0.4c-5.303,0-9.601,4.298-9.601,9.6c0,5.303,4.298,9.601,9.601,9.601c5.301,0,9.6-4.298,9.6-9.601
|
|
||||||
C19.6,4.698,15.301,0.4,10,0.4z M9.999,17.6c-4.197,0-7.6-3.402-7.6-7.6s3.402-7.6,7.6-7.6S17.6,5.803,17.6,10
|
|
||||||
S14.196,17.6,9.999,17.6z M12,6H8v4H5.5l4.5,4.5l4.5-4.5H12V6z"/>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 745 B |
@ -1,4 +1,3 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="10" height="20" viewBox="0 0 10 20">
|
<svg xmlns="http://www.w3.org/2000/svg" width="25" height="24" viewBox="0 0 25 24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round">
|
||||||
<title>bitcoin</title>
|
<path d="M8.69943729,12.5 C10.6866373,12.5 12.2994373,14.068 12.2994373,16 C12.2994373,17.9343333 10.6866373,19.5 8.69943729,19.5 L0.299437295,19.5 L0.299437295,12.5 L8.69943729,12.5 Z M8.69943729,5.5 C10.6866373,5.5 12.2994373,7.068 12.2994373,9 C12.2994373,10.9343333 10.6866373,12.5 8.69943729,12.5 L0.299437295,12.5 L0.299437295,5.5 L8.69943729,5.5 Z M2.29943729,1.00830078 L2.29943729,5.5 M7.29943729,1.00830078 L7.29943729,5.5 M2.29943729,19.5 L2.29943729,24.067627 M7.29943729,19.5 L7.29943729,24.067627" transform="translate(5.7 -.5)"/>
|
||||||
<path d="M8.16,10A3.67,3.67,0,0,0,10,6.76c0-1-.37-3.19-3.42-3.84V0.81A0.82,0.82,0,0,0,5.79,0,0.82,0.82,0,0,0,5,.81V2.7H3.95V0.81A0.82,0.82,0,0,0,3.16,0a0.82,0.82,0,0,0-.79.81V2.7H0.79a0.81,0.81,0,0,0,0,1.62H1.05V15.68H0.79a0.81,0.81,0,0,0,0,1.62H2.37v1.89a0.82,0.82,0,0,0,.79.81,0.82,0.82,0,0,0,.79-0.81V17.3H5v1.89a0.82,0.82,0,0,0,.79.81,0.82,0.82,0,0,0,.79-0.81V17.08C9.63,16.43,10,14.27,10,13.24A3.67,3.67,0,0,0,8.16,10ZM4.53,4.32c2.58,0,3.89.81,3.89,2.43S7.11,9.19,4.53,9.19H2.63V4.32H4.53Zm0,11.35H2.63V10.81H4.53c2.58,0,3.89.81,3.89,2.43S7.11,15.68,4.53,15.68Z"/>
|
|
||||||
</svg>
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 688 B After Width: | Height: | Size: 719 B |
@ -1,9 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
||||||
<svg version="1.1" id="Chevron_left" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
|
|
||||||
y="0px" viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
|
|
||||||
<path d="M12.452,4.516c0.446,0.436,0.481,1.043,0,1.576L8.705,10l3.747,3.908c0.481,0.533,0.446,1.141,0,1.574
|
|
||||||
c-0.445,0.436-1.197,0.408-1.615,0c-0.418-0.406-4.502-4.695-4.502-4.695C6.112,10.57,6,10.285,6,10s0.112-0.57,0.335-0.789
|
|
||||||
c0,0,4.084-4.287,4.502-4.695C11.255,4.107,12.007,4.08,12.452,4.516z"/>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 759 B |
@ -1,9 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
||||||
<svg version="1.1" id="Chevron_right" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
|
|
||||||
y="0px" viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
|
|
||||||
<path d="M9.163,4.516c0.418,0.408,4.502,4.695,4.502,4.695C13.888,9.43,14,9.715,14,10s-0.112,0.57-0.335,0.787
|
|
||||||
c0,0-4.084,4.289-4.502,4.695c-0.418,0.408-1.17,0.436-1.615,0c-0.446-0.434-0.481-1.041,0-1.574L11.295,10L7.548,6.092
|
|
||||||
c-0.481-0.533-0.446-1.141,0-1.576C7.993,4.08,8.745,4.107,9.163,4.516z"/>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 759 B |
@ -1,3 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 22 22">
|
|
||||||
<path d="M16 8v8H8v4h12V8h-4zm0-2h6v16H6v-6H0V0h16v6zM2 2v12h12V2H2z"></path>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 173 B |
@ -1,3 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21">
|
|
||||||
<path d="M1001,1344.5 C1001,1347.53669 998.535313,1350 995.5,1350 C992.459875,1350 990,1347.53669 990,1344.5 C990,1341.46331 992.459875,1339 995.5,1339 C998.535313,1339 1001,1341.46331 1001,1344.5 Z M995.5,1336.484 C994.633125,1336.484 993.81625,1336.69175 993.035,1337 L993,1337 L995.5,1334 L998,1337 L997.96125,1337 C997.181875,1336.691 996.365,1336.484 995.5,1336.484 Z M995.5,1352.516 C996.365,1352.516 997.181875,1352.30825 997.96125,1352 L998,1352 L995.5,1355 L993,1352 L993.035,1352 C993.81625,1352.309 994.633125,1352.516 995.5,1352.516 Z M1003.516,1344.5 C1003.516,1343.63562 1003.3045,1342.81562 1003,1342.03625 L1003,1342 L1006,1344.5 L1003,1347 L1003,1346.96375 C1003.30525,1346.18438 1003.516,1345.36438 1003.516,1344.5 Z M987.484,1344.5 C987.484,1345.36438 987.69025,1346.18438 988,1346.96375 L988,1347 L985,1344.5 L988,1342 L988,1342.03625 C987.6895,1342.81562 987.484,1343.63562 987.484,1344.5 Z M1001.34229,1350.34229 C1002.03819,1349.65134 1002.55304,1348.85785 1002.96959,1348.0297 L1003,1348 L1003,1352 L999,1352 L999.028289,1351.97242 C999.856436,1351.55233 1000.65205,1351.03819 1001.34229,1350.34229 Z M989.657001,1338.65771 C988.961103,1339.34866 988.447666,1340.14215 988.028289,1340.9703 L988,1341 L988,1337 L992,1337 L991.966761,1337.02758 C991.137907,1337.44767 990.348656,1337.96181 989.657001,1338.65771 Z M989.657709,1350.343 C990.349364,1351.0389 991.138614,1351.55304 991.966761,1351.97242 L992,1352 L988,1352 L988,1348 L988.028289,1348.0297 C988.448373,1348.85856 988.96181,1349.65205 989.657709,1350.343 Z M1001.34229,1338.657 C1000.65205,1337.9611 999.856436,1337.44696 999.028289,1337.02758 L999,1337 L1003,1337 L1003,1341 L1002.96959,1340.9703 C1002.55304,1340.14144 1002.03819,1339.34795 1001.34229,1338.657 Z" transform="translate(-985 -1334)"/>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 1.8 KiB |
@ -1,10 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!-- Generator: Adobe Illustrator 18.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
||||||
<svg version="1.1" id="Eye" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
||||||
viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
|
|
||||||
<path d="M10,4.4C3.439,4.4,0,9.232,0,10c0,0.766,3.439,5.6,10,5.6c6.56,0,10-4.834,10-5.6C20,9.232,16.56,4.4,10,4.4z M10,14.307
|
|
||||||
c-2.455,0-4.445-1.928-4.445-4.307c0-2.379,1.99-4.309,4.445-4.309c2.455,0,4.444,1.93,4.444,4.309
|
|
||||||
C14.444,12.379,12.455,14.307,10,14.307z M10,10c-0.407-0.447,0.663-2.154,0-2.154c-1.228,0-2.223,0.965-2.223,2.154
|
|
||||||
c0,1.189,0.995,2.154,2.223,2.154c1.227,0,2.223-0.965,2.223-2.154C12.223,9.453,10.346,10.379,10,10z"/>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 890 B |
@ -1,8 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
||||||
<svg version="1.1" id="Facebook" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
||||||
viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
|
|
||||||
<path d="M17,1H3C1.9,1,1,1.9,1,3v14c0,1.101,0.9,2,2,2h7v-7H8V9.525h2V7.475c0-2.164,1.212-3.684,3.766-3.684l1.803,0.002v2.605
|
|
||||||
h-1.197C13.378,6.398,13,7.144,13,7.836v1.69h2.568L15,12h-2v7h4c1.1,0,2-0.899,2-2V3C19,1.9,18.1,1,17,1z"/>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 685 B |
@ -1,7 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
||||||
<!-- Generator: Adobe Illustrator 18.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
||||||
<svg version="1.1" id="Forward" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
||||||
viewBox="0 0 20 20" style="enable-background:new 0 0 20 20;" xml:space="preserve">
|
|
||||||
<path d="M12,11.874v4.357l7-6.69l-7-6.572v3.983c-8.775,0-11,9.732-11,9.732C3.484,12.296,7.237,11.874,12,11.874z"/>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 578 B |
@ -1,15 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
||||||
<svg version="1.1" id="Github" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
||||||
viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
|
|
||||||
<path d="M13.18,11.309c-0.718,0-1.3,0.807-1.3,1.799c0,0.994,0.582,1.801,1.3,1.801s1.3-0.807,1.3-1.801
|
|
||||||
C14.479,12.116,13.898,11.309,13.18,11.309z M17.706,6.626c0.149-0.365,0.155-2.439-0.635-4.426c0,0-1.811,0.199-4.551,2.08
|
|
||||||
c-0.575-0.16-1.548-0.238-2.519-0.238c-0.973,0-1.945,0.078-2.52,0.238C4.74,2.399,2.929,2.2,2.929,2.2
|
|
||||||
C2.14,4.187,2.148,6.261,2.295,6.626C1.367,7.634,0.8,8.845,0.8,10.497c0,7.186,5.963,7.301,7.467,7.301
|
|
||||||
c0.342,0,1.018,0.002,1.734,0.002c0.715,0,1.392-0.002,1.732-0.002c1.506,0,7.467-0.115,7.467-7.301
|
|
||||||
C19.2,8.845,18.634,7.634,17.706,6.626z M10.028,16.915H9.972c-3.771,0-6.709-0.449-6.709-4.115c0-0.879,0.31-1.693,1.047-2.369
|
|
||||||
c1.227-1.127,3.305-0.531,5.662-0.531c0.01,0,0.02,0,0.029,0c0.01,0,0.018,0,0.027,0c2.357,0,4.436-0.596,5.664,0.531
|
|
||||||
c0.735,0.676,1.045,1.49,1.045,2.369C16.737,16.466,13.8,16.915,10.028,16.915z M6.821,11.309c-0.718,0-1.3,0.807-1.3,1.799
|
|
||||||
c0,0.994,0.582,1.801,1.3,1.801c0.719,0,1.301-0.807,1.301-1.801C8.122,12.116,7.54,11.309,6.821,11.309z"/>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 1.4 KiB |
@ -1,17 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
||||||
<svg version="1.1" id="Google_x2B_" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
|
|
||||||
y="0px" viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
|
|
||||||
<path d="M1.989,5.589c0,1.494,0.499,2.572,1.482,3.205c0.806,0.52,1.74,0.598,2.226,0.598c0.118,0,0.213-0.006,0.279-0.01
|
|
||||||
c0,0-0.154,1.004,0.59,1.996H6.532c-1.289,0-5.493,0.269-5.493,3.727c0,3.516,3.861,3.695,4.636,3.695
|
|
||||||
c0.061,0,0.097-0.002,0.097-0.002c0.008,0,0.063,0.002,0.158,0.002c0.497,0,1.782-0.062,2.975-0.643
|
|
||||||
c1.548-0.75,2.333-2.059,2.333-3.885c0-1.764-1.196-2.814-2.069-3.582c-0.533-0.469-0.994-0.873-0.994-1.266
|
|
||||||
c0-0.4,0.337-0.701,0.762-1.082c0.689-0.615,1.339-1.492,1.339-3.15c0-1.457-0.189-2.436-1.354-3.057
|
|
||||||
c0.121-0.062,0.551-0.107,0.763-0.137c0.631-0.086,1.554-0.184,1.554-0.699V1.2H6.64C6.594,1.202,1.989,1.372,1.989,5.589z
|
|
||||||
M9.413,14.602c0.088,1.406-1.115,2.443-2.922,2.574c-1.835,0.135-3.345-0.691-3.433-2.096c-0.043-0.676,0.254-1.336,0.835-1.863
|
|
||||||
c0.589-0.533,1.398-0.863,2.278-0.928c0.104-0.006,0.207-0.012,0.31-0.012C8.18,12.278,9.33,13.276,9.413,14.602z M8.212,4.626
|
|
||||||
c0.451,1.588-0.23,3.246-1.316,3.553C6.771,8.214,6.643,8.231,6.512,8.231c-0.994,0-1.979-1.006-2.345-2.393
|
|
||||||
C3.963,5.062,3.98,4.38,4.214,3.726c0.229-0.645,0.643-1.078,1.163-1.225c0.125-0.035,0.254-0.053,0.385-0.053
|
|
||||||
C6.962,2.448,7.734,2.946,8.212,4.626z M16,8V5h-2v3h-3v2h3v3h2v-3h3V8H16z"/>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 1.6 KiB |
@ -1,8 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
||||||
<!-- Generator: Adobe Illustrator 18.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
||||||
<svg version="1.1" id="Heart" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
||||||
viewBox="0 0 20 20" style="enable-background:new 0 0 20 20;" xml:space="preserve">
|
|
||||||
<path d="M17.19,4.155c-1.672-1.534-4.383-1.534-6.055,0L10,5.197L8.864,4.155c-1.672-1.534-4.382-1.534-6.054,0
|
|
||||||
c-1.881,1.727-1.881,4.52,0,6.246L10,17l7.19-6.599C19.07,8.675,19.07,5.881,17.19,4.155z"/>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 662 B |
@ -1,12 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!-- Generator: Adobe Illustrator 18.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
||||||
<svg version="1.1" id="Infinity" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
||||||
viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
|
|
||||||
<path d="M15.902,5.6c-2.079,0-4.358,1.158-5.902,2.916C8.455,6.758,6.175,5.6,4.096,5.6C2.116,5.6,0,6.756,0,10
|
|
||||||
c0,3.244,2.116,4.398,4.096,4.4l0,0c2.079,0,4.358-1.158,5.903-2.916c1.544,1.758,3.823,2.916,5.902,2.916
|
|
||||||
C17.882,14.4,20,13.244,20,10C20,6.756,17.882,5.6,15.902,5.6z M4.096,12.641C2.584,12.641,1.8,11.752,1.8,10
|
|
||||||
c0-1.752,0.784-2.641,2.296-2.641c1.673,0,3.614,1.086,4.807,2.641C7.71,11.555,5.769,12.641,4.096,12.641z M15.902,12.641
|
|
||||||
c-1.673,0-3.614-1.086-4.807-2.641c1.192-1.555,3.135-2.641,4.807-2.641c1.512,0,2.298,0.889,2.298,2.641
|
|
||||||
C18.2,11.752,17.414,12.641,15.902,12.641z"/>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 1.0 KiB |
@ -1,12 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!-- Generator: Adobe Illustrator 18.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
||||||
<svg version="1.1" id="Info_circled" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
|
|
||||||
y="0px" viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
|
|
||||||
<path d="M10,0.4c-5.303,0-9.601,4.298-9.601,9.6c0,5.303,4.298,9.601,9.601,9.601c5.301,0,9.6-4.298,9.6-9.601
|
|
||||||
C19.6,4.698,15.301,0.4,10,0.4z M10.896,3.866c0.936,0,1.211,0.543,1.211,1.164c0,0.775-0.62,1.492-1.679,1.492
|
|
||||||
c-0.886,0-1.308-0.445-1.282-1.182C9.146,4.719,9.665,3.866,10.896,3.866z M8.498,15.75c-0.64,0-1.107-0.389-0.66-2.094l0.733-3.025
|
|
||||||
c0.127-0.484,0.148-0.678,0-0.678c-0.191,0-1.022,0.334-1.512,0.664L6.74,10.094c1.555-1.299,3.343-2.061,4.108-2.061
|
|
||||||
c0.64,0,0.746,0.756,0.427,1.92l-0.84,3.18c-0.149,0.562-0.085,0.756,0.064,0.756c0.192,0,0.82-0.232,1.438-0.719l0.362,0.486
|
|
||||||
C10.786,15.168,9.137,15.75,8.498,15.75z"/>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 1.1 KiB |
@ -1,3 +1,3 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="19" height="18" viewBox="0 0 19 18">
|
<svg xmlns="http://www.w3.org/2000/svg" width="23" height="23" viewBox="0 0 23 23" fill="none" stroke="currentColor" stroke-linejoin="round">
|
||||||
<path d="M1.30841121,11.0316983 C0.577754036,10.9880199 -9.23705556e-14,10.4359251 -9.23705556e-14,9.76127321 C-9.23705556e-14,9.08662131 0.577754036,8.53452653 1.30841121,8.49084813 L1.30841121,8.48060345 C2.83896758,8.48060345 3.34915304,7.90948276 3.34915304,6.21767241 L3.34915304,3.90086207 C3.34915304,1.18534483 4.84411507,0 8.27303592,0 L9.31713639,0 L9.31713639,2.00431034 L8.78322138,2.00431034 C6.825533,2.00431034 6.16110543,2.59698276 6.16110543,4.31034483 L6.16110543,7.12284483 C6.16110543,8.68534483 5.41362442,9.49353448 3.81187938,9.63362069 L3.81187938,9.93534483 C5.3661653,10.0646552 6.16110543,10.9482759 6.16110543,12.5646552 L6.16110543,15.700431 C6.16110543,17.3814655 6.84926256,17.9849138 8.78322138,17.9849138 L9.31713639,17.9849138 L9.31713639,20 L8.27303592,20 C4.85597985,20 3.34915304,18.7715517 3.34915304,15.9913793 L3.34915304,13.3189655 C3.34915304,11.6271552 2.85083236,11.0668103 1.30841121,11.0668103 L1.30841121,11.0316983 Z M9.25233645,11.0344828 C8.47810549,11.0344828 7.85046729,10.4644474 7.85046729,9.76127321 C7.85046729,9.05809899 8.47810549,8.48806366 9.25233645,8.48806366 C10.0265674,8.48806366 10.6542056,9.05809899 10.6542056,9.76127321 C10.6542056,10.4644474 10.0265674,11.0344828 9.25233645,11.0344828 Z M13.9252336,11.0344828 C13.1510027,11.0344828 12.5233645,10.4644474 12.5233645,9.76127321 C12.5233645,9.05809899 13.1510027,8.48806366 13.9252336,8.48806366 C14.6994646,8.48806366 15.3271028,9.05809899 15.3271028,9.76127321 C15.3271028,10.4644474 14.6994646,11.0344828 13.9252336,11.0344828 Z M18.5981308,11.0344828 C17.8238999,11.0344828 17.1962617,10.4644474 17.1962617,9.76127321 C17.1962617,9.05809899 17.8238999,8.48806366 18.5981308,8.48806366 C19.3723618,8.48806366 20,9.05809899 20,9.76127321 C20,10.4644474 19.3723618,11.0344828 18.5981308,11.0344828 Z" transform="rotate(-45 7.747 7.452)"/>
|
<path d="M310.070093,442.238038 C309.193305,442.185624 308.5,441.52311 308.5,440.713528 C308.5,439.903946 309.193305,439.241432 310.070093,439.189018 L310.070093,439.176724 C311.906761,439.176724 312.518984,438.491379 312.518984,436.461207 L312.518984,433.681034 C312.518984,430.422414 314.312938,429 318.427643,429 L319.680564,429 L319.680564,431.405172 L319.039866,431.405172 C316.69064,431.405172 315.893327,432.116379 315.893327,434.172414 L315.893327,437.547414 C315.893327,439.422414 314.996349,440.392241 313.074255,440.560345 L313.074255,440.922414 C314.939398,441.077586 315.893327,442.137931 315.893327,444.077586 L315.893327,447.840517 C315.893327,449.857759 316.719115,450.581897 319.039866,450.581897 L319.680564,450.581897 L319.680564,453 L318.427643,453 C314.327176,453 312.518984,451.525862 312.518984,448.189655 L312.518984,444.982759 C312.518984,442.952586 311.920999,442.280172 310.070093,442.280172 L310.070093,442.238038 Z M319.602804,442.241379 C318.673727,442.241379 317.920561,441.557337 317.920561,440.713528 C317.920561,439.869719 318.673727,439.185676 319.602804,439.185676 C320.531881,439.185676 321.285047,439.869719 321.285047,440.713528 C321.285047,441.557337 320.531881,442.241379 319.602804,442.241379 Z M325.21028,442.241379 C324.281203,442.241379 323.528037,441.557337 323.528037,440.713528 C323.528037,439.869719 324.281203,439.185676 325.21028,439.185676 C326.139358,439.185676 326.892523,439.869719 326.892523,440.713528 C326.892523,441.557337 326.139358,442.241379 325.21028,442.241379 Z M330.817757,442.241379 C329.88868,442.241379 329.135514,441.557337 329.135514,440.713528 C329.135514,439.869719 329.88868,439.185676 330.817757,439.185676 C331.746834,439.185676 332.5,439.869719 332.5,440.713528 C332.5,441.557337 331.746834,442.241379 330.817757,442.241379 Z" transform="rotate(-45 -353.263 596.082)"/>
|
||||||
</svg>
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 2.0 KiB |
@ -1,16 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!-- Generator: Adobe Illustrator 18.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
||||||
<svg version="1.1" id="Link" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
||||||
viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
|
|
||||||
<path d="M7.859,14.691l-0.81,0.805c-0.701,0.695-1.843,0.695-2.545,0c-0.336-0.334-0.521-0.779-0.521-1.252
|
|
||||||
c0-0.473,0.186-0.916,0.521-1.252l2.98-2.955c0.617-0.613,1.779-1.515,2.626-0.675c0.389,0.386,1.016,0.384,1.403-0.005
|
|
||||||
c0.385-0.389,0.383-1.017-0.006-1.402C10.069,6.527,7.941,6.791,6.088,8.63l-2.98,2.956C2.393,12.295,2,13.24,2,14.244
|
|
||||||
c0,1.006,0.394,1.949,1.108,2.658c0.736,0.73,1.702,1.096,2.669,1.096c0.967,0,1.934-0.365,2.669-1.096l0.811-0.805
|
|
||||||
c0.389-0.385,0.391-1.012,0.005-1.4C8.875,14.309,8.248,14.307,7.859,14.691z M16.891,3.207c-1.547-1.534-3.709-1.617-5.139-0.197
|
|
||||||
l-1.009,1.002c-0.389,0.386-0.392,1.013-0.006,1.401c0.386,0.389,1.013,0.391,1.402,0.005l1.01-1.001
|
|
||||||
c0.74-0.736,1.711-0.431,2.346,0.197c0.336,0.335,0.522,0.779,0.522,1.252s-0.186,0.917-0.522,1.251l-3.18,3.154
|
|
||||||
c-1.454,1.441-2.136,0.766-2.427,0.477c-0.389-0.386-1.016-0.383-1.401,0.005c-0.386,0.389-0.384,1.017,0.005,1.401
|
|
||||||
c0.668,0.662,1.43,0.99,2.228,0.99c0.977,0,2.01-0.492,2.993-1.467l3.18-3.153C17.605,7.814,18,6.87,18,5.866
|
|
||||||
C18,4.861,17.605,3.917,16.891,3.207z"/>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 1.5 KiB |
@ -1,11 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!-- Generator: Adobe Illustrator 18.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
||||||
<svg version="1.1" id="Magnifying_glass" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
|
|
||||||
y="0px" viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
|
|
||||||
<path d="M17.545,15.467l-3.779-3.779c0.57-0.935,0.898-2.035,0.898-3.21c0-3.417-2.961-6.377-6.378-6.377
|
|
||||||
C4.869,2.1,2.1,4.87,2.1,8.287c0,3.416,2.961,6.377,6.377,6.377c1.137,0,2.2-0.309,3.115-0.844l3.799,3.801
|
|
||||||
c0.372,0.371,0.975,0.371,1.346,0l0.943-0.943C18.051,16.307,17.916,15.838,17.545,15.467z M4.004,8.287
|
|
||||||
c0-2.366,1.917-4.283,4.282-4.283c2.366,0,4.474,2.107,4.474,4.474c0,2.365-1.918,4.283-4.283,4.283
|
|
||||||
C6.111,12.76,4.004,10.652,4.004,8.287z"/>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 915 B |
@ -1,3 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="17" viewBox="0 0 18 17">
|
|
||||||
<path d="M1057.35991,1345.6935 C1052.91908,1345.6935 1049.32216,1342.19489 1049.32216,1337.88132 C1049.32216,1336.46068 1049.74141,1335.14652 1050.42369,1334 C1046.72047,1335.03741 1044,1338.31568 1044,1342.24655 C1044,1347.00713 1047.97006,1350.86789 1052.86864,1350.86789 C1056.91247,1350.86789 1060.28811,1348.22007 1061.35547,1344.62446 C1060.17313,1345.28549 1058.82157,1345.6935 1057.35991,1345.6935 Z" transform="translate(-1044 -1334)"/>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 539 B |
@ -1,3 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
|
||||||
<path d="M12,24 C18.617,24 24,18.617 24,12 C24,5.384 18.617,0 12,0 C5.383,0 0,5.384 0,12 C0,18.617 5.383,24 12,24 Z M7,7.5 C7,7.224 7.224,7 7.5,7 L10.5,7 C10.776,7 11,7.224 11,7.5 L11,16.5 C11,16.776 10.776,17 10.5,17 L7.5,17 C7.224,17 7,16.776 7,16.5 L7,7.5 Z M13,16.5 L13,7.5 C13,7.224 13.224,7 13.5,7 L16.5,7 C16.776,7 17,7.224 17,7.5 L17,16.5 C17,16.776 16.776,17 16.5,17 L13.5,17 C13.224,17 13,16.776 13,16.5 Z"/>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 512 B |
@ -1,3 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
|
||||||
<path d="M44,0 C50.627,0 56,5.373 56,12 C56,18.627 50.627,24 44,24 C37.373,24 32,18.627 32,12 C32,5.373 37.373,0 44,0 Z M40,18 L52,12 L40,6 L40,18 Z" transform="translate(-32)"/>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 272 B |
@ -1,9 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!-- Generator: Adobe Illustrator 18.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
||||||
<svg version="1.1" id="RSS" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
||||||
viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
|
|
||||||
<path d="M2.4,2.4v2.367c7.086,0,12.83,5.746,12.83,12.832h2.369C17.599,9.205,10.794,2.4,2.4,2.4z M2.4,7.137v2.369
|
|
||||||
c4.469,0,8.093,3.623,8.093,8.094h2.368C12.861,11.822,8.177,7.137,2.4,7.137z M4.669,13.059c-1.254,0-2.27,1.018-2.27,2.271
|
|
||||||
s1.016,2.27,2.27,2.27s2.269-1.016,2.269-2.27S5.923,13.059,4.669,13.059z"/>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 760 B |
@ -1,13 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
||||||
<svg version="1.1" id="Twitter" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
||||||
viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
|
|
||||||
<path d="M17.316,6.246c0.008,0.162,0.011,0.326,0.011,0.488c0,4.99-3.797,10.742-10.74,10.742c-2.133,0-4.116-0.625-5.787-1.697
|
|
||||||
c0.296,0.035,0.596,0.053,0.9,0.053c1.77,0,3.397-0.604,4.688-1.615c-1.651-0.031-3.046-1.121-3.526-2.621
|
|
||||||
c0.23,0.043,0.467,0.066,0.71,0.066c0.345,0,0.679-0.045,0.995-0.131c-1.727-0.348-3.028-1.873-3.028-3.703c0-0.016,0-0.031,0-0.047
|
|
||||||
c0.509,0.283,1.092,0.453,1.71,0.473c-1.013-0.678-1.68-1.832-1.68-3.143c0-0.691,0.186-1.34,0.512-1.898
|
|
||||||
C3.942,5.498,6.725,7,9.862,7.158C9.798,6.881,9.765,6.594,9.765,6.297c0-2.084,1.689-3.773,3.774-3.773
|
|
||||||
c1.086,0,2.067,0.457,2.756,1.191c0.859-0.17,1.667-0.484,2.397-0.916c-0.282,0.881-0.881,1.621-1.66,2.088
|
|
||||||
c0.764-0.092,1.49-0.293,2.168-0.594C18.694,5.051,18.054,5.715,17.316,6.246z"/>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 1.2 KiB |
@ -78,16 +78,6 @@ a.btn {
|
|||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
// grid buttons
|
|
||||||
&.col2,
|
|
||||||
&.col3 {
|
|
||||||
margin-bottom: $spacer / 2;
|
|
||||||
|
|
||||||
@media (min-width: $screen-sm) {
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
span {
|
span {
|
||||||
font-size: $font-size-mini;
|
font-size: $font-size-mini;
|
||||||
color: $text-color-light;
|
color: $text-color-light;
|
||||||
@ -161,39 +151,6 @@ a.btn-primary {
|
|||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Close button
|
|
||||||
/////////////////////////////////////
|
|
||||||
|
|
||||||
.close {
|
|
||||||
text-align: center;
|
|
||||||
display: block;
|
|
||||||
color: lighten($brand-grey-light, 50%);
|
|
||||||
line-height: 1;
|
|
||||||
font-size: $font-size-large;
|
|
||||||
padding: 3px;
|
|
||||||
cursor: pointer;
|
|
||||||
|
|
||||||
&button {
|
|
||||||
cursor: pointer;
|
|
||||||
background: transparent;
|
|
||||||
border: 0;
|
|
||||||
-webkit-appearance: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:hover,
|
|
||||||
&:focus {
|
|
||||||
color: lighten($brand-grey-light, 20%);
|
|
||||||
cursor: pointer;
|
|
||||||
outline: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:active {
|
|
||||||
background: none;
|
|
||||||
color: $brand-grey-light;
|
|
||||||
transition: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// some helper classes for old content
|
// some helper classes for old content
|
||||||
/////////////////////////////////////
|
/////////////////////////////////////
|
||||||
|
|
||||||
@ -235,14 +192,15 @@ a.btn-primary {
|
|||||||
&[class*='icon-'] {
|
&[class*='icon-'] {
|
||||||
&::before {
|
&::before {
|
||||||
content: '';
|
content: '';
|
||||||
width: $font-size-large;
|
width: 20px;
|
||||||
height: $font-size-large;
|
height: 20px;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
margin-right: 0.3rem;
|
margin-right: 0.3rem;
|
||||||
margin-bottom: -0.25rem;
|
margin-bottom: -0.2rem;
|
||||||
opacity: 0.75;
|
opacity: 0.75;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-position: left center;
|
background-position: center center;
|
||||||
|
background-size: 100%;
|
||||||
|
|
||||||
.dark &,
|
.dark &,
|
||||||
:global(.dark) & {
|
:global(.dark) & {
|
||||||
@ -262,18 +220,18 @@ a.btn-primary {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.icon-download::before {
|
.icon-download::before {
|
||||||
background-image: url('../images/arrow-with-circle-down.svg');
|
background-image: url('../../node_modules/feather-icons/dist/icons/arrow-down-circle.svg');
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-heart::before {
|
.icon-heart::before {
|
||||||
background-image: url('../images/heart.svg');
|
background-image: url('../../node_modules/feather-icons/dist/icons/heart.svg');
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-github::before {
|
.icon-github::before {
|
||||||
background-image: url('../images/github.svg');
|
background-image: url('../../node_modules/feather-icons/dist/icons/github.svg');
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-eye::before {
|
.icon-compass::before {
|
||||||
background-image: url('../images/eye.svg');
|
background-image: url('../../node_modules/feather-icons/dist/icons/compass.svg');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -162,6 +162,10 @@ h6 {
|
|||||||
-moz-osx-font-smoothing: grayscale;
|
-moz-osx-font-smoothing: grayscale;
|
||||||
transition: color 0.2s $easing;
|
transition: color 0.2s $easing;
|
||||||
|
|
||||||
|
.wf-loading & {
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
// stylelint-disable no-descending-specificity
|
// stylelint-disable no-descending-specificity
|
||||||
&,
|
&,
|
||||||
a {
|
a {
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.actionTitle {
|
.actionTitle {
|
||||||
font-size: $font-size-base;
|
font-size: $font-size-large;
|
||||||
color: $text-color;
|
color: $text-color;
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
margin-bottom: $spacer / 4;
|
margin-bottom: $spacer / 4;
|
||||||
@ -46,8 +46,8 @@
|
|||||||
margin: 0;
|
margin: 0;
|
||||||
padding-top: $spacer;
|
padding-top: $spacer;
|
||||||
padding-bottom: $spacer;
|
padding-bottom: $spacer;
|
||||||
padding-left: $spacer * 2;
|
padding-left: $spacer * $line-height;
|
||||||
padding-right: $spacer;
|
padding-right: $spacer / 2;
|
||||||
position: relative;
|
position: relative;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
border-bottom: 1px dashed rgba($brand-grey-light, 0.3);
|
border-bottom: 1px dashed rgba($brand-grey-light, 0.3);
|
||||||
@ -86,9 +86,11 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
svg {
|
svg {
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: $spacer;
|
left: $spacer / $line-height;
|
||||||
top: $spacer;
|
top: $spacer / 1.05;
|
||||||
fill: $brand-grey-light;
|
stroke: $brand-grey-light;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,8 @@
|
|||||||
import React, { useState } from 'react'
|
import React, { useState } from 'react'
|
||||||
import ModalThanks from '../../components/organisms/ModalThanks'
|
import ModalThanks from '../../components/organisms/ModalThanks'
|
||||||
import styles from './PostActions.module.scss'
|
|
||||||
|
|
||||||
import { ReactComponent as Twitter } from '../../images/twitter.svg'
|
|
||||||
import { ReactComponent as Bitcoin } from '../../images/bitcoin.svg'
|
|
||||||
import { ReactComponent as GitHub } from '../../images/github.svg'
|
|
||||||
import { useSiteMetadata } from '../../hooks/use-site-metadata'
|
import { useSiteMetadata } from '../../hooks/use-site-metadata'
|
||||||
|
import styles from './PostActions.module.scss'
|
||||||
|
import Icon from '../../components/atoms/Icon'
|
||||||
|
|
||||||
interface ActionProps {
|
interface ActionProps {
|
||||||
title: string
|
title: string
|
||||||
@ -14,19 +11,19 @@ interface ActionProps {
|
|||||||
onClick?(): void
|
onClick?(): void
|
||||||
}
|
}
|
||||||
|
|
||||||
const Icon = ({ text }: { text: string }) =>
|
const IconComp = ({ text }: { text: string }) =>
|
||||||
text.includes('GitHub') ? (
|
text.includes('GitHub') ? (
|
||||||
<GitHub />
|
<Icon name="GitHub" />
|
||||||
) : text.includes('Bitcoin') ? (
|
) : text.includes('Bitcoin') ? (
|
||||||
<Bitcoin />
|
<Icon name="Bitcoin" />
|
||||||
) : (
|
) : (
|
||||||
<Twitter />
|
<Icon name="Twitter" />
|
||||||
)
|
)
|
||||||
|
|
||||||
const Action = ({ title, text, url, onClick }: ActionProps) => {
|
const Action = ({ title, text, url, onClick }: ActionProps) => {
|
||||||
return (
|
return (
|
||||||
<a className={styles.action} href={url} onClick={onClick}>
|
<a className={styles.action} href={url} onClick={onClick}>
|
||||||
<Icon text={text} />
|
<IconComp text={text} />
|
||||||
<h1 className={styles.actionTitle}>{title}</h1>
|
<h1 className={styles.actionTitle}>{title}</h1>
|
||||||
<p className={styles.actionText}>{text}</p>
|
<p className={styles.actionText}>{text}</p>
|
||||||
</a>
|
</a>
|
||||||
@ -57,7 +54,7 @@ export default function PostActions({
|
|||||||
/>
|
/>
|
||||||
<Action
|
<Action
|
||||||
title="Found something useful?"
|
title="Found something useful?"
|
||||||
text="Say thanks with Bitcoins or Ether"
|
text="Say thanks with Bitcoin or Ether"
|
||||||
onClick={toggleModal}
|
onClick={toggleModal}
|
||||||
/>
|
/>
|
||||||
<Action
|
<Action
|
||||||
|
@ -6,18 +6,23 @@
|
|||||||
margin-top: $spacer * 2;
|
margin-top: $spacer * 2;
|
||||||
|
|
||||||
a {
|
a {
|
||||||
|
margin: 0;
|
||||||
|
|
||||||
svg {
|
svg {
|
||||||
width: $font-size-small;
|
width: 1em;
|
||||||
height: $font-size-small;
|
height: 1em;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
fill: $text-color-light;
|
stroke: $text-color-light;
|
||||||
|
margin-left: $spacer / 8;
|
||||||
|
position: relative;
|
||||||
|
top: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:last-child {
|
&:last-child {
|
||||||
svg {
|
svg {
|
||||||
width: $font-size-base;
|
width: $font-size-base;
|
||||||
height: $font-size-base;
|
height: $font-size-base;
|
||||||
fill: $brand-cyan;
|
stroke: $brand-cyan;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
import { Link } from 'gatsby'
|
import { Link } from 'gatsby'
|
||||||
import { ReactComponent as Forward } from '../../images/forward.svg'
|
|
||||||
import { ReactComponent as Infinity } from '../../images/infinity.svg'
|
|
||||||
import stylesPostMore from './PostMore.module.scss'
|
import stylesPostMore from './PostMore.module.scss'
|
||||||
import styles from './PostLinkActions.module.scss'
|
import styles from './PostLinkActions.module.scss'
|
||||||
|
import Icon from '../../components/atoms/Icon'
|
||||||
|
|
||||||
const PostLinkActions = ({
|
const PostLinkActions = ({
|
||||||
linkurl,
|
linkurl,
|
||||||
@ -12,14 +11,14 @@ const PostLinkActions = ({
|
|||||||
linkurl?: string
|
linkurl?: string
|
||||||
slug: string
|
slug: string
|
||||||
}) => (
|
}) => (
|
||||||
<div className={styles.postLinkActions}>
|
<aside className={styles.postLinkActions}>
|
||||||
<a className={stylesPostMore.postMore} href={linkurl}>
|
<a className={stylesPostMore.postMore} href={linkurl}>
|
||||||
Go to source <Forward />
|
Go to source <Icon name="ExternalLink" />
|
||||||
</a>
|
</a>
|
||||||
<Link to={slug} rel="tooltip" title="Permalink">
|
<Link to={slug} rel="tooltip" title="Permalink">
|
||||||
<Infinity />
|
<Icon name="Link" />
|
||||||
</Link>
|
</Link>
|
||||||
</div>
|
</aside>
|
||||||
)
|
)
|
||||||
|
|
||||||
export default PostLinkActions
|
export default PostLinkActions
|
||||||
|
@ -12,12 +12,12 @@
|
|||||||
svg {
|
svg {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
top: 0.2rem;
|
top: 0.25rem;
|
||||||
position: relative;
|
position: relative;
|
||||||
width: 1.1rem;
|
stroke: $text-color-light;
|
||||||
height: 1.1rem;
|
|
||||||
fill: $text-color-light;
|
|
||||||
transition: 0.2s ease-out;
|
transition: 0.2s ease-out;
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover,
|
&:hover,
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
import { Link } from 'gatsby'
|
import { Link } from 'gatsby'
|
||||||
|
import Icon from '../../components/atoms/Icon'
|
||||||
import styles from './PostMore.module.scss'
|
import styles from './PostMore.module.scss'
|
||||||
import { ReactComponent as Caret } from '../../images/chevron-right.svg'
|
|
||||||
|
|
||||||
const PostMore = ({ to, children }: { to: string; children: string }) => (
|
const PostMore = ({ to, children }: { to: string; children: string }) => (
|
||||||
<Link className={styles.postMore} to={to}>
|
<Link className={styles.postMore} to={to}>
|
||||||
{children}
|
{children}
|
||||||
<Caret />
|
<Icon name="ChevronRight" />
|
||||||
</Link>
|
</Link>
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -16,8 +16,8 @@
|
|||||||
width: $font-size-base;
|
width: $font-size-base;
|
||||||
height: $font-size-base;
|
height: $font-size-base;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
fill: $text-color-light;
|
stroke: $text-color-light;
|
||||||
vertical-align: baseline;
|
margin-bottom: -0.1rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
import { Link } from 'gatsby'
|
import { Link } from 'gatsby'
|
||||||
import { ReactComponent as Forward } from '../../images/forward.svg'
|
|
||||||
import styles from './PostTitle.module.scss'
|
import styles from './PostTitle.module.scss'
|
||||||
|
import Icon from '../../components/atoms/Icon'
|
||||||
|
|
||||||
export default function PostTitle({
|
export default function PostTitle({
|
||||||
type,
|
type,
|
||||||
@ -22,7 +22,7 @@ export default function PostTitle({
|
|||||||
className={[styles.hentry__title, styles.hentry__title__link].join(' ')}
|
className={[styles.hentry__title, styles.hentry__title__link].join(' ')}
|
||||||
>
|
>
|
||||||
<a href={linkurl} title={`Go to source: ${linkurl}`}>
|
<a href={linkurl} title={`Go to source: ${linkurl}`}>
|
||||||
{title} <Forward />
|
{title} <Icon name="ExternalLink" />
|
||||||
</a>
|
</a>
|
||||||
</h1>
|
</h1>
|
||||||
<div className={styles.linkurl}>{linkHostname}</div>
|
<div className={styles.linkurl}>{linkHostname}</div>
|
||||||
|
@ -12,8 +12,8 @@
|
|||||||
grid-template-columns: 1fr 1fr;
|
grid-template-columns: 1fr 1fr;
|
||||||
|
|
||||||
svg {
|
svg {
|
||||||
fill: $brand-grey-light;
|
stroke: $brand-grey-light;
|
||||||
margin-bottom: -0.1rem;
|
margin-top: -0.05rem;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 0.1rem;
|
left: 0.1rem;
|
||||||
top: $spacer * 1.1;
|
top: $spacer * 1.1;
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
import { Link } from 'gatsby'
|
import { Link } from 'gatsby'
|
||||||
|
import Icon from '../../components/atoms/Icon'
|
||||||
import styles from './PrevNext.module.scss'
|
import styles from './PrevNext.module.scss'
|
||||||
import { ReactComponent as Right } from '../../images/chevron-right.svg'
|
|
||||||
import { ReactComponent as Left } from '../../images/chevron-left.svg'
|
|
||||||
|
|
||||||
interface Node {
|
interface Node {
|
||||||
title: string
|
title: string
|
||||||
@ -19,8 +18,8 @@ const PrevNext = ({ prev, next }: PrevNextProps) => (
|
|||||||
<div>
|
<div>
|
||||||
{prev && (
|
{prev && (
|
||||||
<Link to={prev.slug}>
|
<Link to={prev.slug}>
|
||||||
<Left />
|
<Icon name="ChevronLeft" />
|
||||||
<p className={styles.label}>Older</p>
|
<p className={styles.label}>Newer</p>
|
||||||
<h3 className={styles.title}>{prev.title}</h3>
|
<h3 className={styles.title}>{prev.title}</h3>
|
||||||
</Link>
|
</Link>
|
||||||
)}
|
)}
|
||||||
@ -28,9 +27,9 @@ const PrevNext = ({ prev, next }: PrevNextProps) => (
|
|||||||
<div>
|
<div>
|
||||||
{next && (
|
{next && (
|
||||||
<Link to={next.slug}>
|
<Link to={next.slug}>
|
||||||
<p className={styles.label}>Newer</p>
|
<p className={styles.label}>Older</p>
|
||||||
<h3 className={styles.title}>{next.title}</h3>
|
<h3 className={styles.title}>{next.title}</h3>
|
||||||
<Right />
|
<Icon name="ChevronRight" />
|
||||||
</Link>
|
</Link>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
@ -66,9 +66,7 @@ export default function Post({
|
|||||||
<PostMeta post={post} />
|
<PostMeta post={post} />
|
||||||
</article>
|
</article>
|
||||||
|
|
||||||
{(type === 'post' || type === 'photo') && (
|
|
||||||
<RelatedPosts photos={type === 'photo'} tags={tags} />
|
<RelatedPosts photos={type === 'photo'} tags={tags} />
|
||||||
)}
|
|
||||||
|
|
||||||
<PrevNext prev={prev} next={next} />
|
<PrevNext prev={prev} next={next} />
|
||||||
</Layout>
|
</Layout>
|
||||||
|