A work of Noetic Garden — by millenomi.
This package is meant to contain SwiftUI and RealityKit containers for work on 2D and 3D UIs — things like 3D-aware containers, debug visualizers, or RealityKit integrations of those elements.
Currently, it hosts two modules. The UIElements module vends SwiftUI containers — the Concentric
container, which places all views at the center of its bounds, including depth; and the Envelopment
container — a SwiftUI container that lets you place views on each side of its bounds. It works in 3D in visionOS, and in 2D on all other Apple OSes. It also provides conveniences for working with vector values. The Marks module vends MarksView
— a way to mark geometric elements in space, as a building block to debug visualization UIs.
Here's the Envelopment
container in action:
You can try out the package by checking it out locally, and then running the sample code in the Examples directory.
To add this package to your project, use the following URL in Xcode, by picking File > Add Package Dependencies…
Or, add it to your package as a dependency as follows:
…
// Package.swift
let package = Package(
…
dependencies: [
…
.package(url: "https://github.com/noeticgarden/uielements.git", from: "0.1.0"),
],
…
targets: [
.target(…
dependencies: [
.product("UIElements", package: "uielements")
])
]
)
The contents of this module are licensed under the MIT license. See the LICENSE file for details.
Use GitHub to report issues or propose pull requests.
This package comes with no guarantee that any specific contribution will be included or visibly reviewed, but all issues and pull requests are at least considered. Also, please, be kind; these spaces will be actively moderated at the author's sole discretion.
This package will be marked source-stable when any Noetic Garden product ships that uses its types. Before then, expect the package to remain source-unstable, using a 0.x semantic version scheme. Care will be taken to not break clients, but changes may require rewriting existing code or pinning to a specific 0.x release until then.