Skip to content

Instantly share code, notes, and snippets.

@loopspace
Created November 1, 2021 19:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save loopspace/c37dd788b217f2e963587278c3532f73 to your computer and use it in GitHub Desktop.
Save loopspace/c37dd788b217f2e963587278c3532f73 to your computer and use it in GitHub Desktop.
Exploded diagram of a beamer frame
\PassOptionsToPackage{svgnames}{xcolor}
\documentclass[border=1cm]{standalone}
\usepackage{tikz}
\colorlet{base}{Moccasin}
\colorlet{background canvas}{base}
\colorlet{block body}{base!75}
\colorlet{block title bg}{base!75!Red}
\colorlet{block title fg}{Green}
\colorlet{frametitle}{base!75!Red}
\colorlet{item}{DarkRed!80!Black}
\colorlet{sidebar left}{base!50!Blue}
\colorlet{sidebar right}{base!50!Green}
\colorlet{section in sidebar}{Purple}
\colorlet{logo bg}{Blue}
\colorlet{logo fg}{Red}
\colorlet{footline}{Blue!50}
\colorlet{navigation symbols}{Blue!50!Black}
\begin{document}
\begin{tikzpicture}[z={(1,0)},x={(.6,.4)}]
\pgfmathsetmacro{\bepgw}{12.8}
\pgfmathsetmacro{\bepgh}{9.6}
\newcommand{\component}[3][1]{%
\path (#2) [draw,<-,thick] -- (#2 |- 0,-\bepgh-#1,0) node[below] (#3) {#3};
\stepcounter{zlayer}}
\newcounter{zlayer}
\setcounter{zlayer}{0}
\def\zlayer{\the\value{zlayer}}
\foreach \z in {0,...,8} {
\draw[gray,ultra thick] (0,-\bepgh,\z) -- (\bepgw,-\bepgh,\z) -- (\bepgw,0,\z);
}
\fill[background canvas] (0,0,\zlayer) -- ++(\bepgw,0,0) -- ++(0,-\bepgh,0) -- ++(-\bepgw,0,0) -- cycle;
\component[2]{1,-\bepgh,\zlayer}{background canvas}
\draw[gray] \foreach \x in {0,...,\bepgw} \foreach \y in {0,...,\bepgh} {(\x,0,\zlayer) -- (\x,-\bepgh,\zlayer) (0,-\y,\zlayer) -- (\bepgw,-\y,\zlayer)};
\component{1,-\bepgh,\zlayer}{background}
\fill[sidebar left] (0,0,\zlayer) -- ++(2,0,0) -- ++(0,-\bepgh,0) -- ++(-2,0,0) -- cycle;
\component[1.5]{1,-\bepgh,\zlayer}{sidebar left canvas}
\node[yslant=.7,right,align=left,text=section in sidebar] at (0,-.45*\bepgh,\zlayer) (a section in sidebar) {First slide \\ Second slide \\ Third slide};
\component[2]{a section in sidebar}{section in sidebar}
\fill[sidebar right] (\bepgw,0,\zlayer) -- ++(-2,0,0) -- ++(0,-\bepgh,0) -- ++(2,0,0) -- cycle;
\component[2.5]{\bepgw-1,-\bepgh,\zlayer}{sidebar right canvas}
\node[yslant=.7,left,align=right,text=section in sidebar] at (\bepgw,-.45*\bepgh,\zlayer) (a section in right sidebar) {First slide \\ Second slide \\ Third slide};
\component[2]{a section in right sidebar}{section in right sidebar}
\node[yslant=.7,above left,align=right,text=navigation symbols] at (\bepgw-2,-\bepgh,\zlayer) (navigation) {Navigation};
\component{navigation}{navigation}
\fill[logo bg] (0,0,\zlayer) -- ++(2,0,0) -- ++(0,-2,0) -- ++(-2,0,0) -- cycle;
\node[yslant=.7,text=logo fg] at (1,-1,\zlayer) {your logo here};
\component{1,-2,\zlayer}{logo}
\fill[footline] (0,-\bepgh,\zlayer) -- ++(\bepgw,0,0) -- ++(0,.5,0) -- ++(-\bepgw,0,0) -- cycle;
\component[1.5]{.5*\bepgw,-\bepgh,\zlayer}{footline}
\addtocounter{zlayer}{-1}
\foreach \z in {0,...,\zlayer} {
\draw[gray,ultra thick] (0,-\bepgh,\z) -- (0,0,\z) -- (\bepgw,0,\z);
}
\end{tikzpicture}
\end{document}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment