Website responsive resizing improvements

This commit is contained in:
Keavon Chambers 2022-02-19 02:15:28 -08:00
parent 3f79df7314
commit 248e2ab0d1
14 changed files with 275 additions and 148 deletions

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
target/ target/
*.spv *.spv
*.exrc *.exrc
website/public

View File

@ -9,6 +9,35 @@
--max-width: 1600px; --max-width: 1600px;
--max-width-plus-padding: calc(var(--max-width) + 40px * 2); --max-width-plus-padding: calc(var(--max-width) + 40px * 2);
--variable-px: Min(1px, 0.15vw); --variable-px: Min(1px, 0.15vw);
--font-size-intro-heading: 60px;
--font-size-intro-body: 22px;
--font-size-link: 24px;
--font-size-heading: 40px;
--font-size-body: 18px;
@media screen and (max-width: 760px) {
--font-size-intro-heading: 40px;
--font-size-intro-body: 18px;
--font-size-link: 20px;
--font-size-heading: 32px;
--font-size-body: 16px;
}
@media screen and (max-width: 500px) {
--font-size-intro-heading: 32px;
--font-size-intro-body: 16px;
--font-size-link: 16px;
--font-size-heading: 28px;
--font-size-body: 16px;
}
@media screen and (max-width: 400px) {
--font-size-intro-heading: 24px;
--font-size-intro-body: 14px;
--font-size-link: 14px;
--font-size-heading: 24px;
--font-size-body: 16px;
}
} }
// Global element styles // Global element styles
@ -22,7 +51,7 @@ body {
font-family: "Inter", sans-serif; font-family: "Inter", sans-serif;
line-height: 1.5; line-height: 1.5;
font-weight: 500; font-weight: 500;
font-size: 18px; font-size: var(--font-size-body);
color: var(--color-navy); color: var(--color-navy);
} }
@ -43,10 +72,10 @@ h1 {
font-feature-settings: "lnum"; font-feature-settings: "lnum";
line-height: 1.25; line-height: 1.25;
font-weight: 700; font-weight: 700;
font-size: 60px; font-size: var(--font-size-intro-heading);
~ p { ~ p {
font-size: 22px; font-size: var(--font-size-intro-body);
} }
} }
@ -55,11 +84,11 @@ h2 {
font-feature-settings: "lnum"; font-feature-settings: "lnum";
line-height: 1.25; line-height: 1.25;
font-weight: 700; font-weight: 700;
font-size: 40px; font-size: var(--font-size-heading);
} }
h3 { h3 {
font-size: 24px; font-size: var(--font-size-link);
font-weight: 800; font-weight: 800;
text-transform: uppercase; text-transform: uppercase;
@ -81,7 +110,7 @@ h4 {
font-family: "Bona Nova", serif; font-family: "Bona Nova", serif;
font-feature-settings: "lnum"; font-feature-settings: "lnum";
line-height: 1.25; line-height: 1.25;
font-size: 32px; font-size: var(--font-size-heading);
font-weight: 400; font-weight: 400;
} }
@ -105,7 +134,7 @@ p + p {
.link { .link {
display: inline-block; display: inline-block;
font-size: 24px; font-size: var(--font-size-link);
font-weight: 800; font-weight: 800;
text-decoration: none; text-decoration: none;
color: var(--color-crimson); color: var(--color-crimson);
@ -120,10 +149,10 @@ p + p {
color: var(--color-crimson); color: var(--color-crimson);
display: inline-block; display: inline-block;
border: 2px solid currentColor; border: 2px solid currentColor;
height: 48px; height: calc(var(--font-size-link) * 2);
line-height: calc(48px - 2 * 2px); line-height: calc(var(--font-size-link) * 2 - 2 * 2px);
font-size: 24px; font-size: var(--font-size-link);
padding: 0 24px; padding: 0 var(--font-size-link);
box-sizing: border-box; box-sizing: border-box;
text-decoration: none; text-decoration: none;
font-weight: 800; font-weight: 800;
@ -189,6 +218,11 @@ p + p {
display: block; display: block;
width: 100%; width: 100%;
height: auto; height: auto;
@media screen and (max-width: 800px) {
width: auto;
height: 120px;
}
} }
} }
@ -248,6 +282,13 @@ p + p {
min-width: 280px; min-width: 280px;
} }
@media screen and (max-width: 600px) {
&.diptych .section,
&.triptych .section {
min-width: 100%;
}
}
img[alt=""]{ img[alt=""]{
display: block; display: block;
@ -270,7 +311,7 @@ p + p {
.page { .page {
box-sizing: border-box; box-sizing: border-box;
overflow: hidden; overflow: hidden;
min-width: 600px; min-width: 320px;
header { header {
padding: 0 40px; padding: 0 40px;
@ -299,7 +340,10 @@ p + p {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
padding: 30px 0; padding: 30px 0;
gap: 80px;
@media screen and (max-width: 760px) {
padding: 20px 0;
}
.left, .left,
.right { .right {
@ -316,19 +360,18 @@ p + p {
text-decoration: none; text-decoration: none;
--height: 60px; --height: 60px;
--button-padding: 24px; --button-padding: 24px;
--font-size: 36px; --nav-font-size: 32px;
font-size: var(--font-size); font-size: var(--nav-font-size);
&.button { &.button {
height: var(--height); height: var(--height);
padding-left: var(--button-padding); padding-left: var(--button-padding);
padding-right: var(--button-padding); padding-right: var(--button-padding);
line-height: calc(var(--height) - 2 * 2px); line-height: calc(var(--height) - 2 * 2px);
font-size: var(--font-size); font-size: var(--nav-font-size);
&::after { &::after {
content: "»"; content: " »";
margin-left: 8px
} }
} }
@ -339,34 +382,74 @@ p + p {
height: var(--height); height: var(--height);
} }
} }
}
@media screen and (max-width: 960px) { @media screen and (max-width: 960px) {
gap: 60px;
.left,
.right {
gap: 30px; gap: 30px;
a { a {
--height: 50px; --height: 50px;
--button-padding: 16px; --button-padding: 16px;
--font-size: 26px; --nav-font-size: 26px;
} }
} }
}
@media screen and (max-width: 760px) {
@media screen and (max-width: 760px) {
gap: 40px;
.left,
.right {
gap: 20px; gap: 20px;
a { a {
--height: 40px; --height: 40px;
--button-padding: 16px; --button-padding: 12px;
--font-size: 22px; --nav-font-size: 22px;
}
}
@media screen and (max-width: 600px) {
gap: 16px;
a {
--height: 30px;
--button-padding: 8px;
--nav-font-size: 18px;
}
}
@media screen and (max-width: 500px) {
gap: 12px;
a {
--height: 24px;
--button-padding: 8px;
--nav-font-size: 16px;
}
}
@media screen and (max-width: 460px) {
gap: 10px;
a {
--height: 22px;
--button-padding: 6px;
--nav-font-size: 14px;
}
}
@media screen and (max-width: 400px) {
gap: 8px;
a {
--height: 20px;
--button-padding: 4px;
--nav-font-size: 12px;
}
}
@media screen and (max-width: 360px) {
gap: 6px;
a {
--height: 20px;
--button-padding: 4px;
--nav-font-size: 10px;
} }
} }
} }

View File

@ -1,25 +1,40 @@
#logo { #logo {
display: flex; display: flex;
img {
width: auto;
max-width: 100%;
max-height: 240px;
}
}
svg { .pencil-texture {
display: block; position: absolute;
height: auto; --remaining-width-to-full: calc(var(--max-width-plus-padding) - min(calc(100vw - 100px), var(--max-width-plus-padding)));
left: Max(calc(-1 * var(--remaining-width-to-full)), -50px);
width: 100px;
mix-blend-mode: multiply;
@media screen and (max-width: 1000px) {
width: 40px;
top: 400px;
left: -10px;
} }
} }
#quick-links { #quick-links {
margin-bottom: calc(120 * var(--variable-px)); margin-bottom: calc(120 * var(--variable-px));
display: flex; display: flex;
gap: 20px; gap: calc(var(--font-size-link) * 0.8);
flex-wrap: wrap; flex-wrap: wrap;
} }
.pencil-texture { #hero-message {
position: absolute; @media screen and (max-width: 1400px) {
--remaining-width-to-full: calc(var(--max-width-plus-padding) - min(calc(100vw - 100px), var(--max-width-plus-padding))); p {
left: Max(calc(-1 * var(--remaining-width-to-full)), -40px); max-width: unset !important;
width: 100px; }
mix-blend-mode: multiply; }
} }
.hexagons { .hexagons {
@ -196,6 +211,13 @@
margin-right: auto; margin-right: auto;
} }
} }
// 1600px is var(--max-width)
@media screen and (max-width: 1600px) {
.carousel.torn {
display: none;
}
}
} }
#upcoming-tech { #upcoming-tech {
@ -209,6 +231,7 @@
#community { #community {
#newsletter form { #newsletter form {
width: 100%;
margin-top: 40px; margin-top: 40px;
display: flex; display: flex;
gap: 20px; gap: 20px;
@ -238,6 +261,11 @@
&.name { &.name {
flex: 1 0 0; flex: 1 0 0;
min-width: 240px; min-width: 240px;
}
&.phone {
display: none;
} }
&.email { &.email {
@ -245,6 +273,13 @@
min-width: 240px; min-width: 240px;
} }
@media screen and (max-width: 400px) {
&.name,
&.email {
min-width: 100%;
}
}
&.submit { &.submit {
flex: 1 0 0; flex: 1 0 0;
} }
@ -255,7 +290,7 @@
} }
label { label {
font-size: 24px; font-size: var(--font-size-link);
font-weight: 800; font-weight: 800;
margin-bottom: 10px; margin-bottom: 10px;
line-height: 1; line-height: 1;
@ -264,13 +299,13 @@
input:not([type="submit"]) { input:not([type="submit"]) {
flex: 0 0 auto; flex: 0 0 auto;
width: 100%; width: 100%;
height: 48px; height: calc(var(--font-size-link) * 2);
font-size: 22px; font-size: calc(var(--font-size-link) * 0.9);
color: inherit; color: inherit;
border: 2px solid currentColor; border: 2px solid currentColor;
outline: none; outline: none;
margin: 0; margin: 0;
padding: 0 24px; padding: 0 var(--font-size-link);
font-family: inherit; font-family: inherit;
font-weight: inherit; font-weight: inherit;
box-sizing: border-box; box-sizing: border-box;
@ -308,6 +343,11 @@
text-decoration: none; text-decoration: none;
display: flex; display: flex;
img {
width: 48px;
height: 48px;
}
span { span {
line-height: 48px; line-height: 48px;
margin-left: 20px; margin-left: 20px;

View File

@ -1,4 +1,4 @@
<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> <svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path d="M13,17.1A3.719,3.719,0,0,0,9,14c-1.7.1-3.1,1.5-4,4.2a7.571,7.571,0,0,1-3.6,4c2.9,1,5.9,1.3,8.6.1A5.223,5.223,0,0,0,13,17.1Z" fill="#803847" /> <path d="M13,17.1A3.719,3.719,0,0,0,9,14c-1.7.1-3.1,1.5-4,4.2a7.571,7.571,0,0,1-3.6,4c2.9,1,5.9,1.3,8.6.1A5.223,5.223,0,0,0,13,17.1Z" fill="#473a3a" />
<path d="M22.5,1.1C21.6.3,18,3.8,14.1,8.2a34.223,34.223,0,0,0-3.6,4.6,3.9,3.9,0,0,1,1.9.8,3.887,3.887,0,0,1,1.4,1.9A29.655,29.655,0,0,0,17.5,11C20.9,6,23.5,1.9,22.5,1.1Z" fill="#473a3a" /> <path d="M22.5,1.1C21.6.3,18,3.8,14.1,8.2a34.223,34.223,0,0,0-3.6,4.6,3.9,3.9,0,0,1,1.9.8,3.887,3.887,0,0,1,1.4,1.9A29.655,29.655,0,0,0,17.5,11C20.9,6,23.5,1.9,22.5,1.1Z" fill="#473a3a" />
</svg> </svg>

Before

Width:  |  Height:  |  Size: 434 B

After

Width:  |  Height:  |  Size: 434 B

View File

@ -0,0 +1,3 @@
<svg viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg">
<path fill="#803847" d="M40.34,9.04C40.33,9.02,40.31,9,40.28,8.99C37.22,7.58,33.99,6.58,30.67,6c-0.06-0.01-0.12,0.02-0.16,0.07c-0.44,0.8-0.84,1.62-1.2,2.46c-3.58-0.54-7.22-0.54-10.8,0c-0.36-0.84-0.76-1.66-1.21-2.46C17.27,6.02,17.21,5.99,17.15,6c-3.32,0.57-6.55,1.58-9.61,2.99C7.51,9,7.49,9.02,7.47,9.04C2,16.88-0.47,26.42,0.5,35.92c0,0.04,0.03,0.08,0.06,0.11c3.56,2.64,7.55,4.66,11.79,5.96c0.06,0.02,0.13,0,0.17-0.05c0.91-1.24,1.72-2.55,2.41-3.92c0.04-0.07,0.01-0.16-0.07-0.2c0,0-0.01,0-0.02-0.01c-1.27-0.49-2.5-1.07-3.68-1.76c-0.07-0.04-0.1-0.14-0.05-0.21c0.01-0.02,0.02-0.03,0.04-0.04c0.25-0.19,0.5-0.38,0.73-0.57c0.04-0.04,0.1-0.04,0.15-0.02c7.52,3.53,16.22,3.53,23.74,0c0.05-0.02,0.11-0.02,0.16,0.02c0.24,0.2,0.48,0.39,0.73,0.58c0.07,0.05,0.08,0.14,0.03,0.21c-0.01,0.02-0.03,0.03-0.04,0.04c-1.18,0.69-2.41,1.27-3.69,1.75c-0.08,0.03-0.12,0.12-0.09,0.2c0,0.01,0,0.01,0.01,0.01c0.71,1.36,1.51,2.68,2.41,3.92c0.04,0.05,0.1,0.07,0.17,0.06c4.25-1.3,8.24-3.32,11.81-5.96c0.04-0.03,0.06-0.07,0.06-0.11C48.32,26.41,45.84,16.86,40.34,9.04z M20.33,25.8c0.14,2.48-1.76,4.61-4.24,4.76v0c-2.48-0.16-4.37-2.28-4.24-4.76c-0.14-2.49,1.76-4.62,4.24-4.76c2.48,0.13,4.38,2.24,4.25,4.72C20.33,25.77,20.33,25.79,20.33,25.8z M36.02,25.8c0.15,2.48-1.75,4.61-4.23,4.76c-0.01,0-0.01,0-0.02,0v0c-2.48-0.16-4.37-2.28-4.24-4.76c-0.14-2.49,1.76-4.62,4.24-4.76c2.48,0.13,4.38,2.24,4.25,4.72C36.02,25.77,36.02,25.79,36.02,25.8z" />
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1,3 @@
<svg viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg">
<path fill="#803847" d="M44.83,16.98C41.82,8.04,33.44,2.01,24,2C11.85,2,2,11.84,1.99,23.99c0,9.47,6.06,17.89,15.05,20.88c1.1,0.19,1.51-0.47,1.51-1.04c0-0.52-0.03-2.26-0.03-4.1c-5.53,1.02-6.96-1.35-7.4-2.58c-0.49-1.2-1.26-2.27-2.26-3.11c-0.77-0.41-1.87-1.43-0.03-1.46c1.73-0.03,2.97,1.6,3.38,2.26c1.98,3.33,5.14,2.39,6.41,1.82c0.09-1.12,0.59-2.16,1.4-2.94c-4.89-0.55-10.01-2.45-10.01-10.86c-0.03-2.19,0.78-4.3,2.26-5.91c-0.67-1.9-0.6-3.99,0.22-5.83c0,0,1.84-0.58,6.05,2.26c3.6-0.99,7.4-0.99,11,0c4.21-2.85,6.05-2.26,6.05-2.26c0.81,1.84,0.89,3.93,0.22,5.83c1.48,1.61,2.29,3.72,2.26,5.91c0,8.44-5.14,10.31-10.04,10.86c1.06,1.08,1.6,2.56,1.48,4.07c0,2.94-0.03,5.31-0.03,6.05c0,0.58,0.41,1.27,1.51,1.04C42.53,40.99,48.71,28.5,44.83,16.98z" />
</svg>

After

Width:  |  Height:  |  Size: 806 B

View File

@ -0,0 +1,26 @@
<svg width="936.892" height="240" viewBox="0 0 936.89 240" xmlns="http://www.w3.org/2000/svg">
<path fill="#473a3a"
d="M934.29,139.3c-3.08,2.94-6.82,5.09-10.91,6.27c-3.49,1.06-7.1,1.63-10.74,1.71c-6.08,0.08-11.98-2.06-16.6-6.02c-4.78-4.01-7.49-10.63-8.14-19.86l48.01-6.02c0-8.68-2.58-15.71-7.73-21.08c-5.16-5.37-12.72-8.06-22.7-8.06c-7.19-0.04-14.29,1.57-20.75,4.72c-6.37,3.07-11.75,7.86-15.54,13.83c-3.91,6.08-5.86,13.46-5.86,22.14c0,8.03,1.76,14.98,5.29,20.83c3.41,5.76,8.38,10.44,14.32,13.51c6.21,3.19,13.11,4.81,20.1,4.72c9.01,0,16.14-2.2,21.41-6.59c5.51-4.74,9.78-10.74,12.45-17.5L934.29,139.3z M891.64,99.01c2.28-3.85,5.26-5.78,8.95-5.78c3.79,0,6.48,1.84,8.06,5.53c1.68,4.2,2.59,8.66,2.69,13.18l-23.6,2.93C888.06,108.15,889.37,102.86,891.64,99.01" />
<path fill="#473a3a"
d="M844.61,151.33c-7.06,0-10.58-4.34-10.58-13.02v-34.5c0-4.34,2.17-6.51,6.51-6.51h14.65v-8.62h-21.16c0-4.12,0.05-8.19,0.16-12.21c0.11-4.01,0.59-11.63,0.91-15.76l-25.49,11.81v16.16h-9.77v8.62h9.77v44.27c0,7.16,2.01,13.02,6.02,17.58c4.01,4.56,9.87,6.83,17.58,6.84c4.07,0.13,8.11-0.71,11.8-2.44c3.03-1.49,5.72-3.6,7.89-6.18c1.98-2.37,3.62-5,4.88-7.81l-2.6-2.6C852.42,149.81,848.59,151.4,844.61,151.33" />
<path fill="#473a3a"
d="M783.25,154.67c-0.64-2.97-0.91-6-0.81-9.03v-38.9c0-5.21,0.08-9.52,0.24-12.94s0.3-5.94,0.41-7.57l-0.98-0.98l-35.48,16.44l1.63,3.74c1.09-0.4,2.2-0.73,3.34-0.98c0.94-0.21,1.89-0.31,2.85-0.32c0.97-0.07,1.92,0.22,2.69,0.81c0.59,0.54,0.89,1.63,0.9,3.26v37.43c0.08,3.03-0.14,6.05-0.65,9.03c-0.44,2.01-1.2,3.34-2.28,3.99c-1.35,0.73-2.86,1.12-4.39,1.14v3.74h41.5v-3.74c-2.06,0-4.1-0.39-6.02-1.14C784.64,157.85,783.56,156.38,783.25,154.67 M771.04,77.28c3.74,0.07,7.35-1.44,9.93-4.15c2.64-2.59,4.11-6.15,4.07-9.85c0.03-3.72-1.44-7.3-4.07-9.93c-2.56-2.75-6.17-4.29-9.93-4.23c-3.81-0.09-7.48,1.45-10.09,4.23c-2.64,2.63-4.1,6.21-4.07,9.93c0.02,7.75,6.32,14.02,14.07,14C770.98,77.29,771.01,77.29,771.04,77.28" />
<path fill="#473a3a"
d="M732.15,154.68c-0.64-2.97-0.91-6-0.81-9.03v-39.22c0-7.05-1.57-12.18-4.72-15.38c-3.15-3.2-8.08-4.8-14.81-4.8c-4.06,0.01-8.07,0.84-11.8,2.44c-3.08,1.21-6.03,2.75-8.79,4.57c-3.07,2.01-5.99,4.25-8.71,6.72V61.55c0-5.21,0.08-9.52,0.24-12.94c0.16-3.42,0.3-5.94,0.41-7.57L682.11,40l-35.45,16.42l1.66,3.82c1.09-0.4,2.2-0.73,3.34-0.98c0.94-0.21,1.89-0.32,2.85-0.33c0.96-0.07,1.92,0.22,2.68,0.81c0.6,0.55,0.9,1.63,0.9,3.26v82.63c0.08,3.03-0.14,6.05-0.65,9.03c-0.43,2.01-1.19,3.34-2.28,3.99c-1.35,0.73-2.86,1.12-4.4,1.14v3.74h41.5v-3.74c-2.06,0-4.1-0.38-6.02-1.14c-1.54-0.81-2.62-2.28-2.93-3.99c-0.64-2.97-0.91-6-0.82-9.03v-37.92c2.72-1.87,5.71-3.29,8.87-4.23c2.26-0.61,4.58-0.94,6.92-0.98c3.79,0,6.18,1,7.16,3.01c1.06,2.43,1.56,5.08,1.46,7.73v32.39c0.08,3.03-0.14,6.05-0.65,9.03c-0.43,2.01-1.19,3.34-2.28,3.99c-1.35,0.73-2.86,1.12-4.4,1.14v3.74h41.5v-3.74c-2.06,0-4.1-0.38-6.02-1.14c-1.54-0.81-2.62-2.28-2.93-3.99" />
<path fill="#473a3a"
d="M624.97,90.71c-4.3-2.92-9.37-4.48-14.57-4.48c-5.74-0.16-11.38,1.43-16.19,4.56c-4.26,2.76-7.67,6.65-9.85,11.23h-0.32c0-3.26,0.12-6.35,0.39-9.49c0.14-2.07,0.38-4.14,0.73-6.18l-0.98-0.98l-33.84,15.68l1.63,3.74c1.49-0.4,3.02-0.62,4.56-0.65c0.97-0.07,1.92,0.22,2.69,0.81c0.6,0.54,0.9,1.63,0.9,3.25v73.9c0.08,3.02-0.14,6.05-0.65,9.03c-0.43,2.01-1.19,3.34-2.28,3.99c-1.35,0.72-2.86,1.11-4.39,1.14V200h43.12v-3.74c-2.46,0.01-4.9-0.38-7.24-1.14c-1.71-0.68-2.96-2.18-3.33-3.99c-0.64-2.97-0.91-6-0.81-9.03v-16.76c1.52,0.22,3.17,0.38,4.96,0.49s3.77,0.16,5.94,0.16c5.18-0.03,10.33-0.8,15.3-2.28c5.21-1.52,10.1-4.01,14.4-7.32c4.5-3.5,8.15-7.98,10.66-13.1c2.71-5.37,4.07-11.96,4.07-19.78c0-7.81-1.36-14.49-4.07-20.02C633.4,98.33,629.66,93.92,624.97,90.71 M608.94,150.61c-3.26,5.04-7.27,7.57-12.04,7.57c-5.21,0-9.33-2.39-12.37-7.16v-43.3c1.7-1.75,3.75-3.11,6.02-3.99c2.03-0.79,4.18-1.2,6.35-1.22c4.77,0,8.79,2.31,12.04,6.92c3.26,4.61,4.88,11.64,4.88,21.08C613.82,138.86,612.19,145.57,608.94,150.61" />
<path fill="#473a3a"
d="M541.31,150.61c-1.17,0.45-2.41,0.7-3.66,0.73c-1.95,0-3.25-0.68-3.91-2.03c-0.74-1.83-1.07-3.81-0.98-5.78v-35.48c0-12.25-7.16-19.5-19.95-21.8c-8.97-1.62-19.39-1.04-28.28,0.57c-5.06,0.92-10.37,2.79-13.57,5.49v23.95h3.71c0.91-5.48,3.36-10.58,7.07-14.72c3.2-3.81,7.96-5.97,12.94-5.86c3.8,0,6.75,1.11,8.87,3.34c2.12,2.23,3.17,5.89,3.17,10.99v8.63c-13.78,3.69-23.95,7.76-30.52,12.21s-9.85,10.25-9.85,17.42c-0.06,4.5,1.47,8.88,4.31,12.36c2.87,3.58,7.29,5.37,13.27,5.37c4.5-0.01,8.92-1.16,12.86-3.34c4.18-2.27,7.62-5.69,9.93-9.85h0.33c0.95,3.66,3.1,6.9,6.1,9.2c2.87,2.12,6.97,3.17,12.29,3.17c4.71,0.08,9.34-1.19,13.35-3.66c4.15-2.73,7.43-6.6,9.44-11.15l-2.6-2.6C544.39,148.99,542.93,149.96,541.31,150.61 M506.73,146.3c-1.27,1.36-2.72,2.54-4.31,3.5c-1.74,1.05-3.75,1.58-5.78,1.54c-2.11,0.12-4.16-0.75-5.53-2.36c-1.32-1.63-2.02-3.68-1.95-5.78c0.09-1.95,0.5-3.88,1.22-5.7c1.09-2.66,2.82-5.01,5.05-6.84c2.55-2.28,6.32-4.12,11.31-5.53L506.73,146.3z" />
<path fill="#473a3a"
d="M440.68,91.63c-4.8,1.93-9.07,4.75-11.91,9.87h-0.33c-0.02-2.98,0.11-5.96,0.41-8.92c0.13-2.13,0.37-4.25,0.73-6.35l-0.98-0.98l-33.85,15.79l1.63,3.74c1.49-0.4,3.02-0.62,4.56-0.65c0.97-0.07,1.92,0.22,2.69,0.82c0.59,0.54,0.89,1.63,0.9,3.25v37.44c0.08,3.03-0.14,6.05-0.65,9.03c-0.43,2.01-1.19,3.34-2.28,3.99c-1.35,0.73-2.86,1.12-4.4,1.14v3.74h43.13v-3.74c-2.46,0.01-4.9-0.38-7.24-1.14c-1.71-0.68-2.97-2.18-3.34-3.99c-0.64-2.97-0.91-6-0.82-9.03v-36.29c2.1-1.79,4.53-3.15,7.16-3.99c2.49-0.72,5.06-1.08,7.65-1.06c2.42,0.01,4.78,0.68,6.84,1.95c2.17,1.3,3.71,5.12,4.48,10h4.1V92.3C455.3,89.03,446.61,89.25,440.68,91.63" />
<path fill="#473a3a"
d="M344.13,115.53c2.68,0.05,5.32,0.57,7.81,1.55c1.73,0.81,2.9,2.6,3.5,5.37c0.72,4.38,1.02,8.82,0.9,13.26c0,3.8-0.04,6.29-0.2,9.22c-0.16,2.93-0.39,4.51-1.58,6.47c-1.63,2.71-4.43,4-7.41,4.59c-2.7,0.57-5.46,0.87-8.22,0.9c-6.29,0-12.7-1.98-16.81-5.14c-5.27-4.05-9.38-11.35-12.04-19.92c-2.4-8.27-3.58-16.84-3.51-25.45c0-14.54,4.01-24.17,9.38-31.43c5.46-7.37,14.61-11.25,25-11.89c4.13-0.21,8.27,0.21,12.28,1.25c3.63,1.12,7.4,2.65,10.43,6.07c3.03,3.42,4.67,7.11,6.85,13.4h3.74v-24.9c-4.86-1.84-9.87-3.25-14.97-4.23c-5.73-1.18-11.56-1.78-17.41-1.79c-8.11-0.06-16.17,1.23-23.85,3.82c-7.23,2.44-13.91,6.25-19.69,11.23c-5.77,5.04-10.36,11.29-13.43,18.31c-3.38,7.91-5.05,16.46-4.88,25.07c0,10.96,2.39,20.57,7.16,28.81c4.6,8.07,11.36,14.7,19.53,19.12c8.5,4.57,18.02,6.89,27.67,6.76c7.53,0.11,15.02-0.97,22.22-3.18c5.71-1.74,11.2-4.14,16.36-7.16c3.26-1.87,6.32-4.08,9.11-6.59c-0.63-2.67-1.01-5.4-1.14-8.14c-0.11-2.61-0.16-5.37-0.16-8.3v-9.44c0-2.82,0.3-4.77,0.9-5.86c0.66-1.12,1.87-1.81,3.17-1.79v-3.74h-40.7V115.53z" />
<path fill="#f1decd"
d="M205.27,93.21l-43.55-75.43c-1.82-2.78-4.85-4.53-8.17-4.72h-87.1c-3.32,0.19-6.35,1.94-8.17,4.72L14.72,93.21c-1.49,2.97-1.49,6.46,0,9.43l43.56,75.44c1.82,2.78,4.85,4.53,8.17,4.71h87.1c3.32-0.18,6.35-1.93,8.17-4.71l43.56-75.44C206.76,99.67,206.76,96.18,205.27,93.21z" />
<polygon fill="#3ea8ff" points="174.28,33.39 160.62,9.74 84.53,9.74 149.31,121.45 206.4,89.03" />
<polygon fill="#2180ce" points="128.69,59.7 99.86,9.74 60.78,9.74 48.73,26.46 83.12,86.01 113.96,139.45 159.89,113.73" />
<polygon fill="#deba92" points="208.65,92.93 154.93,119.15 221.23,219.97" />
<polygon fill="#d49b64" points="161.23,116.05 115.65,142.37 209.23,199.18" />
<path fill="#473a3a"
d="M231.18,218.98l-0.07-0.69c-0.86-9.39-11.15-121.38-11.18-121.86c-0.23-2.84-1.07-5.6-2.45-8.09c-0.03-0.09-0.07-0.17-0.11-0.25l-0.06-0.15l-0.03,0.03l-0.02-0.01l0.04-0.02L205.5,67.5L172.31,10c-3.58-6.19-10.18-10-17.33-10H64.99c-7.14,0-13.74,3.81-17.32,10l-45,77.93c-3.57,6.19-3.57,13.81,0,20l45,77.93c3.57,6.19,10.17,10,17.32,10h89.99c3.86-0.03,7.63-1.19,10.85-3.32l38.59,27.68c-6.97-2.18-14.18-3.47-21.47-3.83c-18.11-0.87-71.2-0.28-131.42,4.63c-24.71,2.01-36.39,7.88-35.03,9.03c3.49,2.98,7.62,4.16,28.2,4.08c18.32-0.06,71.65,1.91,87.76,2.9c11.41,0.71,23.41,2.88,32.04,2.97c9.2-0.12,18.37-0.82,27.48-2.1c13.74-1.89,31.96-5.7,36.15-10.77C230.34,225.03,231.47,222.02,231.18,218.98z M62.49,24.32c1.67-2.55,4.45-4.16,7.5-4.33h79.99c3.04,0.17,5.81,1.77,7.49,4.31l33.26,57.61c-4.99,5.2-9.32,11-12.89,17.26l-24.77,2.75L138.3,122c-7.21-0.04-14.4,0.82-21.4,2.54L60.77,27.31L62.49,24.32z M69.99,175.86c-3.05-0.17-5.83-1.78-7.5-4.33l-40-69.27c-1.37-2.72-1.37-5.94,0-8.66l26.73-46.28l59.6,103.24l0.04-0.02c0.69,1.24,1.64,2.31,2.79,3.15l30.93,22.18L69.99,175.86z M186.75,182.93l-57.9-41.53c6.39-1.39,12.91-2.09,19.45-2.09l14.77-20.07l24.77-2.75c3.26-5.66,7.13-10.95,11.52-15.79l7.03,70.9C198.07,170.71,190.13,175.29,186.75,182.93z M81.64,154.71c1.49,2.33,0.8,5.42-1.52,6.91c-2.33,1.49-5.42,0.8-6.91-1.52c-0.08-0.12-0.15-0.25-0.22-0.38l-35-60.61c-1.49-2.33-0.8-5.42,1.52-6.91c2.33-1.49,5.42-0.8,6.91,1.52c0.08,0.12,0.15,0.25,0.22,0.38L81.64,154.71z" />
</svg>

After

Width:  |  Height:  |  Size: 8.4 KiB

View File

@ -0,0 +1,3 @@
<svg viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg">
<path fill="#803847" d="M29.51,31.49c0.19,0.26,0.17,0.62-0.05,0.85c-0.83,0.75-1.87,1.25-2.98,1.42c-0.81,0.16-1.63,0.25-2.46,0.25c-0.83,0-1.65-0.09-2.46-0.26c-1.1-0.18-2.13-0.67-2.96-1.42c-0.23-0.24-0.23-0.61,0-0.85c0.24-0.23,0.61-0.23,0.85,0c0.6,0.52,1.32,0.88,2.1,1.04c0.82,0.2,1.66,0.3,2.51,0.3c1.49,0,3.59-0.35,4.61-1.34C28.9,31.25,29.27,31.25,29.51,31.49zM21.25,26.29c0-1.26-1.03-2.29-2.29-2.29c-1.26,0-2.29,1.03-2.29,2.29c0,1.26,1.03,2.29,2.29,2.29C20.22,28.58,21.25,27.55,21.25,26.29z M29.04,24c-1.26,0-2.29,1.03-2.29,2.29c0,1.26,1.03,2.29,2.29,2.29c1.26,0,2.29-1.03,2.29-2.29C31.33,25.03,30.31,24,29.04,24z M29.04,28.58C29.04,28.58,29.04,28.58,29.04,28.58C29.04,28.58,29.04,28.58,29.04,28.58L29.04,28.58z M42.24,36.3c-2.39,3.54-5.75,6.31-9.68,7.97C29.85,45.42,26.94,46.01,24,46c-4.38,0.01-8.67-1.3-12.3-3.76c-3.54-2.39-6.31-5.75-7.97-9.68c-2.9-6.85-2.14-14.7,2.03-20.86c2.39-3.54,5.75-6.31,9.68-7.97c6.85-2.9,14.7-2.14,20.86,2.03c3.54,2.39,6.31,5.75,7.97,9.68C47.17,22.29,46.41,30.14,42.24,36.3z M38.67,24c0-1.78-1.44-3.21-3.22-3.22c-0.83-0.01-1.63,0.32-2.21,0.9c-2.53-1.72-5.51-2.66-8.57-2.73l1.47-6.87l4.76,1c0.05,1.26,1.12,2.25,2.39,2.19c1.26-0.05,2.25-1.12,2.19-2.38c-0.05-1.23-1.06-2.2-2.29-2.2c-0.87-0.01-1.67,0.5-2.03,1.29l-5.33-1.14c-0.04-0.01-0.08-0.01-0.12-0.01c-0.27-0.01-0.52,0.18-0.58,0.45l-1.62,7.67c-3.11,0.02-6.14,0.97-8.7,2.73c-0.6-0.57-1.39-0.89-2.21-0.9c-1.78,0-3.22,1.43-3.22,3.21c0,1.27,0.75,2.42,1.91,2.94c-0.05,0.32-0.08,0.65-0.08,0.98c0,2.39,1.33,4.63,3.76,6.32c2.7,1.76,5.86,2.67,9.08,2.61c3.22,0.06,6.39-0.85,9.08-2.61c2.42-1.68,3.76-3.93,3.76-6.32c0-0.32-0.02-0.64-0.08-0.95C37.94,26.41,38.66,25.26,38.67,24z" />
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -0,0 +1,3 @@
<svg viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg">
<path fill="#803847" d="M41.94,11.34c1.95-1.16,3.4-3,4.1-5.16c-1.83,1.09-3.83,1.85-5.92,2.26C36.6,4.69,30.7,4.51,26.95,8.03c-1.88,1.76-2.94,4.22-2.94,6.79c0,0.71,0.08,1.42,0.24,2.12c-7.49-0.37-14.48-3.91-19.21-9.74c-2.47,4.26-1.21,9.71,2.88,12.44C6.44,19.6,4.99,19.2,3.7,18.49v0.12c0,4.44,3.13,8.26,7.47,9.14c-1.37,0.37-2.81,0.42-4.21,0.16c1.22,3.79,4.72,6.39,8.7,6.47c-3.3,2.59-7.37,3.99-11.57,3.98c-0.74,0-1.49-0.04-2.22-0.13c4.26,2.74,9.22,4.19,14.28,4.19c17.14,0,26.51-14.2,26.51-26.51c0-0.4-0.01-0.8-0.03-1.2c1.82-1.32,3.4-2.95,4.65-4.82l0-0.01C45.59,10.63,43.78,11.12,41.94,11.34z" />
</svg>

After

Width:  |  Height:  |  Size: 660 B

View File

@ -1,14 +1,17 @@
const FLING_VELOCITY_THRESHOLD = 10;
const FLING_VELOCITY_WINDOW_SIZE = 20;
let carouselImages; let carouselImages;
let carouselDirectionPrev; let carouselDirectionPrev;
let carouselDirectionNext; let carouselDirectionNext;
let carouselDots; let carouselDots;
let carouselDescriptions; let carouselDescriptions;
let carouselDragLastClientX; let carouselDragLastClientX;
let velocityDeltaWindow = Array.from({ length: 20 }, () => ({ time: 0, delta: 0 })); let velocityDeltaWindow = Array.from({ length: FLING_VELOCITY_WINDOW_SIZE }, () => ({ time: 0, delta: 0 }));
window.addEventListener("DOMContentLoaded", initializeCarousel); window.addEventListener("DOMContentLoaded", initializeCarousel);
window.addEventListener("pointerup", dragEnd); window.addEventListener("pointerup", () => dragEnd(false));
window.addEventListener("scroll", dragEnd); window.addEventListener("scroll", () => dragEnd(true));
window.addEventListener("pointermove", dragMove); window.addEventListener("pointermove", dragMove);
function initializeCarousel() { function initializeCarousel() {
@ -87,7 +90,7 @@ function dragBegin(event) {
document.querySelector("#screenshots").classList.add("dragging"); document.querySelector("#screenshots").classList.add("dragging");
} }
function dragEnd() { function dragEnd(dropWithoutVelocity) {
if (!carouselImages) return; if (!carouselImages) return;
carouselDragLastClientX = undefined; carouselDragLastClientX = undefined;
@ -108,7 +111,7 @@ function dragEnd() {
const activeDotIndex = currentActiveDotIndex(); const activeDotIndex = currentActiveDotIndex();
// If the speed is fast enough, slide to the next or previous image in that direction // If the speed is fast enough, slide to the next or previous image in that direction
if (Math.abs(recentVelocity) > 10) { if (Math.abs(recentVelocity) > FLING_VELOCITY_THRESHOLD && !dropWithoutVelocity) {
// Positive velocity should go to the previous image // Positive velocity should go to the previous image
if (recentVelocity > 0) { if (recentVelocity > 0) {
// Don't apply the velocity-based fling if we're already snapping to the next image // Don't apply the velocity-based fling if we're already snapping to the next image
@ -128,6 +131,7 @@ function dragEnd() {
} }
// If we didn't slide in a direction due to clear velocity, just snap to the closest image // If we didn't slide in a direction due to clear velocity, just snap to the closest image
// This can be reached either by not entering the if statement above, or by its inner if statements not returning early and exiting back to this scope
slideTo(clamp(closestImageIndex, 0, carouselDots.length - 1), true); slideTo(clamp(closestImageIndex, 0, carouselDots.length - 1), true);
} }
@ -138,7 +142,7 @@ function dragMove(event) {
const LEFT_MOUSE_BUTTON = 1; const LEFT_MOUSE_BUTTON = 1;
if (!(event.buttons & LEFT_MOUSE_BUTTON)) { if (!(event.buttons & LEFT_MOUSE_BUTTON)) {
dragEnd(); dragEnd(false);
return; return;
} }

View File

@ -15,40 +15,6 @@ let activeRippleIndex;
window.addEventListener("DOMContentLoaded", initializeRipples); window.addEventListener("DOMContentLoaded", initializeRipples);
window.addEventListener("resize", () => animate(true)); window.addEventListener("resize", () => animate(true));
function setRipples(mediaQueryScaleFactor) {
const rippleSvgRect = rippleSvg.getBoundingClientRect();
const rippleSvgLeft = rippleSvgRect.left;
const rippleSvgWidth = rippleSvgRect.width;
let path = `M 0,${fullRippleHeight + 3} `;
ripples.forEach((ripple) => {
if (!ripple.animationStartTime || !ripple.animationEndTime) return;
const t = Math.min((Date.now() - ripple.animationStartTime) / (ripple.animationEndTime - ripple.animationStartTime), 1);
const height = fullRippleHeight * (ripple.goingUp ? ease(t) : 1 - ease(t));
const buttonRect = ripple.element.getBoundingClientRect();
const buttonCenter = buttonRect.width / 2;
const rippleCenter = RIPPLE_WIDTH / 2 * mediaQueryScaleFactor;
const rippleOffset = rippleCenter - buttonCenter;
const rippleStartX = buttonRect.left - rippleSvgLeft - rippleOffset;
const rippleRadius = RIPPLE_WIDTH / 2 * mediaQueryScaleFactor;
const handleRadius = rippleRadius * HANDLE_STRETCH;
path += `L ${rippleStartX},${fullRippleHeight + 3} `;
path += `c ${handleRadius},0 ${rippleRadius - handleRadius},-${height} ${rippleRadius},-${height} `;
path += `s ${rippleRadius - handleRadius},${height} ${rippleRadius},${height} `;
});
path += `l ${rippleSvgWidth},0`;
ripplePath.setAttribute("d", path);
}
function initializeRipples() { function initializeRipples() {
ripplesInitialized = true; ripplesInitialized = true;
@ -110,6 +76,40 @@ function animate(forceRefresh) {
} }
} }
function setRipples(mediaQueryScaleFactor) {
const rippleSvgRect = rippleSvg.getBoundingClientRect();
const rippleSvgLeft = rippleSvgRect.left;
const rippleSvgWidth = rippleSvgRect.width;
let path = `M 0,${fullRippleHeight + 3} `;
ripples.forEach((ripple) => {
if (!ripple.animationStartTime || !ripple.animationEndTime) return;
const t = Math.min((Date.now() - ripple.animationStartTime) / (ripple.animationEndTime - ripple.animationStartTime), 1);
const height = fullRippleHeight * (ripple.goingUp ? ease(t) : 1 - ease(t));
const buttonRect = ripple.element.getBoundingClientRect();
const buttonCenter = buttonRect.width / 2;
const rippleCenter = RIPPLE_WIDTH / 2 * mediaQueryScaleFactor;
const rippleOffset = rippleCenter - buttonCenter;
const rippleStartX = buttonRect.left - rippleSvgLeft - rippleOffset;
const rippleRadius = RIPPLE_WIDTH / 2 * mediaQueryScaleFactor;
const handleRadius = rippleRadius * HANDLE_STRETCH;
path += `L ${rippleStartX},${fullRippleHeight + 3} `;
path += `c ${handleRadius},0 ${rippleRadius - handleRadius},-${height} ${rippleRadius},-${height} `;
path += `s ${rippleRadius - handleRadius},${height} ${rippleRadius},${height} `;
});
path += `l ${rippleSvgWidth},0`;
ripplePath.setAttribute("d", path);
}
function ease(x) { function ease(x) {
return 1 - (1 - x) * (1 - x); return 1 - (1 - x) * (1 - x);
} }

View File

@ -2,7 +2,7 @@
{% block title %}Page not found.{% endblock title %} {% block title %}Page not found.{% endblock title %}
{% block content %} {% block content %}
<section id="404" class="section-row right"> <section id="404" class="section-row">
<div class="section"> <div class="section">
<h2>Page not found (yet).</h2> <h2>Page not found (yet).</h2>
<p> <p>

View File

@ -2,7 +2,7 @@
<html lang="en-US"> <html lang="en-US">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=0.6, maximum-scale=5.0, minimum-scale=0.6"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5, minimum-scale=1">
<title>Graphite | {% block title %}{% endblock title %}</title> <title>Graphite | {% block title %}{% endblock title %}</title>
{% block head %}{% endblock head %} {% block head %}{% endblock head %}
<link rel="stylesheet" href="/base.css"> <link rel="stylesheet" href="/base.css">

View File

@ -8,33 +8,7 @@
{% block content %} {% block content %}
<section id="logo"> <section id="logo">
<svg width="936.892" height="240.004" viewBox="0 0 936.89 240" xmlns="http://www.w3.org/2000/svg"> <img src="/images/graphics/logotype.svg" alt="Graphite Logo" />
<path fill="#473a3a"
d="M934.29,139.3c-3.08,2.94-6.82,5.09-10.91,6.27c-3.49,1.06-7.1,1.63-10.74,1.71c-6.08,0.08-11.98-2.06-16.6-6.02c-4.78-4.01-7.49-10.63-8.14-19.86l48.01-6.02c0-8.68-2.58-15.71-7.73-21.08c-5.16-5.37-12.72-8.06-22.7-8.06c-7.19-0.04-14.29,1.57-20.75,4.72c-6.37,3.07-11.75,7.86-15.54,13.83c-3.91,6.08-5.86,13.46-5.86,22.14c0,8.03,1.76,14.98,5.29,20.83c3.41,5.76,8.38,10.44,14.32,13.51c6.21,3.19,13.11,4.81,20.1,4.72c9.01,0,16.14-2.2,21.41-6.59c5.51-4.74,9.78-10.74,12.45-17.5L934.29,139.3z M891.64,99.01c2.28-3.85,5.26-5.78,8.95-5.78c3.79,0,6.48,1.84,8.06,5.53c1.68,4.2,2.59,8.66,2.69,13.18l-23.6,2.93C888.06,108.15,889.37,102.86,891.64,99.01" />
<path fill="#473a3a"
d="M844.61,151.33c-7.06,0-10.58-4.34-10.58-13.02v-34.5c0-4.34,2.17-6.51,6.51-6.51h14.65v-8.62h-21.16c0-4.12,0.05-8.19,0.16-12.21c0.11-4.01,0.59-11.63,0.91-15.76l-25.49,11.81v16.16h-9.77v8.62h9.77v44.27c0,7.16,2.01,13.02,6.02,17.58c4.01,4.56,9.87,6.83,17.58,6.84c4.07,0.13,8.11-0.71,11.8-2.44c3.03-1.49,5.72-3.6,7.89-6.18c1.98-2.37,3.62-5,4.88-7.81l-2.6-2.6C852.42,149.81,848.59,151.4,844.61,151.33" />
<path fill="#473a3a"
d="M783.25,154.67c-0.64-2.97-0.91-6-0.81-9.03v-38.9c0-5.21,0.08-9.52,0.24-12.94s0.3-5.94,0.41-7.57l-0.98-0.98l-35.48,16.44l1.63,3.74c1.09-0.4,2.2-0.73,3.34-0.98c0.94-0.21,1.89-0.31,2.85-0.32c0.97-0.07,1.92,0.22,2.69,0.81c0.59,0.54,0.89,1.63,0.9,3.26v37.43c0.08,3.03-0.14,6.05-0.65,9.03c-0.44,2.01-1.2,3.34-2.28,3.99c-1.35,0.73-2.86,1.12-4.39,1.14v3.74h41.5v-3.74c-2.06,0-4.1-0.39-6.02-1.14C784.64,157.85,783.56,156.38,783.25,154.67 M771.04,77.28c3.74,0.07,7.35-1.44,9.93-4.15c2.64-2.59,4.11-6.15,4.07-9.85c0.03-3.72-1.44-7.3-4.07-9.93c-2.56-2.75-6.17-4.29-9.93-4.23c-3.81-0.09-7.48,1.45-10.09,4.23c-2.64,2.63-4.1,6.21-4.07,9.93c0.02,7.75,6.32,14.02,14.07,14C770.98,77.29,771.01,77.29,771.04,77.28" />
<path fill="#473a3a"
d="M732.15,154.68c-0.64-2.97-0.91-6-0.81-9.03v-39.22c0-7.05-1.57-12.18-4.72-15.38c-3.15-3.2-8.08-4.8-14.81-4.8c-4.06,0.01-8.07,0.84-11.8,2.44c-3.08,1.21-6.03,2.75-8.79,4.57c-3.07,2.01-5.99,4.25-8.71,6.72V61.55c0-5.21,0.08-9.52,0.24-12.94c0.16-3.42,0.3-5.94,0.41-7.57L682.11,40l-35.45,16.42l1.66,3.82c1.09-0.4,2.2-0.73,3.34-0.98c0.94-0.21,1.89-0.32,2.85-0.33c0.96-0.07,1.92,0.22,2.68,0.81c0.6,0.55,0.9,1.63,0.9,3.26v82.63c0.08,3.03-0.14,6.05-0.65,9.03c-0.43,2.01-1.19,3.34-2.28,3.99c-1.35,0.73-2.86,1.12-4.4,1.14v3.74h41.5v-3.74c-2.06,0-4.1-0.38-6.02-1.14c-1.54-0.81-2.62-2.28-2.93-3.99c-0.64-2.97-0.91-6-0.82-9.03v-37.92c2.72-1.87,5.71-3.29,8.87-4.23c2.26-0.61,4.58-0.94,6.92-0.98c3.79,0,6.18,1,7.16,3.01c1.06,2.43,1.56,5.08,1.46,7.73v32.39c0.08,3.03-0.14,6.05-0.65,9.03c-0.43,2.01-1.19,3.34-2.28,3.99c-1.35,0.73-2.86,1.12-4.4,1.14v3.74h41.5v-3.74c-2.06,0-4.1-0.38-6.02-1.14c-1.54-0.81-2.62-2.28-2.93-3.99" />
<path fill="#473a3a"
d="M624.97,90.71c-4.3-2.92-9.37-4.48-14.57-4.48c-5.74-0.16-11.38,1.43-16.19,4.56c-4.26,2.76-7.67,6.65-9.85,11.23h-0.32c0-3.26,0.12-6.35,0.39-9.49c0.14-2.07,0.38-4.14,0.73-6.18l-0.98-0.98l-33.84,15.68l1.63,3.74c1.49-0.4,3.02-0.62,4.56-0.65c0.97-0.07,1.92,0.22,2.69,0.81c0.6,0.54,0.9,1.63,0.9,3.25v73.9c0.08,3.02-0.14,6.05-0.65,9.03c-0.43,2.01-1.19,3.34-2.28,3.99c-1.35,0.72-2.86,1.11-4.39,1.14V200h43.12v-3.74c-2.46,0.01-4.9-0.38-7.24-1.14c-1.71-0.68-2.96-2.18-3.33-3.99c-0.64-2.97-0.91-6-0.81-9.03v-16.76c1.52,0.22,3.17,0.38,4.96,0.49s3.77,0.16,5.94,0.16c5.18-0.03,10.33-0.8,15.3-2.28c5.21-1.52,10.1-4.01,14.4-7.32c4.5-3.5,8.15-7.98,10.66-13.1c2.71-5.37,4.07-11.96,4.07-19.78c0-7.81-1.36-14.49-4.07-20.02C633.4,98.33,629.66,93.92,624.97,90.71 M608.94,150.61c-3.26,5.04-7.27,7.57-12.04,7.57c-5.21,0-9.33-2.39-12.37-7.16v-43.3c1.7-1.75,3.75-3.11,6.02-3.99c2.03-0.79,4.18-1.2,6.35-1.22c4.77,0,8.79,2.31,12.04,6.92c3.26,4.61,4.88,11.64,4.88,21.08C613.82,138.86,612.19,145.57,608.94,150.61" />
<path fill="#473a3a"
d="M541.31,150.61c-1.17,0.45-2.41,0.7-3.66,0.73c-1.95,0-3.25-0.68-3.91-2.03c-0.74-1.83-1.07-3.81-0.98-5.78v-35.48c0-12.25-7.16-19.5-19.95-21.8c-8.97-1.62-19.39-1.04-28.28,0.57c-5.06,0.92-10.37,2.79-13.57,5.49v23.95h3.71c0.91-5.48,3.36-10.58,7.07-14.72c3.2-3.81,7.96-5.97,12.94-5.86c3.8,0,6.75,1.11,8.87,3.34c2.12,2.23,3.17,5.89,3.17,10.99v8.63c-13.78,3.69-23.95,7.76-30.52,12.21s-9.85,10.25-9.85,17.42c-0.06,4.5,1.47,8.88,4.31,12.36c2.87,3.58,7.29,5.37,13.27,5.37c4.5-0.01,8.92-1.16,12.86-3.34c4.18-2.27,7.62-5.69,9.93-9.85h0.33c0.95,3.66,3.1,6.9,6.1,9.2c2.87,2.12,6.97,3.17,12.29,3.17c4.71,0.08,9.34-1.19,13.35-3.66c4.15-2.73,7.43-6.6,9.44-11.15l-2.6-2.6C544.39,148.99,542.93,149.96,541.31,150.61 M506.73,146.3c-1.27,1.36-2.72,2.54-4.31,3.5c-1.74,1.05-3.75,1.58-5.78,1.54c-2.11,0.12-4.16-0.75-5.53-2.36c-1.32-1.63-2.02-3.68-1.95-5.78c0.09-1.95,0.5-3.88,1.22-5.7c1.09-2.66,2.82-5.01,5.05-6.84c2.55-2.28,6.32-4.12,11.31-5.53L506.73,146.3z" />
<path fill="#473a3a"
d="M440.68,91.63c-4.8,1.93-9.07,4.75-11.91,9.87h-0.33c-0.02-2.98,0.11-5.96,0.41-8.92c0.13-2.13,0.37-4.25,0.73-6.35l-0.98-0.98l-33.85,15.79l1.63,3.74c1.49-0.4,3.02-0.62,4.56-0.65c0.97-0.07,1.92,0.22,2.69,0.82c0.59,0.54,0.89,1.63,0.9,3.25v37.44c0.08,3.03-0.14,6.05-0.65,9.03c-0.43,2.01-1.19,3.34-2.28,3.99c-1.35,0.73-2.86,1.12-4.4,1.14v3.74h43.13v-3.74c-2.46,0.01-4.9-0.38-7.24-1.14c-1.71-0.68-2.97-2.18-3.34-3.99c-0.64-2.97-0.91-6-0.82-9.03v-36.29c2.1-1.79,4.53-3.15,7.16-3.99c2.49-0.72,5.06-1.08,7.65-1.06c2.42,0.01,4.78,0.68,6.84,1.95c2.17,1.3,3.71,5.12,4.48,10h4.1V92.3C455.3,89.03,446.61,89.25,440.68,91.63" />
<path fill="#473a3a"
d="M344.13,115.53c2.68,0.05,5.32,0.57,7.81,1.55c1.73,0.81,2.9,2.6,3.5,5.37c0.72,4.38,1.02,8.82,0.9,13.26c0,3.8-0.04,6.29-0.2,9.22c-0.16,2.93-0.39,4.51-1.58,6.47c-1.63,2.71-4.43,4-7.41,4.59c-2.7,0.57-5.46,0.87-8.22,0.9c-6.29,0-12.7-1.98-16.81-5.14c-5.27-4.05-9.38-11.35-12.04-19.92c-2.4-8.27-3.58-16.84-3.51-25.45c0-14.54,4.01-24.17,9.38-31.43c5.46-7.37,14.61-11.25,25-11.89c4.13-0.21,8.27,0.21,12.28,1.25c3.63,1.12,7.4,2.65,10.43,6.07c3.03,3.42,4.67,7.11,6.85,13.4h3.74v-24.9c-4.86-1.84-9.87-3.25-14.97-4.23c-5.73-1.18-11.56-1.78-17.41-1.79c-8.11-0.06-16.17,1.23-23.85,3.82c-7.23,2.44-13.91,6.25-19.69,11.23c-5.77,5.04-10.36,11.29-13.43,18.31c-3.38,7.91-5.05,16.46-4.88,25.07c0,10.96,2.39,20.57,7.16,28.81c4.6,8.07,11.36,14.7,19.53,19.12c8.5,4.57,18.02,6.89,27.67,6.76c7.53,0.11,15.02-0.97,22.22-3.18c5.71-1.74,11.2-4.14,16.36-7.16c3.26-1.87,6.32-4.08,9.11-6.59c-0.63-2.67-1.01-5.4-1.14-8.14c-0.11-2.61-0.16-5.37-0.16-8.3v-9.44c0-2.82,0.3-4.77,0.9-5.86c0.66-1.12,1.87-1.81,3.17-1.79v-3.74h-40.7V115.53z" />
<path fill="#f1decd"
d="M205.27,93.21l-43.55-75.43c-1.82-2.78-4.85-4.53-8.17-4.72h-87.1c-3.32,0.19-6.35,1.94-8.17,4.72L14.72,93.21c-1.49,2.97-1.49,6.46,0,9.43l43.56,75.44c1.82,2.78,4.85,4.53,8.17,4.71h87.1c3.32-0.18,6.35-1.93,8.17-4.71l43.56-75.44C206.76,99.67,206.76,96.18,205.27,93.21z" />
<polygon fill="#3ea8ff" points="174.28,33.39 160.62,9.74 84.53,9.74 149.31,121.45 206.4,89.03" />
<polygon fill="#2180ce" points="128.69,59.7 99.86,9.74 60.78,9.74 48.73,26.46 83.12,86.01 113.96,139.45 159.89,113.73" />
<polygon fill="#deba92" points="208.65,92.93 154.93,119.15 221.23,219.97" />
<polygon fill="#d49b64" points="161.23,116.05 115.65,142.37 209.23,199.18" />
<path fill="#473a3a"
d="M231.18,218.98l-0.07-0.69c-0.86-9.39-11.15-121.38-11.18-121.86c-0.23-2.84-1.07-5.6-2.45-8.09c-0.03-0.09-0.07-0.17-0.11-0.25l-0.06-0.15l-0.03,0.03l-0.02-0.01l0.04-0.02L205.5,67.5L172.31,10c-3.58-6.19-10.18-10-17.33-10H64.99c-7.14,0-13.74,3.81-17.32,10l-45,77.93c-3.57,6.19-3.57,13.81,0,20l45,77.93c3.57,6.19,10.17,10,17.32,10h89.99c3.86-0.03,7.63-1.19,10.85-3.32l38.59,27.68c-6.97-2.18-14.18-3.47-21.47-3.83c-18.11-0.87-71.2-0.28-131.42,4.63c-24.71,2.01-36.39,7.88-35.03,9.03c3.49,2.98,7.62,4.16,28.2,4.08c18.32-0.06,71.65,1.91,87.76,2.9c11.41,0.71,23.41,2.88,32.04,2.97c9.2-0.12,18.37-0.82,27.48-2.1c13.74-1.89,31.96-5.7,36.15-10.77C230.34,225.03,231.47,222.02,231.18,218.98z M62.49,24.32c1.67-2.55,4.45-4.16,7.5-4.33h79.99c3.04,0.17,5.81,1.77,7.49,4.31l33.26,57.61c-4.99,5.2-9.32,11-12.89,17.26l-24.77,2.75L138.3,122c-7.21-0.04-14.4,0.82-21.4,2.54L60.77,27.31L62.49,24.32z M69.99,175.86c-3.05-0.17-5.83-1.78-7.5-4.33l-40-69.27c-1.37-2.72-1.37-5.94,0-8.66l26.73-46.28l59.6,103.24l0.04-0.02c0.69,1.24,1.64,2.31,2.79,3.15l30.93,22.18L69.99,175.86z M186.75,182.93l-57.9-41.53c6.39-1.39,12.91-2.09,19.45-2.09l14.77-20.07l24.77-2.75c3.26-5.66,7.13-10.95,11.52-15.79l7.03,70.9C198.07,170.71,190.13,175.29,186.75,182.93z M81.64,154.71c1.49,2.33,0.8,5.42-1.52,6.91c-2.33,1.49-5.42,0.8-6.91-1.52c-0.08-0.12-0.15-0.25-0.22-0.38l-35-60.61c-1.49-2.33-0.8-5.42,1.52-6.91c2.33-1.49,5.42-0.8,6.91,1.52c0.08,0.12,0.15,0.25,0.22,0.38L81.64,154.71z" />
</svg>
</section> </section>
<img class="pencil-texture" src="https://static.graphite.rs/textures/pencil-texture.png"></img> <img class="pencil-texture" src="https://static.graphite.rs/textures/pencil-texture.png"></img>
@ -98,7 +72,7 @@
</div> </div>
<div class="screenshot-description"> <div class="screenshot-description">
<p class="balance-text active">View of the current alpha version of the Graphite editor with a blank canvas. Try this out at <a href="https://editor.graphite.rs">editor.graphite.rs</a> <p class="balance-text active">View of the current alpha version of the Graphite editor with a blank canvas. Try this out at <a href="https://editor.graphite.rs">editor.graphite.rs</a>
right in your browser. Send in your artwork to potentially be featured here in place of this blank canvas.</p> instantly in your browser. Send in your artwork to potentially be featured here in place of this blank canvas.</p>
<p class="balance-text">Interface mockup showcasing a photo editing project that utilizes Graphite's raster graphics pipeline, one of the upcoming roadmap milestones. Photo editing <p class="balance-text">Interface mockup showcasing a photo editing project that utilizes Graphite's raster graphics pipeline, one of the upcoming roadmap milestones. Photo editing
is not yet supported.</p> is not yet supported.</p>
<p class="balance-text">This last screenshot is currently identical to the previous one, serving as a placeholder. Work is ongoing to replace this image with a node graph mockup.</p> <p class="balance-text">This last screenshot is currently identical to the previous one, serving as a placeholder. Work is ongoing to replace this image with a node graph mockup.</p>
@ -109,7 +83,7 @@
<section id="opener-message" class="section-row right"> <section id="opener-message" class="section-row right">
<div class="graphic"> <div class="graphic">
<img src="images/graphics/brush.svg" alt="" /> <img src="/images/graphics/brush.svg" alt="" />
</div> </div>
<div class="section"> <div class="section">
<h2>Professional 2D content creation for everyone.</h2> <h2>Professional 2D content creation for everyone.</h2>
@ -117,7 +91,7 @@
With great power comes great accessibility. Graphite is built on the belief that the best creative tools can be powerful and within reach of all. With great power comes great accessibility. Graphite is built on the belief that the best creative tools can be powerful and within reach of all.
</p> </p>
<p> <p>
The software is designed with a friendly and intuitive interface where a delightful user experience is of first-class importance. It is available for free under an open source <a Graphite is designed with a friendly and intuitive interface where a delightful user experience is of first-class importance. It is available for free under an open source <a
href="https://github.com/GraphiteEditor/Graphite/blob/master/LICENSE.txt" target="_blank">license</a> and usable <a href="https://editor.graphite.rs">instantly through a web href="https://github.com/GraphiteEditor/Graphite/blob/master/LICENSE.txt" target="_blank">license</a> and usable <a href="https://editor.graphite.rs">instantly through a web
browser</a> or an upcoming native client on Windows, Mac, and Linux. browser</a> or an upcoming native client on Windows, Mac, and Linux.
</p> </p>
@ -131,7 +105,7 @@
<section id="available-now" class="section-row left"> <section id="available-now" class="section-row left">
<div class="graphic"> <div class="graphic">
<img src="images/graphics/alpha.svg" alt="" /> <img src="/images/graphics/alpha.svg" alt="" />
</div> </div>
<div class="section"> <div class="section">
<h2>Available now for alpha testing.</h2> <h2>Available now for alpha testing.</h2>
@ -197,7 +171,7 @@
color handling (ACES/OpenColorIO). Real-time collaboration. A rich ecosystem of custom nodes. color handling (ACES/OpenColorIO). Real-time collaboration. A rich ecosystem of custom nodes.
</p> </p>
<p> <p>
Learn more about the planned technology in forthcoming Graphite releases. Learn more about the planned technology in forthcoming Graphite releases:
</p> </p>
<a href="/features" class="link arrow">Features</a> <a href="/features" class="link arrow">Features</a>
</div> </div>
@ -207,7 +181,7 @@
<section id="powered-by-rust" class="section-row left"> <section id="powered-by-rust" class="section-row left">
<div class="graphic"> <div class="graphic">
<img src="images/graphics/ferris-artist.svg" alt="" /> <img src="/images/graphics/ferris-artist.svg" alt="" />
</div> </div>
<div class="section"> <div class="section">
<h2>Built for the future, powered by Rust.</h2> <h2>Built for the future, powered by Rust.</h2>
@ -249,15 +223,19 @@
Graphite is early in development and the most exciting, ambitious features are still to come. Enter your email below to receive only occasional announcements when major updates are Graphite is early in development and the most exciting, ambitious features are still to come. Enter your email below to receive only occasional announcements when major updates are
ready for your enjoyment. The first newsletter will likely be sent out for the Graphite alpha milestone 2 release, featuring node-based editing, later this year. ready for your enjoyment. The first newsletter will likely be sent out for the Graphite alpha milestone 2 release, featuring node-based editing, later this year.
</p> </p>
<form action="/404"> <form action="https://graphite.rs/newsletter-signup" method="post">
<div class="same-line"> <div class="same-line">
<div class="column name"> <div class="column name">
<label for="newsletter-name">First + last name:</label> <label for="newsletter-name">First + last name:</label>
<input id="newsletter-name" type="text" /> <input id="newsletter-name" name="name" type="text" />
</div>
<div class="column phone">
<label for="newsletter-phone">Phone:</label>
<input id="newsletter-phone" name="phone" type="text" tabindex="-1" autocomplete="off" />
</div> </div>
<div class="column email"> <div class="column email">
<label for="newsletter-email">Email address:</label> <label for="newsletter-email">Email address:</label>
<input id="newsletter-email" type="email" /> <input id="newsletter-email" name="email" type="email" />
</div> </div>
</div> </div>
<div class="column submit"> <div class="column submit">
@ -274,38 +252,21 @@
<div class="social-links"> <div class="social-links">
<div class="column"> <div class="column">
<a href="https://discord.graphite.rs" target="_blank"> <a href="https://discord.graphite.rs" target="_blank">
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 48 48"> <img src="/images/graphics/discord.svg" alt="Discord" />
<path
d="M39.983,3.4A38.948,38.948,0,0,0,30.369.414a.146.146,0,0,0-.155.073,27.131,27.131,0,0,0-1.2,2.459,35.956,35.956,0,0,0-10.8,0A24.883,24.883,0,0,0,17,.487.152.152,0,0,0,16.85.414,38.84,38.84,0,0,0,7.236,3.4a.138.138,0,0,0-.063.054A39.861,39.861,0,0,0,.2,30.333a.162.162,0,0,0,.061.111A39.166,39.166,0,0,0,12.05,36.405a.153.153,0,0,0,.166-.054,27.993,27.993,0,0,0,2.413-3.924.15.15,0,0,0-.082-.208,25.792,25.792,0,0,1-3.684-1.756.152.152,0,0,1-.015-.251c.248-.186.5-.379.732-.573a.146.146,0,0,1,.153-.021,27.931,27.931,0,0,0,23.736,0,.145.145,0,0,1,.155.019c.236.195.484.39.734.575a.151.151,0,0,1-.013.251,24.2,24.2,0,0,1-3.686,1.754.151.151,0,0,0-.08.21,31.43,31.43,0,0,0,2.411,3.923.15.15,0,0,0,.166.056,39.036,39.036,0,0,0,11.812-5.962.152.152,0,0,0,.061-.109A39.6,39.6,0,0,0,40.044,3.452.12.12,0,0,0,39.983,3.4Zm-24.2,21.571a4.539,4.539,0,0,1-4.245-4.76,4.515,4.515,0,0,1,4.245-4.76,4.49,4.49,0,0,1,4.245,4.76A4.515,4.515,0,0,1,15.783,24.967Zm15.694,0a4.539,4.539,0,0,1-4.245-4.76,4.515,4.515,0,0,1,4.245-4.76,4.49,4.49,0,0,1,4.245,4.76A4.5,4.5,0,0,1,31.477,24.967Z"
transform="translate(0.3 5.588)" fill="#803847" />
</svg>
<span class="link arrow">Join on Discord</span> <span class="link arrow">Join on Discord</span>
</a> </a>
<a href="https://www.reddit.com/r/graphite/" target="_blank"> <a href="https://www.reddit.com/r/graphite/" target="_blank">
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 48 48"> <img src="/images/graphics/reddit.svg" alt="Reddit" />
<path
d="M22,44A21.9,21.9,0,0,1,9.7,40.243a22.064,22.064,0,0,1-7.971-9.679A21.971,21.971,0,0,1,3.757,9.7a22.065,22.065,0,0,1,9.679-7.971A21.971,21.971,0,0,1,34.3,3.757a22.064,22.064,0,0,1,7.971,9.679A21.971,21.971,0,0,1,40.243,34.3a22.066,22.066,0,0,1-9.679,7.971A21.861,21.861,0,0,1,22,44ZM10.6,18.784a3.214,3.214,0,0,0-1.312,6.15,6.069,6.069,0,0,0-.077.978c0,2.389,1.334,4.632,3.757,6.317a16.015,16.015,0,0,0,9.083,2.612,16.016,16.016,0,0,0,9.083-2.612c2.423-1.684,3.757-3.928,3.757-6.317a5.738,5.738,0,0,0-.077-.952A3.314,3.314,0,0,0,36.667,22a3.22,3.22,0,0,0-3.216-3.216,3.1,3.1,0,0,0-2.213.9,15.857,15.857,0,0,0-8.568-2.727l1.467-6.87,4.76,1A2.291,2.291,0,1,0,31.186,8.7a2.219,2.219,0,0,0-2.033,1.287L23.827,8.852a.7.7,0,0,0-.115-.01.576.576,0,0,0-.579.447l-1.621,7.668a15.609,15.609,0,0,0-8.7,2.727A3.243,3.243,0,0,0,10.6,18.784ZM22.026,32.009a12.4,12.4,0,0,1-2.464-.257A5.845,5.845,0,0,1,16.6,30.337a.609.609,0,0,1,0-.849.606.606,0,0,1,.849,0,4.572,4.572,0,0,0,2.1,1.036,10.519,10.519,0,0,0,2.505.3c1.491,0,3.592-.35,4.606-1.338a.606.606,0,0,1,.849,0,.662.662,0,0,1-.051.849,5.83,5.83,0,0,1-2.975,1.425A12.346,12.346,0,0,1,22.026,32.009Zm5.018-5.429a2.29,2.29,0,1,1,2.29-2.29A2.293,2.293,0,0,1,27.043,26.58Zm-10.087,0a2.29,2.29,0,1,1,2.29-2.29A2.293,2.293,0,0,1,16.957,26.58Z"
transform="translate(2 2)" fill="#803847" />
</svg>
<span class="link not-uppercase arrow">/r/Graphite</span> <span class="link not-uppercase arrow">/r/Graphite</span>
</a> </a>
</div> </div>
<div class="column"> <div class="column">
<a href="https://github.com/GraphiteEditor/Graphite" target="_blank"> <a href="https://github.com/GraphiteEditor/Graphite" target="_blank">
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 48 48"> <img src="/images/graphics/github.svg" alt="GitHub" />
<path
d="M22,0a22,22,0,0,0-6.958,42.873c1.1.192,1.513-.468,1.513-1.045,0-.522-.028-2.255-.028-4.1C11,38.748,9.57,36.382,9.13,35.145a8,8,0,0,0-2.255-3.107c-.77-.413-1.87-1.43-.028-1.458,1.733-.028,2.97,1.6,3.383,2.255,1.98,3.327,5.142,2.392,6.407,1.815a4.628,4.628,0,0,1,1.4-2.942c-4.895-.55-10.01-2.448-10.01-10.862a8.562,8.562,0,0,1,2.255-5.913A7.905,7.905,0,0,1,10.5,9.1s1.842-.578,6.05,2.255a20.742,20.742,0,0,1,11,0C31.762,8.5,33.6,9.1,33.6,9.1a7.905,7.905,0,0,1,.22,5.83,8.512,8.512,0,0,1,2.255,5.912c0,8.443-5.142,10.313-10.038,10.863a5.21,5.21,0,0,1,1.485,4.07c0,2.943-.028,5.308-.028,6.05,0,.577.412,1.265,1.512,1.045A22.012,22.012,0,0,0,22,0Z"
transform="translate(2 2)" fill="#803847" fill-rule="link evenodd" />
</svg>
<span class="link arrow">Star on GitHub</span> <span class="link arrow">Star on GitHub</span>
</a> </a>
<a href="https://twitter.com/graphiteeditor" target="_blank"> <a href="https://twitter.com/graphiteeditor" target="_blank">
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 48 48"> <img src="/images/graphics/twitter.svg" alt="Twitter" />
<path d="M0,0H48V48H0Z" fill="#803847" opacity="0" />
<path
d="M46.349,7.122A18.657,18.657,0,0,1,41,8.588a9.342,9.342,0,0,0,4.1-5.156,18.6,18.6,0,0,1-5.916,2.26,9.321,9.321,0,0,0-16.116,6.38,9.515,9.515,0,0,0,.24,2.12A26.457,26.457,0,0,1,4.1,4.456,9.332,9.332,0,0,0,6.983,16.9a9.3,9.3,0,0,1-4.22-1.166v.12a9.322,9.322,0,0,0,7.474,9.136,9.458,9.458,0,0,1-4.208.16,9.322,9.322,0,0,0,8.7,6.468A18.7,18.7,0,0,1,3.161,35.6a19,19,0,0,1-2.224-.13,26.349,26.349,0,0,0,14.28,4.186c17.14,0,26.51-14.2,26.51-26.508,0-.4-.01-.8-.028-1.2a18.941,18.941,0,0,0,4.646-4.82Z"
transform="translate(0.937 2.752)" fill="#803847" />
</svg>
<span class="link not-uppercase arrow">@GraphiteEditor</span> <span class="link not-uppercase arrow">@GraphiteEditor</span>
</a> </a>
</div> </div>