Skip to content

Color-Picker

Mit dem Color-Picker-Modul bringst du Farbe in deine Anwendungen und ermöglichst eine intuitive, visuelle Gestaltung deiner Daten. Egal ob für feingliedrige Design-Einstellungen oder klare Status-Markierungen – unser Modul bietet die perfekte Balance zwischen höchster Präzision und maximaler Benutzerfreundlichkeit. Wie bei allen unseren Modulen stehen dabei Performance und Flexibilität an erster Stelle.

Funktion und Aussehen

Der Color-Picker ist flexibel konzipiert und passt sich nahtlos deinem Interface an. Du hast die Wahl zwischen zwei grundlegenden Darstellungsformen:

  • Feld-Modus (Dialog): Ähnlich zum klassischen Ninox-Design zeigt das Modul ein rundes Farbfeld, das erst bei Klick des Nutzers den Auswahldialog öffnet. Ideal für platzsparende und aufgeräumte Formulare.
  • Direkt-Modus (Container): Der Picker wird direkt als dauerhaft sichtbares Element (Farbraster und Eingabefelder) eingebettet. Perfekt für Dashboards oder Konfigurationsseiten, auf denen Schnelligkeit zählt.

Die verschiedenen Elemente des Color-Pickers können sowohl über Inline-Styles mit dem Styles-Key oder über den Classes-Key mit eigenen globalen Classes gestaltet werden. Dadurch hast du die volle Kontrolle über das Aussehen des Moduls.

Individuelle Farbpalette

Mit dem Color-Picker-Modul kannst du eine individuelle Farbpalette definieren. Nutze dabei eigene Farbcodes oder greife auf unsere vorkonfigurierten Presets wie GIPColorPresetNinox, GIPColorPresetVibrant oder GIPColorPresetPastel zurück. Diese Presets sind als CSS-Variablen im :root-Bereich definiert und können über deinen eigenen CSS-Code angepasst werden. Mit Trennlinien (-) verleihst du deiner Farbpalette eine klare Struktur. Zusätzlich kann der Nutzer mit dem nativen Farb-Dialog des Browsers eine Farbwahl treffen oder manuell einen Farbcode in das Textfeld eingeben. Der Farbcode wird automatisch validiert und der Nutzer kann sogar zwischen den verschiedenen Farbformaten wechseln. Für die Farbpalette und Nutzereingaben werden die folgenden Farbformate unterstützt:

  • HEX (inklusive Alpha-Kanal für Transparenz)
  • RGB / RGBA
  • HSL / HSLA

Aktuelle Farb-Presets

Die folgenden Farb-Presets haben wir für dich als CSS-Variablen im :root-Bereich hinterlegt. Du kannst diese über GIP_customCSS() anpassen oder eigene Presets hinzufügen:

GIPColorPresetNinox(29 colors)
GIPColorPresetVibrant(9 colors)
GIPColorPresetVintage(11 colors)
GIPColorPresetBright(11 colors)
GIPColorPresetMacarons(20 colors)
GIPColorPresetInfographic(15 colors)
GIPColorPresetRoma(20 colors)
GIPColorPresetTropical(10 colors)
GIPColorPresetBeeInspired(7 colors)
GIPColorPresetBlue(8 colors)
GIPColorPresetCaravan(8 colors)
GIPColorPresetCarp(8 colors)
GIPColorPresetMixed(10 colors)
GIPColorPresetOcean(8 colors)
GIPColorPresetPastel(10 colors)
GIPColorPresetGray(6 colors)
GIPColorPresetGreen(8 colors)
GIPColorPresetHelianthus(10 colors)
GIPColorPresetJazz(9 colors)
GIPColorPresetLondon(8 colors)
GIPColorPresetLavender(6 colors)
GIPColorPresetRed(7 colors)
GIPColorPresetRedVelvet(8 colors)
GIPColorPresetRoyal(8 colors)
GIPColorPresetSakura(5 colors)
GIPColorPresetTech(6 colors)

Werte zwischenspeichern mit einer Form-ID

Das Color-Picker-Modul ist vollständig kompatibel mit unserem Form-System. Das bedeutet, du kannst eine formId angeben, um die Eingabe eines Benutzers temporär im Browser zwischenzuspeichern, anstatt sie sofort in ein Ninox-Feld zu schreiben. Das ist besonders nützlich bei komplexen Formularen, bei denen der Benutzer erst am Ende alle Eingaben mit einem einzigen Klick speichern soll.

Um die zwischengespeicherten Werte aller Felder eines Formulars in die entsprechenden Ninox-Felder zu schreiben, nutzt du ein GIP-Element mit dem actions-Key (z.B. einen Button) und dem Script-Type submitGIPform.

Modulcode

json
GIP_colorPicker({
   uniqueId: "myUniqueName" + Nr,
   embedded: true,
   recordId: raw(Nr),
   fieldId: "",
   value: *any*,
   colorContainer: {
   	colorPalette: [""],
   },
})
json
GIP_colorPicker({
   uniqueId: "myUniqueName" + Nr,
   embedded: true,
   recordId: raw(Nr),
   fieldId: "",
   style: "",
   value: *any*,
   colorField: {
   	style: "",
   },
   colorContainer: {
   	style: "",
   	colorPalette: [""],
   },
   contentEditable: true,
})
json
GIP_colorPicker({
   uniqueId: "myUniqueName" + Nr,
   embedded: true,
   recordId: raw(Nr),
   fieldId: "",
   formId: "myForm" + Nr,
   class: "",
   style: "",
   value: *any*,
   colorField: {
   	class: "",
   	style: "",
   },
   colorContainer: {
   	class: "",
   	style: "",
   	colorPalette: [""],
   },
   contentEditable: true,
})
json
GIP_colorPicker({
   uniqueId: "",
   embedded: {
   	height: "",
   	styleHtml: "",
   	styleStri: "",
   	styleFn: "",
   	styleLabel: "",
   	styleComp: "",
   	presets: "",
   },
   recordId: "",
   fieldId: "",
   formId: "",
   class: "",
   style: "",
   value: *any*,
   colorField: {
   	class: "",
   	style: "",
   },
   colorContainer: {
   	class: "",
   	style: "",
   	colorPalette: [""],
   },
   label: {
   	class: "",
   	style: "",
   	value: *any*,
   	orientation: "",
   },
   contentEditable: true,
})
json
html( raw(GIP_master({})) + 
raw(GIP_colorPicker({
   uniqueId: "",
   embedded: {
   	height: "",
   	styleHtml: "",
   	styleStri: "",
   	styleFn: "",
   	styleLabel: "",
   	styleComp: "",
   	presets: "",
   },
   recordId: "",
   fieldId: "",
   formId: "",
   class: "",
   style: "",
   value: *any*,
   colorField: {
   	class: "",
   	style: "",
   },
   colorContainer: {
   	class: "",
   	style: "",
   	colorPalette: [""],
   },
   label: {
   	class: "",
   	style: "",
   	value: *any*,
   	orientation: "",
   },
   contentEditable: true,
})
))

Key-Table

arrow_rightuniqueIdRequired
string
Default: -
Eindeutige Kennung des eingesetzten Moduls. Ideal ist eine Kombination aus Text und der Record-ID, also z.B.: uniqueId: "LayoutÜberschrift" + Nr
Ist die ID nicht einzigartig, kann es zu Fehlern bei Anzeige und Funktion der eingesetzten Module in der Tabelle kommen.
arrow_rightembeddedRequired
boolean, object
Default: false
Wenn des Modul in einem anderen Modul eingebettet ist, wird der boolesche Wert true eingetragen.
Liegt das Modul alleine, bzw. als äußerster Container in einem Formelfeld, kann entweder false oder ein Object mit Angaben zur Höhe und Styling des Formelfeldes angegeben werden.
arrow_rightheight
string
Default: "auto"
Höhe des Moduls in Pixeln (px).
arrow_rightstyleHtml
string
Default: "padding: 0 !important; user-select: none !important; -webkit-user-select: none !important; -ms-user-select: none !important; background: none !important; border-radius: 0px !important; height: auto; min-height: 34px !important;"
Inline CSS-Styling des Html-Containers des Formel-Feldes, in dem die GIP-Module liegen.
arrow_rightstyleStri
string
Default: "background: none !important; border: 0 !important;"
Inline CSS-Styling des Stringeditor-Containers des Formel-Feldes, in dem die GIP-Module liegen.
arrow_rightstyleFn
string
Default: -
Inline CSS-Styling des FnEditor-Containers des Formel-Feldes, in dem die GIP-Module liegen.
arrow_rightstyleLabel
string
Default: -
Inline CSS-Styling des Labels des Formel-Feldes, in dem die GIP-Module liegen.
arrow_rightstyleComp
string
Default: -
Inline CSS-Styling des Component-Containers des Formel-Feldes, in dem die GIP-Module liegen.
arrow_rightpresets
string
Default: -
Mit diesem Key können Voreingestellte, besondere Stylings übergeben werden. Die aktuell verfügbaren sind:
  • paddingless: Entfernt Paddings des Ninox-Formelfeldes.
  • borderless: Entfernt Paddings sowie den Titel des Ninox-Formelfeldes und skaliert es auf 100% der Seiten-Höhe.
  • fullscreen: Entfernt die Ninox-Kopfleiste des Records (enthält Tabs, Schließen-Button, Anhänge, Kommentare und Änderungsverlauf). Für eine vollständige Vollbild-Ansicht muss der Record entweder mit der Ninox Funktion "openFullscreen()" oder dem GIP-Action-Type "openFullscreen" geöffnet werden.
Nach Ändern der Presets sollte die Ansicht neu geladen werden. Den Ninox-Tab zu wechseln reicht.
arrow_rightrecordIdRequired
string
Default: -
ID des Ziel-Records.
arrow_rightfieldIdRequired
string
Default: -
ID des Ziel-Feldes.
arrow_rightformId
string
Default: -
Wenn eine Form-ID angegeben wird, wird der in ein GIP-Feld eingegebene Wert nicht direkt in das verknüpfte Ninox-Feld, sondern in den Session Storage des Browsers geschrieben. Der Wert wird also zwischengespeichert, bis er tatsächlich in Ninox eingetragen werden soll. Es können mehrere GIP-Felder gleichzeitig Daten unter derselben Form-ID speichern.
Mit der Funktion submitGIPform (siehe actions-Key) können alle Werte, die unter der Form-ID gespeichert wurden, wieder aus dem Session Storage gelesen und in die entsprechenden Ninox-Felder geschrieben werden.
arrow_rightclass
string
Default: -
Styling des Moduls mithilfe der in GIP_globalCSS vordefinierten CSS-Stylings (siehe globaler GIP-Modul-Code). Um mehrere CSS-Stylings zu referenzieren, werden die Class-Namen einfach mit Leerzeichen als String aneinandergereiht.
arrow_rightstyle
string
Default: Siehe <a href="/GlobalerCSS-Code">Globaler CSS-Code</a>
Inline CSS-Styling des Moduls oder Elements.
arrow_rightvalueRequired
any
Default: -
Eingabe des gewünschten Wertes.
arrow_rightcolorField
object
Default: -
arrow_rightclass
string
Default: -
Styling des Moduls mithilfe der in GIP_globalCSS vordefinierten CSS-Stylings (siehe globaler GIP-Modul-Code). Um mehrere CSS-Stylings zu referenzieren, werden die Class-Namen einfach mit Leerzeichen als String aneinandergereiht.
arrow_rightstyle
string
Default: Siehe <a href="/GlobalerCSS-Code">Globaler CSS-Code</a>
Inline CSS-Styling des Moduls oder Elements.
arrow_rightcolorContainer
object
Default: -
arrow_rightclass
string
Default: -
Styling des Moduls mithilfe der in GIP_globalCSS vordefinierten CSS-Stylings (siehe globaler GIP-Modul-Code). Um mehrere CSS-Stylings zu referenzieren, werden die Class-Namen einfach mit Leerzeichen als String aneinandergereiht.
arrow_rightstyle
string
Default: Siehe <a href="/GlobalerCSS-Code">Globaler CSS-Code</a>
Inline CSS-Styling des Moduls oder Elements.
arrow_rightcolorPalette
array of strings
Default: ["transparent"]
arrow_rightlabel
object
Default: -
Die Label der Tabs werden nebeneinander (Modul direction: "horizontal"), bzw. untereinander (Modul direction: "vertical") angezeigt. Im label-Objekt werden für jeden Tab Wert, Styling und Aktionen bei Interaktion mit dem Label angegeben.
arrow_rightclass
string
Default: -
Styling des Moduls mithilfe der in GIP_globalCSS vordefinierten CSS-Stylings (siehe globaler GIP-Modul-Code). Um mehrere CSS-Stylings zu referenzieren, werden die Class-Namen einfach mit Leerzeichen als String aneinandergereiht.
arrow_rightstyle
string
Default: Siehe <a href="/GlobalerCSS-Code">Globaler CSS-Code</a>
Inline CSS-Styling des Moduls oder Elements.
arrow_rightvalueRequired
any
Default: -
Eingabe des gewünschten Wertes.
arrow_rightorientation
string
Default: "top"
Gibt die Anordnung an. Zur Auswahl stehen die Schlüsselwörter "left", "right", "bottom" und "top".
arrow_rightcontentEditable
boolean
Default: true
Bestimmt, ob der Inhalt eines Input-Feldes bearbeitet werden darf (true) oder nicht (false).

Beispiele

Color-Picker: Basis

Beschreibung

Wir möchten einen Color-Picker einbauen, der wie die Ninox-Farbauswahl einen Dialog öffnet.

Wir geben dem Color-Picker-Element zunächst die folgenden Werte:

json
GIP_colorPicker({
	uniqueId: "Auswahl Mit Dialog" + Nr,
	embedded: true,
	contentEditable: true,
	class: "",
	style: "",
	recordId: raw(Nr),
	fieldId: fieldId(this, "Farbe"),
	value: Farbe
})

Zusätzlich müssen wir festlegen, welche Farben zur Auswahl stehen sollen in der Farb-Palette des Dialogs. Andernfalls wird nur "transparent" (also farblos) als Option angezeigt. In diesem Beispiel möchten wir als erstes die Standard-Ninox-Farben anzeigen. Diese können wir ganz einfach mit dem Farb-Preset "GIPColorPresetNinox" übergeben.

Danach wollen wir noch weitere Optionen für die Palette festlegen und trennen die einzelnen Abschnitte mit einer horizontalen Linie, indem wir "-" als Element im Array übergeben.

json
GIP_colorPicker({
	uniqueId: "Auswahl Mit Dialog" + Nr,
	embedded: true,
	contentEditable: true,
	class: "",
	style: "",
	recordId: raw(Nr),
	fieldId: fieldId(this, "Farbe"),
	value: Farbe,
	colorContainer: {
		class: "",
		style: "",
		colorPalette: ["GIPColorPresetNinox", "-", "red", "-", "GIPColorPresetVibrant", "-", "#FF0000", "#FF7F00", "#FFFF00", "#00FF00", "#0000FF", "#4B0082", "#EE82EE"]
	}
})

Schlussendlich vergeben wir noch ein Label und setzen "colorField" auf true, damit sich der Color-Picker-Container im Dialog öffnet und nicht direkt eingebettet wird.

Code des Beispiels
json
html(raw(GIP_master({})) +
raw(GIP_colorPicker({
	uniqueId: "Auswahl Mit Dialog" + Nr,
	embedded: false,
	contentEditable: true,
	class: "",
	style: "",
	recordId: raw(Nr),
	fieldId: fieldId(this, "Farbe"),
	value: Farbe,
	label: {
		class: "",
		style: "color: orange;",
		value: "GIP Color Picker",
		orientation: ""
	},
	colorField: true,
	colorContainer: {
		class: "",
		style: "",
		colorPalette: ["GIPColorPresetNinox", "-", "red", "-", "GIPColorPresetVibrant", "-", "#FF0000", "#FF7F00", "#FFFF00", "#00FF00", "#0000FF", "#4B0082", "#EE82EE"]
	}
})
))
json
GIP_colorPicker({
	uniqueId: "Auswahl Mit Dialog" + Nr,
	embedded: true,
	contentEditable: true,
	class: "",
	style: "",
	recordId: raw(Nr),
	fieldId: fieldId(this, "Farbe"),
	value: Farbe,
	label: {
		class: "",
		style: "color: orange;",
		value: "GIP Color Picker",
		orientation: ""
	},
	colorField: true,
	colorContainer: {
		class: "",
		style: "",
		colorPalette: ["GIPColorPresetNinox", "-", "red", "-", "GIPColorPresetVibrant", "-", "#FF0000", "#FF7F00", "#FFFF00", "#00FF00", "#0000FF", "#4B0082", "#EE82EE"]
	}
})