Christoph Fahlbusch
Product design, strategy, and native systems
Interaction Design
(Alles) Paletti: The details you feel
Color tools are everywhere. Most of them work. Few of them feel good.
(Alles) Paletti started as an experiment in SwiftUI animation. I wanted to see how far I could push fluid motion, haptic feedback, and visual polish on iOS. The color palette generator became the vehicle, but the real product is the feel.
The app uses OKLCH color space for perceptual uniformity, but the color science isn't what makes it interesting. It's the interactions. Tuned springs, deliberate timing, haptics on every action. The kind of details that don't show up in feature lists.
Launch choreography
The launch sequence staggers individual palette segments into the main view. Elements move continuously instead of cutting between states.
When things have spatial continuity, users build mental models faster. They understand where things came from and where they'll go. The animation teaches the structure.
Choosing how to create
(Alles) Paletti offers multiple generation strategies: OKLCH for perceptual uniformity, classic harmonies like triadic and complementary, image extraction, or live camera input. Each mode is a different creative starting point.
The options sheet uses spring animations with tuned damping. Selections have haptic feedback. These aren't big features, but they add up. The difference between "functional" and "polished" is often just timing.
Getting it just right
Generated palettes are starting points. Users can manipulate individual color segments, adjusting hue and brightness until each color fits their specific needs.
A palette tool that only generates and can't refine is limited. The ability to dial in the last 5% is what makes it useful for real work.
From colors to gradients
Users can transform any palette into smooth gradients with a single tap. The transition animates through color space, showing the interpolation in real time. You see the gradient form rather than just appear.
Memory without management
Every palette is automatically saved. No explicit save action, no lost work. SwiftData handles persistence in the background.
Users can pin up to 10 favorites. Pinned palettes stay at the top for quick access. The distinction between "pinned" and "recent" creates a lightweight organization system without requiring folders or tags.
Two audiences, one share sheet
Designers share palettes for different reasons. Sometimes it's for social media, sometimes it's for developers who need structured code.
(Alles) Paletti's share interface serves both. The visual layer offers aspect ratio presets (9:16 for stories, 1:1 for posts, 16:9 for presentations) with toggles for color names and hex codes. Exports render at 3x scale.
The developer layer provides copy-paste code for SwiftUI, Kotlin Compose, Android XML, CSS variables, Tailwind configs, and W3C design tokens. The same palette, formatted for whatever stack you're building on.
When the share sheet opens, the palette card tilts back with a subtle parallax effect, responding to device motion. A small detail, but these moments add up.
Closing
Functionally, (Alles) Paletti does what dozens of other color apps do. The difference is in the details.
Animations, consistent haptic feedback, transitions that maintain spatial relationships. None of these show up in a feature comparison, but they define how the app feels to use.
Interaction design isn't polish applied at the end. It's part of the architecture.