mirror of
https://github.com/Unkn0wnCat/KevinK.dev.js.git
synced 2025-04-29 18:26:52 +02:00
Explore Design changes
This commit is contained in:
parent
85d749d33d
commit
df08385cc5
22 changed files with 146 additions and 53 deletions
12
content/projects/_schema.json
Normal file
12
content/projects/_schema.json
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"urlname": "foobar",
|
||||||
|
"lang": "ignoreme",
|
||||||
|
"name": "foobar",
|
||||||
|
"shortDescription": "foobar",
|
||||||
|
"links": {
|
||||||
|
"website": "https://foo.bar",
|
||||||
|
"github": "https://foo.bar"
|
||||||
|
},
|
||||||
|
"image": "../images/test.jpg",
|
||||||
|
"featured": 0
|
||||||
|
}
|
|
@ -6,5 +6,6 @@
|
||||||
"links": {
|
"links": {
|
||||||
"website": "https://schuelerzeitung-elsensee.de"
|
"website": "https://schuelerzeitung-elsensee.de"
|
||||||
},
|
},
|
||||||
"image": "../images/ELSE.png"
|
"image": "../images/ELSE.png",
|
||||||
|
"featured": 2
|
||||||
}
|
}
|
|
@ -6,5 +6,6 @@
|
||||||
"links": {
|
"links": {
|
||||||
"website": "https://schuelerzeitung-elsensee.de"
|
"website": "https://schuelerzeitung-elsensee.de"
|
||||||
},
|
},
|
||||||
"image": "../images/ELSE.png"
|
"image": "../images/ELSE.png",
|
||||||
|
"featured": 2
|
||||||
}
|
}
|
|
@ -8,5 +8,6 @@
|
||||||
"website": "https://kevink.dev",
|
"website": "https://kevink.dev",
|
||||||
"github": "https://github.com/Unkn0wnCat/KevinK.dev.js"
|
"github": "https://github.com/Unkn0wnCat/KevinK.dev.js"
|
||||||
},
|
},
|
||||||
"image": "../images/KevinK.dev.png"
|
"image": "../images/KevinK.dev.png",
|
||||||
|
"featured": 0
|
||||||
}
|
}
|
|
@ -8,5 +8,6 @@
|
||||||
"website": "https://kevink.dev",
|
"website": "https://kevink.dev",
|
||||||
"github": "https://github.com/Unkn0wnCat/KevinK.dev.js"
|
"github": "https://github.com/Unkn0wnCat/KevinK.dev.js"
|
||||||
},
|
},
|
||||||
"image": "../images/KevinK.dev.png"
|
"image": "../images/KevinK.dev.png",
|
||||||
|
"featured": 0
|
||||||
}
|
}
|
|
@ -7,5 +7,6 @@
|
||||||
"links": {
|
"links": {
|
||||||
"website": "https://kreig.de"
|
"website": "https://kreig.de"
|
||||||
},
|
},
|
||||||
"image": "../images/KREIG.de.jpg"
|
"image": "../images/KREIG.de.jpg",
|
||||||
|
"featured": 1
|
||||||
}
|
}
|
|
@ -7,5 +7,6 @@
|
||||||
"links": {
|
"links": {
|
||||||
"website": "https://kreig.de"
|
"website": "https://kreig.de"
|
||||||
},
|
},
|
||||||
"image": "../images/KREIG.de.jpg"
|
"image": "../images/KREIG.de.jpg",
|
||||||
|
"featured": 1
|
||||||
}
|
}
|
|
@ -25,7 +25,7 @@ exports.createPages = async ({ actions, graphql, reporter }) => {
|
||||||
result.data.allProjectsJson.nodes.forEach((node) => {
|
result.data.allProjectsJson.nodes.forEach((node) => {
|
||||||
console.log("Creating Page: ", `/${node.lang}/projects/${node.urlname}`);
|
console.log("Creating Page: ", `/${node.lang}/projects/${node.urlname}`);
|
||||||
|
|
||||||
createPage({
|
if(node.lang !== "ignoreme") createPage({
|
||||||
path: `/${node.lang}/projects/${node.urlname}`,
|
path: `/${node.lang}/projects/${node.urlname}`,
|
||||||
component: projectTemplate,
|
component: projectTemplate,
|
||||||
context: {
|
context: {
|
||||||
|
|
|
@ -29,5 +29,7 @@
|
||||||
"donateThanksText": "Ich finde es schön, dass du meine Arbeit schön findest und das zeigst! Sende mir gerne eine E-Mail an <1>{{contactEmail}}</1> wenn du mit mir über irgendwas reden möchtest!",
|
"donateThanksText": "Ich finde es schön, dass du meine Arbeit schön findest und das zeigst! Sende mir gerne eine E-Mail an <1>{{contactEmail}}</1> wenn du mit mir über irgendwas reden möchtest!",
|
||||||
"donateThanks": "Danke für die Spende!",
|
"donateThanks": "Danke für die Spende!",
|
||||||
"donateDescription": "Hey! Es sieht so aus als würdest du über eine Spende nachdenken. Das ist nett! Wenn du ein bestimmtes Projekt unterstützen willst, schreibe deine Wünsche gerne in den Spendenkommentar.",
|
"donateDescription": "Hey! Es sieht so aus als würdest du über eine Spende nachdenken. Das ist nett! Wenn du ein bestimmtes Projekt unterstützen willst, schreibe deine Wünsche gerne in den Spendenkommentar.",
|
||||||
"donate": "Spenden"
|
"donate": "Spenden",
|
||||||
|
"featuredProjects": "Vorgestellte Projekte",
|
||||||
|
"seeMore": "Mehr erkunden"
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,5 +29,7 @@
|
||||||
"donate": "Donate",
|
"donate": "Donate",
|
||||||
"donateDescription": "Hey! It looks like you're thinking about donating to me. That's nice of you! If you want your donation to go towards a specific project, feel free to write your wishes into the donation comment.",
|
"donateDescription": "Hey! It looks like you're thinking about donating to me. That's nice of you! If you want your donation to go towards a specific project, feel free to write your wishes into the donation comment.",
|
||||||
"donateThanks": "Thanks for donating!",
|
"donateThanks": "Thanks for donating!",
|
||||||
"donateThanksText": "I really appreciate you appreciating my work and showing it! Feel free to mail me at <1>{{contactEmail}}</1> if you have anything you want to talk about!"
|
"donateThanksText": "I really appreciate you appreciating my work and showing it! Feel free to mail me at <1>{{contactEmail}}</1> if you have anything you want to talk about!",
|
||||||
|
"featuredProjects": "Featured Projects",
|
||||||
|
"seeMore": "See more"
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,8 +8,6 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin cardGeneric {
|
@mixin cardGeneric {
|
||||||
max-width: 300px;
|
|
||||||
width: 100%;
|
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
box-shadow: -1px 11px 33px -10px rgba(127,127,127,0.3);
|
box-shadow: -1px 11px 33px -10px rgba(127,127,127,0.3);
|
||||||
|
@ -21,7 +19,7 @@
|
||||||
|
|
||||||
&:hover, &:active, &:focus {
|
&:hover, &:active, &:focus {
|
||||||
transform: scale(1.05);
|
transform: scale(1.05);
|
||||||
box-shadow: -1px 11px 33px -10px rgba(127,127,127,0.4);
|
box-shadow: -1px 11px 33px -10px rgba(127,127,127,0.2), -1px 11px 33px -10px rgba($accentColor, .75);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,6 +30,12 @@
|
||||||
background: $accentColor;
|
background: $accentColor;
|
||||||
color: white;
|
color: white;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
|
box-shadow: 0 0 33px -10px rgba($accentColor, .5);
|
||||||
|
transition: box-shadow .25s;
|
||||||
|
|
||||||
|
&:hover, &:active, &:hover {
|
||||||
|
box-shadow: 0 0 33px -10px rgba($accentColor, .9);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin button {
|
@mixin button {
|
||||||
|
@ -40,7 +44,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin homeBanner {
|
@mixin homeBanner {
|
||||||
background: #10141e;
|
background: lighten($background, 1);
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
display: block;
|
display: block;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
|
@ -62,7 +66,7 @@
|
||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
margin-right: auto;
|
margin-right: auto;
|
||||||
|
|
||||||
> i {
|
> i, > i::before {
|
||||||
line-height: 50px !important;
|
line-height: 50px !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
$layoutWidth: 900px;
|
$layoutWidth: 1200px;
|
||||||
$accentColor: #e5502b;
|
$accentColor: #e5502b;
|
||||||
$background: #0d0d0d;
|
$background: #070707;
|
||||||
$textColor: white;
|
$textColor: white;
|
||||||
|
$layoutPadding: 20px;
|
||||||
|
|
||||||
$mainFont: 'Anonymous Pro', monospace;
|
$mainFont: 'Anonymous Pro', monospace;
|
|
@ -12,7 +12,7 @@ class Layout extends React.Component {
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<SEO description={this.props.description} lang={this.props.lang} meta={this.props.meta} title={this.props.title} />
|
<SEO description={this.props.description} lang={this.props.lang} meta={this.props.meta} title={this.props.title} />
|
||||||
<Navigation isHome={this.props.module == "home"} module={this.props.module} />
|
<Navigation isHome={this.props.transparentTopbar} module={this.props.module} />
|
||||||
<div id="content" role="main">
|
<div id="content" role="main">
|
||||||
{this.props.children}
|
{this.props.children}
|
||||||
</div>
|
</div>
|
||||||
|
@ -29,6 +29,7 @@ Layout.defaultProps = {
|
||||||
module: `none`,
|
module: `none`,
|
||||||
meta: [],
|
meta: [],
|
||||||
description: ``,
|
description: ``,
|
||||||
|
transparentTopbar: false
|
||||||
}
|
}
|
||||||
|
|
||||||
Layout.propTypes = {
|
Layout.propTypes = {
|
||||||
|
@ -36,7 +37,8 @@ Layout.propTypes = {
|
||||||
lang: PropTypes.string,
|
lang: PropTypes.string,
|
||||||
meta: PropTypes.arrayOf(PropTypes.object),
|
meta: PropTypes.arrayOf(PropTypes.object),
|
||||||
title: PropTypes.string.isRequired,
|
title: PropTypes.string.isRequired,
|
||||||
module: PropTypes.string.isRequired
|
module: PropTypes.string.isRequired,
|
||||||
|
transparentTopbar: PropTypes.bool
|
||||||
}
|
}
|
||||||
|
|
||||||
export default Layout;
|
export default Layout;
|
|
@ -20,7 +20,7 @@ body, html, #___gatsby, #gatsby-focus-wrapper {
|
||||||
}
|
}
|
||||||
|
|
||||||
footer {
|
footer {
|
||||||
background: #000710;
|
background: darken($background, 1);
|
||||||
width: 100%;
|
width: 100%;
|
||||||
color: white;
|
color: white;
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
|
@ -45,19 +45,28 @@ footer {
|
||||||
left: 0;
|
left: 0;
|
||||||
display: flex;
|
display: flex;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
background: #000710;
|
background: rgba($background, .95);
|
||||||
|
backdrop-filter: blur(5px);
|
||||||
z-index: 999;
|
z-index: 999;
|
||||||
transition: background .25s;
|
transition: background .25s;
|
||||||
|
|
||||||
.topBarInner {
|
.topBarInner {
|
||||||
display: flex;
|
display: flex;
|
||||||
width: 90%;
|
width: 100%;
|
||||||
max-width: 900px;
|
max-width: $layoutWidth;
|
||||||
margin: auto;
|
margin: auto;
|
||||||
|
|
||||||
|
> :first-child {
|
||||||
|
padding-left: $layoutPadding;
|
||||||
|
}
|
||||||
|
|
||||||
|
> :last-child {
|
||||||
|
padding-right: $layoutPadding;
|
||||||
|
}
|
||||||
|
|
||||||
a {
|
a {
|
||||||
display: block;
|
display: block;
|
||||||
padding: 10px 15px;
|
padding: 10px $layoutPadding;
|
||||||
color: white;
|
color: white;
|
||||||
/*text-decoration: underline dotted white;*/
|
/*text-decoration: underline dotted white;*/
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
|
@ -76,6 +85,7 @@ footer {
|
||||||
|
|
||||||
.homeBar.homeBarTransparent {
|
.homeBar.homeBarTransparent {
|
||||||
background: transparent;
|
background: transparent;
|
||||||
|
backdrop-filter: blur(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
.flexSpacer {
|
.flexSpacer {
|
||||||
|
|
|
@ -8,6 +8,8 @@
|
||||||
@include cardGeneric;
|
@include cardGeneric;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
width: 300px;
|
||||||
|
flex-shrink: 0;
|
||||||
|
|
||||||
.friendImage {
|
.friendImage {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
|
@ -2,13 +2,14 @@ import * as React from "react"
|
||||||
import Layout from "../layouts/default"
|
import Layout from "../layouts/default"
|
||||||
|
|
||||||
import styles from "./index.module.scss"
|
import styles from "./index.module.scss"
|
||||||
|
import projectStyles from "./projects.module.scss"
|
||||||
|
|
||||||
import { Trans, Link } from "gatsby-plugin-react-i18next"
|
import { Trans, Link } from "gatsby-plugin-react-i18next"
|
||||||
import {graphql} from "gatsby";
|
import {graphql} from "gatsby";
|
||||||
|
|
||||||
|
|
||||||
export const query = graphql`
|
export const query = graphql`
|
||||||
query {
|
query GetMetaAndProjects($language: String) {
|
||||||
site {
|
site {
|
||||||
siteMetadata {
|
siteMetadata {
|
||||||
contactEmail
|
contactEmail
|
||||||
|
@ -18,6 +19,22 @@ export const query = graphql`
|
||||||
contactGitHub
|
contactGitHub
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
allProjectsJson(filter: {lang: {eq: $language}, featured: {ne: null}}, sort: {fields: featured, order: ASC}) {
|
||||||
|
nodes {
|
||||||
|
lang
|
||||||
|
urlname
|
||||||
|
name
|
||||||
|
image {
|
||||||
|
childImageSharp {
|
||||||
|
resize(width: 400, quality: 90) {
|
||||||
|
src
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
shortDescription
|
||||||
|
featured
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
|
@ -26,7 +43,7 @@ class IndexPage extends React.Component {
|
||||||
let meta = this.props.data.site.siteMetadata;
|
let meta = this.props.data.site.siteMetadata;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Layout title="Kevin Kandlbinder" module="home">
|
<Layout title="Kevin Kandlbinder" module="home" transparentTopbar={true}>
|
||||||
<section className={styles.heroSection}>
|
<section className={styles.heroSection}>
|
||||||
<div className={styles.profile + " profile"}>
|
<div className={styles.profile + " profile"}>
|
||||||
<div data-bg="url(https://cdn.kevink.dev/images/kevin/kevin-kandlbinder-03.jpg)" style={{backgroundImage: "url(https://cdn.kevink.dev/images/kevin/kevin-kandlbinder-03.jpg)"}} className={styles.profileImage + " lazy"}></div>
|
<div data-bg="url(https://cdn.kevink.dev/images/kevin/kevin-kandlbinder-03.jpg)" style={{backgroundImage: "url(https://cdn.kevink.dev/images/kevin/kevin-kandlbinder-03.jpg)"}} className={styles.profileImage + " lazy"}></div>
|
||||||
|
@ -58,6 +75,31 @@ class IndexPage extends React.Component {
|
||||||
<i className="fas fa-fw fa-chevron-right"></i>
|
<i className="fas fa-fw fa-chevron-right"></i>
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
|
<section className="featuredSection">
|
||||||
|
<article>
|
||||||
|
<h1><Trans>featuredProjects</Trans></h1>
|
||||||
|
<div className={projectStyles.projectList}>
|
||||||
|
{this.props.data.allProjectsJson.nodes.map((project) => {
|
||||||
|
return (
|
||||||
|
<div className={projectStyles.projectCard}>
|
||||||
|
{/*<div className="projectCardActivityIndicator activityIndicatorBlue">Live</div>*/}
|
||||||
|
<div className={projectStyles.projectCardImage} style={{ backgroundImage: "url("+project.image.childImageSharp.resize.src+")" }}>
|
||||||
|
<div className={projectStyles.projectCardMeta}>
|
||||||
|
<span className={projectStyles.projectCardTitle}>{project.name}</span>
|
||||||
|
<span className={projectStyles.projectCardTeaser}>{project.shortDescription}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className={projectStyles.projectCardCTAContainer}>
|
||||||
|
<div className={projectStyles.projectCardCTA}><Link to={"/projects/"+project.urlname}><Trans>projectView</Trans></Link></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
})}
|
||||||
|
</div>
|
||||||
|
<Link to="/projects" className={styles.seeMoreButton}><Trans>seeMore</Trans> <i className="fas fa-fw fa-chevron-right"></i></Link>
|
||||||
|
</article>
|
||||||
|
</section>
|
||||||
<Link className={styles.section + " " + styles.donationSection} to="/donate">
|
<Link className={styles.section + " " + styles.donationSection} to="/donate">
|
||||||
<div>
|
<div>
|
||||||
<span><Trans>donationCatchphrase</Trans></span>
|
<span><Trans>donationCatchphrase</Trans></span>
|
||||||
|
|
|
@ -4,10 +4,10 @@
|
||||||
.heroSection {
|
.heroSection {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
background: #000710;
|
background: #000710;
|
||||||
min-height: 500px;
|
min-height: 600px;
|
||||||
padding-top: 100px;
|
padding-top: 100px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
background: radial-gradient(ellipse at top left, #1f0ba659, transparent), radial-gradient(ellipse at bottom right, #4a086829, transparent);
|
background: linear-gradient(to bottom, transparent 80%, $background), radial-gradient(ellipse at top left, #1f0ba659, transparent), radial-gradient(ellipse at bottom right, #4a086829, transparent);
|
||||||
|
|
||||||
@media(pointer: coarse), (pointer: none) {
|
@media(pointer: coarse), (pointer: none) {
|
||||||
min-height: 700px;
|
min-height: 700px;
|
||||||
|
@ -136,7 +136,6 @@
|
||||||
|
|
||||||
.creditSection {
|
.creditSection {
|
||||||
@include homeBanner;
|
@include homeBanner;
|
||||||
background: #060606;
|
|
||||||
|
|
||||||
> div {
|
> div {
|
||||||
padding: 15px !important;
|
padding: 15px !important;
|
||||||
|
@ -149,3 +148,11 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.seeMoreButton {
|
||||||
|
@include button;
|
||||||
|
width: fit-content;
|
||||||
|
margin: 0 auto;
|
||||||
|
margin-top: 40px;
|
||||||
|
padding: 10px 20px;
|
||||||
|
}
|
|
@ -14,7 +14,7 @@ query GetProjects($language: String) {
|
||||||
name
|
name
|
||||||
image {
|
image {
|
||||||
childImageSharp {
|
childImageSharp {
|
||||||
resize(width: 250) {
|
resize(width: 400, quality: 90) {
|
||||||
src
|
src
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -41,11 +41,13 @@ export default function ProjectsPage({data}) {
|
||||||
return (
|
return (
|
||||||
<div className={styles.projectCard}>
|
<div className={styles.projectCard}>
|
||||||
{/*<div className="projectCardActivityIndicator activityIndicatorBlue">Live</div>*/}
|
{/*<div className="projectCardActivityIndicator activityIndicatorBlue">Live</div>*/}
|
||||||
<div className={styles.projectCardImage} style={{ backgroundImage: "url("+project.image.childImageSharp.resize.src+")" }}></div>
|
<div className={styles.projectCardImage} style={{ backgroundImage: "url("+project.image.childImageSharp.resize.src+")" }}>
|
||||||
<div className={styles.projectCardMeta}>
|
<div className={styles.projectCardMeta}>
|
||||||
<span className={styles.projectCardTitle}>{project.name}</span>
|
<span className={styles.projectCardTitle}>{project.name}</span>
|
||||||
<span className={styles.projectCardTeaser}>{project.shortDescription}</span>
|
<span className={styles.projectCardTeaser}>{project.shortDescription}</span>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div className={styles.projectCardCTAContainer}>
|
<div className={styles.projectCardCTAContainer}>
|
||||||
<div className={styles.projectCardCTA}><Link to={"/projects/"+project.urlname}><Trans>projectView</Trans></Link></div>
|
<div className={styles.projectCardCTA}><Link to={"/projects/"+project.urlname}><Trans>projectView</Trans></Link></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -11,15 +11,8 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
width: calc(100% / 4);
|
width: 250px;
|
||||||
|
flex-shrink: 0;
|
||||||
@media(max-width: 800px) {
|
|
||||||
width: calc((100% / 2) - 30px);
|
|
||||||
}
|
|
||||||
|
|
||||||
@media(max-width: 500px) {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.projectCardActivityIndicator {
|
.projectCardActivityIndicator {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
@ -45,20 +38,27 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.projectCardImage {
|
.projectCardImage {
|
||||||
display: block;
|
width: 100%;
|
||||||
height: 150px;
|
height: 250px;
|
||||||
background-position: center;
|
background-position: center;
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
|
text-shadow: 0 0 10px black, 0 0 10px black, 0 0 20px black;
|
||||||
}
|
}
|
||||||
|
|
||||||
.projectCardMeta {
|
.projectCardMeta {
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
padding: 10px;
|
||||||
|
height: 100%;
|
||||||
|
background: linear-gradient(to bottom, transparent, black);
|
||||||
}
|
}
|
||||||
|
|
||||||
.projectCardTitle {
|
.projectCardTitle {
|
||||||
display: block;
|
display: block;
|
||||||
font-size: 1.2em;
|
font-size: 1.5em;
|
||||||
|
margin-top: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.projectCardCTA {
|
.projectCardCTA {
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
|
||||||
.socialImage {
|
.socialImage {
|
||||||
width: 100%;
|
width: 300px;
|
||||||
height: 300px;
|
height: 300px;
|
||||||
background-position: center;
|
background-position: center;
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
|
|
|
@ -32,9 +32,9 @@ export default function ProjectTemplate({data}) {
|
||||||
let projectName = project.name;
|
let projectName = project.name;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Layout description={project.shortDescription} title={t("project")+": "+projectName}>
|
<Layout description={project.shortDescription} title={t("project")+": "+projectName} transparentTopbar={true}>
|
||||||
<section className={styles.projectHeader}>
|
<section className={styles.projectHeader}>
|
||||||
<div>
|
<div style={{paddingTop: 0}}>
|
||||||
<div className={styles.headerBackground} style={{backgroundImage: "url("+project.image.publicURL+")"}}></div>
|
<div className={styles.headerBackground} style={{backgroundImage: "url("+project.image.publicURL+")"}}></div>
|
||||||
<header>
|
<header>
|
||||||
<div className={styles.headerInner}>
|
<div className={styles.headerInner}>
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 0;
|
left: 0;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 200px;
|
height: 300px;
|
||||||
background-position: center;
|
background-position: center;
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
}
|
}
|
||||||
|
@ -18,14 +18,15 @@
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 0;
|
left: 0;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 200px;
|
height: 300px;
|
||||||
background: rgba(0, 0, 0, .5);
|
background:linear-gradient(to bottom, rgba($background, .95), rgba($background, .5) 20%);
|
||||||
|
|
||||||
.headerInner {
|
.headerInner {
|
||||||
max-width: $layoutWidth;
|
max-width: $layoutWidth;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
padding: 65px 20px 0;
|
padding: 225px 20px 0;
|
||||||
|
text-shadow: 0 0 20px black, 0 0 20px black;
|
||||||
|
|
||||||
* {
|
* {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
@ -41,7 +42,7 @@
|
||||||
|
|
||||||
.headerPlaceholder {
|
.headerPlaceholder {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 200px;
|
height: 270px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue