1

How do I create with tikz (using xelatex) a flow chart containing boxes, which have a title and up to four bullet points in it (except for the red box in the middle)? I have managed to get a simple flow chart with my humble tikz knowledge, see below, but would like to have the boxes fading out their background color towards the bottom end, where they shall also have no border (in the bottom end). How can I make this happen?

Bonus: how do I manage to get the lower overbrace to peak towards the box in the middle?

enter image description here

\documentclass[oneside,a4paper]{article}

\usepackage{tikz, tikzscale} % to use flowchart + to scale
\usetikzlibrary{shapes.geometric,arrows,calc,positioning,decorations.pathreplacing,bending}
\tikzstyle{startstop} = [rectangle, rounded corners, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=red!20]
\tikzstyle{process} = [rectangle, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=blue!30]
\tikzstyle{process2} = [rectangle, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=orange!30]
\tikzstyle{process3} = [rectangle, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=green!30]
\tikzstyle{arrow} = [thick,->,>=stealth]

\begin{document}
\begin{tikzpicture}[transform shape, node distance=2cm] % mock flow chart

\node (start) [process, align=center] {Title Bla Bla};
\node (pro1) [process, right of=start, align=center, xshift=2cm] {Title Bla Bla};
\node (pro2) [process, right of=pro1, align=center, xshift=2cm] {Title Bla Bla};
\node (pro3) [process2, below of=start, align=center, yshift=-.5cm] {Title Bla Bla};
\node (pro4) [process2, below of=pro1, align=center, yshift=-.5cm] {Title Bla Bla};
\node (pro5) [process2, below of=pro2, yshift=-.5cm] {Title Bla Bla};
\node (main) [startstop, below of=pro4, yshift=-.5cm] {Title Bla Bla};
\node (pro6) [process3, below left=1cm and 1cm of main, align=center] {Title Bla Bla};
\node (pro7) [process3, below of=main, align=center] {Title Bla Bla};
\node (pro8) [process3, below right=1cm and 1cm of main, align=center] {Title Bla Bla};
\node (pro9) [process3, right of=pro8, align=center, xshift=2cm] {Title Bla Bla};

\draw [arrow] (start) -- (pro3);
\draw [arrow] (pro1.south) -- (pro3.north);
\draw [arrow] (pro1.south) -- (pro5.north);
\draw [arrow] (pro2.south) -- (pro5.north);
\draw [arrow] (pro2.south) -- (pro4.north);

\draw[decorate, decoration={brace, mirror, amplitude=10pt, raise=4pt}, yshift=-2cm] (pro3.south west) -- (pro5.south east);
\draw[decorate, decoration={brace, amplitude=10pt, raise=4pt}, yshift=4cm] (pro6.north west) -- (pro9.north east);

\end{tikzpicture}
\end{document}

Thank you very much in advance!

  • 1
    Not the answer you want, but the answer you need: don't do this. Flow Charts (and other Images) don't get better by using fancy colors. Stick to what you really want to show, if you really, really need to emphasize something, just highlight that (preferably in a outstanding, but not glowing, color). There are too many vividly colored Graphs out there and, in my opinion, using Fadings is one of the worst. – pschulz Jan 30 '17 at 15:31
  • Hi pschulz, so you suggest to go rather for a "plain" flow chart like this, then a flow chart looking like this? – Til Hund Jan 30 '17 at 15:39
  • 1
    @TilHund even in the former, the coloured lines and boxes only add something if they're referred to in the accompanying text (and realistically not just once). Flowcharts are established because they work well without such decorations, so the decortaions should be used with care (shading to represent bottlenecks in a process for example, with the flow drawn all in black). On a presentation it may be a different matter, but then you have to be careful that your text still stands out from its background – Chris H Jan 30 '17 at 16:34
  • 1
    I agree, though both given examples are ok (in my opinion). The first example uses two main colors for different paths, so this could be sensible for explaining stuff. Note the background color of the 'neutral' (not highlighted) nodes in the second example. Why? This has no benefit. A good way to highlight stuff is to draw the whole image in black, than make the part you are not currently talking about a light gray, still visible but clearly not important. Later on, do the opposite. This works especially well in slides. – pschulz Jan 30 '17 at 16:36
3

See, it the following MWE offer what you like to obtain:

\documentclass[tikz,
               border=3mm,
               ]{standalone}
\usetikzlibrary{arrows.meta,
                decorations.pathreplacing,
                calligraphy,%had to be after lib. decorations.pathreplacing
                positioning,
                shadows
                }
\usepackage{enumitem}
\setlist{nosep,leftmargin=*}

\begin{document}
    \begin{tikzpicture}[
node distance = 22mm and 11mm,
   box/.style = {shape=rectangle, draw, thin, 
                 minimum height=10mm, text width=32mm, align=center,
                 top color=#1!20, bottom color=#1!80,
                 anchor=south west
                 },
BC/.style args = {#1/#2/#3}{% Braces Calligraphic
        decorate,
        decoration={calligraphic brace, amplitude=6pt,
        raise=#1,
              #2,% for mirroring of brace
        aspect=#3},
        very thick,
        pen colour={gray}
        },
                        ] % mock flow chart
 nodes, first row
\node (start) [box=blue] {\parbox{\hsize}{Title Bla Bla,
                            \begin{itemize}
                        \item   item 1
                        \item   item 2
                        \item   item 3
                            \end{itemize}}};
\node (pro1)  [right=of start.south east,box=blue] {Title Bla Bla,
                            \begin{itemize}
                        \item   item 1
                        \item   item 2
                            \end{itemize}};
\node (pro2)  [right=of pro1.south east,box=blue] {Title Bla Bla,
                            \begin{itemize}
                        \item   item 1
                            \end{itemize}};
% nodes, second row
\node (pro3)  [below=of start.south west,box=orange]    {Title Bla Bla};
\node (pro4)  [right=of pro3.south east,box=orange]     {Title Bla Bla};
\node (pro5)  [right=of pro4.south east,box=orange]     {Title Bla Bla};
% nodes, third row
\node (pro6)  [below=of pro4.south west,box=red,rounded corners] {Title Bla Bla};
% nodes, forth row
\node (pro7)  [below=of pro3.west |- pro6.south,
               box=green]                               {Title Bla Bla};
\node (pro8)  [right=of pro7.south east,box=green]      {Title Bla Bla};
\node (pro9)  [right=of pro8.south east,box=green]      {Title Bla Bla};
\node (pro10) [right=of pro9.south east,box=green]      {Title Bla Bla};
% connections
\draw[-Stealth] (start) edge (pro3)
                (pro1.south)  edge (pro3) (pro1.south)  edge (pro5)
                (pro2.south)  edge (pro4) (pro2.south)  edge (pro5);                
% braces
\draw[BC=2mm/mirror/0.500] (pro3.south west) -- (pro5.south east);
\draw[BC=2mm/      /0.375] (pro7.north west) -- (pro10.north east);
\end{tikzpicture}
\end{document}

enter image description here

  • Thank you very much, Zarko! I took the comments by pschulz and Chris H in consideration and removed the color. So everyone should be happy now. ;) – Til Hund Jan 30 '17 at 20:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.