-
Notifications
You must be signed in to change notification settings - Fork 0
Changelog
curveo edited this page May 12, 2026
·
10 revisions
Initial release — full feature set
-
v-if/v-showbare expressions —v-if="count > 0"évalue correctement. Les expressions nues sans{{ }}étaient toujours vraies. -
String comparison —
status == 'ready'fait une comparaison string. Les deux côtés étaient convertis endoubleet tout comparait à0 == 0. -
RHS model resolution —
a == bavec deux clés modèle compare les valeurs résolues. -
Quote-aware operator parsing — un opérateur dans un littéral quoté (
status == 'a > b') n'est plus interprété comme opérateur de comparaison. -
Clé absente — une clé absente du modèle vaut
"", pas0.missing == 0retournefalse. -
Commentaires CSS multilignes —
/* ... */sur plusieurs lignes correctement supprimés. -
rgba()alpha clamping — les valeurs hors[0, 1]sont clampées au lieu de wrapper. -
margin-top: autocascade — une règle plus spécifique peut réinitialiserautoen valeur px. - Transition memory leak — les transitions n'étaient jamais supprimées après leur fin.
-
Couleur transparente animable —
0x00000000est maintenant une valeur cible valide pour les animations. -
DragContext.render()safety — position et shader color restaurés viatry/finally. -
VirtualList.mouseScrolled()— scroll consommé uniquement si la liste a réellement bougé. -
Hot Reload double activation —
activate()ne spawne plus plusieurs threads watcher. -
Hot Reload path traversal — les
resourceIdcontenant../horsassets/lèvent uneSecurityException.
-
TesseraTemplateRenderer— HTML → widget tree pipeline -
TesseraCssParser— CSS parser with full selector support -
TesseraModel— flat key-value data binding with{{ }}expressions -
TesseraScreenbase class with automatic event wiring -
TesseraTemplate— resource-location based template loading -
TesseraHotReload— cache invalidation and disk-watch for development -
TesseraPalette— copper-patina design system
- Flexbox engine —
flex-grow,flex-shrink,flex-basis,flex-wrap -
justify-content,align-items,align-self,margin-top: auto -
gap,padding,margin,width,height,min/max-width/height - Grid layout —
<grid cols="N">andgrid-template-columns -
position: absolutewithtop,left,right,bottomoffsets -
overflow: hidden,box-sizing,z-index,order -
calc()expressions forwidthandheight
-
background,border,border-color,border-radius,opacity -
color,font-size,font-weight,text-align,text-decoration,white-space -
corner-dot-size,corner-dot-color - Pseudo-states:
:hover,:active,:focus,:disabled,:nth-child - CSS variables —
:root { --var: value; }andvar(--name) -
@media (min-width / max-width)queries
-
transition— smooth hover interpolation forbackground,border-color,color -
@keyframes— named animations withfrom,%,tostops -
animation—duration,easing,delay,iterations,alternate -
TesseraEasing— cubic-Bézier easing (Newton-Raphson + bisection) -
TesseraAnimationEngine— per-widget animation state viaWeakHashMap
-
TesseraPanel,TesseraLabel,TesseraButton -
TesseraInput,TesseraTextArea -
TesseraCheckbox,TesseraSlider,TesseraDropdown -
TesseraBadge,TesseraIcon -
TesseraTabPanel— tabbed container -
TesseraVirtualList— efficient scrolling list (visible rows only) -
TesseraItemSlot,TesseraItemGrid,TesseraInventoryPicker
<col>, <row>, <grid>, <div>, <section>, <article>, <main>, <nav>, <header>, <footer>,
<label>, <button>, <input>, <textarea>, <checkbox>, <slider>, <select>, <option>,
<h1>–<h6>, <p>, <span>, <strong>, <b>, <em>, <i>, <a>, <badge>,
<ul>, <ol>, <li>, <hr>, <tabs>, <tab>, <virtual-list>,
<table>, <thead>, <tbody>, <tfoot>, <tr>, <td>, <th>,
<img>, <icon>, <item-slot>
-
{{ expr }}— inline expressions with ternary, string concatenation,t:keytranslations -
v-for="item in list"— repeat element for each model entry -
v-if="expr"— conditional rendering -
v-show="expr"— conditional visibility (preserves layout space) -
data-i18n="key"— Minecraft i18n translation binding -
{{ t:key }}— inline translation syntax
-
<template name="...">— define reusable components -
<slot>/<slot name="...">— named and default slot injection -
TesseraComponentRegistry— global component store
-
draggable="true"anddrag-payloadHTML attributes -
TesseraDropZone—accepts(),onDrop(),dropBounds() - Drag ghost rendered by
renderTesseraOverlays()