Chart looks/functions perfectly in page editor, but does not work on live page (Dawn Theme)

Topic summary

A user is attempting to implement a dynamic chart from CodePen onto their Shopify store page using the Dawn theme. The chart displays perfectly in the page editor with full functionality including hover effects, but renders incorrectly on the live page with overlapping rows and missing content.

Technical Issue:

  • Problem occurs both in page editor and custom liquid sections
  • Root cause identified: Dawn theme’s CSS property box-sizing: inherit conflicts with the chart code
  • Initial fix: Adding box-sizing: initial to a wrapper with ID “cable-table”

Solution Progress:
A community member (PaulMartin_1) is helping by:

  • Identifying and fixing CSS conflicts
  • Rewriting the entire code using modern CSS for easier future customization
  • Creating a custom theme section with settings for personalized configurations

Planned Features (deferred until foundation is stable):

  • Hover functionality with row highlighting and additional information display
  • Product links integration
  • Custom column sizing (e.g., 75%/25% split)
  • Animations and borders

The helper has created working demos and is coordinating with the user to implement the solution into their live store. The user plans to populate multiple product tables with this format once the foundation is complete.

Summarized with AI on November 11. AI used: claude-sonnet-4-5-20250929.

I am trying to put the following dynamic chart on a page. It’s this chart: Chart I want to create

I didn’t attempt to work with the uncompiled SCSS and just used the compiled CSS.

I used chatGPT to combine the HTML and CSS from the above link. After a few iterations, it worked perfectly , but ONLY in the page editor. Even the hover sections worked (Picture 1 below).

However, when I went to view the live page, it was different / messed up (Picture 2 below). The rows overlapped, content was not included, etc. I tried creating a </> custom liquid section instead of using page editor, same outcome.

Is this a Dawn-Theme related issue? Is there anything I can do to fix it? Any help or guidance appreciated! Thanks!

I’ve included the combined CSS/HTML code snippet

<meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> Contest Table
<style><!--
/* Google fonts - Open Sans */
@import url(https://fonts.googleapis.com/css?family=Open+Sans:400,700);
/* body */
body {
  background: rgba(0, 0, 0, 0.9);
  font-family: "Open Sans", sans-serif;
}
/* links */
.nfl a, .mlb a, .nhl a, .pga a {
  text-decoration: none;
  transition: color 0.2s ease-out;
}
.nfl a {
  color: #4fc0d2;
}
.nfl a:hover {
  color: #268695;
}
.mlb a {
  color: #52d29a;
}
.mlb a:hover {
  color: #279766;
}
.nhl a {
  color: rgba(231, 196, 104, 0.7);
}
.nhl a:hover {
  color: rgba(201, 154, 32, 0.7);
}
.pga a {
  color: #eb7655;
}
.pga a:hover {
  color: #c33d17;
}
/* wrapper */
.wrapper {
  width: 100%;
  max-width: 1000px;
  margin: 20px auto 100px auto;
  padding: 0;
  background: rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.9);
  overflow: hidden;
  position: relative;
}
/* lists */
.row ul {
  margin: 0;
  padding: 0;
}
.row ul li {
  margin: 0;
  font-size: 16px;
  font-weight: normal;
  list-style: none;
  display: inline-block;
  width: 20%;
  box-sizing: border-box;
}
@media only screen and (max-width: 767px) and (min-width: 480px) {
  .row ul li {
    font-size: 13px;
  }
}
@media only screen and (max-width: 479px) {
  .row ul li {
    font-size: 13px;
  }
}
.title ul li {
  padding: 15px 13px;
}
.row ul li {
  padding: 5px 10px;
}
/* rows */
.row {
  padding: 20px 0;
  height: 30px;
  font-size: 0;
  position: relative;
  overflow: hidden;
  transition: all 0.2s ease-out;
  border-top: 1px solid rgba(0, 0, 0, 0.1);
}
.row:hover {
  background-color: rgba(26, 26, 26, 0.9);
  height: 65px;
}
@media only screen and (max-width: 767px) {
  .row:hover {
    height: 85px;
  }
}
@media only screen and (max-width: 359px) {
  .row:hover {
    height: 105px;
  }
}
.title {
  padding: 25px 0 5px 0;
  height: 45px;
  font-size: 0;
  background-color: rgba(255, 255, 255, 0.1);
  border-left: 3px solid rgba(255, 255, 255, 0.1);
}
.title:hover {
  height: 45px;
  background-color: rgba(255, 255, 255, 0.1);
  border-left: 3px solid rgba(255, 255, 255, 0.1);
}
@media only screen and (max-width: 767px) {
  .title-hide {
    display: none;
  }
}
.nfl {
  border-left: 3px solid #1c616c;
}
.nfl:hover {
  border-left: 3px solid #4fc0d2;
}
.mlb {
  border-left: 3px solid #1d6e4b;
}
.mlb:hover {
  border-left: 3px solid #52d29a;
}
.nhl {
  border-left: 3px solid rgba(157, 121, 25, 0.7);
}
.nhl:hover {
  border-left: 3px solid rgba(231, 196, 104, 0.7);
}
.pga {
  border-left: 3px solid #952f12;
}
.pga:hover {
  border-left: 3px solid #eb7655;
}
/* row one - fadeIn */
.row-fadeIn-wrapper {
  opacity: 0;
  font-size: 0;
  height: 0;
  overflow: hidden;
  position: relative;
  transition: all 0.2s ease-out;
  animation: fadeIn 0.4s ease-out 2s 1 alternate;
  animation-fill-mode: forwards;
}
.row-fadeIn-wrapper:hover {
  height: 35px;
}
@media only screen and (max-width: 767px) {
  .row-fadeIn-wrapper:hover {
    height: 55px;
  }
}
@media only screen and (max-width: 359px) {
  .row-fadeIn-wrapper:hover {
    height: 75px;
  }
}
.fadeIn {
  padding: 20px 0;
  font-size: 0;
  position: absolute;
  transition: all 0.2s ease-out;
  width: 100%;
}
.fadeIn:hover {
  background-color: rgba(26, 26, 26, 0.9);
}
/* row two - fadeOut */
.row-fadeOut-wrapper {
  font-size: 0;
  overflow: hidden;
  position: relative;
  transition: all 0.2s ease-out;
  animation: fadeOut 0.4s ease-out 8s 1 alternate;
  animation-fill-mode: forwards;
  opacity: 1;
  height: 65px;
}
.row-fadeOut-wrapper:hover {
  height: 100px;
}
/* update content */
.update-row {
  animation: update 0.5s ease-out 12s 1 alternate;
}
.update1 {
  position: absolute;
  top: 25px;
  display: inline-block;
  opacity: 1;
  animation: update1 1s ease-out 12s 1 alternate;
  animation-fill-mode: forwards;
}
.update2 {
  position: absolute;
  top: 25px;
  display: inline-block;
  opacity: 0;
  animation: update2 4s ease-out 13s 1 alternate;
  animation-fill-mode: forwards;
}
/* more content */
ul.more-content li {
  position: relative;
  top: 22px;
  font-size: 13px;
  margin: 0;
  padding: 10px 13px;
  display: block;
  height: 50px;
  width: 100%;
  color: rgba(128, 128, 128, 0.9);
}
@media only screen and (max-width: 767px) {
  ul.more-content li {
    font-size: 11px;
  }
}
/* small content */
.small {
  color: rgba(102, 102, 102, 0.9);
  font-size: 10px;
  padding: 0 10px;
  margin: 0;
}
@media only screen and (max-width: 767px) {
  .small {
    display: none;
  }
}
/* keyframe animations */
@keyframes fadeIn {
  from {
    background: rgba(255, 255, 255, 0.1);
    opacity: 0;
    padding: 0;
  }
  to {
    background: rgba(51, 51, 51, 0.1);
    opacity: 1;
    padding: 0 0 65px 0;
  }
}
@keyframes fadeOut {
  from {
    background: rgba(51, 51, 51, 0.1);
    opacity: 1;
    height: 65px;
  }
  to {
    background: rgba(255, 255, 255, 0.1);
    opacity: 0;
    height: 0;
  }
}
@keyframes update {
  0% {
    background: rgba(51, 51, 51, 0.1);
  }
  50% {
    background: rgba(255, 255, 255, 0.1);
  }
  100% {
    background: rgba(51, 51, 51, 0.1);
  }
}
@keyframes update1 {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes update2 {
  0% {
    opacity: 0;
    color: rgba(255, 255, 255, 0.9);
  }
  20% {
    opacity: 1;
    color: #52d29a;
  }
  100% {
    opacity: 1;
    color: rgba(255, 255, 255, 0.9);
  }
}
--></style>
<section class="wrapper"><!-- Row title --> <main class="row title">
<ul>
<li>Sport</li>
<li>Entry $</li>
<li><span class="title-hide">#</span> Entries</li>
<li>Max</li>
<li>Time</li>
</ul>
</main> <!-- Row 1 - fadeIn -->
<section class="row-fadeIn-wrapper">
<article class="row fadeIn nfl">
<ul>
<li><a href="#">NFL</a><span class="small">(fadeIn)</span></li>
<li>$50</li>
<li>12</li>
<li>48</li>
<li>2:00ET</li>
</ul>
<ul class="more-content">
<li>This 1665-player contest boasts a $300,000.00 prize pool and pays out the top 300 finishing positions. First place wins $100,000.00. Good luck!</li>
</ul>
</article>
</section>
<!-- Row 2 - fadeOut -->
<section class="row-fadeOut-wrapper">
<article class="row nfl">
<ul>
<li><a href="#">NFL</a><span class="small">(fadeOut)</span></li>
<li>$5</li>
<li>45</li>
<li>100</li>
<li>3:00ET</li>
</ul>
<ul class="more-content">
<li>This 1665-player contest boasts a $300,000.00 prize pool and pays out the top 300 finishing positions. First place wins $100,000.00. Good luck!</li>
</ul>
</article>
</section>
<!-- Row 3 -->
<article class="row nfl">
<ul>
<li><a href="#">NHL</a></li>
<li>$50</li>
<li>12</li>
<li>48</li>
<li>12:00ET</li>
</ul>
<ul class="more-content">
<li>This 1665-player contest boasts a $300,000.00 prize pool and pays out the top 300 finishing positions. First place wins $100,000.00. Good luck!</li>
</ul>
</article>
<!-- Row 4 -->
<article class="row mlb update-row">
<ul>
<li><a href="#">MLB</a><span class="small">(update)</span></li>
<li>$10</li>
<li><span class="update1">1</span><span class="update2">2</span></li>
<li>10</li>
<li>1:00ET</li>
</ul>
<ul class="more-content">
<li>This 1665-player contest boasts a $300,000.00 prize pool and pays out the top 300 finishing positions. First place wins $100,000.00. Good luck!</li>
</ul>
</article>
<!-- Rows 5 to 11, following the same pattern for content layout and class assignment as Rows 1 to 4 --> <!-- Repeating the HTML structure for Rows 5 to 11 with corresponding details -->
<article class="row mlb">
<ul>
<li><a href="#">MLB</a></li>
<li>$5</li>
<li>48</li>
<li>120</li>
<li>12:00ET</li>
</ul>
<ul class="more-content">
<li>This 1665-player contest boasts a $300,000.00 prize pool and pays out the top 300 finishing positions. First place wins $100,000.00. Good luck!</li>
</ul>
</article>
<!-- Additional rows omitted for brevity but should continue with the specified pattern for each row --></section>

That’s very weird. You added a custom section and it still did not work. Have you tried checking what’s causing the issue by inspecting the rendered elements in the page?

@PaulMartin_1

I tried inspecting (as well as putting the code through the validator.w3.org), but I’m definitely in over my head. Any chance you could take a look?

The first chart is the code in the page editor. The one below that is the code in the custom liquid section.

Page I am referring to is: https://amcablesupply.com/pages/choose-your-belden-vfd-cable

pw: owghah

Sure, no problem. Give me some time to take a look at it.

@PaulMartin_1 Thanks! I put 3 versions of it in. 1st is the combined code through page editor. 2nd is the combined code in a custom liquid section. 3rd chart on the bottom I just added, it’s the original HTML code copied from the site where I found the chart.

Thank you again! Much appreciated!

@ipx1

For cable – martin-dumpstore
Password: 1

I tried adding it in the page editor like you initially did. It created the same result as you did. After that I tried to look for the culprit, then I found it - it’s built in the theme so we should not mess with it. Can you check this one if this is the one you are looking to achieve? Although the background colors are correct, that can be changed easily. Here’s the final code to add in the page-editor:


The theme had the box-sizing: inherit. Since we are not to mess with that theme CSS property, I added an id to the wrapper named “cable-table”, then add the CSS property box-sizing:initial to all the elements inside that #cable-table.

@ipx1

For cable – martin-dumpstore
Password: 1

I tried adding it to my dummy store using the page-editor like you initially did. I got the same error as you did. So, I tried looking for the culprit and found it to be one of the theme’s codes. So, I created an id for the wrapper-section named “cable-table” then added the styles box-sizing: initial;

The background color is not correct but it works? Let me know because I’m not so sure.

1 Like

Ah wait nevermind, I just realized it’s missing alot of stuff. Imma continue here and get back to you when I get it to be completely working just like the codepen.

@PaulMartin_1 Just added it in, it works! Thank you!

The background color comes out as white at the moment. Any chance there’s a quick fix to change it back to the darker color?

You’re welcome! But it’s still missing lots of stuff, so imma continue working on it.

You can add:
#cable-table{
background-color: rgba(0,0,0,0.9);
}

1 Like

@PaulMartin_1 Worked!

One more thing, just realizing, the “more content” isn’t showing up.

Yeah, that is what I’m trying to fix right now. The time column is also missing.

1 Like

Thank you, just saw your previous “most recent” comment.

Last thing, after the first NFL title, a gray (fadein) shows up. Same with (update) after the first MLB row.

@PaulMartin_1

Apologies, I’m not making this easy on you. I’ve experimented a bit with your above code in notepad, checking how the Find / Replace All functions work (not so great, i’ve updated https://amcablesupply.com/pages/choose-your-belden-vfd-cable) you can see the first couple titles changed). Seeing that this code is more complex, I figured I should probably give my end-all goal for this table.

  • I would like to use/edit the content for all of my product tables
  • Once the format is set, I plan to change content. For example, column 1 (currently the sport titles NFL, NHL, MLB, etc.) would change to different product names. These are longer, multi-word titles like “6 Gauge Battery Cable Type SGX”.
  • I will stick with one color, the blue (currently the NFL and NHL titles) for all of the column 1 titles. The other columns, as well as the headers, I plan to keep white as they are now.

Not sure if this helps or hurts. Regardless, really appreciate your help with this!

@ipx1
Sorry for the late reply.

As I was battling with the code, I was wondering if you would be okay with me rewriting everything, with all the features that you want?
Currently, the code is hard to change, thus when you actually add your desired content, you’re going to have to battle at it again. I am hoping to rewrite using modern CSS that makes changing stuff in the future a whole lot easier.

I’ll also get back to you in the morning, it is 11PM here in my place.

@PaulMartin_1 Absolutely. That would be amazing. Just hoping for the look and functionality, while being able to continue editing the content for different products / prices.

Okay! I’ll start working on it tomorrow, and I’ll give you some updates either here or sending you a message.

1 Like

@ipx1
Hey man! I started working on it for some time now, and I got some updates. Currently some settings are not yet implemented. Here are some screenshots.

1 Like

I’ll continue working on it tomorrow and give you more updates. And when it’s ready I’ll message you so that it will be added to your theme as a section that can be added everywhere.

1 Like