UNPKG

portfolio-xs

Version:

This is a tool to generate portfolio based with your markdown file

308 lines (263 loc) 5.5 kB
*, *::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; }