- CSS 45.5%
- Vue 26%
- TypeScript 18.2%
- JavaScript 6.4%
- TeX 3.9%
| components | ||
| public | ||
| setup | ||
| shims | ||
| .gitignore | ||
| CLAUDE.md | ||
| example.md | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| style.css | ||
| uno.config.ts | ||
| vite.config.ts | ||
@bonhamlab/slidev-template
Bonham Lab branding as a reusable Slidev addon: fonts, colors/type-scale
CSS vars + matching UnoCSS tokens, code-block theme, <LabLogo> and <ProseCite>
components, the FooterBar component, and the slidev-addon-citations Vite workaround —
shared across every lab talk deck instead of copy-pasted into each one.
Install
Not published to npm — installed as a git dependency:
"dependencies": {
"@bonhamlab/slidev-template": "git+ssh://git@code.bonhamlab.bio:443/Templates/slidev-addon-bonhamlab.git#v0.1.0"
}
Then in your deck's frontmatter:
addons:
- "@bonhamlab/slidev-template"
What this does NOT provide
Fonts and favicon are not bundled. Slidev's addon/theme static-copy mechanism does not
reliably flatten an addon's public/ folder into a predictable URL (verified empirically —
see this package's CLAUDE.md), so every consuming deck must keep its own copy of:
public/fonts/*.woff2(15 IBM Plex Sans/Serif/Mono files)public/favicon.png
Copy these from this package's own public/ folder (or from an existing talk repo) into
your deck's public/. style.css in this package references them at root-relative paths
(/fonts/..., matching where your own public/fonts/ gets served).
What you still need per-talk
-
slides.md(your actual content) -
footer-info.ts(presenter/date/venue) + a thinglobal-bottom.vuewrapper:<script setup lang="ts"> import { footerInfo } from './footer-info' </script> <template> <FooterBar :footer-info="footerInfo" /> </template> -
public/fonts/,public/favicon.png(see above) -
public/biblio/<yourfile>.bib+ abiblio:config block in your deck's frontmatter
Development
npm install
npm run dev # runs example.md
npm run build
example.md is this package's own demo deck — also useful as a smoke test after changing
anything here, since addon .vue/.ts files aren't compiled ahead of time (Slidev compiles
them from source, same as slidev-addon-citations).
Versioning
Tag a new version (git tag vX.Y.Z && git push --tags) after any branding change, then bump
the git ref in each consuming deck's package.json and reinstall.