Let's start from the beginning....
- First of all you must have a layout.
- Svarstyti design based on the layout
- Create a theme-based layout
Start with creating a file of styles style.css There to set the title of the topic, etc.
Then connect styles and scripts via functions.php (which you must create)
Create header.php footer.php sidebar.php according to the layout
Create templates index.php single.php page.php archive.php category.php etc.
If necessary, create the walker for the menu. This is usually required for example, for more the menu style or for connecting a bootstrap menu. (walker
Now, back to the point, what the customer wants from the admin area to change some theme settings.
It all depends on his budget and your capabilities.
The easiest option is the ACF plugin (integrate with your theme.) In the right places print custom fields and all.....
A more competent option to tie the theme framework. Frameworks pile of... wirite according to your taste. Example - https://ru.wordpress.org/plugins/redux-framework/
Well, if you need to draw a line, don't forget about the localization text domain... and prepare a pot po mo files for the theme, again according to the wishes and budget of the client)