Catalog npm
Back to packageRELEASE DETAILS

0.0.3

npm

98ts

Vanilla TypeScript components styled like Windows 98

98.csscomponentswindows98
Published8 Nov 2025
Direct dependencies16
Transitive dependenciesNot calculated

README

Current package documentation

98ts

A lightweight, vanilla TypeScript library for creating interactive 98.css components

Bring retro Windows 98 UI elements to life with TypeScript - fully class-based, framework-free, and ready to drop into modern projects like Vite or Webpack.


Features

  • Minimal, vanilla TypeScript classes for components like Button, Window, and Checkbox.
  • Easy DOM integration via .el property.
  • Fully typed with TypeScript for autocompletion and safety.
  • Framework-agnostic — works anywhere that uses modern JavaScript/TypeScript.
  • Designed to complement 98.css styling

Installation

npm install 98ts
# or
pnpm install 98ts

Make sure to also include 98.css in your project:

<link rel="stylesheet" href="https://unpkg.com/98.css">

Alternatively, you can grab 98.css from the releases page or npm.

npm install 98.css
# or
pnpm install 98.css

Usage

import { Button } from "98ts";

// Create a new button
const btn = new Button({
  label: "Click Me!",
  onClick: () => alert("Hello, retro world!"),
});

// Append it to the DOM
document.body.appendChild(btn.el);

Components

Coming soon


API Style

All components follow the same object-oriented style:

const component = new Component(props);
document.body.appendChild(component.el);
  • .el exposes the underlying DOM element
  • Fully compatible with modern bundlers like Vite, Rollup, and Webpack

License

MIT

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 16

Native requirements
16 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
mitt
Environment
{
  "local_name": "mitt",
  "alias": false,
  "peer_metadata": null
}
^3.0.1runtime
vite
Environment
{
  "local_name": "vite",
  "alias": false,
  "peer_metadata": null
}
^7.2.1development
shiki
Environment
{
  "local_name": "shiki",
  "alias": false,
  "peer_metadata": null
}
^3.15.0development
tslib
Environment
{
  "local_name": "tslib",
  "alias": false,
  "peer_metadata": null
}
^2.8.1development
98.css
Environment
{
  "local_name": "98.css",
  "alias": false,
  "peer_metadata": null
}
^0.1.21development
rollup
Environment
{
  "local_name": "rollup",
  "alias": false,
  "peer_metadata": null
}
^4.52.5development
postcss
Environment
{
  "local_name": "postcss",
  "alias": false,
  "peer_metadata": null
}
^8.5.6development
lefthook
Environment
{
  "local_name": "lefthook",
  "alias": false,
  "peer_metadata": null
}
^2.0.2development
typescript
Environment
{
  "local_name": "typescript",
  "alias": false,
  "peer_metadata": null
}
^5.9.3development
@types/node
Environment
{
  "local_name": "@types/node",
  "alias": false,
  "peer_metadata": null
}
^24.10.0development
@biomejs/biome
Environment
{
  "local_name": "@biomejs/biome",
  "alias": false,
  "peer_metadata": null
}
^2.3.4development
postcss-import
Environment
{
  "local_name": "postcss-import",
  "alias": false,
  "peer_metadata": null
}
^16.1.1development
@rollup/plugin-terser
Environment
{
  "local_name": "@rollup/plugin-terser",
  "alias": false,
  "peer_metadata": null
}
^0.4.4development
@types/postcss-import
Environment
{
  "local_name": "@types/postcss-import",
  "alias": false,
  "peer_metadata": null
}
^14.0.3development
rollup-plugin-postcss
Environment
{
  "local_name": "rollup-plugin-postcss",
  "alias": false,
  "peer_metadata": null
}
^4.0.2development
@rollup/plugin-typescript
Environment
{
  "local_name": "@rollup/plugin-typescript",
  "alias": false,
  "peer_metadata": null
}
^12.3.0development

Distribution files

1 collected
Distribution 1

Source distribution

Source file
Checksums from source
{
  "shasum": "e1012eca090784dd5d88d2c9adc48e2b6b6cd665",
  "tarball": "https://registry.npmjs.org/98ts/-/98ts-0.0.3.tgz",
  "fileCount": 84,
  "integrity": "sha512-fDx2bXjodl0Krg/YNMLvKX4MGKG28cQcOMWpvxMHBV+oS/kxU3t9fuaUYHgCd7qMedcs2iD71n8JVS3zCrJ6XA==",
  "signatures": [
    {
      "sig": "MEQCIBXNKdkAAFv1jYK0OB8gVERmmLZYdRamxG2P2IjWJTP5AiAtdu5VRI3JSNC0kr9lAv5utB1sM9JBOhVX1QdFLfxnaw==",
      "keyid": "SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"
    }
  ],
  "unpackedSize": 331615
}

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 21:33 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:fe917daa45cf78a9779d1fd976daa8f6aa7a5226611aba089ef20e0afadd7c40

Other collected versions

0.0.68 Nov0.0.58 Nov0.0.48 Nov0.0.28 Nov0.0.16 NovView all collected versions →