I'd like to build a custom Drupal form (not using webform) to use as a contribution form and want to know if it is possible to integrate it with CiviCRM. I am not very familiar with Civi's Api capability, so want to ask to make sure it is doable before I jump in... Do you know of an existing example of such a form?
So this is definitely possible. I'm assuming that you asking the question, you have some Drupal FAPI experience.
If you have CiviCRM installed already check out the API explorer, and check out the Contribution entity, transact action
Documentation of this API is spotty to non-existent, but its powerful, and works.
There is actually a sophisticated example of using this API call for Event Registrations in the CiviCRM Entity project, CiviCRM Entity Price Field submodule https://www.drupal.org/project/civicrm_entity
The code there is a little complex, and your requirements may be simpler, but come into the civicrm entity channel on CiviCRM's Mattermost chat at https://chat.civicrm.org and ping @jackrabbithanna and I can help you get started.
I think your question has CiviCRM Entity written all over it! You can create displays - do display suite layouts.