For reference here is how I would do it with flexbox: I liked your approach. This comment thread is closed. But for now, this is just the beginning. Demo. So if you’re bewildered by those grid-row properties then that’s okay! Frontend Masters is the best place to get it. Something is bothering me tho, why is there a difference between grid-row-end: 101; and grid-row-end: 102; with these row definitions grid-template-rows: repeat(100, 1fr);? For instance, you can apply jQuery effects to your bars in order to make them fade in or you can use css to create particular background colours for … Which then makes it difficult to use the aria-label attribute in CSS selectors and generated content. Let's say you want to create a bar graph with 5 items. We’re going to select every class that contains bar and use the grid-row-start and grid-row-end properties to make them fill up the vertical space in our grid and so eventually we’ll end up changing one of these properties to define the custom height of each bar: See the Pen CSS Grid Chart 1 by Robin Rendle (@robinrendle) on CodePen. Thanks for the detailed explanation. You can also check my previous tutorial which is How to Create a Pie Graph. Champloo advises how to make an essential, quite crude yet coherent Bar chart with the assistance of CSS. HTML CSS JavaScript Graph, you understand what languages I used completely when you saw the name. CSS only bar and scatter plot graphs with graceful fallback support for mobile devices. We also have an upcoming post that goes into a lot more of the accessibility concerns that you have and develops on my ideas considerably. CSS. One of the peculiar things about Grid that I hadn’t considered before working on this demo was the concept of grid lines which is super important to understanding this new layout tool. The use of attr() seems to work best in the content property of pseudo elements and that’s about it. STEP 2) THE CSS. That’s not right! It even takes a