promotional bannermobile promotional banner
premium banner
Starshadow mods library files

Description

β˜… 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.