Skip to content

Releases: eSolia/marquis

v0.3.4 — first automated release, smaller JSR bundle

Choose a tag to compare

@RickCogley RickCogley released this 29 Apr 08:38
74cda71

First release after the devkit-baseline merge. No public API changes — but the JSR install is now significantly smaller and ships through automated CI for the first time.

What's new

  • Smaller JSR bundle. The package now publishes only mod.ts, index.ts, ui/**, tokens/**, utils/**, assets/*.ts, README.md, and LICENSE — instead of the entire repository. Previously every install of @esolia/marquis was pulling assets/ (raw SVGs), docs/, docs-site/, and examples/ into your node_modules. Bundle size drops accordingly.
  • First automated release. This release is published via GitHub Actions (publish.yml) with provenance via OIDC. All future v* tag pushes will auto-publish.
  • Continuous security scanning now runs on every push and PR — Trivy filesystem scan, Gitleaks secret scan, Semgrep SAST, and Syft SBOM (vendored from eSolia/devkit's reusable workflow).

What this isn't

This release does not include the ui/icon-button.ts slow-types cleanup (13 symbols missing explicit type annotations). That's tracked separately and will land in a follow-up. --allow-slow-types is used in the publish workflow for now.

Install

# Deno
deno add jsr:@esolia/marquis

# Node.js / Bun
npx jsr add @esolia/marquis

See the README for usage.

v0.3.3 - toggle theme css

Choose a tag to compare

@RickCogley RickCogley released this 04 Dec 01:31
v0.3.3
0299243

New Features:

  • getToggleCSS(themeColor?) - CSS for server-side rendered toggles using hidden checkbox pattern
  • Supports dark mode and customizable theme color
  • Works with nested HTML structures via general sibling selectors

Documentation:

  • New "Server-Side Rendering" section in README
  • Table of all CSS functions (spinner, progress, skeleton, dropdown, toast, toggle)

Now library consumers can import getToggleCSS from Marquis instead of having the CSS inline.

Full Changelog: v0.3.2...v0.3.3

v0.3.2 Alert Alignment

Choose a tag to compare

@RickCogley RickCogley released this 04 Dec 00:23
v0.3.2
679aa0b

Changes:

  • Alert component: Changed items-start → items-center for proper vertical alignment

Full Changelog: v0.3.1...v0.3.2

v0.3.1 readme cleanup for v0.3.0 work

Choose a tag to compare

@RickCogley RickCogley released this 03 Dec 20:47
v0.3.1
10cefb6
  1. Version references updated - Changed all v0.2.1 references to v0.3.1:

    • deno.json version field
    • README.md installation examples (2 places)
    • docs/USAGE.md favicon URL example
  2. README.md updated with new components:

    • Added Progress, Toggle, Skeleton, Avatar, Toast to components table
    • Updated project structure to list all new component files

Full Changelog: v0.3.0...v0.3.1

v0.3.0 More Compos and Colors

Choose a tag to compare

@RickCogley RickCogley released this 03 Dec 20:41
a7d20c3

Highlights

This release brings comprehensive theming capabilities, dark mode support across all components, and 5 powerful new
UI components.

Theme System

  • 13 Primary Colors: blue, violet, indigo, teal, cyan, emerald, rose, amber, orange, sky, purple, fuchsia, pink
  • Brand Customization: All components accept themeColor prop to match your brand
  • Dark Mode: Universal darkMode prop (default: true) with automatic light/dark class generation

New Components

Component Description
Progress Linear & circular progress bars with indeterminate, striped, and animated variants
Toggle Switch component with labels, descriptions, and hidden form input support
Skeleton Loading placeholders for text, cards, avatars, and tables
Avatar User avatars with images, initials fallback, status indicators, and stacked groups
Toast Non-intrusive notifications with 6 positions, auto-dismiss, and action buttons

Enhanced Components

  • Button: Added loading state, xs/xl sizes, createIconOnlyButton()
  • Badge: New styles (subtle/solid/outline), removable, dot status indicators
  • Card: hoverable, interactive props, card sections (header/body/footer)
  • Alert: Full dark mode support with proper contrast
  • Tabs: Theme color support for underline, pills, and button variants
  • Spinner: Semantic variants (success/warning/error), theme color support

Documentation

  • Added CLAUDE-GUIDE.md for AI-assisted development integration

Full Changelog: v0.2.1...v0.3.0

v0.2.1 - spinner rotation fix

Choose a tag to compare

@RickCogley RickCogley released this 02 Dec 00:41
v0.2.1
feabd6d

Bug Fix

  • Spinner rotation now centered — Added transform-origin: center center and display: inline-block to all spinner animation
    classes to prevent off-center "spirograph" rotation when the icon element has irregular dimensions or positioning.

Installation

  // deno.json
  {
    "imports": {
      "@esolia/marquis": "https://raw.githubusercontent.com/esolia/marquis/v0.2.1/mod.ts"
    }
  }

Full Changelog: v0.2.0...v0.2.1

v0.2.0 - 5 new ui essentials: Alert, Dropdown, Header, Code, Spinner

Choose a tag to compare

@RickCogley RickCogley released this 01 Dec 21:07
v0.2.0
8bf115d

New Components

Component Description
Dropdown CSS-only dropdown menus that work with hover and focus-within — no JavaScript required for basic functionality
Alert Contextual feedback messages with info, success, warning, and error variants. Includes convenience functions like createSuccessAlert()
Header Complete application header with logo, navigation links, language switcher, and user dropdown menu
Code Inline code styling, code blocks, and keyboard shortcut ( <kbd> ) elements
Spinner Loading indicators with 5 sizes (xs to xl), 5 color variants, and 3 speed options

Bug Fixes

  • cn() utility no longer incorrectly merges font-mono and font-semibold as conflicting
  • cn() utility no longer incorrectly merges text-white and text-sm as conflicting
  • Stat card values now correctly use font-mono and text-3xl for better number display
  • Ring color tokens now include ring width base class
  • Border color tokens now include border base class

Documentation

  • Added kitchen sink example page (examples/kitchen-sink.html)
  • Added comprehensive usage examples for all new components
  • Regenerated API documentation

Installation

  // deno.json
  {
    "imports": {
      "@esolia/marquis": "https://raw.githubusercontent.com/esolia/marquis/v0.2.0/mod.ts"
    }
  }

Full Changelog: v0.1.5...v0.2.0

v0.1.5 Kitchen Sink Sample Page

Choose a tag to compare

@RickCogley RickCogley released this 30 Nov 06:38
a6744da

Added examples/kitchen-sink.html - a static page you can open directly in a browser to see all components:

  • Buttons - primary, secondary, ghost, outline, danger, success × sm/md/lg sizes + disabled state
  • Badges - default, success, warning, error, info, draft × sm/md/lg sizes
  • Cards - default, elevated, outline, ghost variants
  • Stat Cards - default, success (healthy), warning, error (critical) with font-mono numbers
  • Icon Buttons - default, info, warning, danger, success + action group example
  • Tabs - underline and pills styles with count badges
  • Table - with hoverable rows, badges, and icon button actions
  • Filter Bar - with and without background styling
  • Color Tokens - status colors and slate palette swatches

Full Changelog: v0.1.4...v0.1.5

v0.1.4

Choose a tag to compare

@RickCogley RickCogley released this 30 Nov 06:03
504516e

Marquis v0.1.4 Summary

Fix: cn() was stripping font-mono because it conflicted with font-semibold.

The font-mono class was already in getStatCardValueClasses() since v0.1.2, but cn() was treating all font-* classes as one group.
Now:

  • Font family: font-sans, font-serif, font-mono (conflict with each other)
  • Font weight: font-semibold, font-bold, etc. (conflict with each other)

font-mono font-semibold now both survive.

Full Changelog: v0.1.3...v0.1.4

v0.1.3 fix cn() conflict

Choose a tag to compare

@RickCogley RickCogley released this 30 Nov 05:56
2fa52e2

Fix: cn() utility conflict resolution (utils/cn.ts)

Problem: cn('text-white', 'text-sm') was returning only text-sm because both were grouped under text- conflicts.

Solution: Split the overly broad patterns into specific groups:

  • Text colors: text-white, text-slate-700, etc.
  • Text sizes: text-sm, text-lg, text-2xl, etc.
  • Border colors vs border width (same fix)
  • Ring colors vs ring width (same fix)

Now cn('bg-blue-600 text-white', 'text-sm') correctly returns bg-blue-600 text-white text-sm.

Full Changelog: v0.1.2...v0.1.3