All notable changes to BareDOM will be documented in this file.
change-request event before applying user-initiated value changes. Call preventDefault() to block the update (enables controlled component patterns in framework adapters). Components: x-slider, x-text-area, x-select, x-combobox, x-currency-field, x-tabs, x-pagination.pointer-events: none) to document-level listeners.touch-action: manipulation and -webkit-tap-highlight-color: transparent to the internal button element (reset by all: unset).x-switch-change, x-form-field-input, select-change, press) instead of native DOM events.^js type hint to fix Closure Advanced compilation warning."input" to "form")..d.ts type declarations auto-generated from component model metadata. Per-component interfaces with typed properties, methods, and addEventListener overloads. Custom Elements Manifest (custom-elements.json) for IDE support.?baredom-debug URL param or window.BAREDOM_DEBUG = true. Shows dashed outlines, tag labels on hover, and a floating inspection panel with live attribute/property editing and structured console logging. Excluded from the production :lib build..d.ts files. Property names like max-items and event detail keys like press-x are now correctly output as camelCase (maxItems, pressX). Affected components: x-breadcrumbs, x-context-menu, x-pagination, x-particle-button.feGaussianBlur stdDeviation attribute receiving a CSS var() value instead of a number. SVG filter attributes don't support CSS custom properties.arrow, line, curve, none). Compound pattern with x-welcome-tour-step child elements for declarative step definitions. 8-placement positioning with automatic flip, smooth step transitions, focus trap, keyboard navigation, and full x-theme integration.accept attribute, size limits, and multi-file support.dist/integrity.json containing Subresource Integrity hashes for all ESM output files.matches-accept? now returns a boolean instead of nil for non-matching types.height:100% + overflow:hidden on body) with natural document scrolling using min-height:100dvh.portal boolean attribute that renders the panel in a document-level overlay layer, escaping CSS stacking contexts (sticky navbars with backdrop-filter, modals, etc.). Content nodes are moved (not cloned) to preserve event listeners and returned to the host on close.ensure-overlay-root!, make-layer!, remove-layer!).baredom.utils.overlay module (no behavior change).<option> children. Case-insensitive substring matching with highlighted results, keyboard navigation (Arrow Up/Down, Enter, Escape, Home, End), clear button, WAI-ARIA combobox pattern (role=combobox, aria-activedescendant, role=listbox/option).x-skeleton children to synchronize animation timing and generate common skeleton layouts from a preset attribute (card, list-item, paragraph, table-row, profile). Uses inherited --x-skeleton-delay CSS custom property for phase alignment.animation-delay: var(--x-skeleton-delay, 0s) to pulse and wave CSS rules (non-breaking; enables synchronization when used inside x-skeleton-group).<img> in shadow DOM with a skeleton shimmer placeholder, fade-in on load, optional ratio attribute to reserve space and prevent layout shift, a default or slotted error fallback, and enforced alt hygiene (decorative mode available). Attributes: src, alt, decorative, ratio, fit, position, loading. Events: x-image-load, x-image-error. Read-only properties: naturalWidth, naturalHeight, state.sm/md/lg/xl tokens or a numeric pixel value), theme-aware colour via currentColor inheritance or the color attribute (inherit/primary/secondary/tertiary/success/warning/danger/muted), and accessibility (decorative by default; label attribute flips on role="img" + aria-label). Consumers provide the <svg> in the default slot using fill="currentColor" / stroke="currentColor" for colour propagation.--x-navbar-radius defaults to 0 (was 1rem) and the full four-sided border has been replaced with a single 1px bottom separator. Variant overrides (subtle, inverted, transparent) updated to target border-bottom-color accordingly. The rounded card look remains reachable via style="--x-navbar-radius: 1rem" — no public API changes. Visual regression for consumers who relied on the previous default; the escape hatch is one line.border-bottom lines now connect cleanly across columns with uneven intrinsic content heights (e.g. a header cell with a sort button next to a plain label cell). Inner [part=cell] wrapper now fills the host's row-stretched height so the border sits at the row's bottom edge.<button>, <select>, <input type="text|number|...">, <input type="checkbox">, status pill, tag chip, and <hr> in the ~80 demo pages has been swapped to the matching library component (<x-button>, <x-select>, <x-form-field>, <x-switch> / <x-checkbox>, <x-badge>, <x-chip>, <x-divider>).<h2> and page title <h1> headings swapped to <x-typography variant="overline"|"h1">.demo/demo-theme.js re-dispatch select-change / x-switch-change / x-checkbox-change / x-form-field-input / x-form-field-change as native change / input events so existing demo handlers keep working.demo/demo-responsive.css carries shared sizing/layout overrides for the dogfooded controls so they match each demo's local visual rhythm.button[data-stack] selector silently skipping x-button, x-progress-circle slider max not syncing with the max field, theme-picker bar z-index covering overlay components, and a handful of demos with leftover style="" / class="" from their native-element days.baredom.utils.dom, baredom.utils.model) so components no longer reimplement attribute parsing, instance-field access, and security sanitiserspublic/index.html component gallery now consumes x-theme design tokensdisabled attribute now correctly suspends animation and interaction100dvh / 100%) applied where 100vh / 100vw were causing overflowregisterPreset() JS API for custom themes with partial preset mergingvar(--x-token, fallback) pattern — fully backwards compatible, components render identically without an <x-theme> wrapper--x-color-bg for backgroundsdemo-responsive.css re-maps demo variables to theme tokens when inside <x-theme>.color property returns null when no color attribute is set, allowing the CSS theme token to take effect (visual default unchanged)Six new components:
Six new components:
docs/javascript-guide.md) for npm/ESM setup, event handling, theming, and framework integrationNine new components:
Stable release — promoted from 1.0.0-rc.4 with no code changes.
Release candidate — all components audited and stable.
app to baredom to match published package nameInitial alpha release of BareDome — 54 native Web Components built with ClojureScript and compiled to zero-dependency ESM modules.
DOM = f(attributes, properties)@media (prefers-color-scheme: dark)@media (prefers-reduced-motion: reduce)Can you improve this documentation?Edit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |