--- colorSchema: light layout: cover routerMode: hash title: Base Template theme: ./ neversink_string: "Neversink Example Deck" --- # Neversink A [Slidev](https://sli.dev) theme designed by **Todd Gureckis** _New York University_ --- layout: side-title color: amber align : rm-lm --- :: title :: # Slidev Neversink Theme :: content :: Neversink is theme for education and academic presentations. It is designed to be bright, flat, minimal, and easy to read. It is based on the default Slidev theme but with some additional features and color schemes that have reference in the [metropolis](https://github.com/matze/mtheme) Beamer theme among others. It is named for the [Neversink River](https://en.wikipedia.org/wiki/Neversink_River) for absolutely no discernable reason. --- layout: default --- # Why use it? - Neversink has several configurable ==layouts== that build upon the Slidev defaults and which make it easier to quickly throw together common slide layouts without having to write a lot of custom CSS/HTML. - It has a variety of ==color themes== to choose from that make your visual identity more coherent. - It also has some whimsical elements like movie-style scrolling credits, animated speech bubbles, and admonitions that make your presentations more memorable. - It strives to be well documented and easy to use! You can find the source code on [GitHub](http://github.com/gureckis/slidev-theme-neversink). --- layout: default --- # How to install The theme depends on Slidev. So you need to have that [installed first](https://sli.dev/guide/install). Then you can install the theme with npm: ```bash npm install slidev-theme-neversink ``` Then create a slidev markdown file (e.g., `slides.md`) and add the theme to the frontmatter of your first slide: ```md --- theme: neversink --- ``` Then you are basically ready to go! --- layout: default --- # Color schemes Let's start with colors. The project uses tailwind-like color schemes arranged in ==monochromatic pairs==. These boxes show the options and names: **B&W**:
black white dark light
**Light**:
slate-light gray-light zinc-light neutral-light stone-light red-light orange-light amber-light yellow-light
lime-light green-light emerald-light teal-light cyan-light sky-light blue-light indigo-light violet-light
purple-light pink-light rose-light fuchsia-light navy-light
**Regular**:
slate gray zinc neutral stone red orange amber yellow lime green emerald teal cyan
navy sky blue indigo violet purple pink rose fuchsia
--- layout: default --- # Color schemes In many parts of the theme you can use the color schemes to help choose matching colors for your slides. For example, we can make a slide with a sticky note using the `rose-light` color scheme, the `sky` color scheme, or the `amber-light` color scheme: Hello, I'm a **redish sticky note** using `rose-light`. Hello, I'm a **blueish sticky note** using `sky`. Hello, I'm a **yellowish sticky note** using `amber-light`. --- layout: side-title color: emerald-light align: rm-lm titlewidth: is-3 --- Don't worry if you don't understand all the details, yet we are still talking about **color schemes**. :: title :: # Color schemes :: content :: Or we can use the `emerald-light` scheme in a slide layout to set the overall color and style of a slide with a matching sticky note: ```md --- layout: side-title color: emerald-light align: rm-lm titlewidth: is-3 --- ``` --- layout: top-title color: amber align: l --- :: title :: # Layouts :: content :: The theme includes many layouts. Layouts set the overall structure of the page. For example, this slide is using the `top-title` layout with the `amber` color scheme. You can see the frontmatter for this slide below: ```md --- layout: top-title color: amber align: l --- ``` The previous slide used the `side-title` layout with the `emerald-light` color scheme. You can see the frontmatter for that slide below: ```md --- layout: side-title color: emerald-light align: rm-lm titlewidth: is-3 --- ``` --- layout: top-title-two-cols color: amber-light align: l-lt-lt --- :: title :: # Two things about layouts :: left :: There are two important parts of slides to know about. ## Frontmatter First is **frontmatter**, which are configuration options that appear at the start of each slide (see [Slidev docs](https://sli.dev/guide/syntax#frontmatter-layouts)). These configure things like alignment, color, and spacing: ```md --- layout: top-title color: sky align: l --- ``` :: right :: # Slots The other aspect is **slots**. Slots are a basic part of [Vue.js](https://vuejs.org/guide/components/slots.html). In Slidev slots can be marked using `:: slotname ::` and then filled in with content. For example, the `:: left ::` and `:: right ::` slots on this slide are filled with content. Slots effectively help you map parts of your slide to different parts of a layout. The most common case is to say which content appears in the left column and which appears in the right column. But different layouts can have different slots and different content. --- layout: top-title color: amber-light align: lt --- :: title :: # Available Layouts :: content :: The available layouts in **Neversink** currently are:
- `cover` - `intro` - `default` - `section` - `quote` - `full` - `credits`
- `two-cols-title` - `top-title` - `top-title-two-cols` - `side-title`
- `image-right` - `image-left` - `image` - `iframe-right` - `iframe-left` - `iframe` - `none` - `end` - `fact`
We will step through these one by one showing several examples and how to configure the frontmatter for each. --- layout: cover --- # This is the `cover` layout **Todd Gureckis** _New York University_ :: note ::
\* Optional `:: note ::` slot for mentioning ==notes== at the bottom.
--- layout: cover color: dark --- # This is the `cover` layout **Todd Gureckis** _New York University_ :: note ::
\* Here we set `color: dark` in the frontmatter.
--- layout: cover color: amber --- # This is the `cover` layout **Todd Gureckis** _New York University_ :: note ::
\* Here we set `color: amber` in the frontmatter.
--- layout: cover color: amber-light --- # This is the `cover` layout **Todd Gureckis** _New York University_ :: note ::
\* Here we set `color: amber-light` in the frontmatter. Notice how the color scheme brings along many of the elements on the page.
--- layout: cover color: pink --- ### This is the `cover` layout with a longer title for your talk you just use more `#`s **Todd Gureckis** _New York University_ :: note ::
\* Here we set `color: pink` in the frontmatter. Different choices convey a different vibe for the intro of your talk. There's lots of choices available.
--- layout: intro color: emerald-light --- # This is the `intro` layout **Todd Gureckis** _New York University_
This is like the cover slide but with a little less decoration. It also has a frontmatter option of `color: emerald-light`. --- layout: default --- # This is the `default` layout This is kind of the basic slide. The main content is interpreted as markdown and rendered in the center of the slide. Speaking of markdown, you can use markdown to make things **bold** or *italic* or even `code` like `this`. In **Neversink** you can also ==highlight things using the double equals signs like this== thanks to the `markdown-it-mark` plugin. Of course you can make bullet lists: - Hi - There Also there's a little helper class `ns-c-tight` you can add to make the bullet spacing a bit tighter:
- Hi - There - I need space
--- layout: default color: sky --- # The `default` layout The default layout also has an optional `color` option in the frontmatter. For example this is ```md --- layout: default color: sky --- ``` --- layout: default color: light --- # The `default` layout Things don't have to be so dramatic. For more conservative presentations you can use color schemes like `light`: ```md --- layout: default color: light --- ``` And of course you don't have to change the color scheme every slide! --- layout: section --- # The `section` layout This is a section slide. It can be use to make a noticable point or break between sections. --- layout: section color: navy --- # The `section` layout
It has a `hr` which is color matched to the color scheme. For example, this slide is using the `navy` color scheme and the line is white. --- layout: section color: indigo --- # The `section` layout
This is `color: indigo` and the line and font is a light indigo shade. --- layout: section color: navy ---
# The `section` layout
You can use HTML and inline CSS to modify the look and feel.
--- layout: quote color: sky-light quotesize: text-sm authorsize: text-sm author: "Todd Gureckis" --- "This is a quote slide. It has a frontmatter option of `quote` which is the text that appears in the quote box and `author` and options for the size of the text(`quotesize: text-2xl` and `authorsize: text-l`). I feel it is a little uninspired but might save you some time." --- layout: full title: Full Layout ---
This is `layout: full` which fills the whole screen for the most part. The grey box is just showing you the full addressable space. Full can be useful for arbitrary layouts such as on the next slide which uses the `v-drag` directive to position elements.
--- layout: full title: Full with Arbitrary Layout ---
Hello, I'm an **ice cream**! Hello, I'm **kawaii**. I'm v-dragged out and ==floating==.
Here's a list of somethings - Novelty bonuses - Cumulative prediction error - Learning progress - Surprise - Suspense - Information gain
Here's another list of things - Structured behaviors - Compositional - Communicable
--- layout: full title: Full Layout - 2 Col Fig --- This is an example of using unocss atomic classes to put two figures side by side.
**Figure show this**: this is a two column figure
--- layout: full title: Full Layout - 3 Col Fig --- This is an example of using unocss atomic classes to put three figures side by side.
**Figure show this**: this is a three column figure
--- layout: credits color: light ---
This is the `layout: credits` slide. It's a movie-like scrolling credits!
Cast
(In order of appearance)
Study 1
Person 1 as PhD student 
Person 2 as Co-PI 
Study 2
Person 3 as Postdoc 
Person 4 as Co-PI 
Experiments
Smile 🫠
Funding
National Science Foundation
National Institute of Health
Slides
Slidev
Unocss
Figma
Vuejs
Vite
Questions?
--- layout: credits color: navy speed: 4.0 loop: true ---
This one has `speed: 4.0` and `loop: true` in the front matter
Cast
(In order of appearance)
Study 1
Person 1 as PhD student 
Person 2 as Co-PI 
Study 2
Person 3 as Postdoc 
Person 4 as Co-PI 
Experiments
Smile 🫠
Funding
National Science Foundation
National Institute of Health
Slides
Slidev
Unocss
Figma
Vuejs
Vite
Questions?
--- layout: image-left image: /images/photo.png class: mycoolclass ---
# Image left This is the `layout: image-left` layout. --- layout: image-right image: /images/photo2.png slide_info: false class: mycoolclass --- # Image right This is the `layout: image-right` layout. --- layout: image image: /images/photo.png title: Image Layout --- --- layout: iframe-left title: iframe Left Layout # the web page source url: https://gureckislab.org # a custom class name to the content class: my-cool-content-on-the-right ---
# This is a website on the left This is useful for showing a website but loads live on the web so requires and internet connection. --- layout: iframe-right title: iframe Right Layout # the web page source url: https://gureckislab.org # a custom class name to the content class: my-cool-content-on-the-right slide_info: false --- # This is a website on the right This is useful for showing a website but loads live on the web so requires and internet connection. --- layout: iframe title: iframe Layout # the web page source url: https://gureckislab.org slide_info: false --- --- layout: two-cols-title columns: is-6 align: l-lt-lt title: Two Cols Title - Header (Info) --- :: title :: # `two-cols-title` :: left :: This is `layout: two-cols-title`. - There are three slots: `:: title ::`, `:: left ::`, and `:: right ::` along with the default which is implicit before any named slots. - It additionally provides three configuration options in the slide YAML front matter: `color`, `columns` and `align`. :: right :: - `color` is the color scheme. - `columns` is the relative spacing given to the left versus right column. The overall space is divided into 12 columns. Instructions like `is-5` will give 5 units to the left and 7 to the right. - The align parameter determines how the columns look. The notation is for example align: l-cm-cm. The first part is for the header, the second for the left column, the third part is for the right column. The first letter is (c for center, l for left, r for right), the second letter is vertical alignment (t for top, m for middle, b for bottom). Only c/l/r works for the header. --- layout: two-cols-title columns: is-2 align: l-lt-lt title: Two Cols Title - Header (is-2) --- :: title ::
:: left ::
:: right ::
--- layout: two-cols-title columns: is-4 align: l-lt-lt title: Two Cols Title - Header (is-4) --- :: title ::
:: left ::
:: right ::
--- layout: two-cols-title columns: is-6 align: l-lt-lt title: Two Cols Title - Header (is-6) --- :: title ::
:: left ::
:: right ::
--- layout: two-cols-title columns: is-8 align: l-lt-lt title: Two Cols Title - Header (is-8) --- :: title ::
:: left ::
:: right ::
--- layout: two-cols-title columns: is-10 align: l-lt-lt title: Two Cols Title - Header (is-10) --- :: title ::
:: left ::
:: right ::
--- layout: two-cols-title columns: is-10 align: l-lt-lt titlepos: b title: Two Cols Title - Footer (is-10) --- :: title ::
:: left ::
:: right ::
--- layout: two-cols-title columns: is-4 align: l-lt-lt titlepos: b title: Two Cols Title - no title (is-4) --- :: left ::
:: right ::
--- layout: side-title side: l color: violet titlewidth: is-4 align: rm-lm title: Side Title Layout (Another) --- :: title :: # `side-title` # :: content :: This is `layout: side-title` with `side: right` in the front matter. ```yaml side: left color: violet titlewidth: is-4 align: rm-lm ``` --- layout: side-title side: r color: pink-light titlewidth: is-6 align: lm-lb title: Side Title Layout (Another) --- :: title :: # `side-title` # :: content :: This is `layout: side-title` with `side: right` in the front matter. ```yaml side: right color: pink-light titlewidth: is-6 align: lm-lb ``` --- layout: top-title color: violet align: l title: Top Title (Another) --- :: title :: # `top-title`: A variation with different parameters :: content :: Todd has used this navy color on many projects in the past. This is a top title layout. I sort of like the `###` font style the best. ```yaml layout: top-title color: violet titlewidth: is-2 align: lm ``` --- layout: top-title-two-cols color: navy columns: is-6 align: l-lt-lt title: Top Title (Another) --- :: title :: ### `top-title-two-cols`: A variation with two columns :: left :: - This is the left column - This is a nice way to add color and distinction to a slide - Options are `columns` which is the size of the left column, `color` (default `light`), and `align` which is the alignment of the title and columns (e.g., `l-lt-lt`) :: right :: - This is the right column - This is a nice way to add color and distinction to a slide --- layout: default --- # Extras In addition to these custom layouts, the **Neversink** theme includes a few custom components that can be used in your slides. These include sticky notes, speech bubbles, cute icons, QR codes, and more. The next few slides walks through them:
- admonitions - sticky notes - speech bubbles - cute icons - QR codes
--- layout: two-cols-title columns: is-6 title: Admonitions dragPos: admon: Left,Top,Width,Height,Rotate "'admon'": 55,300,287,106 --- If you want to `v-drag` an admonition, you should set the width to a fixed value. :: title :: # Admonitions :: left :: - Admonitions are boxes that you can use to call out things. This is my admon message :: right :: This is note text This is important text This is a tip This is a tip This is warning text --- layout: two-cols-title columns: is-6 title: Bubbles --- Hello, I'm a **speech bubble**! I'm a longer speech bubble. I'm still going. :: title :: # Bubbles :: left :: - Bubbles are moveable elements that act as speech bubbles - They can be configured for where you want the arrow to point - The can be move around if you enable `v-drag` on the element :: right :: Hello, I'm a **speech bubble**! I'm a longer speech bubble. I'm still going. Hello, I'm a **speech bubble**! I'm a longer speech bubble. I'm still going. Hello, I'm a **speech bubble**! I'm a longer speech bubble. I'm still going. --- layout: default title: Sticky Notes --- Hello, I'm a **sticky note**. Hello, I'm also a **sticky note** but am blue sky title. Hello, I'm also a **sticky note** but I lack a title. # Sticky Notes - Sticky notes are moveable elements you can use for notes. - Syntax is ```js Hello, I'm a **sticky note**. ``` --- layout: default title: Kawaii 1 --- # Kawaii - Kawaii is a Japanese term that means cute


--- layout: default title: QR Codes --- # In-line QR Codes - Send people to a url with a easy to configure QR code ```vue ```
Result: --- layout: default title: Lines --- # Lines --- layout: side-title side: left color: violet titlewidth: is-4 align: rm-lt title: Code Example --- Slidev is great at code formatting! :: title :: # Code :: content :: Plain javascript: ```js console.log('Hello, World!') ``` Highlight lines 2 and 3: ```ts {2,3} function helloworld() { console.log('Hello, World!') console.log('Hello, World!') console.log('Hello, World!') } ``` Crazy clicking through ```ts {2,3|5|all} function helloworld() { console.log('Hello, World!') console.log('Hello, World!') console.log('Hello, World!') console.log('Hello, World!') console.log('Hello, World!') console.log('Hello, World!') } ``` --- layout: side-title side: left color: violet titlewidth: is-4 align: rm-lt title: Code Example --- :: title :: # Code More cool code stuff :: content :: Scrollable with clicks 🤯 ```ts {2|3|7|12}{maxHeight:'100px'} function helloworld() { console.log('Hello, World 1!') console.log('Hello, World 2!') console.log('Hello, World 3!') console.log('Hello, World 4!') console.log('Hello, World 5!') console.log('Hello, World 6!') console.log('Hello, World 7!') console.log('Hello, World 8!') console.log('Hello, World 9!') console.log('Hello, World 10!') console.log('Hello, World 11!') } ``` You can even edit the code in the browser ```ts {monaco} console.log('HelloWorld') ``` You can even run the code in the browser ```ts {monaco-run} {showOutputAt:'+1'} function distance(x: number, y: number) { return Math.sqrt(x ** 2 + y ** 2) } console.log(distance(3, 4)) ``` --- layout: side-title side: left color: lime titlewidth: is-4 align: rm-lt title: LaTeX Example --- :: title :: # LaTeX Equations Yeah it does this fine :: content :: Inline equations: $\sqrt{3x-1}+(1+x)^2$ Block rendering: $$ \begin{array}{c} \nabla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}{\partial t} & = \frac{4\pi}{c}\vec{\mathbf{j}} \nabla \cdot \vec{\mathbf{E}} & = 4 \pi \rho \\ \nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} & = \vec{\mathbf{0}} \\ \nabla \cdot \vec{\mathbf{B}} & = 0 \end{array} $$ Line highlighting with clicks! $$ {1|3|all} \begin{array}{c} \nabla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}{\partial t} & = \frac{4\pi}{c}\vec{\mathbf{j}} \nabla \cdot \vec{\mathbf{E}} & = 4 \pi \rho \\ \nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} & = \vec{\mathbf{0}} \\ \nabla \cdot \vec{\mathbf{B}} & = 0 \end{array} $$ --- layout: side-title side: left color: sky titlewidth: is-4 align: rm-cm title: Mermaid Example --- :: title :: # Mermaid Diagrams Everyone is talking about this :: content :: ```mermaid sequenceDiagram Alice->John: Hello John, how are you? Note over Alice,John: A typical interaction ``` --- layout: side-title side: left color: sky titlewidth: is-4 align: rm-cm title: Mermaid Example --- :: title :: # Mermaid Diagrams Everyone is talking about this :: content :: ```mermaid {theme: 'neutral', scale: 0.8} graph TD B[Text] --> C{Decision} C -->|One| D[Result 1] C -->|Two| E[Result 2] ``` A mermaid diagram with two circles side by side horizontally with an arrow pointing from the left circle to the right circle ```mermaid {theme: 'neutral', scale: 0.8} graph LR A([Circle 1]) --> B((Circle 2)) ```