First of all you decide size and gradient, then what happen when the mouse is over the button, and what happen if button is clicked.
See this example:
REBOL [Title: "Ellipse Demo" ]
view layout [
a: box red "Click me" 100x50
effect [gradient 0x1 red black oval silver ]
over: func [face into pos] [
face/effect: pick [
[gradient 0x-1 red black oval silver ]
[gradient 0x1 red black oval silver ]
engage: func [face action event][
if action = 'down [
face/effect: [ oval silver ]
The code above make a button that invert the gradient when mouse is over it, it becomes red when is pressed.
Your only limit is your imagination.
I suggest you to test the following effects: