Expand description
egui-macview — Deterministic macOS AppKit Layout Engine, Authentic Control Primitive Suite, and CoreAnimation Physics Runtime for egui.
Grounded in Apple AppKit, macOS Human Interface Guidelines (HIG), and W3C DTCG Design Tokens.
§Architecture & Highlights
- Authentic Control Primitives: Complete macOS AppKit controls including
MacToggle,MacSlider,MacSegmentedControl,MacPopUpButton,MacSearchField,MacStepper,MacColorWell,MacOutlineView,MacButtonCell,MacInputCell, andMacThumbnailCell. - Deterministic Layout Engines: Subpixel-snapped linear
MacStackView(NSStackView), draggable hairlineMacSplitView(NSSplitView), zero-gutter floating overlayMacScrollView(NSScrollView), absoluteMacFixedView, and autolayoutMacFlexView. - CoreAnimation Physics: Analytical spring physics runtime
CASpringmatching Apple’sCASpringAnimationand SwiftUI.spring(response:dampingRatio:)with analytical displacement and velocity calculations. - W3C DTCG Token Catalog & Theming: Dynamic theming via
MacThemeandMacAppearancesupporting Aqua and DarkAqua appearances, configurable window control decorations viaWindowControlsStyle, and dynamic system accent colors. - Subpixel Snapping: Physical pixel boundary rounding via
subpixel_snap,subpixel_snap_pos, andsubpixel_snap_rect.
§Quick Start Example
use egui_macview::{
CASpring, MacAppearance, MacSlider, MacStackView, MacTheme, MacToggle,
};
// 1. Initialize macOS dynamic theme (Aqua or DarkAqua)
let theme = MacTheme::new(MacAppearance::DarkAqua);
// 2. Assemble controls inside an NSStackView linear layout
let mut enabled = true;
let mut volume = 75.0f32;
MacStackView::vertical()
.theme(&theme)
.show_separators(true)
.show(ui, |stack| {
stack.add(|ui| {
ui.add(MacToggle::new(&mut enabled).theme(&theme));
});
stack.add(|ui| {
MacSlider::new(&mut volume, 0.0..=100.0)
.theme(&theme)
.ticks(5, true)
.show(ui);
});
});
// 3. Analytical spring physics evaluation
let spring = CASpring::new(0.35, 0.85);
let displacement = spring.evaluate(0.15); // t = 150msRe-exports§
pub use theme::contrast_ratio;pub use theme::relative_luminance;pub use theme::MacAppearance;pub use theme::MacBackgroundStyle;pub use theme::MacTheme;pub use theme::WindowControlsStyle;pub use controls::MacButtonCell;pub use controls::MacColorWell;pub use controls::MacInputCell;pub use controls::MacOutlineRow;pub use controls::MacOutlineRowResponse;pub use controls::MacOutlineTree;pub use controls::MacOutlineView;pub use controls::MacPopUpButton;pub use controls::MacSearchField;pub use controls::MacSegmentedControl;pub use controls::MacSlider;pub use controls::MacStepper;pub use controls::MacThumbnailCell;pub use controls::MacToggle;pub use feedback::MacContextMenu;pub use feedback::MacToast;pub use feedback::MacToastManager;pub use feedback::ToastLevel;pub use layout::subpixel_snap;pub use layout::subpixel_snap_pos;pub use layout::subpixel_snap_rect;pub use layout::MacFixedView;pub use layout::MacFlexView;pub use layout::MacFrame;pub use layout::MacRow;pub use layout::MacScrollView;pub use layout::MacScrollViewOutput;pub use layout::MacSplitOrientation;pub use layout::MacSplitView;pub use layout::MacStackAlignment;pub use layout::MacStackOrientation;pub use layout::MacStackUi;pub use layout::MacStackView;pub use layout::MacStackViewOutput;pub use motion::CASpring;pub use navigation::CommandPaletteItem;pub use navigation::MacCommandPalette;pub use navigation::MacKeyboardShortcut;pub use navigation::MacMenuBar;pub use navigation::MacMenuItemKind;pub use navigation::NSMenu;pub use navigation::NSMenuItem;pub use navigation::CANVAS_FOOTER_HEIGHT;pub use navigation::COMMAND_PALETTE_HEIGHT;pub use navigation::COMMAND_PALETTE_WIDTH;pub use state::NSUndoManager;pub use state::DEFAULT_UNDO_CAPACITY;pub use surfaces::MacCard;pub use surfaces::MacPanel;pub use surfaces::MacPopover;pub use surfaces::MacPopoverArrowEdge;pub use tokens::sf_pro_tracking;pub use tokens::ColorWellMetrics;pub use tokens::LayoutMetrics;pub use tokens::MacColorTokens;pub use tokens::MacControlMetrics;pub use tokens::MacDesignTokens;pub use tokens::MacMotionTokens;pub use tokens::MacTypographyTokens;pub use tokens::OutlineViewMetrics;pub use tokens::PopUpButtonMetrics;pub use tokens::ScrollViewMetrics;pub use tokens::SearchFieldMetrics;pub use tokens::SliderMetrics;pub use tokens::SplitViewMetrics;pub use tokens::StackViewMetrics;pub use tokens::StepperMetrics;pub use tokens::ThumbnailCellMetrics;
Modules§
- controls
- macOS AppKit Authentic Controls Suite for egui.
- feedback
- State feedback surfaces: Context Menus and Animated Toast Notifications.
- layout
- Layout engines:
MacFixedView(absolute pt),MacFlexView(springs/struts),MacSplitView(NSSplitView),MacScrollView(NSScrollView), andMacStackView(NSStackView). - motion
- macOS CoreAnimation Spring Physics Engine.
- navigation
- Desktop Navigation, Canvas Footer, and Spotlight Command Palette Suite.
- state
- State integrity, transaction management, and snapshot history.
- surfaces
- macOS AppKit Panel, Popover & Card Surfaces.
- theme
- macOS AppKit Dynamic Theming System.
- tokens
- Typed W3C DTCG-compliant Design Token models for
egui-macview.
Constants§
- VERSION
- Crate release version string extracted from
Cargo.toml.