v0.10.1: Tabler 1.0.0-beta20 → 1.4.0 alignment
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.csswould 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.htmlapps/tabler/templates/registration/tabler_auth_base.html(auth scaffold — was also on the old CDN)apps/preview/templates/preview/base_preview.html(was on1.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.htmlandtabler_auth_base.htmlrather than forking) get the upgrade for free ongit pull origin main. Re-runmake 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.mddocuments 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)