feat(welcome): wire demo note links with stack reveal and flash
This commit is contained in:
@@ -65,6 +65,19 @@ const flashOffset = () => {
|
|||||||
}, 900)
|
}, 900)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const firstHighlighted = ref(false)
|
||||||
|
const flashFirst = () => {
|
||||||
|
firstHighlighted.value = true
|
||||||
|
setTimeout(() => {
|
||||||
|
firstHighlighted.value = false
|
||||||
|
}, 900)
|
||||||
|
}
|
||||||
|
|
||||||
|
const zettelRevealed = ref(false)
|
||||||
|
const toggleZettel = () => {
|
||||||
|
zettelRevealed.value = !zettelRevealed.value
|
||||||
|
}
|
||||||
|
|
||||||
const reviewRepo = computed(() => savedFavoriteRepos.value[0] ?? null)
|
const reviewRepo = computed(() => savedFavoriteRepos.value[0] ?? null)
|
||||||
const showReviewCard = computed(
|
const showReviewCard = computed(
|
||||||
() => cardsToReview.value.length > 0 && reviewRepo.value !== null
|
() => cardsToReview.value.length > 0 && reviewRepo.value !== null
|
||||||
@@ -464,7 +477,10 @@ const showReviewCard = computed(
|
|||||||
</span>
|
</span>
|
||||||
</h2>
|
</h2>
|
||||||
<div class="demo-notes">
|
<div class="demo-notes">
|
||||||
<article class="note-preview">
|
<article
|
||||||
|
class="note-preview"
|
||||||
|
:class="{ 'note-preview--flash': firstHighlighted }"
|
||||||
|
>
|
||||||
<div class="note-header">
|
<div class="note-header">
|
||||||
<span class="mono note-breadcrumb"
|
<span class="mono note-breadcrumb"
|
||||||
>remanso-space / getting-started</span
|
>remanso-space / getting-started</span
|
||||||
@@ -481,9 +497,10 @@ const showReviewCard = computed(
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
Luhmann called this the
|
Luhmann called this the
|
||||||
<a class="note-link" href="#" @click.prevent>zettelkasten</a>:
|
<a class="note-link" href="#" @click.prevent="toggleZettel"
|
||||||
a slip-box of thoughts you converse with, rather than a hoard
|
>zettelkasten</a
|
||||||
of pages you re-read.
|
>: a slip-box of thoughts you converse with, rather than a
|
||||||
|
hoard of pages you re-read.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="note-backlinks">
|
<div class="note-backlinks">
|
||||||
@@ -498,6 +515,7 @@ const showReviewCard = computed(
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</article>
|
</article>
|
||||||
|
<div class="note-stack">
|
||||||
<article
|
<article
|
||||||
class="note-preview note-preview-offset"
|
class="note-preview note-preview-offset"
|
||||||
:class="{ 'note-preview--flash': offsetHighlighted }"
|
:class="{ 'note-preview--flash': offsetHighlighted }"
|
||||||
@@ -510,12 +528,48 @@ const showReviewCard = computed(
|
|||||||
<h3 class="note-title">Durable enough</h3>
|
<h3 class="note-title">Durable enough</h3>
|
||||||
<div class="note-body">
|
<div class="note-body">
|
||||||
<p>
|
<p>
|
||||||
A durable note survives its own context. You should be able to
|
A durable note survives its own context. You should be able
|
||||||
pick it up six months from now and still know what it means.
|
to pick it up six months from now and still know what it
|
||||||
|
means.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
Rule of thumb: write the title as the claim, and the body as
|
Rule of thumb: write the title as the claim, and the body
|
||||||
the argument.
|
as the argument.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="note-backlinks">
|
||||||
|
<div class="backlinks-h mono">↖ linked from</div>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<a @click.prevent="flashFirst" href="#"
|
||||||
|
>on keeping notes</a
|
||||||
|
>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</article>
|
||||||
|
<article
|
||||||
|
class="note-preview note-preview-zettel"
|
||||||
|
:class="{ 'is-revealed': zettelRevealed }"
|
||||||
|
:aria-hidden="!zettelRevealed"
|
||||||
|
>
|
||||||
|
<div class="note-header">
|
||||||
|
<span class="mono note-breadcrumb"
|
||||||
|
>remanso-space / getting-started</span
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<h3 class="note-title">Zettelkasten</h3>
|
||||||
|
<div class="note-body">
|
||||||
|
<p>
|
||||||
|
A <em>slip-box</em> of atomic notes wired together by links
|
||||||
|
instead of filed away in folders. Niklas Luhmann kept
|
||||||
|
ninety thousand of them in a wooden cabinet and wrote with
|
||||||
|
them, not just about them.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Each <em>Zettel</em> earns its keep by being linked to.
|
||||||
|
Open one, follow a thread, end up somewhere you didn't plan
|
||||||
|
to go.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="note-backlinks">
|
<div class="note-backlinks">
|
||||||
@@ -527,6 +581,7 @@ const showReviewCard = computed(
|
|||||||
</article>
|
</article>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<!-- Zettelkasten primer -->
|
<!-- Zettelkasten primer -->
|
||||||
@@ -1300,6 +1355,39 @@ main {
|
|||||||
animation: note-flash 0.9s ease forwards;
|
animation: note-flash 0.9s ease forwards;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.note-stack {
|
||||||
|
position: relative;
|
||||||
|
display: flex;
|
||||||
|
align-items: flex-start;
|
||||||
|
}
|
||||||
|
|
||||||
|
.note-preview-zettel {
|
||||||
|
position: absolute;
|
||||||
|
inset: 0;
|
||||||
|
margin-top: 2.5rem;
|
||||||
|
transform: rotate(-0.6deg) translate(0, 0) scale(0.97);
|
||||||
|
opacity: 0;
|
||||||
|
pointer-events: none;
|
||||||
|
z-index: -1;
|
||||||
|
transition:
|
||||||
|
transform 0.4s cubic-bezier(0.2, 0.7, 0.2, 1),
|
||||||
|
opacity 0.3s ease;
|
||||||
|
|
||||||
|
&.is-revealed {
|
||||||
|
transform: rotate(-2deg) translate(28px, 28px) scale(0.97);
|
||||||
|
opacity: 1;
|
||||||
|
pointer-events: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 640px) {
|
||||||
|
.note-preview-zettel {
|
||||||
|
&.is-revealed {
|
||||||
|
transform: rotate(-1.5deg) translate(12px, 22px) scale(0.96);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@keyframes note-flash {
|
@keyframes note-flash {
|
||||||
0% {
|
0% {
|
||||||
box-shadow:
|
box-shadow:
|
||||||
|
|||||||
Reference in New Issue
Block a user