-
Notifications
You must be signed in to change notification settings - Fork 0
Changelog
curveo edited this page May 12, 2026
·
10 revisions
CSS Animations
-
transitionproperty — smooth hover interpolation forbackground,border-color,opacity -
@keyframesblocks — named keyframe animations with multi-stop support -
animationproperty — apply keyframes withduration,easing,delay,iterations,alternate -
TesseraEasing— cubic-Bézier easing engine (Newton-Raphson + bisection) -
TesseraAnimationEngine— per-widget animation state viaWeakHashMap -
TesseraKeyframes,TesseraAnimatedValues,TesseraTransitionDef,TesseraAnimationDef— supporting data classes - CSS parser: fixed
@keyframesblock regex ([^{}]*instead of[^}]*) so rules after@keyframesblocks are not corrupted - Test screen:
/tessera test-v23
Form inputs
-
<select>/TesseraDropdown— dropdown selector with<option>children -
<checkbox>/TesseraCheckbox— toggle checkbox -
<slider>/TesseraSlider— continuous value slider - CSS
:focuspseudo-state for inputs and textareas
Localization
-
data-i18nattribute — 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 -
TesseraI18nhelper class
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: underlineandstrikethrough -
<p>and<li>mixed-content detection
Absolute positioning
-
position: absolute— remove element from normal flow -
top,left,right,bottomoffsets - All panels act as positioning contexts
Drag and Drop
-
draggable="true"anddrag-payloadHTML attributes -
TesseraPanel.draggable()/.dragPayload()Java API -
TesseraDropZoneinterface —accepts(),onDrop(),dropBounds() - Drag ghost rendered by
renderTesseraOverlays() - Drop zone hover highlight
Item widgets
-
<item-slot>HTML tag andTesseraItemSlotJava class - Inventory picker overlay (
TesseraInventoryPicker) -
TesseraItemGrid— drag-and-drop item grid
Tabs and virtual list
-
<tabs>/<tab>— tabbed panel container -
TesseraTabPanelJava API -
TesseraVirtualList— efficient scrolling list (renders visible rows only)
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)
Component system
-
<template name="...">— define reusable components -
<slot>/<slot name="...">— named and default slot injection -
TesseraComponentRegistry— global component store
Media queries
-
@media (min-width: N)and@media (max-width: N) - Resolved against Minecraft's GUI-scaled viewport width
TesseraStyleSheet.forViewport(vw)
Grid layout and CSS variables
-
<grid cols="N">andgrid-template-columnsCSS property -
:root { --var: value; }CSS custom properties -
var(--name)usage in property values -
calc()expressions forwidthandheight -
border-radius,opacity,z-index,order
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)
Initial release
-
TesseraTemplateRenderer— HTML → widget tree pipeline -
TesseraCssParser— CSS parser -
TesseraPanel,TesseraLabel,TesseraButton,TesseraInput,TesseraTextArea -
TesseraModel— flat key-value data binding with{{ }}expressions -
TesseraScreenbase 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>