You might like this plugin:
https://sw-guide.de/wordpress/plugins/maintenance-mode/
But if you’re developing a whole theme to a live site, there are better approaches. One is to work on it only locally on your computer — you can set up a local server. When I work on just the CSS of a site (if I’m not changing the templates or other coding), I simply copy the source of the generated page from the live site, save it as a file, and open in my HTML editor. I make changes in the CSS and examine the outcome in the browser. I only upload the changed CSS file when I’m happy with the changes.
Another thing I do is set up a demo site in a folder on my regular domain, and password protect it. I can work on the site in any way I choose, changing templates, adding plugins, altering the CSS. When I’m done, I transfer over the changes to the live site (which can be a bit tricky depending on how much my demo site has diverged from the live site).
I do NOT recommend editing the files from within the WordPress admin panel. It’s easy to screw up your site that way. Use an HTML editor and work on a copy of the site.