fskit Framework

A modular, lightweight LÖVE2D kit providing multi-resolution screen management, theme synchronization, gamepad input abstraction, and persistent state for MustardOS Andromeda.


All 5 companion applications in the fragilesilver suite (ClockMu, JarMu, BatteryMu, SwapMu, and ScrapMu) are built on fskit.

Core Modules

local fskit = {
  screen  = require("fskit.screen"),  -- Letterboxing & multi-resolution
  theme   = require("fskit.theme"),   -- 10-theme model & persistence
  input   = require("fskit.input"),   -- Physical gamepad button abstraction
  widgets = require("fskit.ui"),      -- Headers, footers, lists & dialogs
  font    = require("fskit.font"),    -- Barlow & pixel fonts
  motion  = require("fskit.motion"),  -- Kinetic physics & transitions
}

Screen & Resolution Profiles

fskit.screen provides integer-scaled, letterboxed rendering across three standard handheld aspect ratios:

Profile Native Resolution Device Panels
Standard 4:3 640 × 480 RG35XX Pro, Plus, H, SP, 2024
Wide 3:2 720 × 480 3.5” wide panels
Square 1:1 720 × 720 4.0” square panels

All profiles support HDMI-out upscaling with clean integer pixel preservation.


10-Theme Palette

fskit.themes defines 10 themes (5 color families × dark/light mode) with verified contrast ratios:

Family Mode Highlights
Mustard Dark & Light Canonical MustardOS warm yellow accent (#DCAE1E)
Crimson Dark & Light Intense arcade ruby red (#F22E2E)
Ocean Dark & Light Vibrant deep-sea electric blue (#38BDF8)
Funky Dark & Light Cosmic arcade purple (#A855F7)
Andromeda Black & White Deep space ink navy, steel, and stone-cream

Input Abstraction Contract

Every fskit app adheres to a uniform button contract:

  • A — Confirm / Primary Action / Hold-to-confirm
  • B — Back / Cancel / Quit (with confirmation)
  • X — Secondary Action / Toggle
  • Y — Tertiary Action / Option
  • L1 / R1 — Page navigation
  • L2 / R2 — Fast jump (100 items)

This site uses Just the Docs, a documentation theme for Jekyll.