use gradient instead of range for opacity
icons and fnctionality