Arc Rider Docs · Markdown

Premium Widgets

Custom Slider

Custom Slider

AI Defaults
Function name
`arcCustomSlider`.
Purpose
Ein Wertregler (0–100 oder eigener Bereich) zum Ziehen per Maus/Touch – **kein** Bild-/Content-Slideshow-Widget. Für Bildergalerien: arcCustomSlideshow.
recordId + fieldId
Nur nötig, wenn der Wert automatisch gespeichert werden soll. Ohne beide Felder wird beim Loslassen **nicht** persistiert.
Persistence
Speichern läuft über **Action Performer** (`type: "update"` mit `recordId` / `field` / `value`). React: `onAction` — kein globales `database`.
value / min / max / step
Default `0` / `0` / `100` / `1`.
valueDisplay.show
Default `true` (Zahlenwert wird angezeigt). `false` blendet die Zahl aus.
statusDisplay
Optionales Array für Icons + dynamische Einfärbung je Schwellenwert (z. B. 🔥 ab 80). Leeres Array oder weglassen = keine Icons.

Custom Slider

Con arcCustomSlider construyes un regulador de valores interactivo en Ninox — basado en JavaScript puro, no en el input range nativo de HTML. El usuario arrastra el botón del regulador (thumb) con el ratón o el dedo, o hace clic directamente en la barra (track) para fijar el valor.

Esto puedes controlar:

  • Rango de valores (min, max, step)
  • Apariencia del track, del fill (área rellenada) y del thumb
  • Visualización del valor numérico actual (mostrar/ocultar)
  • Iconos dinámicos + coloración según umbral (p. ej. semáforo de estado)
  • Guardado automático en un campo de Ninox al soltar

Código de aplicación

arcCustomSlider({
    value: current.Fortschritt,
    min: 0,
    max: 100,
    step: 1,
    width: "300px",
    height: "50px",
    recordId: current.Nr,
    fieldId: fieldId("Aufgaben", "Fortschritt"),
    track: {
        height: "6px",
        borderRadius: "3px",
        backgroundColor: "#E9ECF4"
    },
    fill: {
        backgroundColor: "#4970ff"
    },
    thumb: {
        width: "20px",
        height: "20px",
        backgroundColor: "#ffffff",
        borderColor: "#ccc",
        borderWidth: "2px",
        borderRadius: "50%"
    },
    valueDisplay: {
        show: true,
        color: "#515971",
        fontSize: "14px"
    },
    statusDisplay: [{
            label: "🔥",
            value: 80,
            color: "#ff4444"
        }, {
            label: "✓",
            value: 50,
            color: "#4CAF50"
        }, {
            label: "⚠",
            value: 20,
            color: "#ff9800"
        }]
})

Parámetros

value / min / max / step

Tipo: number Default: 0 / 0 / 100 / 1

Valor actual, rango de valores y tamaño de paso. value se establece una vez al cargar — la vinculación con el campo de Ninox la gestionas tú mismo (p. ej. value: current.Fortschritt).

value: 50,
min: 0,
max: 100,
step: 1,

width / height

Tipo: text

Tamaño de todo el contenedor del slider.

width: "300px", // oder "100%"
height: "50px",

recordId / fieldId

Tipo: text Opcional, pero ambos son necesarios para el guardado automático

Al soltar el regulador (mouseup/touchend) se dispara — solo si ambos están establecidos — una acción de Action Performer { type: "update", recordId, field: fieldId, value } (Ninox lo mapea a database.update; en React mediante onAction).

recordId: current.Nr,
fieldId: fieldId("Aufgaben", "Fortschritt"),

💡 Nota: Si falta uno de los dos campos, no se persiste — pero el valor no se pierde en la interfaz.

Bloque: track{}

Tipo: object Opcional

Estilo de la barra del regulador (fondo de toda la pista).

<figure><table><tbody><tr><th>Feld

</th><th>Beschreibung

</th></tr><tr><td>height

</td><td>Altura del track, p. ej. "6px"

</td></tr><tr><td>backgroundColor

</td><td>Color del track, p. ej. "#E9ECF4"

</td></tr><tr><td>borderRadius

</td><td>Border-radius del track, p. ej. "3px"

</td></tr></tbody></table></figure>

Bloque: fill{}

Tipo: object Opcional

Estilo del área rellenada entre el inicio y el valor actual.

fill: {
    backgroundColor: "#4970ff"
}

Bloque: thumb{}

Tipo: object Opcional

Estilo del botón del regulador.

<figure><table><tbody><tr><th>Feld

</th><th>Beschreibung

</th></tr><tr><td>width / height

</td><td>Tamaño del botón, p. ej. "20px"

</td></tr><tr><td>backgroundColor

</td><td>Color de relleno del botón

</td></tr><tr><td>borderColor / borderWidth / borderRadius

</td><td>Borde del botón, p. ej. borderRadius: "50%" para redondo

</td></tr></tbody></table></figure>

Bloque: valueDisplay{}

Tipo: object Default: { show: true }

Controla la visualización del valor numérico actual junto al/bajo el regulador.

valueDisplay: {
    show: true,       // false blendet die Zahl komplett aus
    color: "#515971",
    fontSize: "14px"
}

statusDisplay

Tipo: array of objects Opcional

Muestra un icono/símbolo en cuanto el valor actual alcanza un umbral — además cada estado puede recolorear track/fill/thumb. Las entradas se ordenan internamente de forma descendente por value; gana el umbral más alto alcanzado.

<figure><table><tbody><tr><th>Feld

</th><th>Beschreibung

</th></tr><tr><td>label

</td><td>Icono o texto, p. ej. "🔥", "✓", "⚠", "✕"

</td></tr><tr><td>value

</td><td>Umbral — a partir de este valor se activa el estado

</td></tr><tr><td>color

</td><td>Color del texto del icono

</td></tr><tr><td>track / fill / thumb

</td><td>Opcional: misma estructura que arriba, sobrescribe el estilo estándar para este estado (con !important)

</td></tr></tbody></table></figure>

statusDisplay: [{
    label: "🔥",
    value: 80,
    color: "#ff4444",
    fill: { backgroundColor: "#ff4444" }
}, {
    label: "✓",
    value: 50,
    color: "#4CAF50"
}]

💡 Consejo: Array vacío (statusDisplay: []) u omitirlo = sin iconos, solo el regulador puro con el valor numérico.

Widget relacionado

Para galerías de imágenes, carruseles de contenido o diapositivas de texto de varias páginas con gesto de swipe usa en su lugar <a href="/documentation/custom-slideshow"><code>arcCustomSlideshow</code></a> — a pesar del nombre similar, es un widget completamente distinto.