JavaScript Dependencies
SummitUI uses a small set of JavaScript dependencies for functionality that cannot be achieved with pure C# or that would require significantly more code to implement correctly.
Our Approach
SummitUI follows a "C# first" philosophy. We prefer implementing logic in C# whenever possible, reserving JavaScript for tasks that are impossible in C# or require access to browser APIs not available through Blazor's standard interop. All JavaScript dependencies are bundled locally - we never use external CDNs.
summitui.js file and served from your application.
This eliminates external network dependencies and ensures offline functionality.
Dependencies
Current JavaScript dependencies used by SummitUI:
@floating-ui/dom
v1.7.4
Floating UI provides intelligent positioning for floating elements like popovers, dropdowns, and tooltips. It handles complex positioning logic including:
- Automatic flip when content would overflow viewport boundaries
- Shift positioning to keep content visible within scroll containers
- Arrow positioning that tracks the reference element
- Size constraints based on available space
Used by: Popover, Select, DropdownMenu, and any component with floating content.
Build Tools
In addition to runtime dependencies, SummitUI uses build-time tools for bundling:
esbuild
v0.25.0 (dev dependency)
esbuild bundles and minifies all JavaScript modules into a single
summitui.js file. It's extremely fast
(~10ms build times) and produces highly optimized output with tree-shaking to eliminate unused code.
Total Bundle Size
The complete bundled and minified summitui.js
file is approximately 38 KB uncompressed. With standard web server compression
(gzip/brotli), this reduces to approximately 10-12 KB over the wire.
Calendar calculations and date formatting are handled entirely by .NET's
System.Globalization namespace.
JavaScript is only used for DOM operations that cannot be performed in C# (keyboard event
interception, focus management).