All Packages

Package Summary
Package
Description
Animated values for widget properties: Transition eases one float toward a target, ColorTransition does the same for a Color, and Easing names the curve both follow.
The service-provider interface a native platform implements: Backend runs the event loop and creates NativeWindows.
The shipped backend: GLFW windows and input, an OpenGL 3.3 core renderer that batches the 2D canvas and hosts the 3D provider, OpenAL audio, and stb for font rasterization and image decoding.
Ready-to-use components (Label, Button, TextField, Checkbox/Switch, Dialog) and the light/dark Theme.
Charts: BarChart, LineChart and DonutChart, over a shared Chart that carries the data, the palette, the legend, the tooltip, the click callback and the animation.
The headless editing engine behind the text components: TextEditModel owns the buffer, the caret, the anchor-based selection, line movement with a sticky goal column and bounded undo/redo, stepping by grapheme cluster so combining marks and ZWJ emoji are never split.
The threading model and the async API on top of it: a single UI thread that every widget mutation is confined to, reached through Ui, with Ui.post(java.lang.Runnable) to cross onto it, Ui.async(java.util.function.Supplier<T>) for future-shaped work, and Ui.work(limn.concurrent.Work.Body<T>) for a cancellable Work that reports Progress and is held as a Job.
The kitchen-sink demo: one runnable program that exercises every widget and subsystem, with the screenshot and benchmark harnesses the project's visual verification runs through.
The generators behind the project website: the capture run that renders every gallery entry in both shipped palettes and writes the manifest the site builds its component pages from, the export that writes the palettes out as CSS custom properties, and the compiled samples the site quotes so that every snippet a reader copies is a program the build has compiled.
Backend-neutral 2D drawing: the immediate-mode Canvas every widget paints through, the values it takes (Color, Paint, Rect, Path2D) and the facades for what a drawing loads and measures: Images, Fonts, TextRulers and Icons rasterized from SVG or bitmaps.
Internationalization: a localizable string as a value (I18nString), the process-wide language it resolves against (I18n), and the translation sources it reads (StringBundle, PropertyBundle).
Toolkit key codes and modifier bits: Keys is what a key or mouse event carries and what an application binds a shortcut against, so no code above the backend names a windowing library's constants.
Single-precision linear algebra for 3D: immutable Vec2, Vec3, Vec4, Mat3, Mat4 (column-major, OpenGL convention) and Quat, the composed Transform3D, and the geometry a renderer asks about, namely Aabb, Frustum culling and Ray picking.
Render-to-texture 3D: Graphics3D is both the facade a caller uses inside a frame and the SPI the backend installs, and around it sit the neutral resources a scene is made of: MeshData and TextureData built on any thread, their uploaded twins GpuMesh and GpuTexture, Camera with its controllers, Material, Light, and the RenderPass draws are issued into.
glTF 2.0 loading: GltfLoader reads .gltf or binary .glb into a neutral GltfModel of meshes, materials and node transforms (no GPU and no third-party parser), so the reading and decoding can run on a worker (the loadAsync forms are cancellable and report progress) and the upload happens later, inside a frame.
A retained scene over the imperative pass: Scene3D traverses a Node tree of MeshNodes and LightNodes, composes world transforms, gathers the lights, frustum-culls and issues the same draws a caller could issue by hand.
A neutral, typed shader IR: a material's surface is a SurfaceOutputs built from Expr nodes, and a backend's code generator walks that DAG to emit its own shading language, so the toolkit ships no GLSL, and a new target means a new generator rather than new materials.
Widget tree, event dispatch (coalescing + bubbling), focus and the measure/layout pass.
The input events the scene dispatches: MouseEvent, KeyEvent, CharEvent for committed text, PreeditEvent for IME composition still in flight, and FileDropEvent.
Layout containers: Row and Column over the shared simplified flexbox Flex, with Expanded taking a weighted share of the leftover main-axis space; Stack overlays children, Padding wraps one child in edge insets, and SizedBox fixes a dimension or spaces rigidly.
Backend-neutral audio: an immutable PCM AudioClip (synthesized via AudioClip.tone(float, float, float) or decoded from WAV/OGG), played through the Sounds facade over the installed AudioEngine SPI.
A screen for authoring a Theme, so that an application's users can build a palette instead of choosing from the fifteen that ship.
Backend-neutral video: a pooled VideoFrame of planar YCbCr samples described by a PixelFormat layout and a VideoColor interpretation, produced by a VideoStreamSource that a VideoDecoder opened through the Videos facade, timed by VideoClock and shown by uploading it to a VideoSurface that the VideoSurfaces facade created, or, where no device conversion exists, turned into RGBA by YuvConverter.
Decoders, and the pooling every decoder needs.
H.264 and AAC out of MP4, through a trimmed FFmpeg behind a hand-written JNI shim.