Skip to main content

UEFA Champions League

Sports & gaming · Dark · Tabbed

Proof of how much presence one well-built header block can give a page. The hero does the heavy lifting and everything below it stays simple.

What makes it work

  • Player cutouts on a dark ground with an embedded anthem card, all inside a single block at the top.
  • Below the hero the page keeps to tables and two charts, so the styling never competes with the data.
  • A word cloud and an attendance scatter add variety at very little build cost.
  • If you only have time to style one thing, style the header.

The views

Each tab is shown below at full width.

Overview

UEFA Champions League: Overview

Team Analysis

UEFA Champions League: Team Analysis

Moments

UEFA Champions League: Moments

See it live

Open the live dashboard to click through it yourself. No Holistics account needed.

Theme code

The theme this dashboard actually uses, written out as a reusable PageTheme. Paste it into a .theme.aml file under Development > Library > Themes to reuse it across your own dashboards, or inline it as a single dashboard's theme: property. Chart colour palettes are set separately, so they are not included here.

uefa_champions_league_theme.theme.aml
PageTheme uefa_champions_league_theme {
title: "Electric Blue"
background {
bg_size: "cover"
bg_image: "url('https://prod-media.beinsports.com/image/1769771826111_9777f484-500d-4625-80e3-4e037f6fb41a.png?ver=03-06-2025')"
}
canvas {
border {
border_color: "#1e293b"
border_style: "none"
border_radius {
top_left: 10
top_right: 10
bottom_left: 10
bottom_right: 10
}
}
shadow: "md"
background {
bg_color: "rgba(15, 23, 42, 0.92)"
}
}
block {
text {
font_color: "#94a3b8"
}
label {
font_size: 14
font_color: "#ffffff"
font_weight: "semibold"
}
padding {
top: 8
left: 8
right: 8
bottom: 8
}
}
viz {
table {
header {
bg_color: "#0f172a"
font_size: 14
font_color: "#378fda"
font_weight: "semibold"
}
general {
bg_color: "#1e293b"
font_size: 14
font_color: "#ffffff"
hover_color: "#1e293b"
banding_color: "#0f172a"
grid_color: "#1e293b"
border_color: "#1e293b"
}
sub_title {
font_size: 12
font_color: "#94a3b8"
}
sub_header {
bg_color: "#0f172a"
font_size: 12
font_color: "#ffffff"
}
}
}
}

The theme is paired with custom CSS, which lives beside it rather than inside it. See Custom CSS for where it goes.

Custom CSS
@import url('https://fonts.googleapis.com/css2?family=Barlow:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap');

h1, p {
font-family: "Barlow", sans-serif; !important;
}

/* KPI styles */
.h-kpi-metric-kpi {
font-family: "Barlow", sans-serif;
font-size: 50px;
color: #F7863D;
}

.h-kpi-metric-label {
font-size: 16px;
color: #ffffff;
}

.h-kpi-metric-diff .friendly-diff:not(.negative) {
background: #0f766e;
color: #ccfbf1;
border-color: #1e293b;
}

.h-kpi-metric-diff .friendly-diff.negative {
background: #991b1b;
color: #fee2e2;
border-color: #1e293b;
}

/* Control variables */
.h-theme-control-block {
/* Select */
--h-select-bg: #1e293b;
--h-select-text: #ffffff;
--h-select-placeholder: rgba(255, 255, 255, 0.6);
--h-select-border: #334155;
--h-select-border-hover: #94a3b8;
--h-select-border-focus: #378fda;
--h-select-trigger-icon: rgba(255, 255, 255, 0.7);
/* Input */
--h-input-bg: #1e293b;
--h-input-disabled-bg: #0f172a;
--h-input-text-color: #ffffff;
--h-input-placeholder-color: rgba(255, 255, 255, 0.6);
--h-input-border: #334155;
--h-input-border-hover: #94a3b8;
--h-input-border-focus: #378fda;
--h-input-selection-bg: rgba(91, 194, 231, 0.2);
--h-input-trigger-icon: rgba(255, 255, 255, 0.7);
/* Badge */
--h-badge-bg: #0f172a;
--h-badge-text: #378fda;
--h-badge-border: #1e293b;
--h-badge-hover-bg: #1e293b;
/* Checkbox */
--h-checkbox-bg: #1e293b;
--h-checkbox-hover-bg: #1e293b;
--h-checkbox-border: #334155;
--h-checkbox-checked-bg: #378fda;
--h-checkbox-checked-border: #378fda;
--h-checkbox-checkmark: #ffffff;
--h-checkbox-focus-ring: rgba(91, 194, 231, 0.2);
}


/* Checkbox text */
.h-checkbox {
color: #ffffff;
}

/* Standalone controls + date filter form container */
.dac-ic-block .hui-select-trigger,
.dac-ic-block .h-input,
.h-theme-control-block .h-theme-dm-filter-container .dm-filter-form {
border-radius: 10px;
}

/* PoP operator select — left edge rounded */
.dac-ic-block .pop-condition-select__operator-select {
border-radius: 0;
border-top-left-radius: 10px;
border-bottom-left-radius: 10px;
}
/* PoP number input — no radius (middle element) */
.dac-ic-block .pop-condition-select__offset-input {
border-radius: 0;
}
/* PoP period select — right edge rounded */
.dac-ic-block .pop-condition-select__period-select {
border-radius: 0;
border-top-right-radius: 10px;
border-bottom-right-radius: 10px;
}

/* Date filter mark — synced with badge */
.h-highlightable-input mark {
background-color: #0f172a;
color: #378fda;
border: 1px solid #1e293b;
}

/* Pivot total row */
.ag-floating-bottom .ag-cell {
background-color: #0f172a;
}
.ag-floating-bottom .ag-cell:not(.h-following-span) {
color: #378fda;
}

/* Metric sheet sparkline */
.h-chart-cell {
--h-table-sparkline-color: #378fda;
}

Open Markdown
Let us know what you think about this document :)