Skip to content

โ˜… Starshadow Lib

The foundation for Starshadow mods.

Starshadow Lib is a shared widget toolkit and utility library for Minecraft Fabric mods. It provides the building blocks that power Starshadow's config screens, mod list, and splash screen โ€” and you can use them in your own mods too.

"Widgets, layout, and rendering โ€” the boring parts, done right."


โœจ Features

๐ŸŽ›๏ธ Widget Toolkit

Ready-to-use Minecraft GUI widgets built on vanilla screen components:

Widget Description
ToggleWidget On/off toggle switch with animation
SliderWidget Numeric slider with configurable range
IntStepperWidget Integer value with +/- buttons
EnumCycleWidget Cycle through enum values with click
StarWidget Base widget class for building custom widgets

๐Ÿ“ Layout System

Utilities for consistent, responsive GUI layouts:

Component Description
EntryRow Label + widget row with consistent alignment
Spacing Standardized spacing constants for UI consistency

๐Ÿ“ฆ Container Widgets

Higher-level containers for organizing content:

Container Description
ScrollablePanel Scrollable content area with smooth scrolling
SectionCard Card-style container with header and collapsible content
VerticalTabBar Tab strip for multi-section screens

๐ŸŽจ Rendering Utilities

Utility Description
RenderBridge Cross-version rendering abstraction layer
Colors Standardized color palette constants

๐Ÿ”ง Logging Helpers

Utility Description
LogLevelHelper Dynamic Log4j2 level control for debug logging toggles

๐Ÿ“ฆ Installation

For Mod Developers

Add to your build.gradle.kts:

dependencies {
    modstitchModImplementation("com.starshadow:starshadow-lib:${property("starshadow_version")}")
    include("com.starshadow:starshadow-lib:${property("starshadow_version")}")
}

For Players

Starshadow Lib is bundled inside mods that use it โ€” you typically don't need to install it separately. If a mod requires it as an external dependency:

  1. Install Fabric Loader for your Minecraft version
  2. Install Fabric API
  3. Drop the Starshadow Lib .jar into your mods/ folder
  4. Launch Minecraft

Supported: Minecraft 1.20.1 ยท 1.20.4 ยท 1.21.1 โ€” Fabric only


๐Ÿ”จ Usage Examples

Toggle Widget

ToggleWidget toggle = new ToggleWidget(x, y, width, height,
    Text.literal("Enable Feature"),
    () -> config.isEnabled(),
    value -> config.setEnabled(value));

Slider Widget

SliderWidget slider = new SliderWidget(x, y, width, height,
    Text.literal("Volume"),
    0, 100, config.getVolume(),
    value -> config.setVolume(value));

Scrollable Panel

ScrollablePanel panel = new ScrollablePanel(x, y, width, height);
panel.addChild(new EntryRow(label, widget));
panel.addChild(new EntryRow(label2, widget2));

๐Ÿงฉ Compatibility

Mod Compatibility
Fabric API โœ… Required
Starshadow Config โœ… Uses Lib for config screen widgets
Starshadow Menu โœ… Uses Lib for mod list UI
Starshadow Splash โœ… Uses Lib indirectly via Config

๐Ÿ“‹ Requirements

Dependency Required?
Fabric Loader โœ… Yes
Fabric API โœ… Yes

Starshadow Lib has no dependencies beyond Fabric itself โ€” it's the foundation layer.


๐ŸŒŸ Build Better UIs

Stop reinventing widgets for every mod. Starshadow Lib provides a consistent, tested set of UI components so you can focus on what makes your mod unique.


Made with โค๏ธ by Ghent Starshadow Licensed under MPL-2.0 โ€” free to use, share, and modify.