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)