Fummel Chart
by Jens Kühn
HTML
<div class="grid">
<main>
<article>
<header>
<h1>
Totale Erreichung in %
</h1>
</header>
<section class="w1">
<header>
<h1>Awareness</h1>
</header>
<aside>
<h3>552,-€</h3>
<span>80%</span>
<div style="width: 20%"></div>
</aside>
<footer>
<dl style="flex-basis: 9.375%" class="_other p30">
<dt>...</dt>
<dd>30%</dd>
</dl>
<dl style="flex-basis: 37.5%" class="social p100">
<dt>Social</dt>
<dd>120%</dd>
</dl>
<dl style="flex-basis: 25%" class="display p80">
<dt>Display AI</dt>
<dd>80%</dd>
</dl>
<dl style="flex-basis: 28%" class="tv p90">
<dt>TT GRP</dt>
<dd>90%</dd>
</dl>
</footer>
</section>
<section class="w2">
<header>
<h1>Performance</h1>
</header>
<aside>
<h3>240,-€</h3>
<span>90%</span>
<div style="width: 10%"></div>
</aside>
<footer>
<dl style="flex-basis: 40%" class="social p80">
<dt>Social</dt>
<dd>80%</dd>
</dl>
<dl style="flex-basis: 40%" class="display p70">
<dt>Display V.a.</dt>
<dd>70%</dd>
</dl>
<dl style="flex-basis: 40%" class="tv p90">
<dt>TV NRW</dt>
<dd>90%</dd>
</dl>
</footer>
</section>
<section class="w3">
<header>
<h1>Traffic</h1>
</header>
<aside>
<h3>70,-€</h3>
<span>60%</span>
<div style="width: 40%"></div>
</aside>
<footer>
<dl style="flex-basis: 50%" class="social p100">
<dt>Social</dt>
<dd>100%</dd>
</dl>
<dl style="flex-basis: 10%" class="_other p20">
...
SCSS
.grid {
display: grid;
grid-template-columns: 1fr;
grid-template-rows: auto;
grid-gap: 10px;
counter-reset: section;
}
article {
font-family: Arial;
display: flex;
width: 1400px;
flex-direction: column;
width: calc(100% - 100px);
padding: 50px;
color: #fff;
border: 1px solid #dedede;
position: relative;
&::before {
counter-increment: section;
content: counter(section, upper-alpha);
position: absolute;
color: #000;
top: 0;
left: 0;
background-color: #dedede;
padding: .2em;
}
& > header {
display: flex;
height: 30px;
color: #5b5a58;
h1 {
position: relative;
display: flex;
justify-content: center;
align-items: center;
background-color: #d1d2d6;
text-transform: uppercase;
font-size: 0.8rem;
margin: 0 0 0 190px;
flex: 0 0 360px;
text-align: center;
&::before,
&::after {
content: '';
position: absolute;
width: 50px;
height: 100%;
background-color: #d1d2d6;
}
&::before {
transform: skew(30deg);
left: -25px;
}
&::after {
height: 100%;
transform: skew(-30deg);
right: -25px;
}
}
}
& > footer {
height: 0;
width: 0;
margin: 0 0 0 311px;
border-left: 57px solid transparent;
border-right: 57px solid transparent;
border-top: 85px solid #d1d2d6;
}
}
section {
display: flex;
flex-direction: row;
align-items: center;
&.w1 {
width: 100%;
margin: 1px 10px;
aside {
flex: 0 0 245px;
}
}
&.w2 {
margin: 1px 55px;
width: calc(90% - 25px);
aside {
flex: 0 0 150px;
}
}
&.w3 {
margin: 1px 100px;
width: calc(80% - 25px);
aside {
flex: 0 0 60px;
}
}
header {
height: 70px;
padding: 0 2rem;
transform: skew(30deg);
h1 {
text-align: center;
transform:...