portfolio-xs
Version:
This is a tool to generate portfolio based with your markdown file
308 lines (263 loc) • 5.5 kB
CSS
*,
*::before,
*::after {
box-sizing: inherit;
font-family: IBM Plex Mono,monospace;
}
body {
margin: 0;
box-sizing: border-box;
}
a {
color: #485fc7;
cursor: pointer;
}
.template {
padding-bottom: 5rem;
transition: all .6s ease-in-out;
}
@keyframes overlayFadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
@keyframes overlayFadeOut {
from { opacity: 1; }
to { opacity: 0; }
}
.overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
z-index: 1;
opacity: 0;
transition: all .6s ease-in-out;
}
.overlay.overlay-visible {
animation: overlayFadeIn 0.6s forwards;
pointer-events: auto;
}
.overlay.overlay-hide {
animation: overlayFadeOut 0.6s forwards;
pointer-events: none;
}
.profile {
position: fixed;
bottom: 0;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 1.25rem;
height: 5rem;
width: 100%;
box-shadow: 0 0 2rem 0 rgba(0,0,0,.3);
z-index: 2;
background-color: white;
transition: all .6s ease-in-out;
}
.profile-expanded {
flex-grow: 1;
opacity: 1;
height: 65%;
transition: all .6s ease-in-out;
}
.profile-bar {
display: flex;
flex-direction: row;
flex-grow: 0;
align-items: center;
justify-content: space-between;
width: 100%;
font-size: 1rem;
line-height: 1.5;
transition: all .6s ease-in-out;
}
.profile-text {
position: relative;
font-size: 1.4rem;
cursor: pointer;
transition: all .6s ease-in-out;
}
.profile-text:before {
content: "";
position: absolute;
background-color: #000;
visibility: hidden;
transition: all .3s ease-in-out 0s;
}
.profile-text:hover:before {
visibility: visible;
}
@media (max-width: 767px), (min-width: 768px) and (max-width: 958px) and (orientation: portrait) {
.profile-text:before {
width: 100%;
height: 2px;
bottom: 0;
left: 0;
transform: scaleX(0);
}
}
@media (max-width: 767px), (min-width: 768px) and (max-width: 958px) and (orientation: portrait) {
.profile-text:hover:before {
transform: scaleX(1);
}
}
@media (min-width: 768px) and (max-width: 958px) and (orientation: landscape), (min-width: 958px) {
.profile-text:before {
height: 100%;
width: 2px;
top: 0;
left: 0;
transform: scaleY(0);
}
}
@media (min-width: 768px) and (max-width: 958px) and (orientation: landscape), (min-width: 958px) {
.profile-text:hover:before {
transform: scaleY(1);
}
}
.profile-icon {
transition: all .3s ease-in-out;
color: #4a4a4a;
border: 1px solid transparent;
border-radius: 4px;
padding: .5rem;
line-height: 0;
cursor: pointer;
}
.profile-icon:hover {
background-color: #ccc;
}
.profile-content {
flex-shrink: 1;
height: 0;
width: 100%;
opacity: 0;
transition: all .6s ease-in-out;
}
.profile-content-expanded {
flex-grow: 1;
height: 65%;
padding: 1rem 0;
opacity: 1;
transition: all .6s ease-in-out;
}
.profile-subtitle {
font-weight: 700;
font-size: 1rem;
color: #4a4a4a;
}
.profile-subcontent {
margin-bottom: 1rem;
font-size: 1rem;
color: #4a4a4a;
line-height: 1.5;
}
.project-list {
display: flex;
flex-direction: row;
flex-wrap: wrap;
overflow: auto;
}
.project-row {
display: flex;
width: 100%;
}
.project-item {
position: relative;
flex: 1;
aspect-ratio: 4 / 3;
background-size: cover;
background-position: center;
cursor: pointer;
}
.project-item:hover {
opacity: 0.8;
}
.project-info {
position: absolute;
display: flex;
flex-direction: column;
justify-content: flex-end;
padding: 1rem;
width: 100%;
aspect-ratio: 4 / 3;
background-color: rgba(0, 0, 0, 0.7);
opacity: 0;
cursor: pointer;
transition: all .6s ease-in-out;
}
.project-info:hover {
opacity: 1;
}
.project-title {
color: white;
font-size: 2rem;
font-weight: 700;
line-height: 1.125;
}
.project-description {
color: white;
font-size: 0.7rem;
font-weight: 400;
line-height: 1.25;
}
@media (min-width: 958px) {
.template {
padding-left: 5rem;
padding-bottom: 0;
}
.profile {
left: 0;
height: 100%;
width: 5rem;
flex-direction: row;
}
.profile-expanded {
width: 28rem;
}
.profile-content {
height: 100%;
width: 0;
overflow: scroll;
}
.profile-content-expanded {
flex-grow: 1;
width: 26rem;
padding: 0 1rem 0 1.5em;
opacity: 1;
}
.profile-bar {
flex-direction: column;
align-items: center;
justify-content: space-between;
flex-grow: 0;
flex-shrink: 0;
height: 100%;
width: 2.5rem;
}
.profile-text {
text-orientation: mixed;
writing-mode: vertical-rl;
}
}
.mark-img {
display: block;
max-width: 100%;
height: auto;
}
blockquote {
display: block;
margin-block-start: 1em;
margin-block-end: 1em;
margin-inline-start: 40px;
margin-inline-end: 40px;
unicode-bidi: isolate;
background-color: #f5f5f5;
border-left: 5px solid #dbdbdb;
padding: 1.25em 1.5em;
word-break: break-word;
}