project updates, social tweaks
@ -3,16 +3,22 @@ title: Matthias Kretschmann
|
|||||||
tagline: Designer & Developer
|
tagline: Designer & Developer
|
||||||
description: Portfolio of web & ui designer/developer hybrid Matthias Kretschmann.
|
description: Portfolio of web & ui designer/developer hybrid Matthias Kretschmann.
|
||||||
url: https://matthiaskretschmann.com
|
url: https://matthiaskretschmann.com
|
||||||
|
|
||||||
social:
|
social:
|
||||||
Email: mailto:m@kretschmann.io
|
Email: mailto:m@kretschmann.io
|
||||||
Blog: https://kremalicious.com
|
Blog: https://kremalicious.com
|
||||||
Twitter: https://twitter.com/kremalicious
|
Twitter: https://twitter.com/kremalicious
|
||||||
GitHub: https://github.com/kremalicious
|
GitHub: https://github.com/kremalicious
|
||||||
Dribbble: https://dribbble.com/kremalicious
|
Dribbble: https://dribbble.com/kremalicious
|
||||||
|
|
||||||
availability:
|
availability:
|
||||||
status: false
|
status: false
|
||||||
available: "\U0001F454 Available for new projects. <a href=\"mailto:m@kretschmann.io\">Let’s
|
available: "👔 Available for new projects. <a href=\"mailto:m@kretschmann.io\">Let’s
|
||||||
talk</a>!"
|
talk</a>!"
|
||||||
unavailable: Not available for new projects.
|
unavailable: Not available for new projects.
|
||||||
|
|
||||||
|
gpg: https://kretschmann.io/pub.gpg
|
||||||
|
addressbook: /vcard-matthias-kretschmann.vcf
|
||||||
|
|
||||||
typekit: dtg3zui
|
typekit: dtg3zui
|
||||||
googleanalytics: UA-1441794-4
|
googleanalytics: UA-1441794-4
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
description: >
|
description: >
|
||||||
Since 2017 I'm leading the UI design & development of all Ocean Protocol web properties. Additionally, I conceptualize, execute and iterate on the creative and visual direction of the Ocean Protocol brand.
|
Since 2017 I'm leading the UI design & development of all Ocean Protocol web properties. Additionally, I conceptualize, execute and iterate on the creative and visual direction of the Ocean Protocol brand.
|
||||||
|
|
||||||
The main website is a single-page JavaScript application built with React, pulling its data from JSON files and various micro services I've built over time. All design & development is embedded in a continous deployment process via GitHub & Travis.
|
The main website is a single-page JavaScript application built with React, pulling its data from JSON files and various micro services. All design & development is embedded in a continous deployment process via GitHub & Travis.
|
||||||
|
|
||||||
Initial website in collaboration with [Balance](https://balance.io/). Key visuals in collaboration with [Wojciech Hupert](https://twitter.com/wojciechhupert).
|
Initial website in collaboration with [Balance](https://balance.io/). Key visuals in collaboration with [Wojciech Hupert](https://twitter.com/wojciechhupert).
|
||||||
links:
|
links:
|
||||||
@ -34,7 +34,7 @@
|
|||||||
slug: "/ipdb/"
|
slug: "/ipdb/"
|
||||||
img: "../src/images/portfolio-ipdb-01.png"
|
img: "../src/images/portfolio-ipdb-01.png"
|
||||||
description: >
|
description: >
|
||||||
From 2015-2017 I was leading the UI design & development of all IPDB web properties and additonally iterated on the creative and visual direction of the IPDB brand.
|
From 2015–2017 I was leading the UI design & development of all IPDB web properties and additonally iterated on the creative and visual direction of the IPDB brand.
|
||||||
|
|
||||||
The main website is a static site built with Jekyll and a custom Gulp-based build pipeline in front of it. All design & development is embedded in a continous deployment process via GitHub & Travis.
|
The main website is a static site built with Jekyll and a custom Gulp-based build pipeline in front of it. All design & development is embedded in a continous deployment process via GitHub & Travis.
|
||||||
|
|
||||||
@ -152,7 +152,7 @@
|
|||||||
slug: "/chartmogul/"
|
slug: "/chartmogul/"
|
||||||
img: "../src/images/portfolio-chartmogul-01.png"
|
img: "../src/images/portfolio-chartmogul-01.png"
|
||||||
description: >
|
description: >
|
||||||
From 2015-2017 I was co-designing and leading the UI design & development of various ChartMogul web properties. This included the creation of a components-based UI design system and implementing it across all web touch points.
|
From 2015–2017 I was co-designing and leading the UI design & development of various ChartMogul web properties. This included the creation of a components-based UI design system and implementing it across all web touch points.
|
||||||
|
|
||||||
The main website with its landing pages is a static site built with Jekyll and a custom Gulp-based build pipeline in front of it, while the blog is running on WordPress with its own custom theme. All embedded in an automated development & deployment workflow via GitHub and Travis.
|
The main website with its landing pages is a static site built with Jekyll and a custom Gulp-based build pipeline in front of it, while the blog is running on WordPress with its own custom theme. All embedded in an automated development & deployment workflow via GitHub and Travis.
|
||||||
|
|
||||||
@ -191,7 +191,9 @@
|
|||||||
slug: "/sharethemeal/"
|
slug: "/sharethemeal/"
|
||||||
img: "../src/images/portfolio-sharethemeal.png"
|
img: "../src/images/portfolio-sharethemeal.png"
|
||||||
description: >
|
description: >
|
||||||
Co-designing and leading the front-end development of the ShareTheMeal website.
|
ShareTheMeal is an app from the United Nations World Food Programme (WFP) that enables people to "share their meals" with children in need. In 2015 I was consulting, co-designing and leading the front-end development of the ShareTheMeal website and various parts of the ShareTheMeal apps for iOS & Android.
|
||||||
|
|
||||||
|
The main website is a static site built with Jekyll and a custom Gulp-based build pipeline in front of it, embedded in a continous deployment process via GitHub & Travis.
|
||||||
|
|
||||||
techstack:
|
techstack:
|
||||||
- Sketch
|
- Sketch
|
||||||
@ -209,13 +211,14 @@
|
|||||||
links:
|
links:
|
||||||
- title: Link
|
- title: Link
|
||||||
url: https://sharethemeal.org/
|
url: https://sharethemeal.org/
|
||||||
|
|
||||||
-
|
-
|
||||||
|
|
||||||
title: ezeep
|
title: ezeep
|
||||||
slug: "/ezeep/"
|
slug: "/ezeep/"
|
||||||
img: "../src/images/portfolio-ezeep-01.png"
|
img: "../src/images/portfolio-ezeep-01.png"
|
||||||
description: >
|
description: >
|
||||||
From 2012 to 2015 I worked at ezeep, where we created an unprecedented, market-leading & award-winning user experience based on the principles of emotional design way ahead of all competitors. This included conceptualizing executing, and iterating on the creative & visual direction of the ezeep brand.
|
From 2012–2015 I worked at ezeep, where I helped creating an unprecedented, market-leading & award-winning user experience based on the principles of emotional design way ahead of all competitors. This included conceptualizing executing, and iterating on the creative & visual direction of the ezeep brand.
|
||||||
|
|
||||||
I was leading the UI design & development of all ezeep touch points and - as a product designer - defined the ezeep product based on user and market research in an iterative process. On top of that, I designed and helped building all app experiences of ezeep on Windows, macOS, iOS, and Android.
|
I was leading the UI design & development of all ezeep touch points and - as a product designer - defined the ezeep product based on user and market research in an iterative process. On top of that, I designed and helped building all app experiences of ezeep on Windows, macOS, iOS, and Android.
|
||||||
|
|
||||||
@ -262,8 +265,9 @@
|
|||||||
description: >
|
description: >
|
||||||
So, what to do when everyone seem to release iPad icons but fail to
|
So, what to do when everyone seem to release iPad icons but fail to
|
||||||
include some crisp small size icons? Pushing the pixels for yourself of course.
|
include some crisp small size icons? Pushing the pixels for yourself of course.
|
||||||
So here’s my take on the smaller sizes of an Apple iPad icon, called iPixelPad
|
So here’s my take on the smaller sizes of an Apple iPad icon, called iPixelPad.
|
||||||
in the sizes 48px, 32px and 16px.
|
|
||||||
|
Released as a goodie on [kremalicious.com](https://kremalicious.com/ipixelpad/).
|
||||||
|
|
||||||
techstack:
|
techstack:
|
||||||
- Photoshop
|
- Photoshop
|
||||||
@ -279,7 +283,8 @@
|
|||||||
img: "../src/images/portfolio-outofwhaleoil-01.png"
|
img: "../src/images/portfolio-outofwhaleoil-01.png"
|
||||||
description: >
|
description: >
|
||||||
Tribute wallpaper pack inspired by the Futurama movie _Into The Wild
|
Tribute wallpaper pack inspired by the Futurama movie _Into The Wild
|
||||||
Green Yonder_.
|
Green Yonder_. Released as a goodie
|
||||||
|
on [kremalicious.com](https://kremalicious.com/out-of-whale-oil/).
|
||||||
links:
|
links:
|
||||||
- title: Download
|
- title: Download
|
||||||
url: https://kremalicious.com/out-of-whale-oil/
|
url: https://kremalicious.com/out-of-whale-oil/
|
||||||
@ -292,7 +297,7 @@
|
|||||||
slug: "/unihalle/"
|
slug: "/unihalle/"
|
||||||
img: "../src/images/portfolio-unihalle-01.png"
|
img: "../src/images/portfolio-unihalle-01.png"
|
||||||
description: >
|
description: >
|
||||||
From 2009 to 2012 I worked at the IT services department of [Martin-Luther-Universität Halle-Wittenberg](http://www.uni-halle.de) where I conceptualized & implemented numerous in-house and public facing interfaces for thousands of students and staff.
|
From 2009–2012 I worked at the IT services department of [Martin-Luther-Universität Halle-Wittenberg](http://www.uni-halle.de) where I conceptualized, designed & implemented numerous in-house and public facing interfaces for thousands of students and staff.
|
||||||
|
|
||||||
Additionally, I conceptualized, designed, created, and maintained the blog network & community for all students & staff.
|
Additionally, I conceptualized, designed, created, and maintained the blog network & community for all students & staff.
|
||||||
|
|
||||||
@ -330,12 +335,32 @@
|
|||||||
- title: Download
|
- title: Download
|
||||||
url: https://kremalicious.com/coffee-cup-icon/
|
url: https://kremalicious.com/coffee-cup-icon/
|
||||||
|
|
||||||
|
-
|
||||||
|
|
||||||
|
title: Project Purple
|
||||||
|
slug: "/projectpurple/"
|
||||||
|
img: "../src/images/portfolio-projectpurple-01.png"
|
||||||
|
description: >
|
||||||
|
It had been revealed the original iPhone was developed in a locked down building under the name Project Purple and because of the secrecy involved, the team decorated the building with Fight Club references. Perfect story to create a wallpaper out of it.
|
||||||
|
|
||||||
|
Released as a goodie on [kremalicious.com](https://kremalicious.com/projectpurple/).
|
||||||
|
|
||||||
|
techstack:
|
||||||
|
- Photoshop
|
||||||
|
|
||||||
|
links:
|
||||||
|
- title: Download
|
||||||
|
url: https://kremalicious.com/projectpurple/
|
||||||
|
|
||||||
-
|
-
|
||||||
|
|
||||||
title: Allinnia Creative Group
|
title: Allinnia Creative Group
|
||||||
slug: "/allinnia/"
|
slug: "/allinnia/"
|
||||||
img: "../src/images/portfolio-allinnia-01.png"
|
img: "../src/images/portfolio-allinnia-01.png"
|
||||||
description: ''
|
description: >
|
||||||
|
In 2009 I created the branding, website, and various key visuals for professional music production studio Allinnia Creative Group, reflecting their own musical compositions.
|
||||||
|
|
||||||
|
The website was built from scratch as a simple PHP application with a store and music listening functionality.
|
||||||
techstack:
|
techstack:
|
||||||
- Photoshop
|
- Photoshop
|
||||||
- HTML
|
- HTML
|
||||||
@ -343,3 +368,28 @@
|
|||||||
- JavaScript
|
- JavaScript
|
||||||
- PHP
|
- PHP
|
||||||
|
|
||||||
|
-
|
||||||
|
|
||||||
|
title: Aperture Loupe
|
||||||
|
slug: "/apertureloupe/"
|
||||||
|
img: "../src/images/portfolio-apertureloupe-01.png"
|
||||||
|
description: >
|
||||||
|
When Apple released their professional photography app _Aperture_ in 2008, the loupe tool in there was something really novel and just fun to play with. Inspired by that, I created this macOS desktop icon.
|
||||||
|
|
||||||
|
techstack:
|
||||||
|
- Photoshop
|
||||||
|
|
||||||
|
-
|
||||||
|
|
||||||
|
title: Adiumeetie
|
||||||
|
slug: "/adiumeetie/"
|
||||||
|
img: "../src/images/portfolio-adiumeetie-01.png"
|
||||||
|
description: >
|
||||||
|
A macOS replacement desktop icon created in 2009 for the popular Mac IM client Adium following the style of atebit’s excellent Tweetie for Mac icon. Released as a goodie on [kremalicious.com](https://kremalicious.com/adiumeetie/).
|
||||||
|
|
||||||
|
techstack:
|
||||||
|
- Photoshop
|
||||||
|
|
||||||
|
links:
|
||||||
|
- title: Download
|
||||||
|
url: https://kremalicious.com/adiumeetie/
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
.project__nav {
|
.project__nav {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
@ -12,31 +13,36 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.project__nav__item {
|
.project__nav__item {
|
||||||
flex: 1 1 48%;
|
flex: 1 1 46%;
|
||||||
position: relative;
|
position: relative;
|
||||||
transition: .2s ease-out;
|
transition: .2s ease-out;
|
||||||
max-width: 500px;
|
max-width: 500px;
|
||||||
|
|
||||||
&:first-child {
|
&:first-child {
|
||||||
text-align: left;
|
margin-right: $spacer / 2;
|
||||||
|
|
||||||
&:hover,
|
&:hover,
|
||||||
&:focus {
|
&:focus {
|
||||||
transform: translate3d(-1rem, 0, 0);
|
transform: translate3d(-.5rem, 0, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&:last-child { // stylelint-disable-line
|
&:last-child { // stylelint-disable-line
|
||||||
text-align: right;
|
margin-left: $spacer / 2;
|
||||||
|
|
||||||
&:hover,
|
&:hover,
|
||||||
&:focus {
|
&:focus {
|
||||||
transform: translate3d(1rem, 0, 0);
|
transform: translate3d(.5rem, 0, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (min-width: 45rem) {
|
@media (min-width: 45rem) {
|
||||||
flex-basis: 33%;
|
flex-basis: 33%;
|
||||||
|
|
||||||
|
&:first-child,
|
||||||
|
&:last-child {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -53,11 +59,19 @@
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
display: block;
|
display: block;
|
||||||
align-self: center;
|
align-self: center;
|
||||||
margin-top: $spacer * 8;
|
margin-top: $spacer * 2;
|
||||||
|
margin-left: $spacer;
|
||||||
|
margin-right: $spacer;
|
||||||
transition: .2s ease-out;
|
transition: .2s ease-out;
|
||||||
|
order: 3;
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
@media (min-width: 45rem) {
|
@media (min-width: 45rem) {
|
||||||
margin-top: -$spacer;
|
margin-top: 0;
|
||||||
|
margin-left: $spacer * 4;
|
||||||
|
margin-right: $spacer * 4;
|
||||||
|
order: initial;
|
||||||
|
width: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon {
|
.icon {
|
||||||
@ -68,8 +82,6 @@
|
|||||||
|
|
||||||
&:hover,
|
&:hover,
|
||||||
&:focus {
|
&:focus {
|
||||||
transform: translate3d(0, -.3rem, 0);
|
|
||||||
|
|
||||||
.icon {
|
.icon {
|
||||||
fill: $brand-cyan;
|
fill: $brand-cyan;
|
||||||
}
|
}
|
||||||
|
@ -45,6 +45,7 @@ const Social = ({ meta, minimal, hide }) => {
|
|||||||
title={key}
|
title={key}
|
||||||
>
|
>
|
||||||
<SocialIcon title={key} className="icon" />
|
<SocialIcon title={key} className="icon" />
|
||||||
|
<span className="social__title">{key}</span>
|
||||||
</OutboundLink>
|
</OutboundLink>
|
||||||
))}
|
))}
|
||||||
</aside>
|
</aside>
|
||||||
|
@ -1,21 +1,27 @@
|
|||||||
@import 'variables';
|
@import 'variables';
|
||||||
|
|
||||||
.social {
|
.social {
|
||||||
margin-top: $spacer * 2;
|
margin-top: $spacer * $line-height;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.social__title {
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
font-size: $font-size-mini;
|
||||||
|
color: $brand-grey-light;
|
||||||
|
opacity: 0;
|
||||||
|
transform: translate3d(0, .5rem, 0);
|
||||||
|
transition: .2s ease-out;
|
||||||
|
}
|
||||||
|
|
||||||
.social__link {
|
.social__link {
|
||||||
margin-left: $spacer / 4;
|
margin-left: $spacer / 4;
|
||||||
margin-right: $spacer / 4;
|
margin-right: $spacer / 4;
|
||||||
padding: $spacer / 2;
|
|
||||||
text-align: center;
|
text-align: center;
|
||||||
display: flex;
|
display: block;
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
border-radius: .25rem;
|
|
||||||
|
|
||||||
@media (min-width: 30rem) {
|
@media (min-width: 30rem) {
|
||||||
margin-left: $spacer / 2;
|
margin-left: $spacer / 2;
|
||||||
@ -31,24 +37,26 @@
|
|||||||
width: 1rem;
|
width: 1rem;
|
||||||
height: 1rem;
|
height: 1rem;
|
||||||
fill: $brand-grey-light;
|
fill: $brand-grey-light;
|
||||||
transition: .2s ease-out;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover,
|
&:hover,
|
||||||
&:focus {
|
&:focus {
|
||||||
background: $brand-light;
|
background: $brand-light;
|
||||||
transform: translate3d(0, -.2rem, 0);
|
|
||||||
box-shadow: 0 6px 10px rgba($brand-main, .1), 0 10px 25px rgba($brand-main, .1);
|
|
||||||
|
|
||||||
.icon {
|
.icon {
|
||||||
fill: $brand-cyan;
|
fill: $brand-cyan;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.social__title {
|
||||||
|
opacity: 1;
|
||||||
|
transform: translate3d(0, 0, 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.social--minimal & {
|
.social--minimal & {
|
||||||
padding: $spacer / 3;
|
padding: $spacer / 4;
|
||||||
margin-left: $spacer / 3;
|
margin-left: $spacer / 4;
|
||||||
margin-right: $spacer / 3;
|
margin-right: $spacer / 4;
|
||||||
|
|
||||||
.icon {
|
.icon {
|
||||||
width: .85rem;
|
width: .85rem;
|
||||||
|
@ -9,9 +9,15 @@ const Footer = ({ meta }) => {
|
|||||||
return (
|
return (
|
||||||
<footer className="footer">
|
<footer className="footer">
|
||||||
<Social meta={meta} minimal />
|
<Social meta={meta} minimal />
|
||||||
<small>
|
<p className="footer__actions">
|
||||||
© {year} {meta.title} — All Rights Reserved
|
<a href={meta.addressbook}>Add to addressbook</a>
|
||||||
</small>
|
<a href={meta.gpg}>PGP/GPG key</a>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<small>
|
||||||
|
© {year} {meta.title} — All Rights Reserved
|
||||||
|
</small>
|
||||||
|
</p>
|
||||||
</footer>
|
</footer>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -15,3 +15,21 @@
|
|||||||
margin-bottom: $spacer;
|
margin-bottom: $spacer;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.footer__actions {
|
||||||
|
width: 100%;
|
||||||
|
margin-top: -($spacer / 2);
|
||||||
|
margin-bottom: $spacer * 3;
|
||||||
|
|
||||||
|
a {
|
||||||
|
display: inline-block;
|
||||||
|
padding: 0 $spacer / 4;
|
||||||
|
font-size: $font-size-small;
|
||||||
|
margin-left: $spacer;
|
||||||
|
color: $brand-grey-light;
|
||||||
|
|
||||||
|
&:first-child {
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
BIN
src/images/portfolio-adiumeetie-01.png
Normal file
After Width: | Height: | Size: 784 KiB |
BIN
src/images/portfolio-apertureloupe-01.png
Normal file
After Width: | Height: | Size: 283 KiB |
Before Width: | Height: | Size: 598 KiB After Width: | Height: | Size: 625 KiB |
Before Width: | Height: | Size: 696 KiB After Width: | Height: | Size: 1.0 MiB |
BIN
src/images/portfolio-bigchaindb-05.png
Normal file
After Width: | Height: | Size: 696 KiB |
Before Width: | Height: | Size: 316 KiB After Width: | Height: | Size: 291 KiB |
Before Width: | Height: | Size: 572 KiB After Width: | Height: | Size: 534 KiB |
BIN
src/images/portfolio-projectpurple-01.png
Normal file
After Width: | Height: | Size: 1.8 MiB |
@ -82,6 +82,8 @@ export const query = graphql`
|
|||||||
available
|
available
|
||||||
unavailable
|
unavailable
|
||||||
}
|
}
|
||||||
|
gpg
|
||||||
|
addressbook
|
||||||
typekit
|
typekit
|
||||||
googleanalytics
|
googleanalytics
|
||||||
}
|
}
|
||||||
|
@ -83,11 +83,12 @@ h6 {
|
|||||||
a {
|
a {
|
||||||
color: $brand-cyan;
|
color: $brand-cyan;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
transition: color .2s ease-out;
|
transition: .2s ease-out;
|
||||||
|
|
||||||
&:hover,
|
&:hover,
|
||||||
&:focus {
|
&:focus {
|
||||||
color: lighten($brand-cyan, 10%);
|
color: lighten($brand-cyan, 10%);
|
||||||
|
transform: translate3d(0, -.1rem, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|