@@ -368,9 +412,14 @@ Graphite is built by a small, dedicated crew of volunteers in need of resources
# Art takes shape
-Make vector art out of shapes ranging from simple geometric primitives to complex Bézier curves.
+**All you've come to expect from a professional vector graphics editor. Now readily accessible in your browser.**
-Style your shapes with strokes, fills, and gradients. Mix your layers with blend modes. Then export as SVG.
+
+
+Make vector art out of shapes ranging from simple geometric primitives to complex Bézier curves.
+
+Style shapes with strokes, fills, and gradients. Mix layers with blend modes. Then export as an image or SVG.
+
+
-
-
— Alpha Milestone 3 —
+
+
@@ -245,11 +249,7 @@ Always on the bleeding edge and built to last— Graphite is written on a robust
-
+### Video 2
+
+*Coming soon.*
+
diff --git a/website/content/volunteer/guide/product-design/product-outline.md b/website/content/volunteer/guide/product-design/product-outline.md
index 54c8bd04..a0ee9b3b 100644
--- a/website/content/volunteer/guide/product-design/product-outline.md
+++ b/website/content/volunteer/guide/product-design/product-outline.md
@@ -77,7 +77,7 @@ order = 1 # Page number after chapter intro
- Data flow
- Rasterization
- Raster editing
- - Resolution-agnostic sampling
+ - Adaptive resolution sampling
- Compositing and data flow
- Caching
- Predictive caching
diff --git a/website/sass/base.scss b/website/sass/base.scss
index 7acbe13d..85b8fd4c 100644
--- a/website/sass/base.scss
+++ b/website/sass/base.scss
@@ -414,6 +414,21 @@ summary {
}
}
+.status-flag {
+ background: var(--color-crimson);
+ white-space: nowrap;
+ color: white;
+ font-size: 0.4em;
+ padding: 0.2em 0.4em;
+ padding-top: 0.1em;
+ position: relative;
+ top: -0.2em;
+ font-family: "EB Garamond", Garamond, serif;
+ font-feature-settings: "lnum";
+ line-height: 1.2;
+ font-weight: 500;
+}
+
.video-embed {
position: relative;
width: 100%;
diff --git a/website/sass/features.scss b/website/sass/features.scss
index 8cefcba5..492eacaa 100644
--- a/website/sass/features.scss
+++ b/website/sass/features.scss
@@ -1,14 +1,3 @@
-.section h2 .status-flag {
- white-space: nowrap;
- background: var(--color-flamingo);
- color: white;
- font-size: 0.4em;
- padding: 0.2em 0.4em;
- padding-top: 0.1em;
- position: relative;
- top: -0.2em;
-}
-
#roadmap {
width: 100%;
text-align: center;
diff --git a/website/sass/index.scss b/website/sass/index.scss
index 05e9340c..e49c3020 100644
--- a/website/sass/index.scss
+++ b/website/sass/index.scss
@@ -104,7 +104,17 @@
// ▛ TODAY AND TOMORROW ▜
// ▙ TODAY AND TOMORROW ▟
-//
+
+// ▛ DISCIPLINES ▜
+#disciplines .section {
+ align-items: center;
+
+ .informational-group .informational {
+ margin-top: 40px;
+ }
+}
+// ▙ DISCIPLINES ▟
+
// ▛ COMMUNITY ▜
#community {
background-color: var(--color-mustard);
@@ -255,22 +265,24 @@
}
// ▙ COMMUNITY ▟
+// ▛ JUMP RIGHT IN ▜
+#jump-right-in {
+ max-width: 1000px;
+
+ .section {
+ align-items: center;
+ }
+}
+// ▙ JUMP RIGHT IN ▟
+
// ▛ PROCEDURALISM ▜
-#proceduralism .section {
+#proceduralism .section,
+#proceduralism-demo .section,
+#proceduralism-features .section {
align-items: center;
}
// ▙ PROCEDURALISM ▟
-// ▛ DISCIPLINES ▜
-#disciplines .section {
- align-items: center;
-
- .informational-group .informational {
- margin-top: 40px;
- }
-}
-// ▙ DISCIPLINES ▟
-
// ▛ FUNDRAISING ▜
#fundraising {
background-color: var(--color-cove);
@@ -312,73 +324,73 @@
// ▙ VECTOR ART ▟
// ▛ IMAGINATE ▜
-#imaginate {
- > .section {
- align-items: center;
+// #imaginate {
+// > .section {
+// align-items: center;
- h1 {
- text-align: center;
+// h1 {
+// text-align: center;
- .alternating-text {
- position: relative;
+// .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;
+// 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;
- }
+// // 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));
- }
- }
+// @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; }
- }
- }
- }
- }
- }
+// @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));
+// > .diptych {
+// margin-top: calc(80 * var(--variable-px));
- .section {
- align-items: center;
+// .section {
+// align-items: center;
- h2 {
- text-align: center;
- }
- }
- }
+// h2 {
+// text-align: center;
+// }
+// }
+// }
- // #imaginate-creative-concepts-carousel {
- // margin-top: 20px;
+// // #imaginate-creative-concepts-carousel {
+// // margin-top: 20px;
- // .screenshot-details {
- // justify-content: center;
- // }
+// // .screenshot-details {
+// // justify-content: center;
+// // }
- // + blockquote {
- // margin-top: 0;
- // }
- // }
-}
+// // + blockquote {
+// // margin-top: 0;
+// // }
+// // }
+// }
// ▙ IMAGINATE ▟
// ▛ DEMO VIDEO ▜
diff --git a/website/static/js/image-interaction.js b/website/static/js/image-interaction.js
index f0a2b4c1..80ece5ad 100644
--- a/website/static/js/image-interaction.js
+++ b/website/static/js/image-interaction.js
@@ -305,19 +305,21 @@ window.addEventListener("DOMContentLoaded", initializeVideoAutoPlay);
function initializeVideoAutoPlay() {
const VISIBILITY_COVERAGE_FRACTION = 0.25;
- let loaded = false;
+ const players = document.querySelectorAll("[data-auto-play]");
+ players.forEach((player) => {
+ if (!(player instanceof HTMLVideoElement)) return;
- const player = document.querySelector("[data-auto-play]");
- if (!(player instanceof HTMLVideoElement)) return;
-
- new IntersectionObserver((entries) => {
- entries.forEach((entry) => {
- if (!loaded && entry.intersectionRatio > VISIBILITY_COVERAGE_FRACTION) {
- player.play();
-
- loaded = true;
- };
- });
- }, { threshold: VISIBILITY_COVERAGE_FRACTION })
+ let loaded = false;
+
+ new IntersectionObserver((entries) => {
+ entries.forEach((entry) => {
+ if (!loaded && entry.intersectionRatio > VISIBILITY_COVERAGE_FRACTION) {
+ player.play();
+
+ loaded = true;
+ };
+ });
+ }, { threshold: VISIBILITY_COVERAGE_FRACTION })
.observe(player);
+ });
}