Remove 28 temporary status/progress/audit files from the branch:
- All AUDIT_* files from documentation audit session
- All PHASE*_* progress files
- All *_SUMMARY.md and *_STATUS.md files
- Other temporary report files (SCRIPT.md, DOCS_UPDATE.md, etc.)
These were temporary files used during documentation work sessions
and should not be part of the branch.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Created three tabs in Getting Started guide for different contribution types
- Bug Fix tab: 9 steps focused on reproducing, fixing, and testing bugs
- Enhancements tab: 10 steps covering feature discussion, implementation, and documentation
- Documentation tab: 9 steps for improving docs with live preview workflow
- Each tab includes type-specific best practices and examples
- Maintained Steps component for better UX in each tab
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Updated Go requirement to 1.25+ (was 1.23+)
- Updated Node.js requirement to 20+ (was 18+)
- Changed fork link to direct fork URL
- Added "Contribution Process Overview" section with workflow bullet points
- Restructured content using Steps component for better UX
- Applied same version updates to Development Setup guide
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Reduced Contributing sidebar to three essential pages
- Created comprehensive Getting Started guide for new contributors
- Added detailed Development Setup guide with platform-specific instructions
- Created Coding Standards document covering Go/TypeScript conventions
- Removed v3 badge from "What's New" in sidebar
- Removed crown badge from "Credits" in sidebar
- All guides include practical examples and troubleshooting tips
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Restructured API Reference to use flat file structure instead of subdirectories
- Added complete API documentation for all major Wails v3 APIs
- Created comprehensive event tables documenting all built-in system events
- Fixed incorrect window lifecycle methods (OnClose/OnFocus/OnBlur don't exist)
- Replaced with correct OnWindowEvent() and RegisterHook() implementations
- Added detailed explanations of Common Events vs Platform-Native Events
- Expanded Frontend Runtime API with complete method signatures and examples
- Added comprehensive Dialogs, Menu, and Events API documentation
- Included practical code examples for Go and JavaScript throughout
- Documented event patterns with use case descriptions
- Removed placeholder content and "Best Practices" sections
- Made Go API Conventions collapsible with beginner-friendly intro text
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Change BETA to ALPHA across documentation
- Add new showcase images (mchat, edex-ui) to landing page sliders
- Remove bulletin board and emailit images from sliders
- Increase slider spacing from 350px to 550px to reduce overlap
- Fix tutorial links to use numbered filenames (02-todo-vanilla, 03-notes-vanilla)
- Update 7 broken tutorial links across 5 files
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Completes the documentation reorganization by migrating all /learn content
to proper locations and removing the legacy /learn directory.
Changes:
- Migrated 10 unique files from /learn to appropriate sections:
- features/notifications, keyboard, environment, browser, platform
- concepts/manager-api
- contributing/architecture/bindings
- reference/runtime
- guides/build/customization
- Removed /learn directory and 22 legacy files
- Updated sidebar navigation:
- Removed "Learn" section
- Added Manager API to Core Concepts
- Reorganized Features with new subdirectories
- Added Build Customization to Guides
- Added Binding System to Contributing/Architecture
- Fixed missing Card/CardGrid imports in 12 feature files
- Cleaned up stale d2 SVG files
All /features content verified to be more comprehensive than /learn versions.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add "Learn" section between Tutorials and Core Concepts
- Autogenerate sidebar items from /learn directory
- Includes 22 important documentation files: bindings, events, windows, menus, dialogs, etc.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Copy gamestacker.webp from merged PR #4724 to showcase-images
- Add GameStacker to Row 1 and Row 3 of scrolling background
- Replaces wombat and wally positions for better variety
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Extract "Why Wails?" from Quick Start section to standalone top-level item
- Position above Quick Start for better visibility and onboarding flow
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add detailed explanations to v2-to-v3 migration guide breaking changes sections
- Explain what changed, why it changed, and benefits of the new approach
- Add explanatory text to "How Wails Works" architecture section
- Center architecture diagram with improved layout
- Remove "For Contributors" badge from sidebar
- Add notes tutorial screenshot to tutorials overview
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Complete rewrite of TODO tutorial with detailed explanations and verified working code
- Complete rewrite of Notes tutorial demonstrating file dialogs and desktop patterns
- Add screenshots for both tutorials
- Update tutorial overview with improved descriptions
- Fix HTML entity encoding for < character in lifecycle and bridge docs
- Update API status from Beta to Alpha in reference documentation
- Change Beta APIs to Unstable APIs for clarity
- Remove "From Tauri" migration link from navigation
- Update wails.app references to wails.io
- Fix various typos and improve code examples throughout
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Reduced gin-routing.mdx from 584 to 263 lines by:
- Condensing static content serving section (38→18 lines)
- Replacing verbose Event Communication section with concise example (146→24 lines)
- Removing redundant "Interacting with Wails" section
- Simplifying Gin mode configuration (31→6 lines)
- Removing complete example (117 lines) - users can reference examples repo
- Replacing all instances of "leverage" with "use"
The guide now focuses on essential integration steps without
overwhelming detail, while maintaining all key concepts.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Update Go version requirement from 1.23+ to 1.25+ across all docs
- Update installation.mdx with links to official installers and actual wails3 doctor output
- Revert first-app.mdx to simple greet app tutorial (10 mins)
- Move TODO app to dedicated tutorial at tutorials/todo-vanilla.mdx (20 mins)
- Simplify next-steps.mdx: remove 50+ links, focus on essential paths
- Simplify tutorials/overview.mdx: remove emojis, cards, verbose sections
- Add Windows 11 Dev Drive performance tips to installation guides
- Fix auto-rebuild documentation (Go code auto-rebuilds, no manual restart needed)
- Remove "What You've Learned" section emojis
- Convert cards to bullet points throughout for better readability
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Fixed Wayland related window maximum size issues on ultrawide monitors by adding a monitor-window search fallback.
* Fixed Wayland related window maximum size issues on ultrawide monitors by adding a monitor-window search fallback.
* Added note to UNRELEASED_CHANGELOG.md regarding Wayland ultrawide monitor fix of issue 4439.
---------
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
* feat: Binds window menu to app windows
* chore: disables tab feature & controls from menu by default
* docs: Adds title to example for it to show in the window menu item
* style: removes redundant SetBackgroundColor call
* chore: rolls back disabling tab controls for a future optional config
* docs: adds change description to unreleased notes
---------
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
* fix: compilation issue when using react+next application
When building with next, I got an error during the "collecting page data" step.
Cannot find module '/home/node/application/node_modules/@wailsio/runtime/dist/utils' imported from /home/node/application/node_modules/@wailsio/runtime/dist/contextmenu.js] {
code: 'ERR_MODULE_NOT_FOUND',
* doc: added fix in the changelog
* fix: updated UNRELEASED_CHANGELOG.md
* doc: follow naming convention
* Remove v2 changelog entry
---------
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
* Check for empty buffers instead of nil in responsewriter
Use Case:
I am using a service that implements `http.Handler` to send streaming
video to the frontend. Reliably, when sending fragmented MP4 data on
MacOS, the app would panic because the buffer being sent through the
response passed a not-nil check but would panic when accessing the first
byte of the buffer.
This PR addresses that by checking if the buffer is not empty instead of
nil, accounting for the case where len(buf) == 0 and cap(buf) > 0, or
maybe where buf[0] == '\0' (I'm not sure how the nil checks work for
slices)
* Update UNRELEASED_CHANGELOG
* Update v3/internal/assetserver/webview/responsewriter_darwin.go
nil and len check
---------
Co-authored-by: Atterpac <89053530+atterpac@users.noreply.github.com>
* fix(macOS): Use visibleFrame for window centering to exclude menu bar
The windowCenter() function was using [screen frame] which includes
the menu bar and dock areas, causing windows to appear positioned
too high on the screen when centered.
This change uses [screen visibleFrame] instead, which excludes the
menu bar and dock areas, resulting in proper visual centering.
Fixes vertical centering issue on macOS in Wails v3 alpha.
* Update v3/UNRELEASED_CHANGELOG.md
* Update changelog entry format
---------
Co-authored-by: Atterpac <89053530+atterpac@users.noreply.github.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
* feat: Implement native Liquid Glass effect for macOS
feat: Add platform check for Liquid Glass demo
Show informative dialog on Windows/Linux explaining that the Liquid Glass
effect is a macOS-specific feature. The demo will exit gracefully on
non-macOS platforms.
docs: Add Liquid Glass feature to unreleased changelog
feat: Enhanced Liquid Glass effect with NSVisualEffectMaterial support
Major improvements to the Liquid Glass implementation for macOS:
- Added comprehensive NSVisualEffectMaterial support with 15+ material options
- Removed debug NSLog statements for cleaner production code
- Created multi-window demo showcasing 7 different glass effects:
* Light Style - Clean light appearance
* Dark Style - Dark themed glass
* Vibrant Style - Enhanced transparency
* Blue Tint - Custom RGBA tint color example
* Sheet Material - NSVisualEffectMaterialSheet
* HUD Window - Ultra-light HUD material
* Content Background - With warm tint color
- Added Material field to MacLiquidGlass struct for fine-grained control
- Improved demo design with proper Title Case and cleaner layout
- Fixed logo sizing to prevent blur
- All windows fully draggable with InvisibleTitleBarHeight
- Added comprehensive README documentation
The implementation now provides developers with complete control over the
glass effect appearance, supporting both native NSGlassEffectView (macOS 15.0+)
and NSVisualEffectView fallback for older systems.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
feat: Implement native Liquid Glass effect for macOS
- Add support for NSGlassEffectView on macOS 15.0+
- Implement runtime detection of native glass APIs
- Add fallback to enhanced NSVisualEffectView for older systems
- Update liquid glass demo with frameless windows for better visibility
- Support all NSGlassEffectView properties (cornerRadius, tintColor, style)
- Properly handle webview layering with glass effect
- Remove binary from version control
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix: Address CodeRabbit review feedback
- Comment out unimplemented ReduceMotion and StaticMode fields
- Remove overly broad draggable CSS properties
- Add corner radius validation
- Improve CSS with proper pointer-events and user-select
- Add clarifying comments about future features
* fix: Remove unimplemented ReduceMotion and StaticMode fields
Completely remove the commented-out performance optimization fields
as they are not implemented and have no timeline for implementation.
* fix: Update windowRemoveVisualEffects to also remove NSGlassEffectView instances
The cleanup function now properly removes both NSVisualEffectView and
NSGlassEffectView instances to prevent orphaned effect layers. Uses
NSClassFromString to avoid hard references to NSGlassEffectView which
is only available on macOS 15.0+.
* fix changelog
* Update v3/pkg/application/webview_window_darwin.m
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update v3/pkg/application/webview_window_darwin.m
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix: Fix compilation errors in windowSetLiquidGlass
- Add missing NSGlassEffectViewStyle enum definition
- Fix undefined tintColor variable by creating NSColor before use
- Add autorelease to prevent memory leaks for allocated views
These issues were causing CI build failures while working locally due to different compiler settings.
* Update Taskfile.yaml
* feat: Implement groupID and groupSpacing for NSGlassEffectView
- Add runtime detection for groupIdentifier/groupName selectors
- Apply groupID via performSelector if supported
- Apply groupSpacing via KVC if supported
- Parameters are now functional when NSGlassEffectView supports them
- Maintains backward compatibility by checking selector availability
* test: Add liquid-glass example to test suite
- Add liquid-glass to EXAMPLEDIRS in Taskfile.yaml
- Ensures the example is tested during CI builds
- Validates compilation on different platforms
Addresses review comment about missing test coverage
* fix: Correct NSGlassEffectView availability to macOS 26.0
- Update @available checks from macOS 15.0 to 26.0 for NSGlassEffectView
- NSGlassEffectView is a private API introduced in macOS 26.0
- Update README to reflect correct version requirement
- Keep NSVisualEffectMaterial checks at 15.0 as those are different APIs
* fix: Prevent exceptions from unsafe WebView reparenting
- Remove early WebView addition to glassView.contentView
- Consolidate all WebView reparenting in one safe location
- Always call removeFromSuperview before adding to new parent
- Set frame and autoresizing mask after safe reparenting
- Prevents NSInternalInconsistencyException from multiple parents
* fix: Make WebView reparenting more robust and thread-safe
- Always call removeFromSuperview before adding to new parent
- Remove brittle superview check, always detach and reattach
- Check both webView and glassContentView are non-nil before operations
- Ensure all UI operations run on main thread with dispatch_sync
- Set frame and autoresizing mask after safe reparenting
* Tidy up
* Update changelog
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix: make options in update build-assets override
Before this fix, if `-config` was passed to `wails3 update
build-assets`, the values in the config file, even if they were empty,
would be used. Now, we only use the config file value if the value was
not passed in on the command line (or is the zero value or default value
for the option).
I'll be honest, I feel a little dirty about this implementation since
I had to copy string constants out of struct tags. Not very DRY of me.
That said, there was no obvious way to get the default value of a given
option. If I missed something, happy to have this corrected, but I've
tested it and it seems to be doing the things it should be doing.
* Update v3 changelog