mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-10-04 23:38:12 +08:00
More website loading speed and code improvements
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
.loading-data:empty::after {
|
||||
content: "(loading...)";
|
||||
font-style: italic;
|
||||
opacity: 0;
|
||||
animation: fadeInAfterWait 2s ease-in 2s forwards;
|
||||
|
||||
@keyframes fadeInAfterWait {
|
||||
0% { opacity: 0; }
|
||||
100% { opacity: 1; }
|
||||
}
|
||||
}
|
||||
|
||||
#core-team {
|
||||
background-color: var(--color-parchment);
|
||||
|
||||
.block {
|
||||
align-items: center;
|
||||
|
||||
img {
|
||||
max-width: Min(100%, 320px);
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-weight: 700;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
|
||||
.handle {
|
||||
margin: 0 0.4em;
|
||||
font-size: 0.5em;
|
||||
font-style: italic;
|
||||
vertical-align: middle;
|
||||
color: var(--color-slate);
|
||||
}
|
||||
|
||||
.flag {
|
||||
font-family: "Noto Color Emoji", sans-serif;
|
||||
font-style: normal;
|
||||
vertical-align: middle;
|
||||
font-size: 0.8em;
|
||||
cursor: default;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,126 @@
|
||||
#intro .block {
|
||||
flex: 1 1 100%;
|
||||
width: 100%;
|
||||
|
||||
.left-right-split {
|
||||
width: 100%;
|
||||
margin-top: 20px;
|
||||
display: flex;
|
||||
gap: 20px;
|
||||
justify-content: space-between;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.feed {
|
||||
margin-top: -4px;
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
display: flex;
|
||||
gap: 8px;
|
||||
|
||||
.icon {
|
||||
vertical-align: top;
|
||||
width: calc(var(--font-size-link) * 1.5);
|
||||
height: calc(var(--font-size-link) * 1.5);
|
||||
}
|
||||
|
||||
.link {
|
||||
vertical-align: top;
|
||||
margin-top: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#articles {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
section {
|
||||
display: flex;
|
||||
gap: 20px 80px;
|
||||
width: 100%;
|
||||
|
||||
@media screen and (max-width: 960px) {
|
||||
flex-wrap: wrap;
|
||||
justify-content: center;
|
||||
flex-direction: column;
|
||||
|
||||
.banner.banner {
|
||||
width: 100%;
|
||||
background: var(--color-fog);
|
||||
|
||||
img {
|
||||
margin: auto;
|
||||
max-width: 480px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
~ section {
|
||||
margin-top: calc(120 * var(--variable-px));
|
||||
}
|
||||
|
||||
.banner {
|
||||
width: 400px;
|
||||
flex: 0 0 auto;
|
||||
|
||||
img {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
}
|
||||
|
||||
.details {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 20px;
|
||||
flex: 1 1 auto;
|
||||
|
||||
.headline {
|
||||
margin-top: -0.5em;
|
||||
|
||||
a {
|
||||
font-weight: 700;
|
||||
text-decoration: none;
|
||||
color: var(--color-navy);
|
||||
}
|
||||
}
|
||||
|
||||
.publication {
|
||||
font-weight: 800;
|
||||
}
|
||||
|
||||
.summary {
|
||||
flex-direction: column;
|
||||
gap: 20px;
|
||||
text-align: justify;
|
||||
text-justify: inter-character; // Only supported in Firefox
|
||||
-webkit-hyphens: auto;
|
||||
hyphens: auto;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
display: -webkit-box;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-line-clamp: 3;
|
||||
|
||||
code {
|
||||
text-justify: auto;
|
||||
}
|
||||
|
||||
// Safari workaround: https://stackoverflow.com/a/72170897/775283
|
||||
// But there remains an issue where the ellipsis is rendered inside the text. There doesn't appear to be a fix, or even a way to disable the ellipsis in Safari.
|
||||
p {
|
||||
display: inline;
|
||||
|
||||
&::after {
|
||||
content: "\A\A"; // Double new line
|
||||
white-space: pre;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
// #fundraising {
|
||||
// background-color: var(--color-seaside);
|
||||
// color: rgba(0, 0, 0, 0.9);
|
||||
|
||||
// .graphic {
|
||||
// max-width: 400px;
|
||||
// }
|
||||
|
||||
// .fundraising {
|
||||
// margin-top: 20px;
|
||||
// width: 100%;
|
||||
|
||||
// .fundraising-bar {
|
||||
// width: 100%;
|
||||
// height: 32px;
|
||||
// border-radius: 10000px;
|
||||
// background: var(--color-fog);
|
||||
// overflow: hidden;
|
||||
|
||||
// .fundraising-bar-progress {
|
||||
// width: calc(var(--fundraising-percent) - (4px * 2) - (32px - 4px * 2));
|
||||
// padding-left: calc(32px - 4px * 2);
|
||||
// height: calc(100% - 4px * 2);
|
||||
// margin: 4px;
|
||||
// border-radius: 10000px;
|
||||
// background: linear-gradient(to right, var(--color-navy), var(--color-crimson));
|
||||
// transition: opacity 1s, width 2s;
|
||||
// }
|
||||
// }
|
||||
|
||||
// .goal-metrics {
|
||||
// display: flex;
|
||||
// justify-content: space-between;
|
||||
// font-weight: 800;
|
||||
// margin-top: 8px;
|
||||
// margin-left: 20px;
|
||||
// width: calc(100% - 40px);
|
||||
|
||||
// > span {
|
||||
// transition: opacity 1s;
|
||||
// }
|
||||
// }
|
||||
|
||||
// &.fundraising.loading {
|
||||
// .goal-metrics > span,
|
||||
// .fundraising-bar .fundraising-bar-progress {
|
||||
// opacity: 0;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
@@ -0,0 +1,88 @@
|
||||
#roadmap {
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.roadmap {
|
||||
margin: auto;
|
||||
margin-top: 20px;
|
||||
padding: 0 16px;
|
||||
|
||||
.feature-icons {
|
||||
flex-direction: column;
|
||||
gap: 0;
|
||||
width: 100%;
|
||||
margin-bottom: 0;
|
||||
|
||||
.feature-icon {
|
||||
position: relative;
|
||||
padding-left: calc(16px + 8px);
|
||||
|
||||
&::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
width: 4px;
|
||||
height: 100%;
|
||||
background: #ddd;
|
||||
}
|
||||
|
||||
&:first-of-type::before {
|
||||
bottom: 0;
|
||||
height: 50%;
|
||||
}
|
||||
|
||||
&:last-of-type::before {
|
||||
top: 0;
|
||||
height: 50%;
|
||||
}
|
||||
|
||||
&::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: calc((24px - 4px) / -2);
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
border-radius: 24px;
|
||||
}
|
||||
|
||||
&[data-year]::after {
|
||||
content: attr(data-year);
|
||||
width: auto;
|
||||
line-height: 1.4;
|
||||
text-indent: 28px;
|
||||
padding-right: 12px;
|
||||
}
|
||||
|
||||
&.complete::after {
|
||||
background: var(--color-seaside);
|
||||
background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16" fill="%2316323f"><polygon points="6.69 14.57 0 9 1.8 6.84 6.32 10.61 13.83 1.43 16 3.2 6.69 14.57" /></svg>');
|
||||
background-repeat: no-repeat;
|
||||
background-position: 4px center;
|
||||
}
|
||||
|
||||
&.ongoing::after {
|
||||
background: var(--color-lemon);
|
||||
background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16" fill="%2316323f"><path d="m8,2c3.31,0,6,2.69,6,6s-2.69,6-6,6-6-2.69-6-6,2.69-6,6-6m0-2C3.58,0,0,3.58,0,8s3.58,8,8,8,8-3.58,8-8S12.42,0,8,0h0Zm2.83,9.41l-1.83-1.83v-2.59c0-.55-.45-1-1-1s-1,.45-1,1v3c0,.13.03.26.08.38.05.12.12.23.22.33l2.12,2.12c.2.2.45.29.71.29s.51-.1.71-.29c.39-.39.39-1.02,0-1.41Z" /></svg>');
|
||||
background-repeat: no-repeat;
|
||||
background-position: 4px center;
|
||||
}
|
||||
|
||||
&:not(.complete, .ongoing)::after {
|
||||
background: #ddd;
|
||||
background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16" fill="%23fff"><circle cx="8" cy="8" r="8" /></svg>');
|
||||
background-repeat: no-repeat;
|
||||
background-position: 4px center;
|
||||
}
|
||||
|
||||
&.heading {
|
||||
background: none;
|
||||
|
||||
h3 {
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,498 @@
|
||||
.page {
|
||||
// Prevents horizontal scrollbars from appearing on the page.
|
||||
// This happens because of the masked (but not overflow: hidden) carousel images.
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
// ▛ LOGO ▜
|
||||
#logo {
|
||||
img {
|
||||
width: auto;
|
||||
max-width: 100%;
|
||||
max-height: 160px;
|
||||
}
|
||||
}
|
||||
// ▙ LOGO ▟
|
||||
|
||||
// ▛ TAGLINE ▜
|
||||
#tagline {
|
||||
h1 {
|
||||
span {
|
||||
position: relative;
|
||||
|
||||
&::after {
|
||||
content: "";
|
||||
pointer-events: none;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 100%;
|
||||
// Dimensions: 480x40
|
||||
height: 100%;
|
||||
margin-top: -0.2em;
|
||||
background: url("https://static.graphite.rs/textures/text-sketch-underline.png");
|
||||
background-repeat: no-repeat;
|
||||
background-size: contain;
|
||||
}
|
||||
}}
|
||||
|
||||
p {
|
||||
font-size: 1.2rem;
|
||||
|
||||
@media screen and (max-width: 1400px) {
|
||||
max-width: unset;
|
||||
}
|
||||
}
|
||||
}
|
||||
// ▙ TAGLINE ▟
|
||||
|
||||
// ▛ QUICK LINKS ▜
|
||||
#quick-links {
|
||||
margin-top: calc(40 * var(--variable-px));
|
||||
gap: calc(var(--font-size-link) * 0.8) calc(var(--font-size-link) * 0.8 * 2);
|
||||
|
||||
&,
|
||||
.social-media-buttons,
|
||||
.call-to-action-buttons {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
.social-media-buttons,
|
||||
.call-to-action-buttons {
|
||||
gap: calc(var(--font-size-link) * 0.8);
|
||||
}
|
||||
|
||||
.social-media-buttons img {
|
||||
width: calc(var(--font-size-link) * 2);
|
||||
display: block;
|
||||
}
|
||||
|
||||
.call-to-action-buttons .github-stars {
|
||||
display: inline-flex;
|
||||
padding-left: calc(var(--font-size-link) / 2);
|
||||
padding-right: 0;
|
||||
|
||||
img {
|
||||
margin: auto;
|
||||
width: calc(var(--font-size-link) * 4 / 3);
|
||||
height: calc(var(--font-size-link) * 4 / 3);
|
||||
}
|
||||
|
||||
span {
|
||||
margin: auto calc(var(--font-size-link) / 2);
|
||||
}
|
||||
|
||||
div {
|
||||
display: inline-flex;
|
||||
background: var(--color-fog);
|
||||
padding: 0 calc(var(--font-size-link) / 2);
|
||||
border-left: var(--border-thickness) solid var(--color-crimson);
|
||||
align-items: center;
|
||||
|
||||
&:empty {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Hide all these buttons while waiting for the number of stars to be fetched.
|
||||
// Otherwise the width of the star count will cause a jump upon loading with the layout of all subsequent buttons changing.
|
||||
// If it fails to load, the div will be removed, allowing the buttons to be displayed (with the star count omitted).
|
||||
&:has(.github-stars div:empty) {
|
||||
visibility: hidden;
|
||||
}
|
||||
}
|
||||
// ▙ QUICK LINKS ▟
|
||||
|
||||
// ▛ SCREENSHOTS ▜
|
||||
// ▙ SCREENSHOTS ▟
|
||||
|
||||
// ▛ OVERVIEW ▜
|
||||
#overview {
|
||||
background-color: var(--color-cloud);
|
||||
}
|
||||
// ▙ OVERVIEW ▟
|
||||
|
||||
// ▛ PROCEDURALISM ▜
|
||||
#proceduralism {
|
||||
background-color: var(--color-slate);
|
||||
color: white;
|
||||
margin-top: 0;
|
||||
|
||||
.diptych {
|
||||
background: black;
|
||||
color: var(--color-fog);
|
||||
overflow: hidden; // Clip off a 1px overflow beneath the video which appears at some screen widths
|
||||
align-items: stretch;
|
||||
justify-content: center;
|
||||
gap: 0;
|
||||
--video-width: calc(460 * var(--variable-px));
|
||||
|
||||
@media screen and (max-width: 1360px) {
|
||||
--video-width: calc(400 * var(--variable-px));
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1280px) {
|
||||
--video-width: calc(300 * var(--variable-px));
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1080px) {
|
||||
--video-width: calc(500 * var(--variable-px));
|
||||
}
|
||||
|
||||
@media screen and (max-width: 640px) {
|
||||
--video-width: 100%;
|
||||
}
|
||||
|
||||
a {
|
||||
color: var(--color-mustard);
|
||||
}
|
||||
|
||||
.video-background {
|
||||
flex: 1 0 var(--video-width);
|
||||
justify-content: center;
|
||||
|
||||
&,
|
||||
video {
|
||||
max-width: var(--video-width);
|
||||
}
|
||||
|
||||
&::after {
|
||||
content: none;
|
||||
}
|
||||
}
|
||||
|
||||
.description {
|
||||
margin: calc(80 * var(--variable-px));
|
||||
}
|
||||
|
||||
+ .diptych {
|
||||
margin-top: calc(40 * var(--variable-px));
|
||||
}
|
||||
}
|
||||
|
||||
.pipelines .feature-icon {
|
||||
background: rgba(255, 255, 255, 0.0625);
|
||||
|
||||
img {
|
||||
filter: brightness(100);
|
||||
}
|
||||
}
|
||||
}
|
||||
// ▙ PROCEDURALISM ▟
|
||||
|
||||
// ▛ DONATE ▜
|
||||
// ▙ DONATE ▟
|
||||
|
||||
// ▛ NEWSLETTER ▜
|
||||
#newsletter {
|
||||
background-color: var(--color-peach);
|
||||
position: relative;
|
||||
|
||||
#newsletter-success {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
|
||||
&:not(:target) ~ .diptych .newsletter-success,
|
||||
&:target ~ .diptych form {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.diptych {
|
||||
justify-content: center;
|
||||
|
||||
.newsletter-signup {
|
||||
.newsletter-success {
|
||||
margin-top: 40px;
|
||||
padding: 40px;
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
background: var(--color-ale);
|
||||
border: 2px solid var(--color-navy);
|
||||
}
|
||||
|
||||
form {
|
||||
width: 100%;
|
||||
margin-top: 40px;
|
||||
display: flex;
|
||||
gap: 20px;
|
||||
flex-wrap: wrap;
|
||||
|
||||
.same-line {
|
||||
display: flex;
|
||||
gap: 20px;
|
||||
flex: 100000 1 0;
|
||||
flex-wrap: wrap;
|
||||
min-width: Min(100%, 700px);
|
||||
|
||||
div {
|
||||
min-height: auto;
|
||||
}
|
||||
}
|
||||
|
||||
.input-column {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: flex-end;
|
||||
--input-focus-color: var(--color-ale);
|
||||
|
||||
&.name {
|
||||
flex: 1 0 0;
|
||||
min-width: 240px;
|
||||
}
|
||||
|
||||
&.phone {
|
||||
display: none;
|
||||
}
|
||||
|
||||
&.email {
|
||||
flex: 1 0 0;
|
||||
min-width: 240px;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 400px) {
|
||||
&.name,
|
||||
&.email {
|
||||
min-width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
&.submit {
|
||||
flex: 1 0 auto;
|
||||
min-width: 100%;
|
||||
|
||||
.button {
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
label,
|
||||
input {
|
||||
flex: 0 0 auto;
|
||||
}
|
||||
|
||||
label {
|
||||
font-size: var(--font-size-link);
|
||||
font-weight: 800;
|
||||
margin-bottom: 10px;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
input:not([type="submit"]) {
|
||||
flex: 0 0 auto;
|
||||
width: 100%;
|
||||
height: calc(var(--font-size-link) * 2);
|
||||
font-size: calc(var(--font-size-link) * 0.9);
|
||||
color: inherit;
|
||||
border: var(--border-thickness) solid currentColor;
|
||||
border-radius: 0; // Required for iOS Safari
|
||||
outline: none;
|
||||
margin: 0;
|
||||
padding: 0 var(--font-size-link);
|
||||
font-family: inherit;
|
||||
font-weight: inherit;
|
||||
box-sizing: border-box;
|
||||
|
||||
&:focus {
|
||||
border-color: var(--input-focus-color);
|
||||
}
|
||||
}
|
||||
|
||||
input[type="submit"] {
|
||||
background: none;
|
||||
outline: none;
|
||||
cursor: pointer;
|
||||
border-radius: 0; // Required for iOS Safari
|
||||
|
||||
&:focus {
|
||||
border-color: var(--input-focus-color);
|
||||
color: var(--input-focus-color);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.social-media-links {
|
||||
display: flex;
|
||||
flex: 0 1 fit-content;
|
||||
flex-direction: column;
|
||||
flex-wrap: wrap;
|
||||
justify-content: flex-end;
|
||||
gap: 20px 80px;
|
||||
min-width: 0;
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
display: flex;
|
||||
|
||||
img {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
}
|
||||
|
||||
span {
|
||||
line-height: 48px;
|
||||
margin: 0;
|
||||
margin-left: 20px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// ▙ NEWSLETTER ▟
|
||||
|
||||
// ▛ DIVE IN ▜
|
||||
#dive-in {
|
||||
.video-container {
|
||||
background: var(--color-fog);
|
||||
margin-top: calc(40 * var(--variable-px));
|
||||
|
||||
> div {
|
||||
margin: calc(20 * var(--variable-px)) auto;
|
||||
width: 100%;
|
||||
max-width: 800px;
|
||||
|
||||
+ p {
|
||||
margin-top: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.buttons {
|
||||
display: flex;
|
||||
gap: calc(var(--font-size-link) * 0.8);
|
||||
margin-top: calc(40 * var(--variable-px));
|
||||
|
||||
@media screen and (max-width: 600px) {
|
||||
flex-direction: column;
|
||||
}
|
||||
}
|
||||
}
|
||||
// ▙ DIVE IN ▟
|
||||
|
||||
// ▛ RECENT NEWS ▜
|
||||
#recent-news {
|
||||
background-color: var(--color-parchment);
|
||||
|
||||
.banner img {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.headline a {
|
||||
text-decoration: none;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.summary {
|
||||
margin: 20px 0;
|
||||
flex-direction: column;
|
||||
gap: 20px;
|
||||
text-align: justify;
|
||||
text-justify: inter-character; // Only supported in Firefox
|
||||
-webkit-hyphens: auto;
|
||||
hyphens: auto;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
display: -webkit-box;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-line-clamp: 6;
|
||||
|
||||
code {
|
||||
text-justify: auto;
|
||||
}
|
||||
|
||||
// Safari workaround: https://stackoverflow.com/a/72170897/775283
|
||||
// But there remains an issue where the ellipsis is rendered inside the text. There doesn't appear to be a fix, or even a way to disable the ellipsis in Safari.
|
||||
p {
|
||||
display: inline;
|
||||
|
||||
&::after {
|
||||
content: "\A\A"; // Double new line
|
||||
white-space: pre;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// ▙ RECENT NEWS ▟
|
||||
|
||||
// ▛ DEMO VIDEO ▜
|
||||
// #demo-video {
|
||||
// max-width: 1000px;
|
||||
// }
|
||||
// ▙ DEMO VIDEO ▟
|
||||
|
||||
// ▛ IMAGINATE ▜
|
||||
// #imaginate {
|
||||
// > .block {
|
||||
// align-items: center;
|
||||
|
||||
// h1 {
|
||||
// text-align: center;
|
||||
|
||||
// .alternating-text {
|
||||
// position: relative;
|
||||
|
||||
// span {
|
||||
// // Move left by half (since it's centered) the average (half the 74px difference) of the variance in word lengths
|
||||
// margin-left: calc(-1.54em / 2 / 2);
|
||||
// opacity: 0;
|
||||
// $alternate-duration: 15s;
|
||||
// $alternate-words: 5;
|
||||
// animation: $alternate-duration infinite linear 0s fade-word;
|
||||
|
||||
// // The 1st child is the widest
|
||||
// &:not(:nth-child(1)) {
|
||||
// position: absolute;
|
||||
// right: 0;
|
||||
// }
|
||||
|
||||
// @for $i from 1 through $alternate-words {
|
||||
// &:nth-child(#{$i}) {
|
||||
// animation-delay: ($alternate-duration / $alternate-words * ($i - 1));
|
||||
// }
|
||||
// }
|
||||
|
||||
// @keyframes fade-word {
|
||||
// // Fade in at the start (which begins staggered on each item by `animation-delay`)
|
||||
// #{0.0%} { opacity: 0; }
|
||||
// #{2.5%} { opacity: 1; }
|
||||
// // Remain visible for this item's slice of time, then fade out
|
||||
// #{0.0% + 100% / ($alternate-words + 1)} { opacity: 1; }
|
||||
// #{2.5% + 100% / ($alternate-words + 1)} { opacity: 0; }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
// > .diptych {
|
||||
// margin-top: calc(80 * var(--variable-px));
|
||||
|
||||
// .block {
|
||||
// align-items: center;
|
||||
|
||||
// h2 {
|
||||
// text-align: center;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
// // #imaginate-creative-concepts-carousel {
|
||||
// // margin-top: 20px;
|
||||
|
||||
// // .screenshot-details {
|
||||
// // justify-content: center;
|
||||
// // }
|
||||
|
||||
// // + blockquote {
|
||||
// // margin-top: 0;
|
||||
// // }
|
||||
// // }
|
||||
// }
|
||||
// ▙ IMAGINATE ▟
|
||||
@@ -0,0 +1,53 @@
|
||||
.logo-view {
|
||||
display: flex;
|
||||
margin: 0 auto;
|
||||
|
||||
+ .logo-view.logo-view {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
&.color {
|
||||
background-color: white;
|
||||
background-blend-mode: hard-light;
|
||||
}
|
||||
|
||||
&.light {
|
||||
background-color: var(--color-fog);
|
||||
background-blend-mode: color-burn;
|
||||
}
|
||||
|
||||
&.dark {
|
||||
color: var(--color-fog);
|
||||
background-color: var(--color-navy);
|
||||
background-blend-mode: soft-light;
|
||||
|
||||
a {
|
||||
color: var(--color-mustard);
|
||||
}
|
||||
}
|
||||
|
||||
.feature-box-inner {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 80px 160px;
|
||||
|
||||
div {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
img {
|
||||
max-width: calc(100vw - 2 * 80 * var(--variable-px));
|
||||
}
|
||||
|
||||
span {
|
||||
font-weight: 800;
|
||||
margin-top: 20px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
a {
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
.diptych {
|
||||
gap: 0 calc(80 * var(--variable-px));
|
||||
|
||||
.feature-box-narrow {
|
||||
margin-top: calc(40 * var(--variable-px));
|
||||
}
|
||||
}
|
||||
|
||||
.feature-box-narrow {
|
||||
.code-contributions & {
|
||||
background-color: var(--color-seaside);
|
||||
}
|
||||
|
||||
.creative-contributions & {
|
||||
background-color: var(--color-lemon);
|
||||
}
|
||||
|
||||
.user-contributions & {
|
||||
background-color: var(--color-lilac);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user