You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+43-1Lines changed: 43 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,6 +6,49 @@ This is a pre-release version and APIs will change quickly. Before `1.0` release
6
6
7
7
Please note after `1.0` Semver will be followed using normal protocols.
8
8
9
+
# Version 0.17.0 - 09.19.2025
10
+
11
+
## Author's Notes
12
+
13
+
One of the largest steps to writing all the missing UI components necessary to ship SUI is solidifying key libraries like `transition` and `attach` which are used to handle the internal guts of the library. This release ships `attach` which uses `css anchors` to handle element positioning and is a big step towards that goal.
14
+
15
+
This took a bit longer than expected as the original draft of `attach` used css anchors for positioning exclusively with `position-area`. This is faster than doing it in javascript but has the monumental downside that fallback positions are not reported in any meaningful way that can be observed with javascript. This means if a fallback position is used by the browser the only way to determine which one is used is by observing the element itself and calculating the position. This made things like automatic `arrow` nearly impossible. The plugin was then rewritten using a hybrid approach `anchor` for the actual `top/left/bottom/right` values, but javascript for positioning. This gives us the best of both worlds and more control of how fallback positions are used.
16
+
17
+
## Major Features
18
+
***Attach** - Added new `attach` behavior that allows you to position elements relative to other elements using `css anchor` positioning.
19
+
20
+
## Breaking Changes
21
+
***Utils** - `deepExtend` now preserves non clonables by default. This is to prevent very common scenarios where extend is used with custom classes or dom elements where the original reference should be maintained. Note this still can be overwritten using `deepExtend(obj1, obj2, { preserveNonCloneable: false });`
22
+
***Query** - Renamed `containingParent` to `positioningParent` and added support for values that can cause `position: fixed` to be relative to different coordinate systems. `containingParent` is still available but will always return the `offsetParent` of an element. This is faster but MAY NOT always be the proper parent for positioning.
23
+
24
+
## CSS Tokens
25
+
***Feature** - Added colored borders like `--red-border`, `--blue-border` etc.
26
+
27
+
## Query
28
+
***Feature** - Added [`position()`](https://next.semantic-ui.com/api/query/dimensions#position) method that replaces `containerPosition()` with enhanced API supporting multiple coordinate systems (global, local, relative) and proper empty selection handling.
29
+
***Feature** - Added [`pagePosition()`](https://next.semantic-ui.com/api/query/dimensions#pageposition) method for getting/setting element position relative to the document.
30
+
***Feature** - Added [`dimensions()`](https://next.semantic-ui.com/api/query/dimensions#dimensions) method returning comprehensive dimension information including content, padding, border, margin, and scroll dimensions.
31
+
***Feature** - Added [`intersects()`](https://next.semantic-ui.com/api/query/dimensions#intersects) method for checking element intersection with configurable threshold, side detection, and detailed intersection data.
32
+
***Feature** - Added [`isInView()`](https://next.semantic-ui.com/api/query/visibility#isinview) method for detecting viewport intersection with optional threshold and fully visible options.
33
+
***Feature** - Added [`positioningParent()`](https://next.semantic-ui.com/api/query/visibility#positioningparent) method that correctly identifies positioning contexts for both absolute and fixed elements, including modern CSS properties like transform, filter, perspective, contain, and will-change.
34
+
***Feature** - Added [`show()`](https://next.semantic-ui.com/api/query/visibility#show) method for showing hidden elements with optional `calculate` parameter to determine natural display values.
35
+
***Feature** - Added [`hide()`](https://next.semantic-ui.com/api/query/visibility#hide) method for hiding elements by setting display to 'none'.
36
+
***Feature** - Added [`toggle()`](https://next.semantic-ui.com/api/query/visibility#toggle) method for toggling element visibility with optional `calculate` parameter.
37
+
***Feature** - Added [`removeData()`](https://next.semantic-ui.com/api/query/attributes#removedata) method for removing data attributes from elements. Supports space-separated strings or arrays for removing multiple attributes at once.
38
+
***Enhancement** - [`naturalDisplay()`](https://next.semantic-ui.com/api/query/dimensions#naturaldisplay) now accepts `calculate` parameter to control whether to analyze stylesheets (default: true) or use tag-based lookup only.
39
+
***Enhancement** - [`isVisible()`](https://next.semantic-ui.com/api/query/logical-operators#isvisible) now checks for `visibility: hidden` and `content-visibility: hidden` by default, with new `includeVisibility` parameter for control.
40
+
***Enhancement** - [`containingParent()`](https://next.semantic-ui.com/api/query/visibility#containingparent) now provides simple `offsetParent` wrapper functionality alongside the new `positioningParent()` method.
41
+
***Enhancement** - [`closest()`](https://next.semantic-ui.com/api/query/dom-traversal#closest) now supports passing DOM elements directly as the selector parameter, checking containment using the element's `contains()` method.
42
+
***Bug** - Fixed CSS nesting parsing in [`naturalDisplay()`](https://next.semantic-ui.com/api/query/dimensions#naturaldisplay) to properly resolve nested selectors with `&` parent references (e.g., `& .grid-container`).
43
+
***Bug** - Fixed [`position()`](https://next.semantic-ui.com/api/query/dimensions#position) method to return `undefined` for empty selections instead of empty array when used as getter.
44
+
***Bug** - Fixed issue where using non clonables as settings like query collections, or custom classes wouldn't work as expected. This was related to the default behavior of deepExtend and clone (see breaking changes).
45
+
***Bug** - Fixed bug in `is` where it would return true for non-existent selectors
46
+
47
+
## Utils
48
+
***Feature** - Clone now has a new setting `preserveDOM` which will not clone DOM nodes if present. This can be useful in scenarios where you want to clone an object with references to the live DOM you want to maintain
49
+
***Feature** - Added `log()` function for flexible logging with formatting, namespacing, timestamps, and JSON output support
50
+
***Feature** - Renamed `errors.js` module to `debug.js` to better reflect its logging and debugging capabilities
51
+
9
52
# Version 0.16.1-2 - 08.21.2025
10
53
11
54
## Core
@@ -18,7 +61,6 @@ Please note after `1.0` Semver will be followed using normal protocols.
18
61
## UI Changes
19
62
20
63
`semantic-ui/core` is now organized into three groups: [`primitives`](https://github.com/Semantic-Org/Semantic-Next/tree/main/src/primitives), [`components`](https://github.com/Semantic-Org/Semantic-Next/tree/main/src/components), and [`behaviors`](https://github.com/Semantic-Org/Semantic-Next/tree/main/src/behaviors)
21
-
22
64
***Primitives** include JSON specs and are essential building blocks like `modal` and `button`.
23
65
***Components** are built with primitives and have more complex functionality, for example, `global-search` or `theme-switcher`.
24
66
***Behaviors** do not export web components but provide behaviors like `transition` or `position`.
0 commit comments