claw-code/.guardrails/examples/scala/functional-ui
Claude 2d62b470f6 fix(tui): add guardrails as files instead of submodule
Embedded repo was committed as submodule (160000). Now includes all
guardrails files directly for full in-repo reference.

Authored by TheArchitectit
2026-06-11 18:29:45 -05:00
..
README.md fix(tui): add guardrails as files instead of submodule 2026-06-11 18:29:45 -05:00
UI.scala fix(tui): add guardrails as files instead of submodule 2026-06-11 18:29:45 -05:00
data-pipeline-viz.scala fix(tui): add guardrails as files instead of submodule 2026-06-11 18:29:45 -05:00
procedural-gen.scala fix(tui): add guardrails as files instead of submodule 2026-06-11 18:29:45 -05:00

README.md

Scala Functional UI Examples

Scala 3.4+ functional UI composition with type-safe CSS, game analytics patterns, and ethical analysis.

Stack: Scala 3.4+, ScalaFX, TornadoFX, ggplot2-scala, Apache Spark


Purpose

This directory demonstrates 2026 best practices for building functional, type-safe UIs in Scala with:

  • Functional UI Composition - Pure functional widget builders
  • Type-Safe CSS - Compile-time style validation
  • Game Analytics Patterns - A/B testing, retention curves, DDA telemetry
  • Ethical Analysis - Dark pattern detection, monetization transparency
  • Colorblind-Accessible Palettes - Deuteranopia/protanopia/tritanopia-safe
  • Hick's Law Application - 5 ± 2 menu items for cognitive load optimization

Examples

File Purpose Key Patterns
UI.scala Functional UI composition Type-safe CSS, functional builders
data-pipeline-viz.scala Apache Spark UI integration Real-time analytics, colorblind-safe
procedural-gen.scala Procedural generation tools DDA telemetry, ethical analysis

2026 Best Practices

1. Functional UI Composition

// Pure functional widget builders
def button(text: String, style: ButtonStyle = DefaultButton): Button =
  Button(text).withStyle(style)

2. Type-Safe CSS

// Compile-time style validation
trait ButtonStyle {
  def backgroundColor: Color
  def hoverEffect: Effect
}

3. Colorblind-Safe Palettes

Palette Colors Use Case
Viridis #440154, #443782, #3a608b, #318755, #27b57e Sequential data
Colorblind-Universal #0077BD, #E66302, #7C87BB, #D6588B Categorical data
Cividis #002495, #005CA8, #297EA7, #58999D, #8AB68E Perceptually uniform

4. Hick's Law Application

  • Menu Items: 5 ± 2 (3-7 items)
  • Cognitive Load: O(1) decision time
  • Navigation Depth: Max 3 levels

5. Game Analytics Patterns

// A/B Test Tracking
case class ABTest(id: String, variant: String, timestamp: Long)
case class RetentionCurve(day: Int, retained: Double)
case class DDATelemetry(challenge: String, difficulty: Double, playerSkill: Double)

6. Ethical Analysis

  • Dark Pattern Detection: Identify manipulative UI patterns
  • Monetization Transparency: Clear pricing, no hidden costs
  • Engagement Ethics: Avoid addiction loops, respect user autonomy

Running Examples

cd examples/scala/functional-ui
scala-cli run UI.scala
scala-cli run data-pipeline-viz.scala
scala-cli run procedural-gen.scala

Guardrails Compliance

Rule Implementation
PRODUCTION FIRST Production UI code exists before test scaffolding
SEPARATE DATABASES Analytics DB uses test_ prefix for test environment
CLEAR LABELING Test files follow *_test.scala convention
COLORBLIND-SAFE All visualization palettes validated for CVD accessibility
HICK'S LAW Menu structures limited to 5 ± 2 items


Last Updated: 2026-03-14 Authored by: TheArchitectit