Skip to content

Changelog

curveo edited this page May 12, 2026 · 10 revisions

Changelog


v2.3

CSS Animations

  • transition property — smooth hover interpolation for background, border-color, opacity
  • @keyframes blocks — named keyframe animations with multi-stop support
  • animation property — apply keyframes with duration, easing, delay, iterations, alternate
  • TesseraEasing — cubic-Bézier easing engine (Newton-Raphson + bisection)
  • TesseraAnimationEngine — per-widget animation state via WeakHashMap
  • TesseraKeyframes, TesseraAnimatedValues, TesseraTransitionDef, TesseraAnimationDef — supporting data classes
  • CSS parser: fixed @keyframes block regex ([^{}]* instead of [^}]*) so rules after @keyframes blocks are not corrupted
  • Test screen: /tessera test-v23

v2.2

Form inputs

  • <select> / TesseraDropdown — dropdown selector with <option> children
  • <checkbox> / TesseraCheckbox — toggle checkbox
  • <slider> / TesseraSlider — continuous value slider
  • CSS :focus pseudo-state for inputs and textareas

v2.1

Localization

  • data-i18n attribute — replace element text with Minecraft translation key
  • {{ t:key }} syntax — inline translation in binding expressions
  • Ternary expressions with t: keys use : (spaced colon) as separator
  • TesseraI18n helper class

v2.0

Rich text and inline elements

  • TesseraRichLabel — mixed-style inline text rendering
  • <strong>, <b>, <em>, <i>, <span>, <a> — inline semantic tags inside <p>, <h*>, <li>
  • text-decoration: underline and strikethrough
  • <p> and <li> mixed-content detection

v1.9

Absolute positioning

  • position: absolute — remove element from normal flow
  • top, left, right, bottom offsets
  • All panels act as positioning contexts

v1.8

Drag and Drop

  • draggable="true" and drag-payload HTML attributes
  • TesseraPanel.draggable() / .dragPayload() Java API
  • TesseraDropZone interface — accepts(), onDrop(), dropBounds()
  • Drag ghost rendered by renderTesseraOverlays()
  • Drop zone hover highlight

v1.7

Item widgets

  • <item-slot> HTML tag and TesseraItemSlot Java class
  • Inventory picker overlay (TesseraInventoryPicker)
  • TesseraItemGrid — drag-and-drop item grid

v1.6

Tabs and virtual list

  • <tabs> / <tab> — tabbed panel container
  • TesseraTabPanel Java API
  • TesseraVirtualList — efficient scrolling list (renders visible rows only)

v1.5

Directives

  • v-for="item in list" — repeat element for each model list entry
  • v-if="expr" — conditional rendering (removes from layout)
  • v-show="expr" — conditional visibility (preserves layout space)

v1.4

Component system

  • <template name="..."> — define reusable components
  • <slot> / <slot name="..."> — named and default slot injection
  • TesseraComponentRegistry — global component store

v1.3

Media queries

  • @media (min-width: N) and @media (max-width: N)
  • Resolved against Minecraft's GUI-scaled viewport width
  • TesseraStyleSheet.forViewport(vw)

v1.2

Grid layout and CSS variables

  • <grid cols="N"> and grid-template-columns CSS property
  • :root { --var: value; } CSS custom properties
  • var(--name) usage in property values
  • calc() expressions for width and height
  • border-radius, opacity, z-index, order

v1.1

CSS foundation

  • Flexbox layout engine (flex-grow, flex-shrink, flex-basis, flex-wrap)
  • justify-content, align-items, align-self
  • margin, padding, gap, width, height, min/max-width/height
  • position: absolute, overflow: hidden
  • Pseudo-states: :hover, :active, :focus, :disabled
  • Class, tag, descendant, child, multi-selector CSS selectors
  • @keyframes (v2.3), transition (v2.3)

v1.0

Initial release

  • TesseraTemplateRenderer — HTML → widget tree pipeline
  • TesseraCssParser — CSS parser
  • TesseraPanel, TesseraLabel, TesseraButton, TesseraInput, TesseraTextArea
  • TesseraModel — flat key-value data binding with {{ }} expressions
  • TesseraScreen base class
  • TesseraTemplate — resource-location based template loading
  • TesseraHotReload — cache invalidation
  • TesseraPalette — copper-patina design system
  • Supported tags: <col>, <row>, <div>, <label>, <button>, <input>, <textarea>, <img>, <h1><h6>, <p>, <ul>, <li>, <hr>, <table>, <tr>, <td>, <th>, <thead>, <tbody>

Clone this wiki locally