From 2fcbe0c482fef9012b586980f7cf8904d1e2ba92 Mon Sep 17 00:00:00 2001 From: Tejash Patel Date: Fri, 11 Sep 2020 09:10:03 -0400 Subject: [PATCH 01/16] add default profile icon --- src/images/DefaultProfileIcon.png | Bin 0 -> 88620 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/images/DefaultProfileIcon.png diff --git a/src/images/DefaultProfileIcon.png b/src/images/DefaultProfileIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..a6cb5b954ae8b43cb80f316f907f6f31f7139ac9 GIT binary patch literal 88620 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 Date: Fri, 11 Sep 2020 09:11:07 -0400 Subject: [PATCH 02/16] remove duplicate header component --- src/components/headerSmall.css | 81 ---------------------------------- src/components/headerSmall.tsx | 21 --------- 2 files changed, 102 deletions(-) delete mode 100644 src/components/headerSmall.css delete mode 100644 src/components/headerSmall.tsx diff --git a/src/components/headerSmall.css b/src/components/headerSmall.css deleted file mode 100644 index 4034ca1..0000000 --- a/src/components/headerSmall.css +++ /dev/null @@ -1,81 +0,0 @@ -.container { - width: 100%; - padding-right: 15px; - padding-left: 15px; - margin-right: auto; - margin-left: auto; -} - -@media (min-width: 576px) { - .container { - max-width: 540px; - } - .header-small { - background-size: auto; - } -} - -@media (min-width: 768px) { - .container { - max-width: 720px; - } - .header-small { - background-size: auto; - } -} - -@media (min-width: 992px) { - .container { - max-width: 960px; - } - .header-small { - background-size: auto; - } -} - -@media (min-width: 1200px) { - .container { - max-width: 960px; - } - .header-small { - background-size: 100% 90%; - } -} - -.jumbotron { - padding: 2rem 1rem; - margin-bottom: 2rem; - background-color: #e9ecef; - border-radius: 0.3rem; -} - -.jumbotron-fluid { - padding-right: 0; - padding-left: 0; - border-radius: 0; -} - -.header-small { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - - width: 100%; - height: calc(50vh - 65px); - min-height: 480px; - - background: bottom / cover no-repeat url('../images/bkg-small.svg'); -} - -.header-small-title { - padding-bottom: 100px; - margin: 0; - font-size: 80px; - line-height: 117px; - color: #ffffff; -} - -.header-small-subtitle { - font-weight: normal; -} diff --git a/src/components/headerSmall.tsx b/src/components/headerSmall.tsx deleted file mode 100644 index 1c41158..0000000 --- a/src/components/headerSmall.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import * as React from 'react'; -import './headerSmall.css'; - -type HeaderSmallProps = { - title: string, - subtitle: string -} - -const HeaderSmall = ({ title, subtitle }: HeaderSmallProps) => { - return ( -
-
-
-

{title} < span className="header-small-subtitle" > {subtitle}

-
-
-
- ) -} - -export default HeaderSmall; \ No newline at end of file From d2571435cd3116305e5c88f52b4722ac63be53e4 Mon Sep 17 00:00:00 2001 From: Tejash Patel Date: Fri, 11 Sep 2020 09:11:46 -0400 Subject: [PATCH 03/16] remove separate css files --- src/components/blog-card.css | 35 ------------------------- src/pages/blog.css | 50 ------------------------------------ 2 files changed, 85 deletions(-) delete mode 100644 src/components/blog-card.css delete mode 100644 src/pages/blog.css diff --git a/src/components/blog-card.css b/src/components/blog-card.css deleted file mode 100644 index f8633d6..0000000 --- a/src/components/blog-card.css +++ /dev/null @@ -1,35 +0,0 @@ -.card { - margin: 15px; - position: relative; - display: flex; - flex-direction: column; - min-width: 0; - word-wrap: break-word; - background-color: var(--white); - background-clip: border-box; - border-radius: 0.25rem; -} - -.card-body { - flex: 1 1 auto; - min-height: 1px; - padding: 1.25rem; -} - -.card-img-top { - width: 100%; - border-top-left-radius: calc(0.25rem - 1px); - border-top-right-radius: calc(0.25rem - 1px); -} - -.card a { - color: var(--black); -} - -.tag { - color: var(--purple2); -} - -.date-reading-time { - color: var(--midgrey); -} \ No newline at end of file diff --git a/src/pages/blog.css b/src/pages/blog.css deleted file mode 100644 index c7ab141..0000000 --- a/src/pages/blog.css +++ /dev/null @@ -1,50 +0,0 @@ -a:hover { - text-decoration: none !important; -} - -.container { - width: 100%; - padding-right: 15px; - padding-left: 15px; - margin-right: auto; - margin-left: auto; -} - -.row { - display: flex; - flex-wrap: wrap; - margin-right: -15px; - margin-left: -15px; -} - -@media (min-width: 576px) { - .container { - max-width: 540px; - } -} - -@media (min-width: 768px) { - .container { - max-width: 720px; - } - .col-md-4 { - flex: 0 0 33.333333%; - max-width: 33.333333%; - } - .col-md-6 { - flex: 0 0 50%; - max-width: 50%; - } -} - -@media (min-width: 992px) { - .container { - max-width: 960px; - } -} - -.col-md-6 { - position: relative; - width: 100%; - min-height: 1px; -} \ No newline at end of file From 1ae770c9d4ecf5652e81d0d36fca5dfa167da404 Mon Sep 17 00:00:00 2001 From: Tejash Patel Date: Fri, 11 Sep 2020 09:13:57 -0400 Subject: [PATCH 04/16] update blog cards to use styled components also rename the file to use camel case --- src/components/blog-card.tsx | 116 -------------------------- src/components/blogCard.tsx | 152 +++++++++++++++++++++++++++++++++++ 2 files changed, 152 insertions(+), 116 deletions(-) delete mode 100644 src/components/blog-card.tsx create mode 100644 src/components/blogCard.tsx diff --git a/src/components/blog-card.tsx b/src/components/blog-card.tsx deleted file mode 100644 index b76f5de..0000000 --- a/src/components/blog-card.tsx +++ /dev/null @@ -1,116 +0,0 @@ -import React from 'react' -import { Link } from 'gatsby' - -import './blog-card.css' -import FeatureImage from 'images/default-feature-image.jpg' - -type BlogCardProps = { - title: string - reading_time: number - published_at: Date - excerpt: string - feature_image: string - slug: String - tags: Array - primary_author_name: String - authors: Array -} - -const BlogCard = ({ - title, - reading_time, - published_at, - excerpt, - feature_image, - slug, - tags, - authors, - primary_author_name -}: BlogCardProps) => { - console.log(feature_image) - const months = [ - 'JAN', - 'FEB', - 'MAR', - 'APR', - 'MAY', - 'JUN', - 'JULY', - 'AUG', - 'SEPT', - 'OCT', - 'NOV', - 'DEC' - ] - - const month = new Date(published_at).getMonth() - const formatted_published_at = - new Date(published_at).getDate() + - ' ' + - months[month] + - ' ' + - new Date(published_at).getFullYear() - return ( -
- - img -
- {tags.map((tag: any) => ( - - {tag.name.toUpperCase()} - - ))} -

{title}

-

{excerpt}

-
-
    - {authors.map((author: any) => ( -
  • -
    - Ghost -
    -
    -

    {author.name}

    -
    -
    -
    -
    - Ghost -
    -
  • - ))} -
- -
- {/*

{primary_author_name}

*/} -

{primary_author_name}

- -
- - - {reading_time} min read - -
-
-
-
- -
- ) -} - -export default BlogCard diff --git a/src/components/blogCard.tsx b/src/components/blogCard.tsx new file mode 100644 index 0000000..bacc4ed --- /dev/null +++ b/src/components/blogCard.tsx @@ -0,0 +1,152 @@ +import React from 'react' +import { Link } from 'gatsby' +import styled from 'styled-components' + +import FeatureImage from 'images/default-feature-image.jpg' +import ProfileIcon from 'images/DefaultProfileIcon.png' + +const Card = styled.div` + margin: 15px; + position: relative; + display: flex; + flex-direction: column; + min-width: 0; + word-wrap: break-word; + background-color: var(--white); + background-clip: border-box; + border-radius: 0.25rem; +` + +const CardBody = styled.div` + flex: 1 1 auto; + min-height: 1px; + padding: 1.25rem; +` + +const CardImgTop = styled.img` + width: 100%; + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +` + +const Tag = styled.span` + color: var(--purple2); +` + +const Small = styled.div` + font-size: 62.5%; +` + +type BlogCardProps = { + title: string + reading_time: number + published_at: Date + excerpt: string + feature_image: string + slug: String + tags: Array + primary_author_name: String + authors: Array +} + +const BlogCard = ({ + title, + reading_time, + published_at, + excerpt, + feature_image, + slug, + tags, + authors, + primary_author_name +}: BlogCardProps) => { + console.log(feature_image) + const months = [ + 'JAN', + 'FEB', + 'MAR', + 'APR', + 'MAY', + 'JUN', + 'JULY', + 'AUG', + 'SEPT', + 'OCT', + 'NOV', + 'DEC' + ] + + const month = new Date(published_at).getMonth() + const formatted_published_at = + new Date(published_at).getDate() + + ' ' + + months[month] + + ' ' + + new Date(published_at).getFullYear() + return ( + + + + + {tags.map((tag: any) => ( + {tag.name.toUpperCase()} + ))} +

{title}

+

{excerpt}

+ +
+
    + {authors.map((author: any) => ( +
  • +
    + Ghost +
    +
    +

    {author.name}

    +
    +
    +
    +
    + Ghost +
    +
  • + ))} +
+ +
+ {/*

{primary_author_name}

*/} +

{primary_author_name}

+ +
+ + + {reading_time} min read + +
+
+
+
+
+ +
+ ) +} + +export default BlogCard From ae1df661a24b2ce2a84e888d559b53bb3c902df2 Mon Sep 17 00:00:00 2001 From: Tejash Patel Date: Fri, 11 Sep 2020 09:14:21 -0400 Subject: [PATCH 05/16] add blog card component for latest post --- src/components/blogCardFeatured.tsx | 177 ++++++++++++++++++++++++++++ 1 file changed, 177 insertions(+) create mode 100644 src/components/blogCardFeatured.tsx diff --git a/src/components/blogCardFeatured.tsx b/src/components/blogCardFeatured.tsx new file mode 100644 index 0000000..5032659 --- /dev/null +++ b/src/components/blogCardFeatured.tsx @@ -0,0 +1,177 @@ +import React from 'react' +import styled from 'styled-components' + +import FeatureImage from 'images/default-feature-image.jpg' +import ProfileIcon from 'images/DefaultProfileIcon.png' + +const Card = styled.div` + margin: 15px; + position: relative; + display: flex; + flex-direction: column; + min-width: 0; + word-wrap: break-word; + background-color: var(--white); + background-clip: border-box; + border-radius: 0.25rem; +` + +const CardBody = styled.div` + flex: 1 1 auto; + min-height: 1px; + padding: 1.25rem; +` + +const CardImgTop = styled.img` + width: 100%; + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +` + +const Tag = styled.span` + color: var(--purple2); +` + +const ColMd6 = styled.div` + position: relative; + width: 100%; + min-height: 1px; + + @media (min-width: 768px) { + flex: 0 0 50%; + max-width: 50%; + } +` + +const Row = styled.div` + display: flex; + flex-wrap: wrap; + margin-right: -15px; + margin-left: -15px; +` +const Small = styled.div` + font-size: 62.5%; +` + +type BlogCardProps = { + title: string + reading_time: number + published_at: Date + excerpt: string + feature_image: string + slug: String + tags: Array + primary_author_name: String + authors: Array +} + +const BlogCardFeatured = ({ + title, + reading_time, + published_at, + excerpt, + feature_image, + slug, + tags, + authors, + primary_author_name +}: BlogCardProps) => { + console.log(feature_image) + const months = [ + 'JAN', + 'FEB', + 'MAR', + 'APR', + 'MAY', + 'JUN', + 'JULY', + 'AUG', + 'SEPT', + 'OCT', + 'NOV', + 'DEC' + ] + + const month = new Date(published_at).getMonth() + const formatted_published_at = + new Date(published_at).getDate() + + ' ' + + months[month] + + ' ' + + new Date(published_at).getFullYear() + return ( + + + + + + + + {tags ? ( + tags.map((tag: any) => ( + + {tag.name.toUpperCase()} + + )) + ) : ( + {' '} + )} +

{title}

+

{excerpt}

+ +
+
    + {authors.map((author: any) => ( +
  • +
    + Ghost +
    +
    +

    {author.name}

    +
    +
    +
    +
    + Ghost +
    +
  • + ))} +
+ +
+

{primary_author_name}

+ +
+ + + {reading_time} min read + +
+
+
+
+
+
+
+
+ ) +} + +export default BlogCardFeatured From a31e3617d9dee3caea6b3492025b878cd62d0170 Mon Sep 17 00:00:00 2001 From: Tejash Patel Date: Fri, 11 Sep 2020 09:14:47 -0400 Subject: [PATCH 06/16] update header to include blog item --- src/components/header.tsx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/components/header.tsx b/src/components/header.tsx index 9afdcbf..11394dd 100644 --- a/src/components/header.tsx +++ b/src/components/header.tsx @@ -26,7 +26,7 @@ const StyledHeader = styled.header<{ flex-direction: column; width: 100vw; /* change 10rem to 20rem when adding the nav options back*/ - height: ${(props) => (props.isOpen ? '12rem' : '65px')}; + height: ${(props) => (props.isOpen ? '15rem' : '65px')}; justify-content: flex-start; align-items: center; @@ -143,7 +143,7 @@ const Header = (props: { fixed: boolean }) => { }} > About - + */} { }} > Blog - */} + @@ -179,7 +179,7 @@ const Header = (props: { fixed: boolean }) => { }} > About - + */} { }} > Blog - */} + ) From 72140d45dca7904d1480f95253ca57407088fdf1 Mon Sep 17 00:00:00 2001 From: Tejash Patel Date: Fri, 11 Sep 2020 09:15:18 -0400 Subject: [PATCH 07/16] use styled components --- src/pages/blog.tsx | 208 ++++++++++++++++++++------------------------- 1 file changed, 94 insertions(+), 114 deletions(-) diff --git a/src/pages/blog.tsx b/src/pages/blog.tsx index 9b85f9f..8b0afc7 100644 --- a/src/pages/blog.tsx +++ b/src/pages/blog.tsx @@ -2,127 +2,107 @@ import React from 'react' import { Link, graphql } from 'gatsby' import { PageLayout } from 'layouts' import { SEO } from 'components' +import styled from 'styled-components' -import './blog.css' -import BlogCard from 'components/blog-card' -import HeaderSmall from 'components/headerSmall' -import FeatureImage from 'images/default-feature-image.jpg' +import BlogCard from 'components/blogCard' +import BlogCardFeatured from 'components/blogCardFeatured' +import bkgUrl from 'images/bkg-small.svg' +import { LogoHeader } from 'components/logoHeader' export default ({ data }) => { const posts = data.allGhostPost.edges.map((edge) => edge.node) - const months = [ - 'JAN', - 'FEB', - 'MAR', - 'APR', - 'MAY', - 'JUN', - 'JULY', - 'AUG', - 'SEPT', - 'OCT', - 'NOV', - 'DEC' - ] - - const month = new Date(posts[0].published_at).getMonth() - const formatted_published_at = - new Date(posts[0].published_at).getDate() + - ' ' + - months[month] + - ' ' + - new Date(posts[0].published_at).getFullYear() + const SplashContainer = styled.div` + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + + width: 100%; + height: calc(40vh); + + background: bottom / cover no-repeat url(${bkgUrl}); + + @media only screen and (min-width: 700px) { + justify-content: flex-start; + } + ` + + const Container = styled.div` + width: 100%; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; + + @media (min-width: 576px) { + max-width: 540px; + } + @media (min-width: 768px) {} + max-width: 720px; + } + @media (min-width: 992px) { + max-width: 960px; +} +` + + const Row = styled.div` + display: flex; + flex-wrap: wrap; + margin-right: -15px; + margin-left: -15px; + ` + + const ColMd4 = styled.div` + @media (min-width: 768px) { + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + ` + + let text + + if (posts[0]) { + text = ( +
+ + + +
+ ) + } else { + text =

No posts are available

+ } return ( - -
-
- -
-
- img -
-
-
-
- {posts[0].tags ? ( - posts[0].tags.map((tag: any) => ( - - {tag.name.toUpperCase()} - - )) - ) : ( - - {' '} - - )} -

{posts[0].title}

-

{posts[0].excerpt}

-
-
    - {posts[0].authors.map((author: any) => ( -
  • -
    - Ghost -
    -
    -

    {author.name}

    -
    -
    -
    -
    - Ghost -
    -
  • - ))} -
- -
- {/*

{primary_author_name}

*/} -

- {posts[0].primary_author.name} -

- -
- - - {' '} - {posts[0].reading_time} min read - -
-
-
-
-
-
-
- -
- -
+ {/* */} + + + + + + {text} +
+ + {posts.slice(1).map((post: any) => ( -
+ { primary_author_name={post.primary_author.name} authors={post.authors} /> -
+ ))} -
-
+ +
) } From eae44f53209cb8f1deeadfe6d987a0c25c545c44 Mon Sep 17 00:00:00 2001 From: Tejash Patel Date: Fri, 11 Sep 2020 09:15:30 -0400 Subject: [PATCH 08/16] various css fixes --- src/layouts/postLayout.css | 182 ++++++++++++++++++------------------- src/layouts/postLayout.tsx | 39 ++++++-- 2 files changed, 121 insertions(+), 100 deletions(-) diff --git a/src/layouts/postLayout.css b/src/layouts/postLayout.css index d3d8ef6..d7bd905 100644 --- a/src/layouts/postLayout.css +++ b/src/layouts/postLayout.css @@ -24,6 +24,9 @@ production stylesheet in assets/built/screen.css 11. Site Footer */ +#article { + font-size: 62.5%; +} body { background: #fff; @@ -64,7 +67,7 @@ pre { .site-main h1 { line-height: 1.15; - font-size: 5rem; + font-size: 5em; font-weight: 600; } @@ -163,7 +166,7 @@ pre { z-index: 10; margin: 0 0 0 -2px; padding: 0; - font-size: 5.0rem; + font-size: 5.0em; line-height: 1em; font-weight: 600; } @@ -176,7 +179,7 @@ pre { z-index: 10; margin: 0; padding: 5px 0; - font-size: 2.1rem; + font-size: 2.1em; line-height: 1.4em; font-weight: 400; opacity: 0.8; @@ -198,12 +201,12 @@ pre { } .site-home-header .site-title { - font-size: 5.5rem; + font-size: 5.5em; text-align: center; } .site-home-header .site-description { - font-size: 2.2rem; + font-size: 2.2em; font-weight: 300; text-align: center; } @@ -247,10 +250,10 @@ pre { @media (max-width: 500px) { .site-home-header .site-title { - font-size: 4.2rem; + font-size: 4.2em; } .site-home-header .site-description { - font-size: 1.8rem; + font-size: 1.8em; } .site-archive-header .site-header-content { flex-direction: column; @@ -258,7 +261,7 @@ pre { min-height: unset; } .site-archive-header .site-title { - font-size: 4.2rem; + font-size: 4.2em; text-align: center; } .site-archive-header .no-image .site-header-content { @@ -286,7 +289,7 @@ pre { align-items: flex-start; overflow: hidden; height: 64px; - font-size: 1.3rem; + font-size: 1.3em; } .site-nav-left-wrapper { @@ -345,8 +348,8 @@ The knock-on effect of this is ugly browser-scroll bars at the bottom, so 80px o margin-right: 32px; padding: 12px 0; color: #fff; - font-size: 1.7rem; - line-height: 1.8rem; + font-size: 1.7em; + line-height: 1.8em; font-weight: bold; letter-spacing: -0.5px; text-transform: none; @@ -429,7 +432,7 @@ The knock-on effect of this is ugly browser-scroll bars at the bottom, so 80px o position: absolute; top: 9px; color: #fff; - font-size: 1.7rem; + font-size: 1.7em; font-weight: 400; text-transform: none; opacity: 0; @@ -496,16 +499,16 @@ The knock-on effect of this is ugly browser-scroll bars at the bottom, so 80px o } .social-link svg { - height: 1.8rem; + height: 1.8em; fill: #fff; } .social-link-fb svg { - height: 1.6rem; + height: 1.6em; } .social-link-wb svg { - height: 1.6rem; + height: 1.6em; } .social-link-wb svg path { @@ -513,7 +516,7 @@ The knock-on effect of this is ugly browser-scroll bars at the bottom, so 80px o } .social-link-rss svg { - height: 1.9rem; + height: 1.9em; } .subscribe-button { @@ -547,7 +550,7 @@ The knock-on effect of this is ugly browser-scroll bars at the bottom, so 80px o .rss-button svg { margin-bottom: 1px; - height: 2.1rem; + height: 2.1em; fill: #fff; } @@ -652,7 +655,7 @@ The knock-on effect of this is ugly browser-scroll bars at the bottom, so 80px o .post-card-primary-tag { margin: 0 0 0.2em; color: var(--blue); - font-size: 1.2rem; + font-size: 1.2em; font-weight: 500; letter-spacing: 0.2px; text-transform: uppercase; @@ -735,7 +738,7 @@ The knock-on effect of this is ugly browser-scroll bars at the bottom, so 80px o display: block; padding: 2px 8px; color: white; - font-size: 1.2rem; + font-size: 1.2em; letter-spacing: 0.2px; white-space: nowrap; background: var(--darkpurple); @@ -764,7 +767,7 @@ The knock-on effect of this is ugly browser-scroll bars at the bottom, so 80px o flex-direction: column; margin: 2px 0 0 6px; color: color(var(--midgrey) l(+10%)); - font-size: 1.2rem; + font-size: 1.2em; line-height: 1.4em; font-weight: 400; letter-spacing: 0.2px; @@ -781,7 +784,7 @@ The knock-on effect of this is ugly browser-scroll bars at the bottom, so 80px o } .post-card-byline-date { - font-size: 1.2rem; + font-size: 1.2em; } .post-card-byline-date .bull { @@ -795,7 +798,7 @@ The knock-on effect of this is ugly browser-scroll bars at the bottom, so 80px o flex-direction: column; margin-left: 5px; color: color(var(--midgrey) l(-10%)); - font-size: 1.3rem; + font-size: 1.3em; line-height: 1.4em; font-weight: 500; } @@ -852,7 +855,7 @@ make sure this only happens on large viewports / desktop-ish devices. } .post-card-large .post-card-title { margin-top: 0; - font-size: 3.2rem; + font-size: 3.2em; } .post-card-large .post-card-content-link { padding: 0 0 0 40px; @@ -862,7 +865,7 @@ make sure this only happens on large viewports / desktop-ish devices. } .post-card-large .post-card-excerpt p { margin-bottom: 1.5em; - font-size: 1.8rem; + font-size: 1.8em; line-height: 1.5em; } } @@ -886,10 +889,10 @@ make sure this only happens on large viewports / desktop-ish devices. @media (max-width: 500px) { .post-card-title { - font-size: 1.9rem; + font-size: 1.9em; } .post-card-excerpt { - font-size: 1.6rem; + font-size: 1.6em; } } @@ -915,7 +918,7 @@ make sure this only happens on large viewports / desktop-ish devices. justify-content: flex-start; align-items: center; color: var(--midgrey); - font-size: 1.3rem; + font-size: 1.3em; line-height: 1.4em; font-weight: 600; text-transform: uppercase; @@ -923,7 +926,7 @@ make sure this only happens on large viewports / desktop-ish devices. .post-full-meta-date { color: var(--midgrey); - font-size: 1.2rem; + font-size: 1.2em; font-weight: 400; } @@ -940,12 +943,6 @@ make sure this only happens on large viewports / desktop-ish devices. } } -@media (max-width: 500px) { - .post-full-header { - padding: 20px 0 35px; - } -} - .post-full-title { margin: 0 0 0.2em; color: color(var(--darkpurple) l(-5%)); @@ -955,7 +952,7 @@ make sure this only happens on large viewports / desktop-ish devices. margin: 20px 0 0; color: var(--midgrey); font-family: 'Work Sans', sans-serif; - font-size: 2.3rem; + font-size: 2.3em; line-height: 1.4em; font-weight: 300; } @@ -988,7 +985,7 @@ make sure this only happens on large viewports / desktop-ish devices. padding: 0 170px 6vw; min-height: 230px; font-family: 'Work Sans', sans-serif; - font-size: 2.0rem; + font-size: 2.0em; line-height: 1.6em; background: #fff; } @@ -1002,13 +999,13 @@ make sure this only happens on large viewports / desktop-ish devices. @media (max-width: 800px) { .post-full-content { padding: 0 5vw; - font-size: 1.8rem; + font-size: 1.8em; } } @media (max-width: 500px) { .post-full-custom-excerpt { - font-size: 1.9rem; + font-size: 1.9em; line-height: 1.5em; } } @@ -1159,7 +1156,7 @@ Usage (In Ghost editor): max-width: 100%; border: color(var(--darkpurple) l(-10%)) 1px solid; color: var(--whitegrey); - font-size: 1.4rem; + /* font-size: 1.4em; */ line-height: 1.5em; background: color(var(--darkpurple) l(-3%)); border-radius: 5px; @@ -1213,7 +1210,7 @@ Usage (In Ghost editor): .post-full-content h1 { margin: 0.5em 0 0.4em; - font-size: 4.2rem; + font-size: 2.2em; line-height: 1.25em; font-weight: 600; } @@ -1224,14 +1221,14 @@ Usage (In Ghost editor): @media (max-width: 800px) { .post-full-content h1 { - font-size: 3.2rem; + font-size: 2.0em; line-height: 1.25em; } } .post-full-content h2 { margin: 0.5em 0 0.4em; - font-size: 3.2rem; + font-size: 1.9em; line-height: 1.25em; font-weight: 600; } @@ -1243,14 +1240,14 @@ Usage (In Ghost editor): @media (max-width: 800px) { .post-full-content h2 { margin-bottom: 0.3em; - font-size: 2.8rem; + font-size: 2.8em; line-height: 1.25em; } } .post-full-content h3 { margin: 0.5em 0 0.2em; - font-size: 2.5rem; + font-size: 1.8em; line-height: 1.3em; font-weight: 600; } @@ -1262,14 +1259,14 @@ Usage (In Ghost editor): @media (max-width: 800px) { .post-full-content h3 { margin-bottom: 0.3em; - font-size: 2.4rem; + font-size: 1.8em; line-height: 1.3em; } } .post-full-content h4 { margin: 0.5em 0 0.2em; - font-size: 2.5rem; + font-size: 1.6em; font-weight: 600; } @@ -1284,14 +1281,14 @@ Usage (In Ghost editor): @media (max-width: 800px) { .post-full-content h4 { margin-bottom: 0.3em; - font-size: 2.4rem; + font-size: 1.6em; line-height: 1.3em; } } .post-full-content h5 { margin: 0.5em 0 0.2em; - font-size: 2.25rem; + font-size: 1.4em; font-weight: 600; } @@ -1300,20 +1297,20 @@ Usage (In Ghost editor): margin-bottom: 1em; margin-left: 1.3em; padding: 0 0 0.5em; - font-size: 2.4rem; + font-size: 1.4em; text-align: initial; } } .post-full-content h6 { margin: 0.5em 0 0.2em 0; - font-size: 2.0rem; + font-size: 1.2em; font-weight: 700; } @media (max-width: 800px) { .post-full-content h6 { - font-size: 1.8rem; + font-size: 1.2em; line-height: 1.4em; } } @@ -1323,7 +1320,7 @@ Usage (In Ghost editor): } .footnotes { - font-size: 1.5rem; + font-size: 1.5em; } .footnotes p { @@ -1332,7 +1329,7 @@ Usage (In Ghost editor): .footnote-backref { color: var(--blue) !important; - font-size: 1.2rem; + font-size: 1.2em; font-weight: bold; text-decoration: none !important; box-shadow: none !important; @@ -1358,21 +1355,18 @@ Usage (In Ghost editor): @media (max-width: 500px) { .post-full-meta { - font-size: 1.2rem; + font-size: 1.2em; line-height: 1.3em; } .post-full-title { margin-top: 0.2em; - font-size: 4.2rem; + font-size: 4.2em; line-height: 1.05em; } .post-full-image { margin-top: 5px; margin-bottom: 5vw; } - .post-full-content { - padding: 0; - } .post-full-content:before, .post-full-content:after { display: none; } @@ -1389,7 +1383,7 @@ Usage (In Ghost editor): border-spacing: 0; border-collapse: collapse; font-family: 'DM Sans', sans-serif; - font-size: 1.6rem; + font-size: 1.6em; white-space: nowrap; vertical-align: top; } @@ -1417,7 +1411,7 @@ Usage (In Ghost editor): .post-full-content table th { color: var(--darkpurple); - font-size: 1.2rem; + font-size: 1.2em; font-weight: 700; letter-spacing: 0.2px; text-align: left; @@ -1455,7 +1449,7 @@ Usage (In Ghost editor): .post-full-byline-meta { margin: 2px 0 0; color: color(var(--midgrey) l(+10%)); - font-size: 1.2rem; + font-size: 1.2em; line-height: 1.2em; letter-spacing: 0.2px; text-transform: uppercase; @@ -1464,7 +1458,7 @@ Usage (In Ghost editor): .post-full-byline-meta h4 { margin: 0 0 3px; - font-size: 1.3rem; + font-size: 1.3em; line-height: 1.4em; font-weight: 500; } @@ -1503,7 +1497,7 @@ Usage (In Ghost editor): justify-content: space-between; margin-left: -200px; width: 400px; - font-size: 1.4rem; + /* font-size: 1.4em; */ line-height: 1.5em; background: white; border-radius: 3px; @@ -1545,7 +1539,7 @@ Usage (In Ghost editor): .author-card .author-info h2 { margin: 8px 0 0; - font-size: 1.6rem; + font-size: 1.6em; } .author-card .author-info p { @@ -1610,11 +1604,11 @@ Usage (In Ghost editor): margin-top: 20px; } .post-full-byline-meta { - font-size: 1.2rem; + font-size: 1.2em; } .post-full-byline-meta h4 { margin-bottom: 2px; - font-size: 1.2rem; + font-size: 1.2em; } } @@ -1634,7 +1628,7 @@ Usage (In Ghost editor): margin: 0 0 3px 0; padding: 0; color: var(--darkpurple); - font-size: 3.5rem; + font-size: 3.5em; line-height: 1; font-weight: 600; } @@ -1642,7 +1636,7 @@ Usage (In Ghost editor): .subscribe-form-description { margin-bottom: 0.2em 0 1em; color: var(--midgrey); - font-size: 2.1rem; + font-size: 2.1em; line-height: 1.55em; } @@ -1666,7 +1660,7 @@ Usage (In Ghost editor): width: 100%; border: color(var(--lightgrey) l(+7%)) 1px solid; color: var(--midgrey); - font-size: 1.8rem; + font-size: 1.8em; line-height: 1em; font-weight: normal; user-select: text; @@ -1688,7 +1682,7 @@ Usage (In Ghost editor): height: 43px; outline: none; color: #fff; - font-size: 1.5rem; + font-size: 1.5em; line-height: 39px; font-weight: 400; text-align: center; @@ -1726,7 +1720,7 @@ Usage (In Ghost editor): margin: 1em auto 0; max-width: 400px; color: var(--purple2); - font-size: 1.6rem; + font-size: 1.6em; line-height: 1.5em; text-align: center; } @@ -1742,10 +1736,10 @@ Usage (In Ghost editor): @media (max-width: 650px) { .subscribe-form-title { - font-size: 2.4rem; + font-size: 2.4em; } .subscribe-form-description { - font-size: 1.6rem; + font-size: 1.6em; } } @@ -1849,7 +1843,7 @@ Usage (In Ghost editor): .read-next-card-header h3 { margin: 0; color: rgba(255, 255, 255, 0.6); - font-size: 1.2rem; + font-size: 1.2em; line-height: 1em; font-weight: 300; letter-spacing: 0.4px; @@ -1868,7 +1862,7 @@ Usage (In Ghost editor): } .read-next-card-content { - font-size: 1.7rem; + font-size: 1.7em; } .read-next-card-content ul { @@ -1895,7 +1889,7 @@ Usage (In Ghost editor): .read-next-card-content h4 { margin: 0; - font-size: 1.6rem; + font-size: 1.6em; line-height: 1.35em; font-weight: 600; } @@ -1913,14 +1907,14 @@ Usage (In Ghost editor): .read-next-card-excerpt { overflow: hidden; max-width: 100%; - font-size: 1.4rem; + /* font-size: 1.4em; */ line-height: 1.2em; text-overflow: ellipsis; } .read-next-card-meta { margin-top: 2px; - font-size: 1.2rem; + font-size: 1.2em; line-height: 1.4em; font-weight: 400; } @@ -1939,7 +1933,7 @@ Usage (In Ghost editor): padding: 7px 12px 8px 14px; border: 1px solid rgba(255, 255, 255, 0.6); color: rgba(255, 255, 255, 0.6); - font-size: 1.3rem; + font-size: 1.3em; border-radius: 999px; transition: all 0.35s ease-in-out; } @@ -2124,7 +2118,7 @@ Usage (In Ghost editor): .kg-bookmark-title { color: color(var(--midgrey) l(-30%)); - font-size: 1.6rem; + font-size: 1.6em; line-height: 1.5em; font-weight: 600; transition: color 0.2s ease-in-out; @@ -2140,7 +2134,7 @@ Usage (In Ghost editor): margin-top: 12px; max-height: 48px; color: color(var(--midgrey) l(-10%)); - font-size: 1.5rem; + font-size: 1.5em; line-height: 1.5em; font-weight: 400; -webkit-line-clamp: 2; @@ -2169,7 +2163,7 @@ Usage (In Ghost editor): align-items: center; margin-top: 14px; color: color(var(--midgrey) l(-10%)); - font-size: 1.5rem; + font-size: 1.5em; font-weight: 400; } @@ -2217,7 +2211,7 @@ Usage (In Ghost editor): flex-direction: column; } .kg-bookmark-title, .kg-bookmark-description, .kg-bookmark-metadata { - font-size: 1.4rem; + /* font-size: 1.4em; */ line-height: 1.5em; } .post-full-content .kg-bookmark-icon { @@ -2277,7 +2271,7 @@ Usage (In Ghost editor): flex-shrink: 0; margin: 6px 0 0; max-width: 46em; - font-size: 2.0rem; + font-size: 2.0em; line-height: 1.3em; font-weight: 400; opacity: 0.8; @@ -2289,7 +2283,7 @@ Usage (In Ghost editor): display: flex; align-items: center; margin: 0 0 0 1px; - font-size: 1.2rem; + font-size: 1.2em; font-weight: 400; letter-spacing: 0.2px; text-transform: uppercase; @@ -2363,7 +2357,7 @@ Usage (In Ghost editor): height: 96px; } .author-header-content .author-bio { - font-size: 1.8rem; + font-size: 1.8em; line-height: 1.3em; letter-spacing: 0; text-align: center; @@ -2414,7 +2408,7 @@ Usage (In Ghost editor): .error-description { margin: 0; color: var(--midgrey); - font-size: 3rem; + font-size: 3em; line-height: 1.3em; font-weight: 400; } @@ -2437,14 +2431,14 @@ Usage (In Ghost editor): padding-top: 24vw; } .error-code { - font-size: 11.2rem; + font-size: 11.2em; } .error-message { padding-bottom: 16vw; } .error-description { margin: 5px 0 0 0; - font-size: 1.8rem; + font-size: 1.8em; } } @@ -2580,7 +2574,7 @@ Usage (In Ghost editor): .subscribe-overlay-title { display: inline-block; margin: 0 0 10px 0; - font-size: 5.2rem; + font-size: 5.2em; line-height: 1.15em; } @@ -2589,7 +2583,7 @@ Usage (In Ghost editor): max-width: 650px; color: #fff; font-family: 'Work Sans', sans-serif; - font-size: 2.4rem; + font-size: 2.4em; line-height: 1.3em; font-weight: 300; opacity: 0.8; @@ -2613,7 +2607,7 @@ Usage (In Ghost editor): width: 100%; border: none; color: var(--midgrey); - font-size: 2rem; + font-size: 2em; line-height: 1em; font-weight: normal; letter-spacing: 0.5px; @@ -2635,7 +2629,7 @@ Usage (In Ghost editor): height: 52px; outline: none; color: #fff; - font-size: 1.7rem; + font-size: 1.7em; line-height: 38px; font-weight: 400; text-align: center; @@ -2675,7 +2669,7 @@ Usage (In Ghost editor): justify-content: space-between; align-items: center; color: rgba(255, 255, 255, 0.7); - font-size: 1.3rem; + font-size: 1.3em; } .site-footer-content a { diff --git a/src/layouts/postLayout.tsx b/src/layouts/postLayout.tsx index cff6c47..a92578c 100644 --- a/src/layouts/postLayout.tsx +++ b/src/layouts/postLayout.tsx @@ -2,9 +2,29 @@ import React from 'react' import { graphql } from 'gatsby' import { SEO } from 'components' import PageLayout from './pageLayout' +import ProfileIcon from 'images/DefaultProfileIcon.png' +import { LogoHeader } from 'components/logoHeader' +import styled from 'styled-components' +import bkgUrl from 'images/bkg-small.svg' import './postLayout.css' +const SplashContainer = styled.div` + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + + width: 100%; + height: calc(40vh); + + background: bottom / cover no-repeat url(${bkgUrl}); + + @media only screen and (min-width: 700px) { + justify-content: flex-start; + } +` + export default ({ data: { ghostPost: post } }) => { const months = [ 'JAN', @@ -20,7 +40,7 @@ export default ({ data: { ghostPost: post } }) => { 'NOV', 'DEC' ] - + console.log(post) const month = new Date(post.published_at).getMonth() post.published_at = new Date(post.published_at).getDate() + @@ -31,8 +51,10 @@ export default ({ data: { ghostPost: post } }) => { return ( - {/*
*/} -
+ + + +
@@ -45,7 +67,8 @@ export default ({ data: { ghostPost: post } }) => {

{post.title}

-

{post.excerpt}

+

{post.custom_excerpt}

+
@@ -67,7 +90,11 @@ export default ({ data: { ghostPost: post } }) => {
Ghost
@@ -76,7 +103,6 @@ export default ({ data: { ghostPost: post } }) => {
- {/*

{post.primary_author.name}

*/}

{post.primary_author.name}

@@ -146,6 +172,7 @@ export const postQuery = graphql` } published_at excerpt + custom_excerpt primary_author { name } From 40dfdac5f622395dd14db59482753992cfc94b95 Mon Sep 17 00:00:00 2001 From: Tejash Patel Date: Fri, 18 Sep 2020 16:40:55 -0400 Subject: [PATCH 09/16] show black logo in blogs --- src/components/header.tsx | 19 ++++++++++++-- src/components/wordLogo.tsx | 50 +++++++++++++++++++++++++++++++++++++ src/layouts/postLayout.tsx | 5 ++-- 3 files changed, 69 insertions(+), 5 deletions(-) create mode 100644 src/components/wordLogo.tsx diff --git a/src/components/header.tsx b/src/components/header.tsx index 11394dd..3e5778f 100644 --- a/src/components/header.tsx +++ b/src/components/header.tsx @@ -5,6 +5,7 @@ import { useMatch } from '@reach/router' import { useScrollPosition } from '@n8tb1t/use-scroll-position' import WordLogoDark from './wordLogoDark' +import WordLogo from './wordLogo' import MenuButton from './menuButton' const StyledHeader = styled.header<{ @@ -57,7 +58,12 @@ const NavBar = styled.nav` } ` -const StyledLogo = styled(WordLogoDark)` +const StyledLogoDark = styled(WordLogoDark)` + width: 140px; + height: 65px; +` + +const StyledLogo = styled(WordLogo)` width: 140px; height: 65px; ` @@ -111,12 +117,21 @@ const Header = (props: { fixed: boolean }) => { }, [isDark] ) + let Logo + + if (props.fixed || !window.location.pathname.includes('/blog/')) { + Logo = + } else { + Logo = + } + + console.log(window.location.pathname); return ( - + {Logo} setOpen(!isOpen)} /> diff --git a/src/components/wordLogo.tsx b/src/components/wordLogo.tsx new file mode 100644 index 0000000..995af20 --- /dev/null +++ b/src/components/wordLogo.tsx @@ -0,0 +1,50 @@ +import React from 'react' + +const WordLogo = (props: any) => ( + + + + + + + + + + + + + + + +) + +export default WordLogo diff --git a/src/layouts/postLayout.tsx b/src/layouts/postLayout.tsx index a92578c..40d2f77 100644 --- a/src/layouts/postLayout.tsx +++ b/src/layouts/postLayout.tsx @@ -40,7 +40,6 @@ export default ({ data: { ghostPost: post } }) => { 'NOV', 'DEC' ] - console.log(post) const month = new Date(post.published_at).getMonth() post.published_at = new Date(post.published_at).getDate() + @@ -51,9 +50,9 @@ export default ({ data: { ghostPost: post } }) => { return ( - + {/* - + */}
From 09116e369ea4b1c8b9c351e0e8963e5bbb1364f1 Mon Sep 17 00:00:00 2001 From: Tejash Patel Date: Fri, 18 Sep 2020 17:50:30 -0400 Subject: [PATCH 10/16] fix width size + show no ruler in mobile view --- src/pages/blog.tsx | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/src/pages/blog.tsx b/src/pages/blog.tsx index 8b0afc7..dd452f5 100644 --- a/src/pages/blog.tsx +++ b/src/pages/blog.tsx @@ -17,10 +17,8 @@ export default ({ data }) => { flex-direction: column; justify-content: center; align-items: center; - width: 100%; height: calc(40vh); - background: bottom / cover no-repeat url(${bkgUrl}); @media only screen and (min-width: 700px) { @@ -34,17 +32,11 @@ export default ({ data }) => { padding-left: 15px; margin-right: auto; margin-left: auto; - - @media (min-width: 576px) { - max-width: 540px; - } - @media (min-width: 768px) {} - max-width: 720px; - } - @media (min-width: 992px) { - max-width: 960px; -} -` + max-width: var(--mobile-width); + @media (min-width: 1200px) { + max-width: var(--desktop-width); + } + ` const Row = styled.div` display: flex; @@ -60,6 +52,12 @@ export default ({ data }) => { } ` + const HorizontalRuler = styled.hr` + @media (max-width: 768px) { + display: none; + } + ` + let text if (posts[0]) { @@ -71,7 +69,7 @@ export default ({ data }) => { excerpt={ posts[0].custom_excerpt ? posts[0].custom_excerpt - : posts[0].excerpt.substring(0, 150) + : posts[0].excerpt.substring(0, 175) } feature_image={posts[0].feature_image} reading_time={posts[0].reading_time} @@ -98,14 +96,18 @@ export default ({ data }) => { {text} -
+ {posts.slice(1).map((post: any) => ( Date: Fri, 18 Sep 2020 17:51:06 -0400 Subject: [PATCH 11/16] add helper function for common code --- src/components/blogCard.tsx | 32 +++----------- src/components/blogCardFeatured.tsx | 66 ++++++++++++++--------------- src/components/helpers.tsx | 27 ++++++++++++ src/layouts/postLayout.tsx | 30 +------------ 4 files changed, 67 insertions(+), 88 deletions(-) create mode 100644 src/components/helpers.tsx diff --git a/src/components/blogCard.tsx b/src/components/blogCard.tsx index bacc4ed..e5bc8df 100644 --- a/src/components/blogCard.tsx +++ b/src/components/blogCard.tsx @@ -1,9 +1,9 @@ import React from 'react' import { Link } from 'gatsby' import styled from 'styled-components' - import FeatureImage from 'images/default-feature-image.jpg' import ProfileIcon from 'images/DefaultProfileIcon.png' +import { formatDate } from './helpers' const Card = styled.div` margin: 15px; @@ -15,6 +15,9 @@ const Card = styled.div` background-color: var(--white); background-clip: border-box; border-radius: 0.25rem; + + border: 2px solid #bfbfbf; + border-radius: var(--border-radius); ` const CardBody = styled.div` @@ -60,29 +63,6 @@ const BlogCard = ({ authors, primary_author_name }: BlogCardProps) => { - console.log(feature_image) - const months = [ - 'JAN', - 'FEB', - 'MAR', - 'APR', - 'MAY', - 'JUN', - 'JULY', - 'AUG', - 'SEPT', - 'OCT', - 'NOV', - 'DEC' - ] - - const month = new Date(published_at).getMonth() - const formatted_published_at = - new Date(published_at).getDate() + - ' ' + - months[month] + - ' ' + - new Date(published_at).getFullYear() return ( @@ -129,12 +109,10 @@ const BlogCard = ({
- {/*

{primary_author_name}

*/}

{primary_author_name}

-
{reading_time} min read diff --git a/src/components/blogCardFeatured.tsx b/src/components/blogCardFeatured.tsx index 5032659..0c08de3 100644 --- a/src/components/blogCardFeatured.tsx +++ b/src/components/blogCardFeatured.tsx @@ -1,8 +1,8 @@ import React from 'react' import styled from 'styled-components' - import FeatureImage from 'images/default-feature-image.jpg' import ProfileIcon from 'images/DefaultProfileIcon.png' +import { formatDate } from './helpers' const Card = styled.div` margin: 15px; @@ -20,26 +20,42 @@ const CardBody = styled.div` flex: 1 1 auto; min-height: 1px; padding: 1.25rem; + + @media (max-width: 768px) { + padding: 0; + } ` const CardImgTop = styled.img` width: 100%; border-top-left-radius: calc(0.25rem - 1px); border-top-right-radius: calc(0.25rem - 1px); + max-height: 400px; ` const Tag = styled.span` color: var(--purple2); ` -const ColMd6 = styled.div` +const ColMd8 = styled.div` + position: relative; + width: 100%; + min-height: 1px; + + @media (min-width: 768px) { + flex: 0 0 65%; + max-width: 65%; + } +` + +const ColMd4 = styled.div` position: relative; width: 100%; min-height: 1px; @media (min-width: 768px) { - flex: 0 0 50%; - max-width: 50%; + flex: 0 0 35%; + max-width: 35%; } ` @@ -48,6 +64,14 @@ const Row = styled.div` flex-wrap: wrap; margin-right: -15px; margin-left: -15px; + margin-top: 75px; + @media (max-width: 768px) { + background-clip: border-box; + border-radius: 0.25rem; + border: 2px solid #bfbfbf; + border-radius: var(--border-radius); + margin: 4px; + } ` const Small = styled.div` font-size: 62.5%; @@ -76,38 +100,15 @@ const BlogCardFeatured = ({ authors, primary_author_name }: BlogCardProps) => { - console.log(feature_image) - const months = [ - 'JAN', - 'FEB', - 'MAR', - 'APR', - 'MAY', - 'JUN', - 'JULY', - 'AUG', - 'SEPT', - 'OCT', - 'NOV', - 'DEC' - ] - - const month = new Date(published_at).getMonth() - const formatted_published_at = - new Date(published_at).getDate() + - ' ' + - months[month] + - ' ' + - new Date(published_at).getFullYear() return ( - + - - + + {tags ? ( @@ -155,10 +156,9 @@ const BlogCardFeatured = ({

{primary_author_name}

-
{reading_time} min read @@ -169,7 +169,7 @@ const BlogCardFeatured = ({ - + ) } diff --git a/src/components/helpers.tsx b/src/components/helpers.tsx new file mode 100644 index 0000000..378229f --- /dev/null +++ b/src/components/helpers.tsx @@ -0,0 +1,27 @@ +export function formatDate(published_at: any) { + const months = [ + 'JAN', + 'FEB', + 'MAR', + 'APR', + 'MAY', + 'JUN', + 'JULY', + 'AUG', + 'SEPT', + 'OCT', + 'NOV', + 'DEC' + ] + + const month = new Date(published_at).getMonth() + + const formatted_published_at = + new Date(published_at).getDate() + + ' ' + + months[month] + + ' ' + + new Date(published_at).getFullYear() + + return formatted_published_at +} diff --git a/src/layouts/postLayout.tsx b/src/layouts/postLayout.tsx index 40d2f77..19453be 100644 --- a/src/layouts/postLayout.tsx +++ b/src/layouts/postLayout.tsx @@ -3,9 +3,9 @@ import { graphql } from 'gatsby' import { SEO } from 'components' import PageLayout from './pageLayout' import ProfileIcon from 'images/DefaultProfileIcon.png' -import { LogoHeader } from 'components/logoHeader' import styled from 'styled-components' import bkgUrl from 'images/bkg-small.svg' +import { formatDate } from 'components/helpers' import './postLayout.css' @@ -14,10 +14,8 @@ const SplashContainer = styled.div` flex-direction: column; justify-content: center; align-items: center; - width: 100%; height: calc(40vh); - background: bottom / cover no-repeat url(${bkgUrl}); @media only screen and (min-width: 700px) { @@ -26,33 +24,10 @@ const SplashContainer = styled.div` ` export default ({ data: { ghostPost: post } }) => { - const months = [ - 'JAN', - 'FEB', - 'MAR', - 'APR', - 'MAY', - 'JUN', - 'JULY', - 'AUG', - 'SEPT', - 'OCT', - 'NOV', - 'DEC' - ] - const month = new Date(post.published_at).getMonth() - post.published_at = - new Date(post.published_at).getDate() + - ' ' + - months[month] + - ' ' + - new Date(post.published_at).getFullYear() + post.published_at = formatDate(post.published_at) return ( - {/* - - */}
@@ -150,7 +125,6 @@ export default ({ data: { ghostPost: post } }) => {
- {/*
*/}
) } From 9b6e9cf415c8d95d5447d75221cfeb121b1eaeec Mon Sep 17 00:00:00 2001 From: Tejash Patel Date: Fri, 18 Sep 2020 17:51:32 -0400 Subject: [PATCH 12/16] remove console log --- src/components/header.tsx | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/components/header.tsx b/src/components/header.tsx index 3e5778f..ab8c63d 100644 --- a/src/components/header.tsx +++ b/src/components/header.tsx @@ -117,6 +117,8 @@ const Header = (props: { fixed: boolean }) => { }, [isDark] ) + + // shows the black logo on "/blog/blog-slug" urls instead of the light one let Logo if (props.fixed || !window.location.pathname.includes('/blog/')) { @@ -125,14 +127,10 @@ const Header = (props: { fixed: boolean }) => { Logo = } - console.log(window.location.pathname); - return ( - - {Logo} - + {Logo} setOpen(!isOpen)} /> Date: Tue, 22 Sep 2020 14:26:37 -0400 Subject: [PATCH 13/16] fix skewed feature image --- src/components/blogCardFeatured.tsx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/components/blogCardFeatured.tsx b/src/components/blogCardFeatured.tsx index 0c08de3..7c12bea 100644 --- a/src/components/blogCardFeatured.tsx +++ b/src/components/blogCardFeatured.tsx @@ -31,6 +31,10 @@ const CardImgTop = styled.img` border-top-left-radius: calc(0.25rem - 1px); border-top-right-radius: calc(0.25rem - 1px); max-height: 400px; + + @media (min-width: 1200px) { + width: auto; + } ` const Tag = styled.span` @@ -38,6 +42,7 @@ const Tag = styled.span` ` const ColMd8 = styled.div` + text-align: center; position: relative; width: 100%; min-height: 1px; From b82006debcdb584bcbb6f8cea39a16764f6e7a04 Mon Sep 17 00:00:00 2001 From: Tejash Patel Date: Tue, 22 Sep 2020 14:32:39 -0400 Subject: [PATCH 14/16] use the ?? operator --- src/components/blogCard.tsx | 11 ++--------- src/components/blogCardFeatured.tsx | 13 +++---------- src/layouts/postLayout.tsx | 6 +----- src/pages/blog.tsx | 10 ++-------- 4 files changed, 8 insertions(+), 32 deletions(-) diff --git a/src/components/blogCard.tsx b/src/components/blogCard.tsx index e5bc8df..390d040 100644 --- a/src/components/blogCard.tsx +++ b/src/components/blogCard.tsx @@ -66,10 +66,7 @@ const BlogCard = ({ return ( - + {tags.map((tag: any) => ( {tag.name.toUpperCase()} @@ -96,11 +93,7 @@ const BlogCard = ({
Ghost
diff --git a/src/components/blogCardFeatured.tsx b/src/components/blogCardFeatured.tsx index 7c12bea..5d63f5e 100644 --- a/src/components/blogCardFeatured.tsx +++ b/src/components/blogCardFeatured.tsx @@ -31,7 +31,7 @@ const CardImgTop = styled.img` border-top-left-radius: calc(0.25rem - 1px); border-top-right-radius: calc(0.25rem - 1px); max-height: 400px; - + @media (min-width: 1200px) { width: auto; } @@ -108,10 +108,7 @@ const BlogCardFeatured = ({ return ( - + @@ -147,11 +144,7 @@ const BlogCardFeatured = ({
Ghost
diff --git a/src/layouts/postLayout.tsx b/src/layouts/postLayout.tsx index 19453be..0015215 100644 --- a/src/layouts/postLayout.tsx +++ b/src/layouts/postLayout.tsx @@ -64,11 +64,7 @@ export default ({ data: { ghostPost: post } }) => {
Ghost
diff --git a/src/pages/blog.tsx b/src/pages/blog.tsx index dd452f5..bf7cb88 100644 --- a/src/pages/blog.tsx +++ b/src/pages/blog.tsx @@ -67,9 +67,7 @@ export default ({ data }) => { { Date: Tue, 22 Sep 2020 14:42:41 -0400 Subject: [PATCH 15/16] use proper tye for helper function --- src/components/helpers.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/helpers.tsx b/src/components/helpers.tsx index 378229f..a7526ed 100644 --- a/src/components/helpers.tsx +++ b/src/components/helpers.tsx @@ -1,4 +1,4 @@ -export function formatDate(published_at: any) { +export function formatDate(published_at: Date) { const months = [ 'JAN', 'FEB', From fc1584a403476bcefa7bb73fc67879767bcf66ab Mon Sep 17 00:00:00 2001 From: Tejash Patel Date: Tue, 22 Sep 2020 14:44:37 -0400 Subject: [PATCH 16/16] update props interface --- src/components/blogCard.tsx | 6 +++--- src/components/blogCardFeatured.tsx | 6 +++--- src/components/wordLogo.tsx | 2 +- src/components/wordLogoDark.tsx | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/components/blogCard.tsx b/src/components/blogCard.tsx index 390d040..55cb7cb 100644 --- a/src/components/blogCard.tsx +++ b/src/components/blogCard.tsx @@ -41,11 +41,11 @@ const Small = styled.div` ` type BlogCardProps = { - title: string + title: String reading_time: number published_at: Date - excerpt: string - feature_image: string + excerpt: String + feature_image: String slug: String tags: Array primary_author_name: String diff --git a/src/components/blogCardFeatured.tsx b/src/components/blogCardFeatured.tsx index 5d63f5e..3199e1a 100644 --- a/src/components/blogCardFeatured.tsx +++ b/src/components/blogCardFeatured.tsx @@ -83,11 +83,11 @@ const Small = styled.div` ` type BlogCardProps = { - title: string + title: String reading_time: number published_at: Date - excerpt: string - feature_image: string + excerpt: String + feature_image: String slug: String tags: Array primary_author_name: String diff --git a/src/components/wordLogo.tsx b/src/components/wordLogo.tsx index 995af20..1c971d7 100644 --- a/src/components/wordLogo.tsx +++ b/src/components/wordLogo.tsx @@ -1,6 +1,6 @@ import React from 'react' -const WordLogo = (props: any) => ( +const WordLogo = (props: JSX.IntrinsicAttributes & React.SVGProps) => ( ( +const WordLogo = (props: JSX.IntrinsicAttributes & React.SVGProps) => (