experiment_id: web-retrieval-v1
fixture_id: /demos/worlds-oldest-stone-age-art
mode: provenance
representation: html
origin_response_id: f9aa6ac2fe352f9a2a5b0b7d0dbf6054
version: 2026-10-21
version_created_at_utc: 2026-10-21T20:42:35.592Z
version_nonce: f46ecf9b674d90bb5469c54cb7e1a1a9
generated_at_utc: 2026-10-23T07:05:04.354Z
response_nonce: b13f948505c83571a4d7a3ccdb922d1e

World's Oldest Stone Age Art

78 of 125
In this demo, explore the oldest surviving rock art ever created. This ZingGrid features default card mode, media embeds, various column types, and advanced custom styling.
Result Full HTML CSS JS
Edit Download
[[index.name]]  [[index.rank]] [[index.location.locationName]] ~ [[index.creationDate]] years ago

Source: Encyclopedia of Art Education

Read more at Oldest Stone Age Art: The Top 100 Artworks

Full Code

<!DOCTYPE html>
<html class="zg-html">

<head>
  <meta charset="utf-8">
  <title>ZingGrid: Simple Grid</title>
  <script nonce="undefined" src="https://cdn.zinggrid.com/zinggrid.min.js"></script>
  <style>
    .zg-body {
      padding-top: 20px;
      font-family: 'Work Sans', sans-serif;
      background: #ffffff;
    }

    zing-grid {
      font-family: 'Work Sans', sans-serif;
      max-width: 1000px;
      margin: 0 auto;
      min-height: 600px;
      --theme-color-primary: #D9603D;
      border: 0;
      background: #ffffff;
      --zg-head-cell-font-weight: bold;
      color: #414141;
      opacity: 1;
    }

    zing-grid.loading {
      opacity: 0;
      transition: opacity .3s ease-out;
    }

    zing-grid.loading * {
      opacity: 0;
    }

    zing-grid a {
      font-weight: bold;
      color: #D9603D;
      cursor: pointer;
    }

    zing-grid a:hover {
      color: #742C0D;
    }

    zing-grid img {
      opacity: 1;
      transition: opacity .75s ease-out;
    }

    zing-grid.loading img {
      opacity: 0;
    }

    zg-body a {
      font-weight: bold;
      color: #742C0D;
      cursor: pointer;
      text-decoration: none;
    }

    zg-body a:hover {
      color: #D9603D;
    }

    zg-caption {
      font-size: 30px;
      padding: 10px 20px 0px 20px;
      margin-bottom: -10px;
      background: #ffffff;
      color: #742C0D;
      font-weight: bold;
    }

    zg-body,
    zg-footer,
    zg-watermark {
      background: #ffffff;
    }

    zg-body img {
      border-radius: 6px;
      -webkit-border-radius: 6px;
      -moz-border-radius: 6px;
      margin: 0 auto;
      width: 100%;
      min-height: 300px;
    }

    zg-row[layout="card"] {
      margin: 10px 5px;
      border: 0;
      background: #EAE9E3;
      border-radius: 6px;
      -webkit-border-radius: 6px;
      -moz-border-radius: 6px;
    }

    zg-body zg-cell:nth-child(1) {
      margin-top: -25px;
      padding: 15px;
      background: #D9603D;
    }

    .zg-body .card-title {
      color: #ffffff;
      font-size: 14px;
      font-weight: bold;
      display: block;
    }

    zg-footer {
      font-size: 11px;
      padding: 10px 25px;
      display: flex;
      justify-content: space-between;
      color: #999999;
    }

    zing-grid[loading] {
      height: 2711px;
    }
  </style>
</head>

<body class="zg-body">

  <link href="https://fonts.googleapis.com/css?family=Work+Sans:300,400,700" rel="stylesheet">
  <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.5.0/css/all.css" integrity="sha384-B4dIYHKNBt8Bc12p+WXckhzcICo0wtJAoU8YZTY5qE0Id1GSseTk6S+L3BlXeVIU" crossorigin="anonymous">

  <zing-grid src="https://cdn.zinggrid.com/datasets/stone-age-art.json" layout="card" layout-controls="disabled" caption="World's Oldest Stone Age Art" pager page-size="8" pager-size-options="4,8,16" class="loading">
    <zg-colgroup>
      <zg-column index="name" header="Name">
        <span class="card-title">[[index.name]]</span>
      </zg-column>
      <zg-column index="image" type="image" header=" "></zg-column>
      <zg-column index="rank" header="Rank">
        <i class="fas fa-hashtag"></i> [[index.rank]]
      </zg-column>
      <zg-column index="location" type="url" header="Location">
        <a href="[[index.location.locationUrl]]" target="_blank" cross-origin><i class="fas fa-map-marker-alt"></i> [[index.location.locationName]]</a>
      </zg-column>
      <zg-column index="creationDate" header="Created">
        ~ [[index.creationDate]] years ago
      </zg-column>
      <zg-column index="mediaType" header="Media Type"></zg-column>
    </zg-colgroup>
    <zg-footer>
      <p>Source: <a href="http://www.visual-arts-cork.com/" target="_blank">Encyclopedia of Art Education</a></p>
      <p>Read more at <a href="http://www.visual-arts-cork.com/prehistoric/oldest-art-top-50.htm">Oldest Stone Age Art: The Top 100 Artworks</a></p>
    </zg-footer>
  </zing-grid>
  <script>
    ZingGrid.setLicense(['26ccbfec16b8be9ee98c7d57bee6e498']); // Custom loading class for CSS handling
    const zgLoaded = document.querySelector('zing-grid');
    zgLoaded.addEventListener('grid:ready', () => {
      setTimeout(() => zgLoaded.classList.remove('loading'), 0);
    });
  </script>
</body>

</html>
<!DOCTYPE html>
<html class="zg-html">
  <head>
    <meta charset="utf-8">
    <title>ZingGrid: Simple Grid</title>
		<script src="https://cdn.zinggrid.com/zinggrid.min.js"></script>
  </head>
  <body class="zg-body">

    <link href="https://fonts.googleapis.com/css?family=Work+Sans:300,400,700" rel="stylesheet">
    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.5.0/css/all.css" integrity="sha384-B4dIYHKNBt8Bc12p+WXckhzcICo0wtJAoU8YZTY5qE0Id1GSseTk6S+L3BlXeVIU" crossorigin="anonymous">

    <zing-grid
      src="https://cdn.zinggrid.com/datasets/stone-age-art.json"
      layout="card"
      layout-controls="disabled"
      caption="World's Oldest Stone Age Art"
      pager
      page-size="8"
      pager-size-options="4,8,16"
      class="loading">
      <zg-colgroup>
        <zg-column index="name" header="Name">
          <span class="card-title">[[index.name]]</span>
        </zg-column>
        <zg-column index="image" type="image" header=" "></zg-column>
        <zg-column index="rank" header="Rank">
        	<i class="fas fa-hashtag"></i> [[index.rank]]
        </zg-column>
        <zg-column index="location" type="url" header="Location">
        	<a href="[[index.location.locationUrl]]" target="_blank" cross-origin><i class="fas fa-map-marker-alt"></i> [[index.location.locationName]]</a>
        </zg-column>
        <zg-column index="creationDate" header="Created">
        	~ [[index.creationDate]] years ago
        </zg-column>
        <zg-column index="mediaType" header="Media Type"></zg-column>
      </zg-colgroup>
      <zg-footer>
        <p>Source: <a href="http://www.visual-arts-cork.com/" target="_blank">Encyclopedia of Art Education</a></p>
        <p>Read more at <a href="http://www.visual-arts-cork.com/prehistoric/oldest-art-top-50.htm">Oldest Stone Age Art: The Top 100 Artworks</a></p>
      </zg-footer>
    </zing-grid>
  </body>
</html>
.zg-body {
  padding-top: 20px;
  font-family: 'Work Sans', sans-serif;
  background: #ffffff;
}

zing-grid {
  font-family: 'Work Sans', sans-serif;
  max-width: 1000px;
  margin: 0 auto;
  min-height: 600px;
  --theme-color-primary: #D9603D;
	border: 0;
  background: #ffffff;
  --zg-head-cell-font-weight: bold;
  color: #414141;
  opacity: 1;
}
zing-grid.loading { opacity:0; transition:opacity .3s ease-out; }
zing-grid.loading * { opacity:0; }

zing-grid a {
  font-weight: bold;
  color: #D9603D;
 	cursor: pointer;
}

zing-grid a:hover {
  color: #742C0D;
}

zing-grid img { opacity:1; transition:opacity .75s ease-out; }
zing-grid.loading img { opacity:0; }

zg-body a {
  font-weight: bold;
  color: #742C0D;
 	cursor: pointer;
  text-decoration: none;
}

zg-body a:hover {
  color: #D9603D;
}

zg-caption {
  font-size: 30px;
  padding: 10px 20px 0px 20px;
  margin-bottom: -10px;
  background: #ffffff;
  color: #742C0D;
  font-weight: bold;
}

zg-body, 
zg-footer,
zg-watermark {
  background: #ffffff;
}

zg-body img {
  border-radius: 6px;
  -webkit-border-radius: 6px;
  -moz-border-radius: 6px;
  margin: 0 auto;
  width: 100%;
  min-height: 300px;
}

zg-row[layout="card"] {
  margin: 10px 5px;	
  border: 0;
  background: #EAE9E3;
  border-radius: 6px;
  -webkit-border-radius: 6px;
  -moz-border-radius: 6px;
}

zg-body zg-cell:nth-child(1) {
  margin-top: -25px;
  padding: 15px;
  background: #D9603D;
}

.zg-body .card-title {
  color: #ffffff;
  font-size: 14px;
  font-weight: bold;
  display: block;
}

zg-footer {
  font-size: 11px;
  padding: 10px 25px;
  display: flex;
  justify-content: space-between; 
  color: #999999;
}
// Custom loading class for CSS handling
const zgLoaded = document.querySelector('zing-grid');
zgLoaded.addEventListener('grid:ready', () => {
    setTimeout(() => zgLoaded.classList.remove('loading'), 0);
});

Interested in this demo? Modify it to your needs in ZingSoft Studio, our testing sandbox. It's free to sign up, and you can come back and edit at any time!

Edit in Studio

Demo Gallery