Well, besides Social's example, SAUR uses interpolateBetween to make the login have the bouncing effect.
Here is an example, I took it from one of my codes and edited it a bit, but it should still work:
local sx, sy = guiGetScreenSize ( )
local width, height = 600, 500
local point_start = { (sx/2-width/2), -height }
local point_end = { (sx/2-width/2), (sy/2-height/2) }
addEventHandler ( "onClientRender", root, function ( )
if not startTime then
startTime = getTickCount ( )
end if not endTime then
endTime = getTickCount ( ) + 3000
end
local now = getTickCount()
local elapsedTime = now - startTime
local duration = endTime - startTime
local progress = elapsedTime / duration
x1, y1 = unpack ( point_start )
x2, y2 = unpack ( point_end )
local x, y, _ = interpolateBetween ( x1, y1, 0, x2, y2, 0, progress, "OutBounce" )
dxDrawRectangle ( x, y, width, height, tocolor ( 0, 0, 0, 150 ) )
end )