@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.
Files changed (168) hide show
  1. package/CLAUDE.md +537 -0
  2. package/LICENSE +134 -0
  3. package/README.md +168 -0
  4. package/SKILL.md +414 -0
  5. package/components/AnimatedCounter.vue +35 -0
  6. package/components/Background.vue +204 -0
  7. package/components/Callout.vue +135 -0
  8. package/components/Card.vue +75 -0
  9. package/components/CardGrid.vue +67 -0
  10. package/components/CaseStudy.vue +66 -0
  11. package/components/CodeDiff.vue +229 -0
  12. package/components/CodeHighlight.vue +337 -0
  13. package/components/ColorSwatch.vue +114 -0
  14. package/components/Confetti.vue +292 -0
  15. package/components/Conversation.vue +405 -0
  16. package/components/Countdown.vue +476 -0
  17. package/components/Definition.vue +59 -0
  18. package/components/DeviceMockup.vue +392 -0
  19. package/components/Funnel.vue +87 -0
  20. package/components/Icon.vue +73 -0
  21. package/components/Iframe.vue +38 -0
  22. package/components/Image.vue +69 -0
  23. package/components/ImageCompare.vue +436 -0
  24. package/components/MatrixGrid.vue +85 -0
  25. package/components/MermaidChart.vue +299 -0
  26. package/components/Metric.vue +161 -0
  27. package/components/PersonCard.vue +165 -0
  28. package/components/PricingTable.vue +144 -0
  29. package/components/Progress.vue +100 -0
  30. package/components/Pyramid.vue +81 -0
  31. package/components/QRCode.vue +137 -0
  32. package/components/QuoteBlock.vue +101 -0
  33. package/components/SpeechBubble.vue +169 -0
  34. package/components/Stepper.vue +542 -0
  35. package/components/StyledList.vue +156 -0
  36. package/components/StyledText.vue +275 -0
  37. package/components/SwotGrid.vue +99 -0
  38. package/components/Tags.vue +20 -0
  39. package/components/Testimonial.vue +243 -0
  40. package/components/Typewriter.vue +181 -0
  41. package/components_base/AnimatedCounter.vue +208 -0
  42. package/components_base/CodeHighlight.vue +364 -0
  43. package/composables/useColors.ts +101 -0
  44. package/composables/useShiki.ts +81 -0
  45. package/example_content.md +371 -0
  46. package/example_dark.md +10 -0
  47. package/example_slides/001-cover.md +15 -0
  48. package/example_slides/002-agenda.md +25 -0
  49. package/example_slides/003-section-layouts.md +14 -0
  50. package/example_slides/004-fullscreen-centered.md +7 -0
  51. package/example_slides/005-fullscreen-align-bottom.md +14 -0
  52. package/example_slides/006-fullscreen-no-padding.md +14 -0
  53. package/example_slides/007-fullscreen-bg-image-dark.md +13 -0
  54. package/example_slides/008-fullscreen-bg-image-light.md +13 -0
  55. package/example_slides/009-fullscreen-bg-gradient.md +15 -0
  56. package/example_slides/010-fullscreen-bg-color.md +13 -0
  57. package/example_slides/011-split-basic.md +17 -0
  58. package/example_slides/012-split-image-text.md +18 -0
  59. package/example_slides/013-split-contrast.md +22 -0
  60. package/example_slides/014-columns-basic.md +13 -0
  61. package/example_slides/015-columns-two.md +26 -0
  62. package/example_slides/016-columns-ratios.md +22 -0
  63. package/example_slides/017-columns-three.md +31 -0
  64. package/example_slides/018-columns-four.md +22 -0
  65. package/example_slides/019-columns-alignment.md +23 -0
  66. package/example_slides/020-columns-styled.md +21 -0
  67. package/example_slides/021-footnote-prop.md +16 -0
  68. package/example_slides/022-iframe-fullscreen.md +8 -0
  69. package/example_slides/023-iframe-split.md +18 -0
  70. package/example_slides/024-section-components.md +14 -0
  71. package/example_slides/025-styled-text.md +9 -0
  72. package/example_slides/026-styled-text.md +15 -0
  73. package/example_slides/027-text-formatting.md +28 -0
  74. package/example_slides/028-text-spoiler.md +15 -0
  75. package/example_slides/029-icon-component.md +47 -0
  76. package/example_slides/030-metric-component.md +29 -0
  77. package/example_slides/031-person-card.md +33 -0
  78. package/example_slides/032-styled-list.md +50 -0
  79. package/example_slides/033-color-swatch.md +35 -0
  80. package/example_slides/034-code-highlight.md +9 -0
  81. package/example_slides/035-iframe-component.md +9 -0
  82. package/example_slides/036-callout.md +15 -0
  83. package/example_slides/037-card-grid.md +27 -0
  84. package/example_slides/038-stepper-variants.md +18 -0
  85. package/example_slides/039-stepper-clicks.md +49 -0
  86. package/example_slides/040-stepper-interactive.md +28 -0
  87. package/example_slides/041-tags-progress.md +21 -0
  88. package/example_slides/042-speech-bubble.md +30 -0
  89. package/example_slides/043-conversation.md +13 -0
  90. package/example_slides/044-device-iphone.md +26 -0
  91. package/example_slides/045-device-browser.md +7 -0
  92. package/example_slides/046-qrcode.md +26 -0
  93. package/example_slides/047-countdown.md +14 -0
  94. package/example_slides/048-typewriter.md +8 -0
  95. package/example_slides/049-confetti.md +16 -0
  96. package/example_slides/050-image-compare.md +13 -0
  97. package/example_slides/051-code-diff.md +24 -0
  98. package/example_slides/052-quote-block.md +8 -0
  99. package/example_slides/053-testimonial.md +26 -0
  100. package/example_slides/054-testimonial-featured.md +16 -0
  101. package/example_slides/055-funnel.md +12 -0
  102. package/example_slides/056-pyramid.md +13 -0
  103. package/example_slides/057-pricing-table.md +9 -0
  104. package/example_slides/058-swot-grid.md +12 -0
  105. package/example_slides/059-matrix-grid.md +12 -0
  106. package/example_slides/060-case-study.md +11 -0
  107. package/example_slides/061-definition.md +15 -0
  108. package/example_slides/062-mermaid-intro.md +34 -0
  109. package/example_slides/063-mermaid-flowchart.md +19 -0
  110. package/example_slides/064-mermaid-sequence.md +17 -0
  111. package/example_slides/065-mermaid-xy-chart.md +16 -0
  112. package/example_slides/066-mermaid-pie.md +17 -0
  113. package/example_slides/067-mermaid-class.md +19 -0
  114. package/example_slides/068-mermaid-state.md +19 -0
  115. package/example_slides/069-mermaid-er.md +22 -0
  116. package/example_slides/070-mermaid-gantt.md +24 -0
  117. package/example_slides/071-mermaid-timeline.md +17 -0
  118. package/example_slides/072-mermaid-mindmap.md +21 -0
  119. package/example_slides/073-mermaid-gitgraph.md +20 -0
  120. package/example_slides/074-mermaid-split.md +30 -0
  121. package/example_slides/075-mermaid-columns.md +32 -0
  122. package/example_slides/076-section-addons.md +14 -0
  123. package/example_slides/077-asciinema.md +27 -0
  124. package/example_slides/078-fancyarrow.md +31 -0
  125. package/example_slides/079-fancyarrow-demo.md +23 -0
  126. package/example_slides/080-section-theme.md +14 -0
  127. package/example_slides/081-color-architecture.md +22 -0
  128. package/example_slides/082-semantic-text-colors.md +25 -0
  129. package/example_slides/083-typography.md +16 -0
  130. package/example_slides/084-typography-rationale.md +22 -0
  131. package/example_slides/085-icons.md +24 -0
  132. package/example_slides/086-tables.md +14 -0
  133. package/example_slides/087-code-blocks.md +18 -0
  134. package/example_slides/088-motion-modes.md +35 -0
  135. package/example_slides/089-slide-transitions.md +31 -0
  136. package/example_slides/090-v-click-reveals.md +40 -0
  137. package/example_slides/091-accessibility.md +27 -0
  138. package/example_slides/092-safe-zone.md +17 -0
  139. package/example_slides/093-questions.md +8 -0
  140. package/example_white.md +10 -0
  141. package/fonts/IBMPlexMono-Medium.woff2 +1449 -0
  142. package/fonts/IBMPlexMono-Regular.woff2 +1449 -0
  143. package/fonts/IBMPlexSans-Bold.woff2 +1449 -0
  144. package/fonts/IBMPlexSans-Medium.woff2 +1449 -0
  145. package/fonts/IBMPlexSans-Regular.woff2 +1449 -0
  146. package/fonts/IBMPlexSans-SemiBold.woff2 +1449 -0
  147. package/fonts/LICENSE.txt +93 -0
  148. package/layouts/slide.vue +251 -0
  149. package/package.json +62 -0
  150. package/public/avatars/alice.png +0 -0
  151. package/public/avatars/bob.png +0 -0
  152. package/public/avatars/carol.png +0 -0
  153. package/scripts/chart-audit.mjs +216 -0
  154. package/scripts/contrast-audit.mjs +299 -0
  155. package/scripts/generate-palette.mjs +395 -0
  156. package/scripts/integrity-audit.mjs +357 -0
  157. package/scripts/shared/css-utils.mjs +216 -0
  158. package/scripts/shiki-audit.mjs +300 -0
  159. package/scripts/typography-audit.mjs +300 -0
  160. package/setup/main.ts +107 -0
  161. package/setup/mermaid.ts +237 -0
  162. package/setup/shiki.ts +40 -0
  163. package/snippets/demo.ts +26 -0
  164. package/styles/base.css +1053 -0
  165. package/styles/colors.css +422 -0
  166. package/styles/index.css +12 -0
  167. package/styles/motion.css +486 -0
  168. 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,14 @@
1
+ ---
2
+ layout: slide
3
+ cols: 2
4
+ ---
5
+
6
+ # Countdown
7
+
8
+ ::col1::
9
+ ### Timer
10
+ <Countdown :duration="120" showProgress />
11
+
12
+ ::col2::
13
+ ### Short Timer
14
+ <Countdown :duration="60" showProgress />
@@ -0,0 +1,8 @@
1
+ ---
2
+ layout: slide
3
+ mode: fullscreen
4
+ ---
5
+
6
+ # Typewriter Effect
7
+
8
+ ## <Typewriter :text="['Build beautiful slides', 'Ship with confidence', 'Present like a pro']" :speed="60" loop color="primary" />
@@ -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,13 @@
1
+ ---
2
+ layout: slide
3
+ ---
4
+
5
+ # ImageCompare Component
6
+
7
+ <ImageCompare
8
+ before="https://picsum.photos/seed/compare-a/800/400"
9
+ after="https://picsum.photos/seed/compare-b/800/400"
10
+ :target="100"
11
+ height="18rem"
12
+ :animDuration="1500"
13
+ />
@@ -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,8 @@
1
+ ---
2
+ layout: slide
3
+ mode: fullscreen
4
+ ---
5
+
6
+ <QuoteBlock author="Steve Jobs" source="Stanford Commencement, 2005">
7
+ Stay hungry. Stay foolish.
8
+ </QuoteBlock>
@@ -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,12 @@
1
+ ---
2
+ layout: slide
3
+ ---
4
+
5
+ # Funnel Component
6
+
7
+ <Funnel :stages="[
8
+ { label: 'Visitors', value: '100K' },
9
+ { label: 'Sign-ups', value: '25K' },
10
+ { label: 'Active', value: '8K' },
11
+ { label: 'Paying', value: '2K' }
12
+ ]" />
@@ -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,17 @@
1
+ ---
2
+ layout: slide
3
+ ---
4
+
5
+ ## Pie Chart
6
+
7
+ <MermaidChart type="pie" caption="Max 5 segments, short labels">
8
+
9
+ ```mermaid
10
+ pie
11
+ "TypeScript" : 45
12
+ "JavaScript" : 30
13
+ "Python" : 15
14
+ "Go" : 10
15
+ ```
16
+
17
+ </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,21 @@
1
+ ---
2
+ layout: slide
3
+ ---
4
+
5
+ ## Mindmap
6
+
7
+ <MermaidChart type="mindmap">
8
+
9
+ ```mermaid
10
+ mindmap
11
+ root((App))
12
+ UI
13
+ Vue
14
+ CSS
15
+ API
16
+ REST
17
+ Data
18
+ SQL
19
+ ```
20
+
21
+ </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,14 @@
1
+ ---
2
+ layout: slide
3
+ mode: fullscreen
4
+ transition: fade
5
+ ---
6
+
7
+ ::bg::
8
+ <Background :gradient="'subtle'" />
9
+
10
+ ::default::
11
+
12
+ # Addons
13
+
14
+ 3 bundled extensions
@@ -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