SnowballSH Foundation UI

Prose

Pick a framework. Both use the same recipe, so the styling matches exactly.

Sample Document

Waves on a Lattice

When a disturbance travels through a discrete medium, its dispersion relation departs from the continuum limit. The angular frequency ๐œ” of a wave with wavenumber ๐‘˜ on a chain of coupled oscillators satisfies

๐œ”(๐‘˜)=2๐œ…๐‘š|sin(๐‘˜๐‘Ž2)|

which reduces to the linear relation ๐œ”โ‰ˆ๐‘๐‘˜ for small ๐‘˜๐‘Ž.

Parameters

SymbolMeaningUnit
๐œ…coupling stiffnessN/m
๐‘šoscillator masskg
๐‘Žlattice spacingm

The group velocity1 vanishes at the zone boundary ๐‘˜=๐œ‹๐‘Ž.

Numerical check

import math

def omega(k, kappa=1.0, m=1.0, a=1.0):
    return 2 * math.sqrt(kappa / m) * abs(math.sin(k * a / 2))

Phase portrait

Centered figures

Typst wraps block figures in centered containers.

def left_aligned():
    return True
A small figure (a centered figure with its caption)
  1. 1The velocity at which the envelope of a wave packet propagates.
Prose props for React
PropTypeDefaultDescription
htmlstringTrusted pre-rendered HTML, injected as-is. Never pass user input.

Also takes className and children. Anything else passes through to the div.

prose.demo.tsx
import fixture from "./fixtures/typst-sample.html?raw";
import { Prose } from "../react/index.js";

export default function ProseDemo() {
  return <Prose html={fixture} />;
}