page transition & abstract common component