@troshab/slidev-theme-troshab 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +537 -0
- package/LICENSE +134 -0
- package/README.md +168 -0
- package/SKILL.md +414 -0
- package/components/AnimatedCounter.vue +35 -0
- package/components/Background.vue +204 -0
- package/components/Callout.vue +135 -0
- package/components/Card.vue +75 -0
- package/components/CardGrid.vue +67 -0
- package/components/CaseStudy.vue +66 -0
- package/components/CodeDiff.vue +229 -0
- package/components/CodeHighlight.vue +337 -0
- package/components/ColorSwatch.vue +114 -0
- package/components/Confetti.vue +292 -0
- package/components/Conversation.vue +405 -0
- package/components/Countdown.vue +476 -0
- package/components/Definition.vue +59 -0
- package/components/DeviceMockup.vue +392 -0
- package/components/Funnel.vue +87 -0
- package/components/Icon.vue +73 -0
- package/components/Iframe.vue +38 -0
- package/components/Image.vue +69 -0
- package/components/ImageCompare.vue +436 -0
- package/components/MatrixGrid.vue +85 -0
- package/components/MermaidChart.vue +299 -0
- package/components/Metric.vue +161 -0
- package/components/PersonCard.vue +165 -0
- package/components/PricingTable.vue +144 -0
- package/components/Progress.vue +100 -0
- package/components/Pyramid.vue +81 -0
- package/components/QRCode.vue +137 -0
- package/components/QuoteBlock.vue +101 -0
- package/components/SpeechBubble.vue +169 -0
- package/components/Stepper.vue +542 -0
- package/components/StyledList.vue +156 -0
- package/components/StyledText.vue +275 -0
- package/components/SwotGrid.vue +99 -0
- package/components/Tags.vue +20 -0
- package/components/Testimonial.vue +243 -0
- package/components/Typewriter.vue +181 -0
- package/components_base/AnimatedCounter.vue +208 -0
- package/components_base/CodeHighlight.vue +364 -0
- package/composables/useColors.ts +101 -0
- package/composables/useShiki.ts +81 -0
- package/example_content.md +371 -0
- package/example_dark.md +10 -0
- package/example_slides/001-cover.md +15 -0
- package/example_slides/002-agenda.md +25 -0
- package/example_slides/003-section-layouts.md +14 -0
- package/example_slides/004-fullscreen-centered.md +7 -0
- package/example_slides/005-fullscreen-align-bottom.md +14 -0
- package/example_slides/006-fullscreen-no-padding.md +14 -0
- package/example_slides/007-fullscreen-bg-image-dark.md +13 -0
- package/example_slides/008-fullscreen-bg-image-light.md +13 -0
- package/example_slides/009-fullscreen-bg-gradient.md +15 -0
- package/example_slides/010-fullscreen-bg-color.md +13 -0
- package/example_slides/011-split-basic.md +17 -0
- package/example_slides/012-split-image-text.md +18 -0
- package/example_slides/013-split-contrast.md +22 -0
- package/example_slides/014-columns-basic.md +13 -0
- package/example_slides/015-columns-two.md +26 -0
- package/example_slides/016-columns-ratios.md +22 -0
- package/example_slides/017-columns-three.md +31 -0
- package/example_slides/018-columns-four.md +22 -0
- package/example_slides/019-columns-alignment.md +23 -0
- package/example_slides/020-columns-styled.md +21 -0
- package/example_slides/021-footnote-prop.md +16 -0
- package/example_slides/022-iframe-fullscreen.md +8 -0
- package/example_slides/023-iframe-split.md +18 -0
- package/example_slides/024-section-components.md +14 -0
- package/example_slides/025-styled-text.md +9 -0
- package/example_slides/026-styled-text.md +15 -0
- package/example_slides/027-text-formatting.md +28 -0
- package/example_slides/028-text-spoiler.md +15 -0
- package/example_slides/029-icon-component.md +47 -0
- package/example_slides/030-metric-component.md +29 -0
- package/example_slides/031-person-card.md +33 -0
- package/example_slides/032-styled-list.md +50 -0
- package/example_slides/033-color-swatch.md +35 -0
- package/example_slides/034-code-highlight.md +9 -0
- package/example_slides/035-iframe-component.md +9 -0
- package/example_slides/036-callout.md +15 -0
- package/example_slides/037-card-grid.md +27 -0
- package/example_slides/038-stepper-variants.md +18 -0
- package/example_slides/039-stepper-clicks.md +49 -0
- package/example_slides/040-stepper-interactive.md +28 -0
- package/example_slides/041-tags-progress.md +21 -0
- package/example_slides/042-speech-bubble.md +30 -0
- package/example_slides/043-conversation.md +13 -0
- package/example_slides/044-device-iphone.md +26 -0
- package/example_slides/045-device-browser.md +7 -0
- package/example_slides/046-qrcode.md +26 -0
- package/example_slides/047-countdown.md +14 -0
- package/example_slides/048-typewriter.md +8 -0
- package/example_slides/049-confetti.md +16 -0
- package/example_slides/050-image-compare.md +13 -0
- package/example_slides/051-code-diff.md +24 -0
- package/example_slides/052-quote-block.md +8 -0
- package/example_slides/053-testimonial.md +26 -0
- package/example_slides/054-testimonial-featured.md +16 -0
- package/example_slides/055-funnel.md +12 -0
- package/example_slides/056-pyramid.md +13 -0
- package/example_slides/057-pricing-table.md +9 -0
- package/example_slides/058-swot-grid.md +12 -0
- package/example_slides/059-matrix-grid.md +12 -0
- package/example_slides/060-case-study.md +11 -0
- package/example_slides/061-definition.md +15 -0
- package/example_slides/062-mermaid-intro.md +34 -0
- package/example_slides/063-mermaid-flowchart.md +19 -0
- package/example_slides/064-mermaid-sequence.md +17 -0
- package/example_slides/065-mermaid-xy-chart.md +16 -0
- package/example_slides/066-mermaid-pie.md +17 -0
- package/example_slides/067-mermaid-class.md +19 -0
- package/example_slides/068-mermaid-state.md +19 -0
- package/example_slides/069-mermaid-er.md +22 -0
- package/example_slides/070-mermaid-gantt.md +24 -0
- package/example_slides/071-mermaid-timeline.md +17 -0
- package/example_slides/072-mermaid-mindmap.md +21 -0
- package/example_slides/073-mermaid-gitgraph.md +20 -0
- package/example_slides/074-mermaid-split.md +30 -0
- package/example_slides/075-mermaid-columns.md +32 -0
- package/example_slides/076-section-addons.md +14 -0
- package/example_slides/077-asciinema.md +27 -0
- package/example_slides/078-fancyarrow.md +31 -0
- package/example_slides/079-fancyarrow-demo.md +23 -0
- package/example_slides/080-section-theme.md +14 -0
- package/example_slides/081-color-architecture.md +22 -0
- package/example_slides/082-semantic-text-colors.md +25 -0
- package/example_slides/083-typography.md +16 -0
- package/example_slides/084-typography-rationale.md +22 -0
- package/example_slides/085-icons.md +24 -0
- package/example_slides/086-tables.md +14 -0
- package/example_slides/087-code-blocks.md +18 -0
- package/example_slides/088-motion-modes.md +35 -0
- package/example_slides/089-slide-transitions.md +31 -0
- package/example_slides/090-v-click-reveals.md +40 -0
- package/example_slides/091-accessibility.md +27 -0
- package/example_slides/092-safe-zone.md +17 -0
- package/example_slides/093-questions.md +8 -0
- package/example_white.md +10 -0
- package/fonts/IBMPlexMono-Medium.woff2 +1449 -0
- package/fonts/IBMPlexMono-Regular.woff2 +1449 -0
- package/fonts/IBMPlexSans-Bold.woff2 +1449 -0
- package/fonts/IBMPlexSans-Medium.woff2 +1449 -0
- package/fonts/IBMPlexSans-Regular.woff2 +1449 -0
- package/fonts/IBMPlexSans-SemiBold.woff2 +1449 -0
- package/fonts/LICENSE.txt +93 -0
- package/layouts/slide.vue +251 -0
- package/package.json +62 -0
- package/public/avatars/alice.png +0 -0
- package/public/avatars/bob.png +0 -0
- package/public/avatars/carol.png +0 -0
- package/scripts/chart-audit.mjs +216 -0
- package/scripts/contrast-audit.mjs +299 -0
- package/scripts/generate-palette.mjs +395 -0
- package/scripts/integrity-audit.mjs +357 -0
- package/scripts/shared/css-utils.mjs +216 -0
- package/scripts/shiki-audit.mjs +300 -0
- package/scripts/typography-audit.mjs +300 -0
- package/setup/main.ts +107 -0
- package/setup/mermaid.ts +237 -0
- package/setup/shiki.ts +40 -0
- package/snippets/demo.ts +26 -0
- package/styles/base.css +1053 -0
- package/styles/colors.css +422 -0
- package/styles/index.css +12 -0
- package/styles/motion.css +486 -0
- package/uno.config.ts +67 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: slide
|
|
3
|
+
cols: '5-7'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# QRCode Component
|
|
7
|
+
|
|
8
|
+
::col1::
|
|
9
|
+
|
|
10
|
+
<QRCode data="https://sli.dev" :size="200" color="accent" />
|
|
11
|
+
|
|
12
|
+
<StyledText color="secondary" align="center">sli.dev</StyledText>
|
|
13
|
+
|
|
14
|
+
::col2::
|
|
15
|
+
|
|
16
|
+
### Usage
|
|
17
|
+
|
|
18
|
+
```vue
|
|
19
|
+
<QRCode data="https://sli.dev" />
|
|
20
|
+
<QRCode data="..." :size="150" />
|
|
21
|
+
<QRCode data="..." color="accent" />
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
**Props:** `data`, `size`, `color`
|
|
25
|
+
|
|
26
|
+
Color accepts semantic names: `primary`, `accent`, `success`, etc.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: slide
|
|
3
|
+
mode: fullscreen
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
::bg::
|
|
7
|
+
<Background :gradient="'accent'" />
|
|
8
|
+
<Confetti :particleCount="100" />
|
|
9
|
+
|
|
10
|
+
::default::
|
|
11
|
+
|
|
12
|
+
# Confetti
|
|
13
|
+
|
|
14
|
+
Background celebration effect with v-click
|
|
15
|
+
|
|
16
|
+
Place `<Confetti />` in the `::bg::` slot
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: slide
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# CodeDiff Component
|
|
6
|
+
|
|
7
|
+
<CodeDiff mode="split">
|
|
8
|
+
<pre filename="utils.js" lang="javascript">
|
|
9
|
+
function add(a, b) {
|
|
10
|
+
return a + b;
|
|
11
|
+
}
|
|
12
|
+
function greet(name) {
|
|
13
|
+
return 'Hello, ' + name;
|
|
14
|
+
}
|
|
15
|
+
</pre>
|
|
16
|
+
<pre filename="utils.ts" lang="typescript">
|
|
17
|
+
function add(a: number, b: number) {
|
|
18
|
+
return a + b;
|
|
19
|
+
}
|
|
20
|
+
function greet(name: string) {
|
|
21
|
+
return 'Hello, ' + name;
|
|
22
|
+
}
|
|
23
|
+
</pre>
|
|
24
|
+
</CodeDiff>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: slide
|
|
3
|
+
cols: 2
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Testimonial Component
|
|
7
|
+
|
|
8
|
+
::col1::
|
|
9
|
+
|
|
10
|
+
<Testimonial
|
|
11
|
+
quote="Transformed our team collaboration. 40% productivity increase."
|
|
12
|
+
author="Sarah Johnson"
|
|
13
|
+
role="Engineering Manager"
|
|
14
|
+
company="TechCorp"
|
|
15
|
+
:rating="5"
|
|
16
|
+
/>
|
|
17
|
+
|
|
18
|
+
::col2::
|
|
19
|
+
|
|
20
|
+
<Testimonial
|
|
21
|
+
quote="Clean API design makes integration easy. Our team shipped in half the time."
|
|
22
|
+
author="Michael Chen"
|
|
23
|
+
role="CTO"
|
|
24
|
+
company="StartupXYZ"
|
|
25
|
+
:rating="4"
|
|
26
|
+
/>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: slide
|
|
3
|
+
mode: fullscreen
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
::default::
|
|
7
|
+
|
|
8
|
+
# Featured Testimonial
|
|
9
|
+
|
|
10
|
+
<Testimonial
|
|
11
|
+
quote="Best investment this year. Simple, powerful, and well-supported."
|
|
12
|
+
author="Michael Chen"
|
|
13
|
+
role="CTO"
|
|
14
|
+
company="StartupXYZ"
|
|
15
|
+
variant="featured"
|
|
16
|
+
/>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: slide
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Pyramid Component
|
|
6
|
+
|
|
7
|
+
<Pyramid :levels="[
|
|
8
|
+
{ label: 'Vision', description: 'Strategic direction' },
|
|
9
|
+
{ label: 'Goals', description: 'Measurable objectives' },
|
|
10
|
+
{ label: 'Strategy', description: 'Action plans' },
|
|
11
|
+
{ label: 'Tactics', description: 'Daily execution' },
|
|
12
|
+
{ label: 'Tasks', description: 'Individual work items' }
|
|
13
|
+
]" />
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: slide
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
<PricingTable :plans="[
|
|
6
|
+
{ name: 'Free', price: '$0', features: ['3 members', '1GB storage'] },
|
|
7
|
+
{ name: 'Pro', price: '$29/mo', features: ['25 members', '100GB', 'Priority support'], highlighted: true },
|
|
8
|
+
{ name: 'Team', price: '$99/mo', features: ['Unlimited', '1TB', 'Dedicated support'] }
|
|
9
|
+
]" />
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: slide
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# SwotGrid Component
|
|
6
|
+
|
|
7
|
+
<SwotGrid
|
|
8
|
+
:strengths="['Strong brand', 'Experienced team', 'Proprietary tech']"
|
|
9
|
+
:weaknesses="['Limited reach', 'High acquisition cost']"
|
|
10
|
+
:opportunities="['Emerging markets', 'New partnerships']"
|
|
11
|
+
:threats="['More competition', 'Regulatory changes']"
|
|
12
|
+
/>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: slide
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# MatrixGrid Component
|
|
6
|
+
|
|
7
|
+
<MatrixGrid :cells="[
|
|
8
|
+
{ title: 'Quick Wins', items: ['Fix critical bug', 'Update docs'] },
|
|
9
|
+
{ title: 'Major Projects', items: ['New API', 'Performance overhaul'] },
|
|
10
|
+
{ title: 'Fill-Ins', items: ['Code cleanup', 'Minor tweaks'] },
|
|
11
|
+
{ title: 'Thankless Tasks', items: ['Legacy migration', 'Complex refactor'] }
|
|
12
|
+
]" />
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: slide
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# CaseStudy Component
|
|
6
|
+
|
|
7
|
+
<CaseStudy :sections="[
|
|
8
|
+
{ title: 'Problem', content: 'Manual processes taking 40+ hours weekly. Data scattered across systems.', color: 'danger' },
|
|
9
|
+
{ title: 'Solution', content: 'Automated workflows with centralized dashboard. Real-time validation.', color: 'primary' },
|
|
10
|
+
{ title: 'Result', content: '75% time savings. 99.9% accuracy. $500K annual cost reduction.', color: 'success' }
|
|
11
|
+
]" />
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: slide
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
<Definition term="API" pronunciation="/ei.pi.ai/" partOfSpeech="noun">
|
|
6
|
+
|
|
7
|
+
A set of protocols that allows software applications to communicate with each other.
|
|
8
|
+
|
|
9
|
+
1. Defines methods and data formats
|
|
10
|
+
2. Enables system integration
|
|
11
|
+
3. Abstracts complexity
|
|
12
|
+
|
|
13
|
+
Related: `REST`, `GraphQL`, `WebSocket`, `SDK`
|
|
14
|
+
|
|
15
|
+
</Definition>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: slide
|
|
3
|
+
cols: 2
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Mermaid Charts
|
|
7
|
+
|
|
8
|
+
::col1::
|
|
9
|
+
|
|
10
|
+
Use `<MermaidChart>` wrapper for semantic typing and captions.
|
|
11
|
+
|
|
12
|
+
````vue
|
|
13
|
+
<MermaidChart type="flowchart"
|
|
14
|
+
direction="LR">
|
|
15
|
+
|
|
16
|
+
```mermaid
|
|
17
|
+
graph LR
|
|
18
|
+
A --> B
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
</MermaidChart>
|
|
22
|
+
````
|
|
23
|
+
|
|
24
|
+
::col2::
|
|
25
|
+
|
|
26
|
+
### Supported Types
|
|
27
|
+
|
|
28
|
+
flowchart, sequence, xychart, pie, class, state, er, gantt, timeline, mindmap, gitgraph
|
|
29
|
+
|
|
30
|
+
### Rules
|
|
31
|
+
|
|
32
|
+
- Max 8 nodes / 4 participants
|
|
33
|
+
- Labels: 2-10 characters
|
|
34
|
+
- No `title` in xychart
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: slide
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
## Flowchart
|
|
6
|
+
|
|
7
|
+
<MermaidChart type="flowchart" direction="LR" caption="Directions: LR, TD, BT, RL">
|
|
8
|
+
|
|
9
|
+
```mermaid
|
|
10
|
+
graph LR
|
|
11
|
+
A[App] --> B[LB]
|
|
12
|
+
B --> C[GW]
|
|
13
|
+
C --> D[Auth]
|
|
14
|
+
C --> E[API]
|
|
15
|
+
D --> F[DB]
|
|
16
|
+
E --> F
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
</MermaidChart>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: slide
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
## Sequence Diagram
|
|
6
|
+
|
|
7
|
+
<MermaidChart type="sequence" caption="Max 4 participants, short names">
|
|
8
|
+
|
|
9
|
+
```mermaid
|
|
10
|
+
sequenceDiagram
|
|
11
|
+
App->>API: Login
|
|
12
|
+
API->>Auth: Check
|
|
13
|
+
Auth-->>API: Token
|
|
14
|
+
API-->>App: 200 OK
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
</MermaidChart>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: slide
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
## XY Chart
|
|
6
|
+
|
|
7
|
+
<MermaidChart type="xychart" caption="+850% growth in nine months">
|
|
8
|
+
|
|
9
|
+
```mermaid
|
|
10
|
+
xychart-beta
|
|
11
|
+
x-axis [Jan, Mar, May, Jul, Sep]
|
|
12
|
+
y-axis "Users (k)" 0 --> 100
|
|
13
|
+
bar [10, 35, 55, 75, 95]
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
</MermaidChart>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: slide
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
## Class Diagram
|
|
6
|
+
|
|
7
|
+
<MermaidChart type="class">
|
|
8
|
+
|
|
9
|
+
```mermaid
|
|
10
|
+
classDiagram
|
|
11
|
+
Animal <|-- Duck
|
|
12
|
+
Animal <|-- Fish
|
|
13
|
+
Animal : +int age
|
|
14
|
+
Animal : +move()
|
|
15
|
+
Duck : +swim()
|
|
16
|
+
Fish : +eat()
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
</MermaidChart>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: slide
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
## State Diagram
|
|
6
|
+
|
|
7
|
+
<MermaidChart type="state">
|
|
8
|
+
|
|
9
|
+
```mermaid
|
|
10
|
+
stateDiagram-v2
|
|
11
|
+
[*] --> Idle
|
|
12
|
+
Idle --> Load : fetch
|
|
13
|
+
Load --> OK : done
|
|
14
|
+
Load --> Err : fail
|
|
15
|
+
OK --> Idle : reset
|
|
16
|
+
Err --> Idle : retry
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
</MermaidChart>
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: slide
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
## ER Diagram
|
|
6
|
+
|
|
7
|
+
<MermaidChart type="er" caption="2-3 fields max per entity for slides">
|
|
8
|
+
|
|
9
|
+
```mermaid
|
|
10
|
+
erDiagram
|
|
11
|
+
USER ||--o{ ORDER : places
|
|
12
|
+
USER {
|
|
13
|
+
int id
|
|
14
|
+
string name
|
|
15
|
+
}
|
|
16
|
+
ORDER {
|
|
17
|
+
int id
|
|
18
|
+
int userId
|
|
19
|
+
}
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
</MermaidChart>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: slide
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
## Gantt Chart
|
|
6
|
+
|
|
7
|
+
<MermaidChart type="gantt">
|
|
8
|
+
|
|
9
|
+
```mermaid
|
|
10
|
+
gantt
|
|
11
|
+
dateFormat YYYY-MM-DD
|
|
12
|
+
axisFormat %b
|
|
13
|
+
section Plan
|
|
14
|
+
Research :done, a0, 2024-01-01, 14d
|
|
15
|
+
Design :done, a1, after a0, 21d
|
|
16
|
+
section Dev
|
|
17
|
+
Backend :active, a2, after a1, 45d
|
|
18
|
+
Frontend :active, a3, after a1, 60d
|
|
19
|
+
section QA
|
|
20
|
+
Test :a4, after a3, 30d
|
|
21
|
+
Ship :active, a5, after a4, 14d
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
</MermaidChart>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: slide
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
## Timeline
|
|
6
|
+
|
|
7
|
+
<MermaidChart type="timeline" caption="For colored stages, use the Timeline component">
|
|
8
|
+
|
|
9
|
+
```mermaid
|
|
10
|
+
timeline
|
|
11
|
+
2020 : Founded : First product
|
|
12
|
+
2021 : Series A : 10 employees
|
|
13
|
+
2022 : Series B : 50 employees
|
|
14
|
+
2023 : IPO : 100 employees
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
</MermaidChart>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: slide
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
## Git Graph
|
|
6
|
+
|
|
7
|
+
<MermaidChart type="gitgraph">
|
|
8
|
+
|
|
9
|
+
```mermaid
|
|
10
|
+
gitGraph
|
|
11
|
+
commit id: "init"
|
|
12
|
+
branch develop
|
|
13
|
+
commit id: "feat-1"
|
|
14
|
+
commit id: "feat-2"
|
|
15
|
+
checkout main
|
|
16
|
+
merge develop id: "v1.0"
|
|
17
|
+
commit id: "hotfix"
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
</MermaidChart>
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: slide
|
|
3
|
+
mode: split
|
|
4
|
+
split: [7, 5]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
::left::
|
|
8
|
+
|
|
9
|
+
<MermaidChart type="flowchart" direction="LR">
|
|
10
|
+
|
|
11
|
+
```mermaid
|
|
12
|
+
graph LR
|
|
13
|
+
A[Client] --> B[CDN]
|
|
14
|
+
B --> C[Server]
|
|
15
|
+
C --> D[(DB)]
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
</MermaidChart>
|
|
19
|
+
|
|
20
|
+
::right::
|
|
21
|
+
|
|
22
|
+
## Architecture
|
|
23
|
+
|
|
24
|
+
Request flow from client to database:
|
|
25
|
+
|
|
26
|
+
1. **CDN** caches static assets
|
|
27
|
+
2. **Server** handles API logic
|
|
28
|
+
3. **DB** stores persistent data
|
|
29
|
+
|
|
30
|
+
Average latency: < 50ms
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: slide
|
|
3
|
+
cols: 2
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Side-by-Side Diagrams
|
|
7
|
+
|
|
8
|
+
::col1::
|
|
9
|
+
|
|
10
|
+
<MermaidChart type="pie">
|
|
11
|
+
|
|
12
|
+
```mermaid
|
|
13
|
+
pie
|
|
14
|
+
"Frontend" : 40
|
|
15
|
+
"Backend" : 35
|
|
16
|
+
"DevOps" : 25
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
</MermaidChart>
|
|
20
|
+
|
|
21
|
+
::col2::
|
|
22
|
+
|
|
23
|
+
<MermaidChart type="pie">
|
|
24
|
+
|
|
25
|
+
```mermaid
|
|
26
|
+
pie
|
|
27
|
+
"React" : 50
|
|
28
|
+
"Vue" : 30
|
|
29
|
+
"Svelte" : 20
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
</MermaidChart>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: slide
|
|
3
|
+
cols: '5-7'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Asciinema
|
|
7
|
+
|
|
8
|
+
::col1::
|
|
9
|
+
|
|
10
|
+
Terminal recordings via [asciinema-player](https://docs.asciinema.org/manual/player/).
|
|
11
|
+
|
|
12
|
+
```md
|
|
13
|
+
<Asciinema
|
|
14
|
+
src="/casts/demo.cast"
|
|
15
|
+
:playerProps="{ autoPlay: true,
|
|
16
|
+
loop: true, speed: 2 }" />
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
::col2::
|
|
20
|
+
|
|
21
|
+
**playerProps:**
|
|
22
|
+
|
|
23
|
+
- `rows` / `cols` - terminal size
|
|
24
|
+
- `autoPlay` - start on enter
|
|
25
|
+
- `loop` - loop playback
|
|
26
|
+
- `speed` - playback speed
|
|
27
|
+
- `fit` - `width`, `height`, `both`, `none`
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: slide
|
|
3
|
+
cols: '5-7'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## FancyArrow
|
|
7
|
+
|
|
8
|
+
::col1::
|
|
9
|
+
|
|
10
|
+
Hand-drawn arrows via [slidev-addon-fancy-arrow](https://github.com/whitphx/slidev-addon-fancy-arrow).
|
|
11
|
+
|
|
12
|
+
```md
|
|
13
|
+
<FancyArrow
|
|
14
|
+
from="[data-id=a]@right"
|
|
15
|
+
to="[data-id=b]@left"
|
|
16
|
+
color="var(--color-primary)"
|
|
17
|
+
:width="2" arc="0.3" />
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
::col2::
|
|
21
|
+
|
|
22
|
+
**Props:**
|
|
23
|
+
|
|
24
|
+
- `from/to` - selector `@` anchor
|
|
25
|
+
- `x1/y1/x2/y2` - absolute (px)
|
|
26
|
+
- `color` - arrow color
|
|
27
|
+
- `width` - line width (default: 2)
|
|
28
|
+
- `arc` - curvature
|
|
29
|
+
- `roughness` - hand-drawn feel
|
|
30
|
+
- `duration/delay` - animation (ms)
|
|
31
|
+
- `two-way` - bidirectional
|