I would like to create a custom nested list environment in Beamer that automatically becomes the default list style for every frame, so that I can place all the definitions in the preamble instead of redefining them in each frame. My goal is for the bullet symbol to change shape at each nesting level, cycling through a circle, a square, and an equilateral triangle, and then repeating. I also want the text to become progressively smaller at deeper nesting levels while keeping the ratio between the bullet size and the text size constant.
So far, I have tried implementing this using TikZ and have adjusted the bullet sizes by eye. This approach works to some extent, but it is messy and imprecise. In particular, the bullet symbols do not quite align horizotnally with the beginning of the text, leaving a small but visible gap. In the screenshot I have attached, the misalignment is highlighted by a white rectangle with a red outline. I would like to eliminate this gap without manually fine-tuning the spacing, and I am hoping there is a more elegant solution to both the alignment issue, getting the size of the bullet proportionally correct for each level, getting the bullet for each level at the right vertical height (not too high or low) and the general structure of the nested lists.
I have included a minimal working example so the issue can be reproduced. Any suggestions for a cleaner and more automated approach would be greatly appreciated.
\documentclass[aspectratio=43,12pt]{beamer}
\usepackage{tikz}
\usetikzlibrary{shapes}
\usepackage{enumitem}
\setlistdepth{5}
\setlist{leftmargin = *}
% ---- TikZ bullets for enumitem with decreasing sizes ----
\newcommand{\mycircle}[2]{\tikz{\node[draw=#1,fill=#1,circle,minimum
width=#2,minimum height=#2,inner sep=0pt] at (0,0) {};}}
\newcommand{\mysquare}[2]{\tikz{\node[draw=#1,fill=#1,rectangle,minimum
width=#2,minimum height=#2,inner sep=0pt] at (0,0) {};}}
\newcommand{\mytriangle}[2]{\tikz{\node[draw=#1,fill=#1,isosceles
triangle,isosceles triangle stretches,shape border rotate=90,minimum
width=#2,minimum height=#2,inner sep=0pt] at (0,0) {};}}
% Apply to enumitem levels with decreasing sizes and font sizes
\setlist[itemize,1]{label=\raisebox{1.75pt}{\mycircle{blue}{4pt}}, before=\normalsize}
\setlist[itemize,2]{label=\raisebox{1.5pt}{\mysquare{blue}{3.5pt}}, before=\small}
\setlist[itemize,3]{label=\raisebox{1.25pt}{\mytriangle{blue}{3pt}}, before=\footnotesize}
\setlist[itemize,4]{label=\raisebox{1pt}{\mycircle{blue}{2.5pt}}, before=\scriptsize}
\setlist[itemize,5]{label=\raisebox{0.75pt}{\mysquare{blue}{2pt}}, before=\tiny}
\renewlist{itemize}{itemize}{5}
% Override Beamer's itemize font settings
\setbeamerfont{itemize/enumerate body}{size=\normalsize}
\setbeamerfont{itemize/enumerate subbody}{size=\small}
\setbeamerfont{itemize/enumerate subsubbody}{size=\footnotesize}
\setbeamersize{text margin left=1cm, text margin right=1cm}
\begin{document}
\begin{frame}[t]
Main text.
\begin{itemize}
\item Level 1 - Circle
\begin{itemize}
\item Level 2 - Square
\begin{itemize}
\item Level 3 - Triangle
\begin{itemize}
\item Level 4 - Circle
\begin{itemize}
\item Level 5 - Square
\end{itemize}
\end{itemize}
\end{itemize}
\end{itemize}
\end{itemize}
\end{frame}
\end{document}

enumitemwith beamer - beamer has its own mechanism to adjusts lists.