npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

taleem-slides

v1.0.2

Published

Convert Taleem schema into HTML slides

Readme

📦 taleem-slides

Render slide JSON → HTML (nothing more, nothing less)

taleem-slides is a small, focused rendering library.
It takes validated slide JSON and returns HTML strings using fixed, opinionated layouts.

No player.
No timing.
No DOM.
Just HTML.

Assumes slide JSON is already validated by upstream tools.


🌐 Live Reference (Authoritative)

👉 https://bilza2023.github.io/taleem

This site is the source of truth for:

  • supported slide types
  • exact visual layouts
  • real rendered output
  • examples and behavior

If something here and the site disagree, the site wins.


✅ What taleem-slides DOES

  • Converts slide JSON into HTML
  • Implements fixed slide layouts
  • Applies minimal state-based CSS classes
  • Works in browser, player, SSR, or Node

❌ What taleem-slides DOES NOT do

taleem-slides does not:

  • manage time or animations
  • navigate slides
  • validate decks or schemas
  • apply CSS
  • touch the DOM
  • control presentation flow

Those responsibilities live outside this library.


🧠 Mental Model


slide JSON
↓
taleem-slides
↓
HTML string

That’s it.

How the HTML is:

  • shown
  • styled
  • animated
  • timed

…is your responsibility.


📦 Installation

npm install taleem-slides

🚀 Basic Usage

1️⃣ Get a slide renderer

import { getSlideTemplate } from "taleem-slides";

const Slide = getSlideTemplate("bulletList");

2️⃣ Load slide JSON

const slide = Slide.fromJSON({
  type: "bulletList",
  data: [
    { name: "bullet", content: "First point" },
    { name: "bullet", content: "Second point" }
  ]
});

fromJSON():

  • reads structure
  • prepares render logic
  • does not touch the DOM

3️⃣ Render HTML

const html = slide.render({
  visibleCount: 1,
  activeIndex: 0
});

You decide what to do with the HTML.


🎛 Render State (Minimal)

Render state is a plain object. Only pass what you need.

{
  visibleCount?: number
  activeIndex?: number
}

Each slide reads only the fields it cares about.


🎨 CSS Contract (Very Small)

Slides may emit state classes and slide-specific structural classes only.

State classes:

.is-active
.is-dim
.is-hidden

All layout, color, animation, and transitions are external.


🧩 Supported Slides

See the live reference for visuals and examples:

👉 https://bilza2023.github.io/taleem

Categories include:

  • titles and text
  • bullet lists and columns
  • images and image+text layouts
  • tables and charts
  • quotes, stats, and numbers
  • equation slides (experimental)

⚠️ Note on equation (eq) slides

The eq slide type is experimental.

In v1 it is intentionally limited to:

  • time-based line reveal
  • a single active (highlighted) line
  • optional side-panel annotations (spItems)
  • deterministic windowing (older lines drop off)

It does not include:

  • math rendering (KaTeX / MathJax)
  • semantic math/text interpretation
  • scrolling or centering behavior

The eq slide exists to validate the renderer contract, not as a finished math presentation system.


Layouts are fixed by design. New layouts = new slide templates.


🧪 Guarantees

  • Deterministic output
  • No hidden state
  • No configuration knobs
  • Same input → same HTML

Safe to cache. Safe to reuse.


📍 Where it fits

taleem-slides can be used:

  • directly in browsers
  • inside presentation players
  • in SSR pipelines
  • in static generators
  • in educational tools

It is intentionally small so it can sit anywhere.


🔒 Design Principle

Render HTML only. Never control presentation logic.