Free & open source, built for every frontend stack. Star Exhuma on GitHub
ExhumaBeta
DocsComponentsBlog

Getting Started

  • Introduction
  • Installation
  • Theming & Dark Mode
  • CLI Reference

Architecture

  • Kinetic Methodology
  • Ecosystem Contracts
  • Lifecycle & Memory Safety

Components

  • All Components20
Cards8
  • Stacking Cards
  • Horizontal Scroller
  • Tilt Card
  • Spotlight Card
  • Border Beam
  • Card Swipe Stack
  • Comparison Slider
  • Expandable Card
Layouts6
  • CSS Masonry
  • Row Masonry
  • Auto Grid
  • Infinite Marquee
  • Bento Grid
  • Diamond Grid
Navigation2
  • Morphing Tabs
  • Floating Dock
Primitives4
  • Accordion
  • Number Ticker
  • Magnetic Button
  • Cursor Tooltip
// DOCS·Components·Navigation

Floating Dock

High-performance kinetic floating application dock with continuous C1-cosine proximity distribution, multi-directional orientation, and zero layout thrashing.

Target Environment
+
+
CLI Installation
React
$pnpm dlxexhumaaddfloating-dock--flavor=react
// 01·Workbench

Interactive Specification & Studio

navigation
Preset:
Viewport
Fluid 100%
Exhuma Workspace
120 FPS NATIVE
Active Node
2,840
+12.4% live
Compositor
0.038ms
GPU Direct
Orientation
bottom
36px Base

Continuous Gaussian proximity magnification with zero layout shift and direction-aware popover tooltips.

Parameters
7 Props
// 02·Usage

Quick Start & Consumer Example

Copy-paste ready implementation for React (.tsx). Automatically updates when you modify parameters in the Workbench above.

+
+
AppDockSection.tsx
React (.tsx)
import React from 'react';
import { FloatingDock, type FloatingDockItemData } from '@/components/ui/FloatingDock';
import {
  IconLayoutDashboard as Dashboard,
  IconFolders as Projects,
  IconChartBar as Analytics,
  IconDatabase as Database,
  IconTerminal2 as Terminal,
  IconSettings as Settings,
} from '@tabler/icons-react';

const DOCK_ITEMS: FloatingDockItemData[] = [
  { title: 'Dashboard', icon: <Dashboard className="size-5 text-primary" />, active: true },
  { title: 'Projects', icon: <Projects className="size-5 text-muted-foreground" />, active: false },
  { title: 'Analytics', icon: <Analytics className="size-5 text-muted-foreground" />, active: false },
  { title: 'Database', icon: <Database className="size-5 text-muted-foreground" />, active: false },
  { title: 'Terminal', icon: <Terminal className="size-5 text-muted-foreground" />, active: false },
  { title: 'Settings', icon: <Settings className="size-5 text-muted-foreground" />, active: false },
];

export function AppDockSection() {
  return (
    <section className="flex flex-col items-center justify-center py-12">
      <FloatingDock
        direction="bottom"
        baseSize={36}
        maxMagnification={0.75}
        influenceRadius={60}
        items={DOCK_ITEMS}
      />
    </section>
  );
}
// 03·API Contract

Props & Configuration

Exhaustive parameter contract for Floating Dock. Validated in the live Studio workbench above and statically checked across all 13 ecosystem templates.

PropTypeDefaultDescription
direction
selectbottomOrientation and shelf alignment edge of the dock and tooltip positions.
baseSize
number36Default width and height of dock items at rest.
maxMagnification
number0.75Maximum scale multiplier at zero distance.
influenceRadius
number60Influence spread of the Gaussian proximity curve.
showLabels
booleantrueDisplay macOS-style frosted tooltips on icon hover/focus.
panelStyle
selecttranslucentVisual backing shelf styling of the dock.
hapticFeedback
booleanfalseEnables subtle tactile micro-haptic tick on apex crossing when supported by the device.
direction
select

Orientation and shelf alignment edge of the dock and tooltip positions.

Default:bottom
baseSize
number

Default width and height of dock items at rest.

Default:36
maxMagnification
number

Maximum scale multiplier at zero distance.

Default:0.75
influenceRadius
number

Influence spread of the Gaussian proximity curve.

Default:60
showLabels
boolean

Display macOS-style frosted tooltips on icon hover/focus.

Default:true
panelStyle
select

Visual backing shelf styling of the dock.

Default:translucent
hapticFeedback
boolean

Enables subtle tactile micro-haptic tick on apex crossing when supported by the device.

Default:false
// 04·Source Code

Component Source

Component source definition for React (.tsx). Toggle between the clean wrapper and the standalone ejected engine micro-kernel.

+
+
FloatingDock.tsx
import * as React from 'react';
import {
  FloatingDock as CoreFloatingDock,
  DockItem as CoreDockItem,
  DockIcon as CoreDockIcon,
  DockLabel as CoreDockLabel,
  type FloatingDockProps as CoreFloatingDockProps,
  type FloatingDockItemData,
  type DockDirection,
  type DockPanelStyle,
} from '@exhuma/core';
import { clsx } from 'clsx';

export type { FloatingDockItemData, DockDirection, DockPanelStyle };

export interface FloatingDockProps extends CoreFloatingDockProps {
  className?: string;
}

export const FloatingDock = React.forwardRef<HTMLDivElement, FloatingDockProps>(
  (
    {
      direction = 'bottom',
      baseSize = 36,
      maxMagnification = 0.75,
      influenceRadius = 60,
      showLabels = true,
      panelStyle = 'translucent',
      className,
      items,
      children,
      ...props
    },
    _ref
  ) => {
    return (
      <CoreFloatingDock
        ref={_ref}
        direction={direction as DockDirection}
        baseSize={baseSize}
        maxMagnification={maxMagnification}
        influenceRadius={influenceRadius}
        showLabels={showLabels}
        panelStyle={panelStyle as DockPanelStyle}
        className={clsx(className)}
        items={items}
        {...props}
      >
        {children}
      </CoreFloatingDock>
    );
  }
);
FloatingDock.displayName = 'FloatingDock';

export const DockItem = CoreDockItem;
export const DockIcon = CoreDockIcon;
export const DockLabel = CoreDockLabel;
// 05·Architecture

Lifecycle Safety & Performance

Engineered for high-frequency user interactions with zero memory leaks.

Teardown

Deterministic Cleanup

All pointer event listeners, scroll handlers, and resize observers are cleanly destroyed on component unmount, preventing lingering background processes.
Compositor

GPU Compositor Acceleration

Transform and opacity modifications run directly on the GPU compositor thread using will-change: transform without triggering browser layout recalculations.
// 06·a11y

Accessibility Considerations

Fully compliant with WCAG guidelines and respects user motion preferences.

Motion

prefers-reduced-motion Support

When a user has prefers-reduced-motion: reduce enabled in their operating system, Exhuma components automatically disable 3D gyroscope tilt and spring animations, rendering static accessible content.
Morphing TabsAccordion