Release Notes

[1.3.4]

New Features

  • Global UIView Registry: UIViews automatically register/unregister to a global registry, enabling system-wide operations on all views.
  • Global USS Class Management: Added AddClassToAllUIViews() and RemoveClassFromAllUIViews() to LunaUIManager. Classes are automatically applied to existing and future UIViews.
  • LocalizationViewStyleSwitcher: New component that applies locale-specific USS classes (e.g., locale-en, locale-ja) to all UIView roots at runtime. Works around Unity's limitation of not being able to change global USS variables at runtime.
  • UIView IDisposable: UIView now implements IDisposable for explicit cleanup.

Samples

  • Localization Demo:
    • Added AutoSizeText example demonstrating how auto-sizing text works with localization. The example shows how text automatically adjusts font size when changing locales, ensuring text remains readable across different languages.
    • LocalizationViewStyleSwitcher example implemented for Japanese locale only—switching to Japanese changes the font using locale-specific USS classes. You can extend this pattern to other locales as needed.

Fixes

  • SceneLoaderAddressable: Fixed Scene Loading Issues in Unity Editor. Scene loading could fail when stopping and restarting play mode in the Unity Editor due to stale Addressables handles. Added error handling and recovery logic in SceneLoaderAddressable. Scenes now load correctly when iterating in play mode. Editor warnings may still appear but are handled automatically.
  • Text Effects: Fixed OneTime animation parsing and behavior. The parser now correctly maps "onetime" to OneTime instead of PingPong. Movement effects now animate forward then return to neutral position and stay there. Refactored duplicate code with shared helper methods.

[1.3.3]

New Feature: Text Effects

https://www.docs.cupkek.games/luna/features/texteffects

Leveraging Unity 6.3's new TextElement.PostProcessTextVertices API to enable rich text animations directly on glyph vertices. This system supports 12 customizable text effects via rich text tags:

  • Motion Effects: Pendulum, Dangle, Bounce, Slide, Swing, Wave
  • Visual Effects: Fade, Rainbow, Rotate, Shake, Wiggle
  • Size Effects: Increase Size

All effects support customizable parameters (speed, amplitude, intensity, etc.) through rich text tag attributes.

Visual Novel Controller: Added new VertexReveal text animation mode for smooth character-by-character reveal using vertex manipulation. TextEffectComponent: New component to easily apply text effects without dialogue controller.

Demos

  • Components/TextEffects: New demo showcasing each text effect
  • Ink/TextEffects: New demo showcasing text effects in visual novel dialogues

Other New Features

  • List and Scroll Views: Added ghost styling with reduced scroller opacity for a more subtle, transparent appearance.
  • Speech Bubble: Added World Space positioning example in Ink Sample scenes.
  • ElementSelector: Serializable element selector

Fixes

  • Settings Menu Input Rebind: Fixed compatibility with updated InputDeviceManager API and improved user experience.

[1.3.2]

New Features

  • Button: Added "shade" style class. Similar to ghost but with a semi-transparent black background that is always visible, not just on hover.
  • Button: Added "outline" style class. Gives the button a border in the color of the button's color class.
  • ListViewWrapper: New utility class that provides keyboard navigation functionality for Unity's ListView component. Prevents individual list items from receiving focus and handles Up/Down/Next/Previous navigation between items, making keyboard navigation feel natural. See documentation: https://www.docs.cupkek.games/luna/utility/listviewwrapper

Fixes

  • Luna.TabView: Fix "No player input found" spamming in editor.
  • SceneLoaderAddressable: Cleanup OnDestroy so you don't get "Attempting to load AssetReference Scene that has already been loaded." error in editor.

[1.3.1]

New Features

  • PaginationController: Made VisualElements public so you can customize further.
  • KeyValueDatabase: Rewrote custom editor drawers to fix visual issues.

Samples

  • Library Editor: Added InventoryItemReferenceDrawer.txt, a sample PropertyDrawer for InventoryItemReference. It displays the int ItemType field as a custom ItemType enum dropdown in the Inspector. Provided as a .txt file to avoid conflicts if you add a custom drawer to your project.

[1.3.0] Major Update

World Space Support for 6.2

  • Tooltip: Position calculation now works correctly in world-space UI. A new demo scene has been added to the Components sample.
  • Drag & Drop: Position calculation now works correctly in world-space UI. A new demo scene has been added to the Components sample.

Shader Demos for Unity 6.3

  • RPGDemo: Added a new RPGDemo to the Components sample. This demo showcases diablo health and mana orb, skill slots with cooldown wipe and tooltip. A showcase video is available on the store page.
  • Shader Effects Demo: Demo scene showcasing shader effects. Shiny visual effect. More effects will be added over time.

New Features

  • ProgressBar: Visuals are now fully customizable. In the new RPGDemo, the progress bar uses shaders entirely instead of visual elements while still taking advantage of features such as indicator.
  • Default Tooltip: Added a new visual element slot named AbsoluteBackground. TooltipContainerSetup has new paramater for absoluteBackground. This is also used in RPGDemo for custom tooltip background.
  • Pie Chart: Calculates the center of each segment, allowing you to position custom elements such as labels. The Pie Chart demo in the Components sample has been updated.
  • UITKCoordinateUtility: new static class that has a bunch of utility functions.

[1.2.3]

New Features

  • New Sample "GameFull": This sample combines GameStandart with Localization and Newtonsoft samples. Adding localization and working save load system.
  • Improved Main Menu in Game Samples.
  • SpeechBubble Tail: Added optional tails that can be positioned on any corner.

New Documentation

Fixes

  • USS Cursor: fix uss cursor styling error.
  • AddressabeAssetManager: Also release the AssetReference's internal operation to prevent "already loaded" errors in DestroyAllThenRelease function.

[1.2.2]

New Features

New Demo Scene

  • New local multiplayer demo added to components sample in InputPrompt folder.

Refactors:

  • LunaUIManager.GetInputAction("Move") is now InputDeviceManager.PlayerInputs[0].actions["Move"];
  • InputDeviceManager.PlayerInput.actions["Move"]; is now ``InputDeviceManager.PlayerInputs[0].actions["Move"];`

Fixes

ProgressBar

  • Refactor: Remove redundant background color variable from ProgressBar color styles so applying a uss class (e.g. primary, red, blue, etc.) doesn't affect the background.

TabView

  • Fix: Tab label binding not working when using Luna.Tab.
  • Added: Rebuild function to use when binding is not enough or possible.

Library Sample

Scene Transitions With Input

  • Refactor: Input actions settings moved to LunaUIManager. Change input action map management strategy from "disable specific maps" to "enable only specified maps, disable all others".

[1.2.1]

New Features

ProgressBar

  • Added bool IndicatorAutoColor attribute. Useful when you don't want indicator color to update automatically, for example when using SetFilling function to show a change.

Fixes

  • Fix: InputIconControlScheme error when new input system is not installed.

Tooltip

  • Fix: Handle null TooltipContainerSetup values.

Samples

GameSaveManager

  • Change access modifiers of _enableAutosave and _autosaveSlots to protected from private.

[1.2.0] (New Mobile Sample, Inventory and GridView)

Warning

If you're using GridView or Inventory, refactor is required. See details below.

New Features

Mobile Sample:mobile_phone:

  • Configured for mobile devices. Responsive design, has features like SafeArea for UI Toolkit. More to come.
  • Includes a new Mobile Equipment scene. Has listview and pagination versions. Pagination version has drag & drop and InventoryWithSlots, which lets you move items between slots.

New Element: Aspect Ratio

  • USS still doesn’t support aspect-ratio or vw/vh units, so I implemented an AspectRatio element. It can take the full width or height of its parent while maintaining a consistent shape — like staying perfectly square.

GridView

  • Responsive: Automatically updates element count when container width changes, enabling responsive layouts.
  • Refactor: GridView has been renamed to GridViewPagination.
  • New: Introduced GridViewList as an alternative to pagination.
  • Added ability to define buttons for clearing filters.
  • Components Sample: Added a standalone example scene.
  • Components Sample: Added a responsive layout example.

Inventory and Equipment:

  • Refactor: Renamed InventoryView to InventoryViewPagination.
  • New: Introduced InventoryViewList as an alternative to pagination.
  • Refactor: Renamed EquipmentView to EquipmentViewPagination.
  • New: Introduced EquipmentViewList as an alternative to pagination.
  • Added a dedicated scenes featuring both InventoryViewPagination and InventoryViewList to Components sample.
  • Refactor: ItemDragAndDrop now requires two InventoryItemSlotController instances. One for the slot that will start the drag, and one for creating the visual element at drag start.

Drag & Drop:

  • Added ability to style drop slots on drag start.
  • Improved target detection on drop.

Fixes

Input Prompts

  • Fixed an issue that prevented builds on platforms where Unity’s Input System strips PlayStation controller classes, such as android.

AddressableAssetManager:

  • Removed redundant locks.
  • Improved internal logic.
  • Added test scripts and a sample scene.

[1.1.1]

New Features

Custom USS Property

If you’d like to see USS variables for other components or properties, let me know!

Samples

  • Save/Load UI: Added filters for auto and manual saves. Complete REDESIGN of UI to support both gamepad and keyboard.
  • Architecture: Replaced Singleton with ServiceLocator. The samples are meant to demonstrate architecture concepts—they're not mandatory patterns. I personally use ServiceLocator, so I’ve updated the samples to reflect that.
  • ASMDEF: Split the Systems assembly definition into smaller modules. If you're using these samples, make sure to update your ASMDEF references accordingly.

Fixes

Samples

  • Autosave: Fixed logic issues. Autosave settings are now stored in metadata.
  • ItemDatabase: Don’t enforce Singleton on ItemDatabase.

[1.1.0] [Major Update]

Warning: It's recommended to remove Luna and samples before updating. This update includes significant refactors to the Tooltip, Save/Load and Inventory systems. If you are using these features, you may need to update your implementation. Feel free to ask for support.

New Features

Tooltip System

  • Added UpdateDisplay function to TooltipManipulator for seamless tooltip updates without closing and reopening.
  • Added Close function to TooltipManipulator, ensuring only the currently active tooltip is closed.
  • Smart Position: If the tooltip is set to appear on top but doesn't fit, it will smartly adjust its position to the bottom, left, or right.
  • Introduced Nested Tooltips, requiring a major code refactor. If this affects your implementation, feel free to ask for support.
  • Tooltip Refactor:
  • DefaultTooltip has been renamed to TooltipController. Since this is a MonoBehaviour, you’ll need to update your GameObject. Select the GameObject that previously contained DefaultTooltip in your scene, remove the missing component, and add TooltipController manually.
  • DefaultTooltipContainerSetup has been renamed to TooltipContainerSetup.
  • DefaultTooltipManipulator has been renamed to TooltipManipulator.
  • Simplifies development by consolidating tooltip logic into a single, more versatile component.
  • Limits fully custom tooltip behavior but is designed to cover all standard needs.
  • Added new Tooltip demos to Components sample, showcasing seamless updates and nesting.

Save/Load System

  • Functional Save System: New sample that showcases a working save system using the Newtonsoft JSON library.
  • Optimized Save Data Loading:
  • Previously, the Save/Load UI loaded all save files in full, which was inefficient for large files.
  • Now, it can load only metadata and fetch full save data only when needed.

Other

  • GridView: Constructor now accepts optional TooltipController.
  • Inventory: Moved from Luna to Library Sample. The inventory system is not strictly a UI component but rather a gameplay feature, making it more appropriate for Library Sample rather than the UI library. It now has it's own assembly file called CupkekGames.InventorySystem.
  • Core.Pool: Added pooling classes that uses unity's pool internally. Used by new Tooltip internally but you can use them for any pooling. Implemented versions are plain classes, GameObjects, MonoBehaviours, ScriptableObjects.

Fixes

  • Game Demo – Save/Load: Fixed an issue where loading a save while already in the game scene caused errors.
  • Addressable Demo: Fixed broken configurations from previous updates.

[1.0.8] Added:

  • NotificationView: Optional sfx on push and dismiss
  • GridView(Mainly used in inventory, can be used to create custom grid views): Added uss classes to filter buttons, so you can customize their styles Fixes:
  • NotificationView: Fix showing dismissed notifications at initialization
  • ProgressBar: Editor code in runtime assembly causing error on build

[1.0.7] Added:

  • New Custom Element: CooldownWipe. Useful for showing cooldown of skills or duration of status effects/buffs. Fixes:
  • TabView: Add USS class names to header buttons and their selected states, useful for customizing style.

[1.0.6] Added:

  • TabView: Added a custom Tab component while keeping the support for built-in Tab component. Custom Tab component is more cumbersome to use but allows you to add custom content to the Tab-Button. Added a red-dot example to the component sample, similar to a notification indicator on a button. Fixes:
  • ProgressBar: Fixed alignment problems when using multiple bars with instant = false.

[1.0.5] Added:

  • new PauseMenuEscapeAction: Added a plain class version alongside the MonoBehaviour version. Example Usage: In a view like visual novel, you might want to prevent going back before the dialogue finishes. You can do this with InputEscapeManager.SetBlocked(true) but it will block all escape actions. With this new class, you can add the pause menu action to the end of the stack so that the pause menu remains accessible while blocking other back actions.
  • Fadeable: split duration into fadeInDuration and fadeOutDuration. Fixes:
  • ProgressBar: various fixes for changes made in 1.0.3.
  • Added null check for LunaUIManager in UIView for 'Disable Other Views On Fade-In' option. It will fail silently.
  • Added fading to the LoadingUI in CircleSceneTransition for a smoother transition from the black circle to the LoadingUI.
  • Fix compile error when InputSystem package is not installed.

[1.0.4] New:

  • New Custom Element: CircleHoleElement - I was using shaders and uGui for circle loading transition. CircleHoleElement uses UI Toolkit's Vector API to draw the shape to achieve the same effect.
  • Renamed PopupConfirmation to PopupChoice as it supports multiple choices now.
  • New Sample: Ink - A sample demonstrating how to integrate the Ink narrative scripting language with the VisualNovel component. With support for choices and branching.

[1.0.3] New:

  • ProgressBar: Added an overlay feature. The API has changed significantly, and the documentation has been updated with new examples. Includes a new Overwatch-style health bar sample!
  • PieChart: Made gap line strokes straight.
  • ProgressBar: Improved performance using the DynamicTransform UsageHint.
  • Notifications: Improved performance using the DynamicTransform UsageHint. Fixes:
  • Samples (Game): Added escape input action to dialogue player UIs.
  • Samples (Game): Improved inventory layout.
  • Samples (Components): Fixed NPEs caused by the new "Disable Other Views On Fade-In" option.

[1.0.2] New:

  • Added 'Add Default Escape Action' option to UIViewComponent which adds UIViewActionEscape that calls FadeOutAndDestroy. So you don't have to write script for simple escape with input.
  • Samples: Added input support and icons to all three dialogue players Fixes:
  • Sample game, save/load view: Fix issue where the save button is not disabled when you are in the main menu

[1.0.1] New:

  • Added 'Disable Other Views On Fade-In' option to UIView and UIViewComponent
  • Improved UI Element Manager API Fixes:
  • Game Sample: Fixed credits view
  • Game Sample: Add custom navigation to main menu to be able to target quit button
  • Game Sample: Fixed inventory item filter buttons
https://www.docs.cupkek.games/luna/releasenotes

Settings

Theme

Light

Contrast

Material

Dark

Dim

Material Dark

System

Sidebar(Light & Contrast only)

Light
Dark

Font Family

DM Sans

Wix

Inclusive Sans

AR One Sans

Direction

LTR
RTL