Here's half an answer.
The reason that it is half an answer is because of the way that beamer builds a frame. In essence, the stuff on a frame can be divided in to "frame" and "content". The "frame" component is actually typeset by hooking in to the headers and footers bit of TeX's output routine. This ensures that it goes behind the actual content. The "content" is then rendered afterwards.
The "frame" component consists of all the stuff like backgrounds, sidebars, and so forth. Interestingly, the frame title is part of the "content".
What I've worked out so far is the order in which the "frame" stuff is laid out, and (mostly) what it consists of. To follow the trail, you need to look at the definition of \ps@navigation
in beamerbaseframecomponents.sty
and search for everywhere it has a \usebeamertemplate
(though you have to be on the lookout for calls to other functions that also call templates).
Exactly what each piece is and how it is to be used is covered in the manual (section 8.2) as Matthew says, but that doesn't tell you the order (well, not obviously) and on the basis that a picture is worth a thousand words anyway, I thought that the following pictures might help.
First, a frame itself:
![A beamer frame](https://i.stack.imgur.com/Uvzur.png)
And now the exploded diagram, at least as far as the "frame" part goes.
![An exploded frame](https://i.stack.imgur.com/bemVB.png)
It's not quite the same as I didn't take apart the templates and reuse them, but hopefully each bit is unique enough to show what it is.
With regard to the content, then there's less need to do the "explosion" because stuff tends not to get put on top of other stuff, so then it's just a question of knowing what can go in to a frame. The exception is, perhaps, the frame title which one could consider as part of the "frame" part but which, by reason of implementation, is in the "content" part. So for that, reading the beamer
user guide is probably as good as you're going to get.
I shan't put the code for doing the above. It isn't pleasant! Nor is it readily adaptable to other situations.
This should work as you expect:
\documentclass{beamer}
\setbeamertemplate{itemize items}[circle]
\setbeamercolor{itemize item}{fg=black}
\setbeamercolor{section in head/foot}{fg=white, bg=black}
\setbeamerfont{frametitle}{size=\small}
\setbeamertemplate{navigation symbols}{ }
\usefonttheme{serif}
\setbeamercolor{frametitle}{fg=white,bg=black}
\setbeamercolor{mini frame}{fg=white}
\makeatletter
\def\insertsubsectionnavigationhorizontal#1#2#3{%
\hbox to #1{{%
\usebeamerfont{subsection in head/foot}\usebeamercolor[fg]{subsection in head/foot}
\beamer@currentsubsection=0%
\def\sectionentry##1##2##3##4##5{}%
\def\slideentry##1##2##3##4##5##6{%
\ifnum##6=\c@part\ifnum##2>0\ifnum##3>0%
\beamer@tempdim=-\beamer@vboxoffset%
\advance\beamer@tempdim by-\beamer@boxsize%
\multiply\beamer@tempdim by\beamer@ypos%
\advance\beamer@tempdim by -1cm%
\raise\beamer@tempdim\hbox to 3pt{
\beamer@link(##4){%
\usebeamerfont{mini frame}%
\ifnum\c@section=##1%
\ifnum\c@subsection=##2%
\usebeamercolor[fg]{mini frame}%
\ifnum\c@subsectionslide=##3%
\usebeamertemplate{mini frame}%\beamer@minislidehilight%
\else%
\usebeamertemplate{mini frame in current subsection}%\beamer@minisliderowhilight%
\fi%
\else%
\usebeamercolor{mini frame}%
%\color{fg!50!bg}%
\usebeamertemplate{mini frame in other subsection}%\beamer@minislide%
\fi%
\else%
\usebeamercolor{mini frame}%
%\color{fg!50!bg}%
\usebeamertemplate{mini frame in other subsection}%\beamer@minislide%
\fi%
}\hskip-10cm plus 1fil%
}
\fi\fi\else%
\fakeslideentry{##1}{##2}{##3}{##4}{##5}{##6}%
\fi
\ignorespaces
}%
#2\hskip.3cm\setbox\beamer@sectionbox=\hbox{}%
\hskip-1.875ex\dohead%
\box\beamer@sectionbox\hfil\hskip.3cm%
#3
}}
}
\makeatother
\setbeamertemplate{frametitle}
{\nointerlineskip
\leavevmode
\vbox{%
\begin{beamercolorbox}[wd=\paperwidth,ht=3ex,dp=1ex]{frametitle}%
\raggedright\hspace*{1em}\insertframetitle
\end{beamercolorbox}\nointerlineskip
\begin{beamercolorbox}[wd=\paperwidth,ht=1ex,dp=1ex]{frametitle}%
\insertsubsectionnavigationhorizontal{\paperwidth}{\hfill}{\hfill}
\end{beamercolorbox}
}%
}
\begin{document}
\section{Some Amazing Presentation}
\subsection{Subsection 1}
\begin{frame}{MWE $\vert$ Some Amazing Presentation}
\begin{itemize}
\item This is a really amazing presentation, demonstrating a MWE
\item Very impressive
\end{itemize}
\end{frame}
\section{The Second Part}
\subsection{Subsection 1}
\begin{frame}{MWE $\vert$ The Second Part}
\begin{itemize}
\item The second part of this presentation is even better
\item It was really worth waiting for
\end{itemize}
\end{frame}
\begin{frame}{MWE $\vert$ The Second Part}
\begin{itemize}
\item Lots of things to say
\item these things are interesting
\end{itemize}
\end{frame}
\begin{frame}{MWE $\vert$ The Second Part}
\begin{itemize}
\item blah blah blah
\item la la la
\end{itemize}
\end{frame}
\section{The End}
\subsection{Subsection 1}
\begin{frame}{MWE $\vert$ The End}
\begin{itemize}
\item But the end is really the best part
\end{itemize}
\end{frame}
\end{document}
![enter image description here](https://i.stack.imgur.com/Bsy2r.gif)
The above solution needs:
- A rewrite of the default mini frame navigation so that no section names are printed (the part between
\makeatletter
and \makeatother
).
- A custom
frame title
template that embeds the new navigation system (the \setbeamertemplate{frametitle}
macro).
Note that in your MWE there were no subsections, which are necessary for the mini frame navigation to work properly. If you don't want/need subsections, just introduce a dummy single subsection for every section (you can also exclude it from the toc).
With a single subsection for section greyed out bullets will indicate frames from other sections, since every section contains a single subsection.
Best Answer
As samcarter mentioned in the comments,
\frametitle
offers you more options.From this Beamer User Guide (page 73):