- {showLogo &&
}
-
diff --git a/screenshots/pages/legend-list.astro b/screenshots/pages/legend-list.astro
new file mode 100644
index 000000000..b0d3d4e6c
--- /dev/null
+++ b/screenshots/pages/legend-list.astro
@@ -0,0 +1,35 @@
+---
+// Legend component on its own, no card and no chart: a LegendList of button
+// items — colored dot, source name, its share in tabular numerals — wrapping
+// over a few rows in a narrow container. The fake cursor rests on the active
+// item so the tinted hover background is part of the picture, and the last
+// items show the `off` state of a hidden series.
+import ScreenshotLayout from '../layouts/ScreenshotLayout.astro'
+import Legend from '@ui/Legend.astro'
+import LegendList from '@ui/LegendList.astro'
+
+const sources = [
+ { name: 'Organic search', color: 'blue', value: '31%' },
+ { name: 'Direct', color: 'azure', value: '22%' },
+ { name: 'Paid search', color: 'indigo', value: '14%' },
+ { name: 'Social media', color: 'purple', value: '11%', active: true },
+ { name: 'Referral', color: 'pink', value: '8%' },
+ { name: 'Newsletter', color: 'orange', value: '6%' },
+ { name: 'Partners', color: 'teal', value: '4%' },
+ { name: 'Email', color: 'green', value: '3%', off: true },
+ { name: 'Other', color: 'lime', value: '1%', off: true },
+]
+---
+
+
+
+ {
+ sources.map((item) => (
+
+ ))
+ }
+
+
diff --git a/screenshots/pages/legend.astro b/screenshots/pages/legend.astro
new file mode 100644
index 000000000..ebaffad6d
--- /dev/null
+++ b/screenshots/pages/legend.astro
@@ -0,0 +1,45 @@
+---
+// Legend component: a request-volume card whose header carries an interactive
+// legend. Each item is a button — colored dot, series name, total in tabular
+// numerals — and the fake cursor rests on one of them so the tinted hover
+// background is part of the picture. `legend-requests` is a three-series stacked bar
+// chart in charts.json with the ApexCharts legend left off, since the card's
+// own legend replaces it.
+import ScreenshotLayout from '../layouts/ScreenshotLayout.astro'
+import Card from '@ui/Card.astro'
+import CardHeader from '@ui/CardHeader.astro'
+import CardTitle from '@ui/CardTitle.astro'
+import CardBody from '@ui/CardBody.astro'
+import Legend from '@ui/Legend.astro'
+import LegendList from '@ui/LegendList.astro'
+import Chart from '@components/demo/Chart.astro'
+
+// Series order and colors follow the `legend-requests` entry in charts.json.
+const series = [
+ { name: 'Allowed', color: 'blue', value: '339.0k' },
+ { name: 'Challenged', color: 'azure', value: '815' },
+ { name: 'Logged', color: 'green', value: '12.4k', active: true },
+ { name: 'Rate limited', color: 'red', value: '-', off: true },
+]
+---
+
+
+
+
+ Requests
+
+ {
+ series.map((item) => (
+
+ ))
+ }
+
+
+
+
+
+
+
diff --git a/shared/components/HomepageContent.astro b/shared/components/HomepageContent.astro
index 3d929f96a..a701602c4 100644
--- a/shared/components/HomepageContent.astro
+++ b/shared/components/HomepageContent.astro
@@ -1,7 +1,10 @@
---
// shared by index.astro and layout-vertical.astro.
import Chart from '@shared/components/demo/Chart.astro'
+import CaptureScript from '@shared/components/CaptureScript.astro'
import CardTitle from '@ui/CardTitle.astro'
+import Legend from '@ui/Legend.astro'
+import LegendList from '@ui/LegendList.astro'
import MapVectorCard from './cards/MapVectorCard.astro'
import Welcome from './cards/Welcome.astro'
import TotalUsers from './cards/charts/TotalUsers.astro'
@@ -72,8 +75,33 @@ const { rtl = false } = Astro.props
-
Traffic summary
+
+ Traffic summary
+
+
+
+
+
+
+
+
+
+
+
diff --git a/shared/components/cards/StorageUsage.astro b/shared/components/cards/StorageUsage.astro
index ad1de4a23..1559005e7 100644
--- a/shared/components/cards/StorageUsage.astro
+++ b/shared/components/cards/StorageUsage.astro
@@ -1,5 +1,6 @@
---
-
+import LegendList from '../../ui/LegendList.astro'
+import Legend from '../../ui/Legend.astro'
---
-
-
-
- Regular
- 3520MB
-
-
-
- System
- 1520MB
-
-
-
- Shared
- 720MB
-
-
-
- Free
- 2240MB
-
-
+
+
+
+
+
+