JSFiddle - React, Tailwind, and code Playground

by sthag

HTML

<div id="sidebar">
  <div>0<span class="meta">Gesamtzahl aller Gerichte</span></div>
  <div style="background-color: #97c9c0;">
    <span class="name">Würzige Rinderrouladen</span>
    <span class="value">0</span>
    <span class="meta"></span>
  </div>
  <div style="background-color: #be8cb7;"><span class="name">Vegane Bowl</span><span class="value">0</span><span class="meta"></span></div>
  <div style="background-color: #8e9bed;"><span class="name">Finocchi gratinati</span><span class="value">0</span><span class="meta"></span></div>
  <div style="background-color: #94a5e8;"><span class="name">Penne</span><span class="value">0</span><span class="meta"></span></div>
  <div style="background-color: #b2928a;"><span class="name">Brotsalat</span><span class="value">0</span><span class="meta"></span></div>
  <div style="background-color: #b18dba;"><span class="name">Weiß nicht</span><span class="value">0</span><span class="meta"></span></div>
</div>

SCSS

#sidebar {
  display: flex;
  flex-direction: column;

  & > div {
    position: relative;
    width: 20rem;
    display: flex;
    align-items: center;
    margin-bottom: 12px;
    padding-inline: 10px;
    font-weight: bold;
    line-height: 1.1;

    .meta {
      position: absolute;
      right: 5px;
      bottom: 5px;
      color: white;
      text-align: right;
      font-weight: normal;
    }
  }

  div:first-child {
    justify-content: center;
    padding-block: .3em;
    background-color: darkgrey;
    font-size: 10em;

    .meta {
      font-size: .1em;
    }
  }

  div:not(:first-child) {
    display: flex;
    align-items: baseline;
    min-width: 0;
    padding-block: .2em;
    font-size: 5em;

    .name {
      flex: auto;
      overflow: hidden;
      min-width: 0;
      font-size: .4em;
      white-space: nowrap;
      text-overflow: ellipsis;
    }

    .value {
      flex: none;
    }

    .meta {
      font-size: small;
    }
  }
}