From 76572968ca5f60c1cf65ec8fe55388aa55a4dc4a Mon Sep 17 00:00:00 2001 From: karim Date: Wed, 20 May 2026 22:00:07 +0200 Subject: [PATCH] Oberleiste: Icon roh + Pill-Dropdowns, About-Modal, Overrides/Kombi migriert MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit User-Feedback: Icon-Box war zu plakativ, lieber roh daneben + Pill-Form. Versionsnummer raus, Logo-Klick → About-Fenster. BarSelect umgebaut: - Icon roh links (vorher: separates Icon-Kompartiment mit Border) - Select-Container pill-foermig (border-radius 999, vorher 4) - joinedRight wird zu flachen rechten Pill-Kanten (statt rechteck) BarButton: pill-foermig + joinedLeft mit flacher linker Kante. View-Toggle: Pill-Container statt Rechteck. Massstab Live-Zoom-Chip: Pill-Form. Custom-Scale-Input: Pill-Form. Logo: - Versionsnummer-Span entfernt - ganzes Logo wird zu Klick-Button → AboutModal-State - AboutModal: zentrierter Backdrop-Dialog mit Launcher/Plugin-Versionen, Autor (Karim Gabriele Varano), Website (gabrielevarano.ch), Lizenz (Proprietaer) Overrides + Kombi migriert (war noch im alten Stack-Layout): - Overrides: BarButton (Toggle) + BarSelect (Preset) joinedRight + BarButton (Settings) joinedLeft, palette-Icon fuer Preset-Picker - Kombi: BarSelect (layers-Icon) mit allen Aktionen im Dropdown (Speichern, Loeschen, Bearbeiten) + BarButton (edit) joinedLeft - Stack-Layout (label-Spalte + 2 Reihen) ist weg, jetzt inline Co-Authored-By: Claude Opus 4.7 --- src/OberleisteApp.jsx | 368 ++++++++++++++++++++++++------------------ 1 file changed, 210 insertions(+), 158 deletions(-) diff --git a/src/OberleisteApp.jsx b/src/OberleisteApp.jsx index eedf03c..96c17ec 100644 --- a/src/OberleisteApp.jsx +++ b/src/OberleisteApp.jsx @@ -83,51 +83,53 @@ const pillSelect = { fontSize: 10, } -// BarSelect: Icon-Kompartiment links | Native-Select Mitte | Caret rechts +// BarSelect: Icon roh links (kein Container) + pill-shaped Native-Select. +// joinedRight: rechte Pill-Kante flach, fuer Verkettung mit BarButton. function BarSelect({ icon, value, onChange, title, disabled, width, children, joinedRight }) { return (
+ {icon && ( + + )}
- + +
- -
) } -// BarButton: quadratischer Icon-Button, gleiche Hoehe wie BarSelect. -// joinedLeft: wenn rechts von einem BarSelect sitzt (kein doppelter Border). +// BarButton: pill-foermiger Icon-Button. joinedLeft = linke Kante flach, +// so dass er nahtlos an einen BarSelect-joinedRight andockt. function BarButton({ icon, onClick, title, disabled, joinedLeft, active }) { return (
{/* ====== VIEW (Top/Front/Right/Iso/Persp + Kamera) ====== - Kein Group-Label — die Buttons selber kommunizieren ihren Zweck. */} + Pill-foermige Toggle-Gruppe, kein Group-Label. */}
{VIEWS.map((v, idx) => ( +
+
) }