{
  "id": "L08",
  "title": "Grouped list",
  "topic": "lists",
  "use": "Entries ordered in time — a history, a log, an inbox. The group heading stays in place while its group scrolls by. Every group names its count. Within the week the groups are called Today and Yesterday; before that they carry dates.",
  "decisions": [
    "The group head stays in place while its group runs: otherwise nobody knows after twenty rows which day they are reading. ed-list-group holds it while the list's body scrolls, once the list has a height.",
    "Every group names its count — ed-list-group writes it beside the name — and the line above the list names entries and groups: “9 entries on 3 days”.",
    "Within the week the groups are called Today and Yesterday: a date one has to work out is no information. Before that they carry dates, because “11 days ago” is none either.",
    "Grouping goes by one dimension: by day or by client, not both — two orders on top of each other are read by nobody, and a group is never nested in another.",
    "Every row shows its time, and today's rows also how long ago — “2:28 PM · 12 minutes ago”: the time stands in the line for everyone, not only on hover, and the group head carries the day. The full date stands in the time element's datetime."
  ],
  "try": [
    {
      "do": "Scroll down in the list",
      "then": "the group head stays at the top while its group runs, and the next one takes its place"
    },
    {
      "do": "Read the counts at the group heads",
      "then": "every group names how many entries it holds"
    },
    {
      "do": "Read the line above the list",
      "then": "it names the entries and the days"
    },
    {
      "do": "Compare the group names",
      "then": "Today and Yesterday by name, the day before that as a date; every row shows its time, today's also how long ago"
    }
  ],
  "revision": 1,
  "changes": [],
  "reviewed": true,
  "source": "<style>\n  /* One width for every time, so they end on one edge. */\n  .l08-time {\n    inline-size: 11rem;\n  }\n</style>\n\n<!-- Demo only, not part of the pattern. The list takes the height the screen leaves it; here it is set to fit the frame. -->\n\n<div class=\"ed-stack ed-gap-4\">\n  <!-- Demo only, not part of the pattern. The screen's title, and whose history this is, come from the screen around the pattern; SC01 places them. -->\n\n  <div class=\"ed-stack ed-gap-2\">\n    <p class=\"ed-caption-m\">9 entries on 3 days</p>\n    <ed-list id=\"l08-history\" label=\"History\">\n      <ed-list-group label=\"Today\">\n        <ed-list-item>\n          Voucher RE-2026-04193 posted\n          <span slot=\"description\">Thorsten Reinke · account 4530 · €78.40</span>\n          <span slot=\"end\" class=\"l08-time ed-text-end ed-text-nowrap\"><time datetime=\"2026-08-27T14:28\">2:28 PM</time> · 12 minutes ago</span>\n        </ed-list-item>\n        <ed-list-item>\n          Payroll run July approved\n          <span slot=\"description\">Sophie Brandt · 84 employees</span>\n          <span slot=\"end\" class=\"l08-time ed-text-end ed-text-nowrap\"><time datetime=\"2026-08-27T12:40\">12:40 PM</time> · 2 hours ago</span>\n        </ed-list-item>\n        <ed-list-item>\n          Address changed\n          <span slot=\"description\">Sophie Brandt · Untertürkheimer Straße 47 → Halbergstraße 112</span>\n          <span slot=\"end\" class=\"l08-time ed-text-end ed-text-nowrap\"><time datetime=\"2026-08-27T11:15\">11:15 AM</time> · 3 hours ago</span>\n        </ed-list-item>\n        <ed-list-item>\n          Contribution statement created\n          <span slot=\"description\">System · August 2026</span>\n          <span slot=\"end\" class=\"l08-time ed-text-end ed-text-nowrap\"><time datetime=\"2026-08-27T08:02\">8:02 AM</time> · 6 hours ago</span>\n        </ed-list-item>\n      </ed-list-group>\n      <ed-list-group label=\"Yesterday\">\n        <ed-list-item>\n          Bank account added\n          <span slot=\"description\">Andrea Jansen · DE44 5001 0517 5407 3249 31</span>\n          <span slot=\"end\" class=\"l08-time ed-text-end ed-text-nowrap\"><time datetime=\"2026-08-26T16:44\">4:44 PM</time></span>\n        </ed-list-item>\n        <ed-list-item>\n          Voucher RE-2026-04192 rejected\n          <span slot=\"description\">Thorsten Reinke · account 4670 cannot be posted to</span>\n          <span slot=\"end\" class=\"l08-time ed-text-end ed-text-nowrap\"><time datetime=\"2026-08-26T14:10\">2:10 PM</time></span>\n        </ed-list-item>\n        <ed-list-item>\n          Contact person created\n          <span slot=\"description\">Sophie Brandt · Marianne Kessler-Brandt</span>\n          <span slot=\"end\" class=\"l08-time ed-text-end ed-text-nowrap\"><time datetime=\"2026-08-26T09:30\">9:30 AM</time></span>\n        </ed-list-item>\n      </ed-list-group>\n      <ed-list-group label=\"August 21, 2026\">\n        <ed-list-item>\n          Attachment added\n          <span slot=\"description\">Hans-Jürgen Odenthal · Hotel invoice Neunkirchen.pdf</span>\n          <span slot=\"end\" class=\"l08-time ed-text-end ed-text-nowrap\"><time datetime=\"2026-08-21T11:20\">11:20 AM</time></span>\n        </ed-list-item>\n        <ed-list-item>\n          Travel expense report submitted\n          <span slot=\"description\">Hans-Jürgen Odenthal · €1,247.90</span>\n          <span slot=\"end\" class=\"l08-time ed-text-end ed-text-nowrap\"><time datetime=\"2026-08-21T11:18\">11:18 AM</time></span>\n        </ed-list-item>\n      </ed-list-group>\n    </ed-list>\n  </div>\n</div>",
  "page": "https://test-apps.eurodata.de/a/eurodata-ui/docs/patterns/lists/l08-grouped-list/",
  "topicPage": "https://test-apps.eurodata.de/a/eurodata-ui/docs/patterns/lists/"
}
