REBOL [
    Title: "REBOL Standard Colors"
    Date: 31-Mar-2001
    Version: 1.0.1
    File: %color-names.r
    Author: "Carl Sassenrath"
    Purpose: "Displays the official built-in REBOL named colors."
    Email: carl@rebol.com
    library: [
        level: 'intermediate 
        platform: none 
        type: 'tool 
        domain: [GUI] 
        tested-under: none 
        support: none 
        license: none 
        see-also: none
    ]
]

colors:  [
    black  blue    navy   orange gold    tan
    coal   green   leaf   forest brown   coffee
    gray   cyan    teal   aqua   water   sky
    pewter red     maroon brick  crimson pink
    silver magenta purple violet papaya  rebolor
    snow   yellow  olive  oldrab khaki   mint
    white  ivory   linen  beige
]

out: [
    style btn button font-size 11 100x38 [sc/color: face/color show sc]
    across
]

cnt: 1
foreach color colors [
    repend out ['btn color reform [color newline get color]]
    if zero? cnt // 6 [append out 'return]
    cnt: cnt + 1
]

append out [
    sl: slider 208x38 "Multiplier" font [
        color: silver align: 'center valign: 'middle shadow: none][
        mult-color value
    ]
    return
    sc: box 650x80 font-size 12 "Click a color to show it here" return
    button 650x40 black "Click here for custom color" [
        face/color: request-color/color any [face/color gray]
        face/texts: reduce [reform face/color]
        show face
    ]
]

mult-color: func [factor /local clr n m d] [
    n: 1
    m: max 1 to-integer factor - .5 * 8
    d: max 1 to-integer .5 - factor * 8
    sl/text: reform either factor > .5 [["times" m]][["divided by" d]]
    foreach color colors [
        clr: either factor > .5 [(get color) * m][(get color) / d]
        window/pane/:n/color: clr
        window/pane/:n/texts: reduce [reform [color newline clr]]
        n: n + 1
    ]
    show window
]

window: layout out
view window