Ersetzen der Feather-Icons durch Lucide

Anscheinend fehlen uns 25 Icons im Vergleich zur letzten Version (4.29.0), aber ich habe auch keine Schneeflocken gesehen.

Es gibt einen Fork von Feather: Icons – Lucide
Mal sehen, ob wir ihn integrieren können oder nicht.

In diesem Fork gibt es mehr Auswahl
image

Ich bin gerade erst darauf gestoßen und es scheint im Vergleich zu Feather gepflegt zu werden.
Man sollte tatsächlich prüfen, ob man Feather durch Lucide ersetzen kann, ohne (zu) viel kaputt zu machen.

@pierre-gilles hallo!
Ich schaue mir gerade den Ersatz von Feather durch Lucide an.
Ich habe in diesem Beitrag (der etwas älter ist) gesehen, dass du damit keine besonderen Probleme hattest. Ist das immer noch der Fall?
Jetzt hat Lucide eine Webfont:

Falls alles in Ordnung ist, habe ich mit der Hilfe von Claude die Änderung gestartet und brauche jetzt deine Unterstützung, um in die richtige Richtung weiterzumachen.
Abgesehen von der Änderung der Icon-Namen, die sich unterscheiden können (und daher ein Migrationsskript), ändern wir die Klasse fe überall in Gladys wie unten, wie Claude es vorschlägt, oder ändern wir nur das Minimum, um den Einfluss zu begrenzen (wir behalten die fe, ändern nur die Referenzen in dashboard.css)?

Ich habe eine vollständige Migration durchgeführt, um das Thema und Gladys so sauber wie möglich zu halten. Hier sind die PRs:

Warten auf Überprüfung und Anpassungen meinerseits!

Replace feather by lucide by smuteau · Pull Request #4 · GladysAssistant/theme-optimized · GitHub
https://github.com/GladysAssistant/Gladys/pull/2485

Ich habe auch die LICENSE-Datei von Lucide hinzugefügt.

@pierre-gilles sag mir bitte deine Meinung.
Ich habe die Migrationsskripte im Themen-Repo belassen, damit du analysieren kannst, was in den 2 Repos gemacht wurde.

Es gibt einen Bericht darüber, was erledigt wurde:


Es bleiben 6 dynamische Vorkommen, die manuell überprüft werden müssen. Ich gestehe, ich weiß nicht genau, was das genau bedeutet:

Ich habe die von dem Skript erstellten .backup-Dateien gelöscht

Das Migrationsskript hat Backup-Dateien im Gladys-Repo erstellt (was für zusätzlichen Ballast sorgt).
Wenn alles in Ordnung ist mit der Migration, können wir aufräumen (Code von Claude):

# Lösche die .backup-Dateien
find . -name "*.backup" -delete
find ../Gladys/front/src -name "*.backup" -delete

# Lösche den alten Feather-Ordner
rm -rf fonts/feather

Etwas, das ich nicht kann, ist das Frontend auf meinem Rechner zu testen, um es zu validieren. Ich habe das passende Login/Passwort nicht gefunden :frowning:

Du kannst nur die Frontend-Oberfläche im Demomodus mit dem Befehl

npm run start-demo

einer Frontend-Ordner starten.

Ich komme gut voran.
Ich habe einige sehr, sehr leichte Unterschiede in der Größe/Position der Symbole, ich habe 2 Screenshots zur Veranschaulichung der Unterschiede beigefügt, falls jemand eine Idee hat:



Das Symbol „Signalstärke“ (siehe TV) fehlt, ich werde mich genauer ansehen.

Ja, das muss normal sein, das ist ein in Code hinzugefügtes Icon (wahrscheinlich SVG). Ich erinnere mich nicht mehr genau, wo es platziert ist!

Ich glaube, das ist der letzte icon-sprite.svg

Ich habe gerade den Wechsel von Feather zu Lucide abgeschlossen, das ist keine Kleinigkeit, wenn man anfängt :roll_eyes:

@pierre-gilles du musst den PR von theme-optimized (Version 1.0.5) bestätigen:

Ersetzt durch https://github.com/GladysAssistant/theme-optimized/pull/5

Replace feather by lucide by smuteau · Pull Request #4 · GladysAssistant/theme-optimized · GitHub

damit der PR von Gladys weitergehen kann, da er vom neuen theme-optimized abhängt:

theme-optimized wurde die webfonts installiert und die Namen der Feather-Icons bei Bedarf umbenannt und die Lucide-Icons in der dashboard.css hinzugefügt.
Es gibt einen kleinen visuellen Unterschied bei einigen Icons, möglicherweise müssen einige Fälle im CSS des Themes bei Bedarf verwaltet werden:

  • Hinzufügen eines display: inline-block und vertical-align: -0.125em, damit die Icons besser positioniert sind und der Text+Wert/Button nach links verschoben wird (bessere visuelle Darstellung)
  • Erhöhung der Größe der Icons signal auf font-size: 1.25rem

Gladys gab es viele Änderungen:

  • Ersetzen der Klassen fe fe- durch icon- mit der Abfrage der neuen Namen bei Bedarf
  • Aktualisierung der Klassen mit dynamischen Icons:
<i class={`fe ${TRIGGER_ICON[...]}`} />  ->  <i class={TRIGGER_ICON[...]} />
<i className={`fe fe-${props.icon}`}  ->  <i className={`icon-${props.icon}`}
etc.
  • Aktualisierung der einfachen und dynamischen cx():
cx('fe', 'fe-x-square', styles.iconUnselectAll)  ->  cx('icon-square-x', styles.iconUnselectAll)
cx('btn btn-sm btn-secondary', 'fe', 'fe-pause', {  ->  cx('btn btn-sm btn-secondary', 'icon-pause', {
etc.
  • Entfernen der import cx, die nicht mehr notwendig sind
  • Ersetzen des svg-Icons für das signal (LQI) durch die Lucide-Webfont mit Anpassung der Größe in dashboard.css, die mir zu klein war. NOTA: Ich habe die Referenzdateien zu den svgs nicht gelöscht.
  • Hinzufügen mehrerer Icons im Icon-Selector für Szenen, von etwa 260 Icons auf 470. Man kann hinzufügen/entfernen, ich habe eine vollständige Liste der Namen. Und für @Will_71, es gibt Schneeflocken für deinen Thermostat :wink:
  • Aktualisierung für den Dark-Mode
  • Ein Tippfehler wurde für day.weather_icon korrigiert, der day.weatherIcon sein sollte
  • Änderung der Version von theme-optimized in der package.json von /front.

Ich hoffe, dass alles in Ordnung ist und für Fragen verfügbar :slight_smile:

Ah da ist ein Fortschritt, der zwar simpel, aber wirklich nett ist, finde ich!!

Hallo @mutmut,

Danke für das PR :slightly_smiling_face:

Ich habe den Code noch nicht im Detail angesehen, aber mir kommen ein paar Fragen in den Sinn:

  • Hast du die Migration der bestehenden Szenen vorgesehen?
  • Bei 470 Icons, bleibt die Icon-Auswahlansicht in den Szenen leicht bedienbar?
  • Hast du das selbst entwickelt, oder mit Hilfe einer KI? Falls ja, welches Modell hast du verwendet?

Danke!

Hallo @pierre-gilles

nein, daran habe ich überhaupt nicht gedacht.
Aber welche Icons meinst du? Die, die über den Namen der Szenen sind oder andere, von denen ich nichts weiß?

Das ist immer noch gut bedienbar. Ich habe absichtlich eine Obergrenze von 500 festgelegt, als ich Claude bat, eine Auswahl für die zusätzlichen Icons zu treffen.

Und ich habe mir von der Claude-App auf dem Mac, Modell Sonnet 4.6, helfen lassen, indem ich die Suche nach den „fe“ mehrmals wiederholt habe.

Das müssen die Icons sein, die in der Datenbank für jede bereits erstellte Szene gespeichert sind.

da weiß ich wirklich nicht, wie ich das machen soll :flushed_face:

Auf der Demo-Website gibt es in den Szenen eine mit einer Glocke, und nach dem Wechsel der Webfont war die Glocke immer noch da.
Ich sollte versuchen, die Glocke durch alert-triangle zu ersetzen, das den Namen in triangle-alert ändert (oder umgekehrt), um zu sehen, was passiert.

EDIT: Letztendlich ist das kein gutes Beispiel, da die Glocke hart in der demo.js definiert ist:

Ich habe gerade die Migration von theme-optimized mit dem Migrationsskript und Berichten überarbeitet, @pierre-gilles hier ist der PR:

Ich werde versuchen, dasselbe für den Austausch der fe im Repository Gladys zu tun, zunächst damit es klarer und reproduzierbarer ist, im Gegensatz zu meinen Schritten, die ich durchgeführt habe. Anschließend werde ich versuchen, das Migrationsskript für die Szenen-Icons zu erstellen.

@mutmut ich bin mir nicht sicher, ob wir über dasselbe reden :slight_smile:

Die Szenen werden in der Datenbank gespeichert, und wenn man von Feather zu Lucide wechseln möchte, muss man in Gladys eine Datenbankmigration codieren, die alle alten Icon-Namen in die neuen umwandelt… Aber das ist schon recht technisch, ich bin mir dessen bewusst :grimacing:

ja ja, wir reden von derselben Sache.
Ich habe diese liebe KI gefragt, ob die Symbole in der Datenbank gespeichert sind, und die Antwort war positiv, in der Tabelle t_szenen im Speicher.

Also werde ich nach einem sauberen Skript suchen, das in den Gladys-Dateien ersetzt, und einem Skript zum Ersetzen der Symbole in der Datenbank.

Aber zunächst müsste man theme-optimized validieren, wenn du Zeit hast

Hallo @pierre-gilles
glaubst du, dass wir (also vor allem du :wink:) die Entwicklung wieder aufnehmen können?
Ein bisschen Fable und Cursor und schon ist es erledigt :sweat_smile:

Hallo!

100 % meiner verfügbaren Zeit verbringe ich momentan mit externen Integrationen :slightly_smiling_face: Dort denke ich, habe ich den größten Impact.