Bolded items in the log are breaking changes. Starting with v17, typical end users do not depend on SDT, their UI libraries do, at those libraries' compile time only. So, "breaking changes" are not necessarily breaking to end users anymore.
As an end user, the only breaking chages you care about in this log are renamings or codec changes.
- New: Support for Touch events (Thanks, @felher!)
- Fix: fuchsia color spelling
- Build: Bump versions incl. Scala.js to 1.16.0
- New: Output alias links in generated docs
- New: Better doc link formatting in generator output
- New:
scroll-margin-top
CSS property - New:
currentcolor
keyword for color props - New:
anywhere
keyword foroverflow-wrap
CSS property - New:
crossorigin
attribute (Thanks, @cyz1901!) - New:
gap
andcolumn-gap
- Fix:
xmlns
SVG attribute should have no namespace (see Laminar#143) - New:
tabIndex
SVG attribute - New:
selectStart
andselectionChange
events - Build: Bump Scala 3 to 3.3.0 LTS, Scala.js, etc.
- M7 milestone release promoted to final with no changes
- API: Ability to customize key/name argument to builder methods
- Switch default arg name from
key
toname
. - You can override
keyImplNameArgName
onCanonicalGenerator
to change default.
- Switch default arg name from
- Naming:
htmlTag
->htmlRootTag
to avoid conflict with basedef htmlTag
implementation.
- Fix: Move
href
,src
, andformaction
from reflected attributes to regular attributes (#95) - Naming:
name
->nameAttr
- Build: Version increment helper for local development
Fix: Escape html tags in scaladoc (Thanks, @armanbilge!)
- New: Support Scala access modifiers for generated traits (Thanks, @armanbilge!)
- Fix: Wait for file write to flush before returning
- Fix: SVG xmlns attribute namespace
- API: Bring back color keywords that were removed in 17.0.0-M1.
- API: Return file object from
def writeToFile
(Thanks, @armanbilge!)
-
API: Complete refactor of the whole library to provide the types via code generation instead of via hardcoded traits. See the new README for details.
-
New:
isolation
andmixBlendMode
style props -
New:
dialogTag
HTML tag -
Tag naming:
html
->htmlTag
,time
->timeTag
, and many other tags now have a "Tag" suffix in their name by default.- Note that with the new code generation tools, you can undo / customize these changes for your library.
- Note: version 0.16.0 will NOT be released. This branch of development continues in 17.0.0-M1.
- API: Remove canonical implementations of various builders, as well as concreate types like Tag, Element, HtmlAttr, Modifier, etc.
- Moved them to test fixtures since there is essentially no benefit for otherwise incompatible UI libraries to share these exact types.
- Library authors: copy-paste any of the removed code that you need into your own project.
- API: Complete rework of CSS Styles
- Library authors: as a migration guide, see example diff from Laminar referenced in #75
- Naming:
content
style prop is renamed tocontentCss
to avoid using a common name - Naming:
cssWait
value for CSScursor
property renamed towaitCss
for consistency.- (
wait
is an unrelated final method on Java objects, so we can't use that name)
- (
- Build: Bump to Scala 3 version to 3.1.0 and scala-js-dom to 2.1.0
- New:
download
reflected attribute (thanks, @ioleo!) - New:
labelAttr
reflected attribute (foroptgroup
elements) - New:
VendorPrefixes
object with string constants
- New: Add
inputMode
reflected attribute (thanks, @Lasering!)
- Build: Upgrade scala-js-dom to 2.0.0 (thanks, @armanbilge!)
- Fix: Typo in attribute name:
feTurbulance
->feTurbulence
(thanks, @deterdw!)
- Build: Publish for Scala 3.0.0-RC3
- ETA May 2021: And Scala 3.0.0 now that it's released
- Misc: Add
svg
namespace to SvgNamespaces (not used)
- Build: Publish for Scala 3.0.0-RC2
- Fix: Specify correct namespace for
xmlns
SVG attribute
- Build: Use
mapSourceURI
option to point source maps to github (thanks, @ajablonski!).- This should make source maps usable, I think.
- New:
AsIsCodec.apply
convenience method
- Build: Support Scala 3.0.0-RC1, bump Scala.js requirement to 1.5.0
- API: CSS Styles now have a single
name
instead ofname
(camelCased) andcssName
(kebab-cased).- The new
name
is kebab-cased just likecssName
before it. - To migrate, first make sure you're not using the style's old
name
, then convert usages of the oldcssName
toname
, and adjust various style-related overriden methods and constructor calls to only accept onename
param. - As far as I can tell, the camelCased version of CSS property names is not actually used in native JS APIs, so you should have no use for the old
name
.
- The new
- Build: Downgrade to Scala.js 1.1.0 to work around this issue.
- Build: Temporarily drop Scala 3 (due to Scala.js downgrade)
- These changes will be undone in a future version. There is no reason to upgrade to 0.12.1 unless you are facing the same bug.
- API: Remove EventProp#domName
- Event names don't need lowercasing, which is what domName does. Event names are case sensitive, and this actually breaks custom Web Component events.
- New: Add SVG
<a>
element, andhref
&target
SVG attributes- Same as HTML
<a>
element, but for SVGs. - Breaking because this adds a type param to
trait SvgTags
- Same as HTML
- Build: Initial Scala 3.0.0-RC1-nightly support (thanks, @yurique!)
- New: CSS animation events (thanks, @nghuuphuoc!)
- Breaking change: added type param to
MiscellaneousEventProps.scala
- Breaking change: added type param to
- New: CSS transition events (thanks, @ajaychandran!)
- New: fullscreen events (thanks, @nghuuphuoc!)
- New:
loadingAttr
reflected attribute (for images) - Build: bump Scala and sbt versions
- New:
slot
reflected attribute (for Web Components)
- Build: this release is Scala.js 1.x only
- Build: Upgrade to scala-js-dom 1.0.0
- This version removes types that were previously deprecated
- Removed a couple type params from
GroupingTags
andTableTags
, see diff
- Naming:
id
->idAttr
,min
->minAttr
,max
->maxAttr
,step
->stepAttr
,offset
->offsetAttr
,result
->resultAttr
- Naming:
link
->linkTag
,param
->paramTag
,map
->mapTag
,object
->objectTag
- Build: Add Scala.js 1.0.0 support (thanks, @lolgab!)
- This is the last release that supports Scala.js 0.6.x
- Fix: svg attribute typo:
mak
->mask
(thanks, @weihsiu!)
- Build: Add Scala 2.13 Support (thanks, @zakpatterson!)
- Fix: flexWrap.wrapReverse CSS name (thanks, @fdietze!)
- New: Pointer Events, TypedTargetPointerEvent (thanks, @Busti!)
- Fix:
justifyContent.end
- New: Add
DOMContentLoaded
document event
- API:
AriaAttrs
now exposes attributes as members, withoutaria
object - API: Move
cls
,className
,rel
,role
, andstyleAttr
into newComplexHtmlKeys
andComplexSvgKeys
traits, allowing for more freedom to define these keys in non-standard ways. UseCanonicalComplexHtmlKeys
andCanonicalComplexSvgKeys
to retain v0.8.1 functionality - API: Remove
textContent
property. See discussion in #41 and #43 - API: Remove
classNames
reflected attribute. You can define it locally or use the newComplexHtmlKeys
functionality to get the desired API
- Fix:
span
,fontSizeAdjust
,listStyleImage.none
should belazy val
s, notdef
s
- New: Add
namespace
param toSvgAttr
- Naming:
xlink
->xlinkRole
to match native attribute name - Naming: Add
Html
to various traits that deal with HTML attributes
- Fix:
autocomplete
is now a string attribute (#33)
- API: Better separation of HTML/SVG tags and attributes
- Naming: el -> element in Modifier.apply
- Upgrade Scala.js and other build dependencies
- New: SVG Support (see README). Some type params now require types
T <: dom.html.Element
instead ofT <: dom.Element
. - API:
Element
no longer hastagName
andvoid
members, instead it now has onetag
member - Naming:
tagName
->name
inTag
- API: Make
Modifier.apply
non-abstract to prevent SAM sugar
Includes SVG contributions from @doofin. Thanks!
- API: Introduce
TypedTargetMouseEvent
andTypedTargetFocusEvent
- API: Change type params related to
TypedTargetEvent
in genericMouseEventProps
andFormEventProps
traits
- Build: Remove
-Xcheckinit
compiler option due to its runtime overhead
- New: Add missing
onMouseLeave
andonMouseEnter
event props
Thanks, @mariusmuja!
Summary: More precise event types, especially for input and form events
- Docs: Explain the difficulty of properly typing input events in README
- New: More specific types for
FormEventProps
, introduceTypedTargetEvent
- New: More specific event types:
DomFocusEvent
,DomDragEvent
,PageTransitionEvent
, etc. - New: aggregated eventProp traits like
GlobalEventProps
- API: Protect builder methods like
AttrBuilder.attr
- API: Make
Tag
a class, removeTag.build
method - Fix: A bunch of Error & Window events had incorrect JS string names ("onerror" vs "error")
- Naming: WindowEventProps -> WindowOnlyEventProps
- Build: add Travis CI badge, improve build.sbt
- Misc: Bring back
cls
andtpe
attribute aliases
Includes contributions from @cornerman. Thanks!
Summary: API and documentation improvements, support usage from Outwatch
- New: Add Changelog and Contribution guide
- New: Documentation and Design Goals sections in README, add detail to Scaladoc comments
- New: Introduce Reflected Attributes
- New: Introduce Codecs (replace BooleanAttr)
- New: Implement Canonical Builders
- New: Add CompileTest
- New: Allow all listings to be joined in one bundle
- New: Provide improved API for
value
,checked
,selected
attributes - Fix: Add, rename, reorganize & fix the types of many attributes / props / etc.
- Fix: Properly mark void tags
Summary: Genesis. Archaeological adventurers, see git commit messages.