Skip to content

v0.10.1: Tabler 1.0.0-beta20 → 1.4.0 alignment

Choose a tag to compare

@emichaud emichaud released this 20 Jun 11:20

Patch release — brings the bundled Tabler version in line with preview.tabler.io. No feature changes; the chrome just renders the way it's supposed to.

Why

The project was pinned at @tabler/core@1.0.0-beta20 — a year-old beta — and the rendering drifted from preview.tabler.io (which ships 1.4.0). Symptoms:

  • Subtle shadow / border-color mismatches on dropdowns, popovers, focus rings
  • Accent color changes left fragments of the previous accent behind in places that only tabler-themes.min.css would catch
  • Glyph differences (italic g, numerals) because Inter was loaded from Google Fonts (static weights 300–700) instead of the rsms.me variable build Tabler was designed against

What changed

Three template touchpoints, each getting the same four edits:

  • apps/tabler/templates/tabler/base.html
  • apps/tabler/templates/registration/tabler_auth_base.html (auth scaffold — was also on the old CDN)
  • apps/preview/templates/preview/base_preview.html (was on 1.2.0, a different mid-version drift point — also aligned to 1.4.0)

Each one now loads:

<!-- Inter (variable font, matches preview.tabler.io exactly) -->
<link rel="preconnect" href="https://rsms.me">
<link rel="stylesheet" href="https://rsms.me/inter/inter.css">

<!-- Tabler core -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@tabler/core@1.4.0/dist/css/tabler.min.css">
<!-- Tabler color-palette + theme variations (required for accent-color switching to fully cascade) -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@tabler/core@1.4.0/dist/css/tabler-themes.min.css">

<script src="https://cdn.jsdelivr.net/npm/@tabler/core@1.4.0/dist/js/tabler.min.js"></script>

Plus a mechanical CSS edit: 55 .theme-dark selectors in apps/tabler/static/tabler/css/tabler_overrides.css paired with [data-bs-theme="dark"] for forward compat with Tabler 1.4 (which targets the [data-bs-theme] attribute on <html>). Body class still applied by our blocking theme script, so both selectors stay valid; the paired form just keeps us cascade-clean on either signal. body:not(.theme-dark) light-mode selectors left untouched.

Theme-JS vocabulary (data-bs-theme-base|font|radius values) verified against Tabler 1.4 — all match. Our custom comic font value is owned by tabler_overrides.css and not in conflict with 1.4.

Downstream impact

  • Most downstream projects (those that extend our tabler/base.html and tabler_auth_base.html rather than forking) get the upgrade for free on git pull origin main. Re-run make test + visual smoke and you're done.
  • Downstream projects with a forked base.html or tabler_auth_base.html need to re-apply the four URL changes manually. The new "Upgrade history" section at the bottom of docs/skills/tabler/troubleshooting.md documents exactly what to change.
  • The 20+ Tabler skill files under docs/skills/tabler/ (the canonical vibe-coding reference) were updated in lockstep — they no longer point at the old CDN.

Stats

  • 749 tests passing, 26 starter_content deselected (intentional), 74% coverage
  • Django check clean
  • All 4 new CDN URLs return 200 (verified pre-push)
  • Visual smoke clean on /, /accounts/login/, /smallstack/explorer/, /smallstack/api/health/, /smallstack/mcp/health/

Upgrade

git pull origin main
# No migrations needed. uv sync --all-extras if you want the dev extras.

Reference

Full upgrade spec lives at ai_cowork/tabler-1.4-upgrade-spec.md.

🤖 Co-Authored-By: Claude Opus 4.7 (1M context)