# TFT Set 16 Analytics > Dense leaderboard tables in a gaming skin. **Sports & gaming · Dark · Tabbed** Dense leaderboard tables in a gaming skin. Worth a look specifically for the table styling. ## What makes it work - Navy and gold, with the gold reserved for rank and top performers. - Conditional formatting turns each table into something closer to a heatmap, doing the job a chart usually would. - Inline imagery in table cells keeps rows scannable when the labels are unfamiliar. - A reasonable pattern when your users genuinely want the numbers rather than a summary. ## The views Each tab is shown below at full width. ### Overview ### Deep Dive ## See it live [Open the live dashboard](https://demo4.holistics.io/dashboards/v4/114237-tft-set-16-analytics?_pl=baf23027d5709ba664b28b60) 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](/docs/admin/dashboard-themes/color-palettes), so they are not included here.
tft_set_16_theme.theme.aml ```aml PageTheme tft_set_16_theme { background { bg_color: "#010A13" } canvas { border { border_color: "#0A1428" border_style: "none" border_width { top: 0 left: 0 right: 0 bottom: 0 } border_radius { top_left: 0 top_right: 0 bottom_left: 0 bottom_right: 0 } } shadow: "none" background { bg_color: "#0A1428" } } block { text { font_size: 14 font_color: "#A8B2C0" font_style: "normal" font_family: "SpiegelSans, Arial, sans-serif" font_weight: "normal" } label { font_size: 18 font_color: "#C8AA6E" font_style: "normal" font_family: "Beaufort for LOL, serif" font_weight: "bold" } border { border_color: "#463714" border_style: "solid" border_width { top: 1 left: 1 right: 1 bottom: 1 } border_radius { top_left: 2 top_right: 2 bottom_left: 2 bottom_right: 2 } } shadow: "none" opacity: 1 padding { top: 20 left: 20 right: 20 bottom: 20 } background { bg_color: "#111E2B" } } viz { table { header { bg_color: "#010A13" font_size: 13 font_color: "#C8AA6E" font_weight: "semibold" } general { bg_color: "#0A1428" font_size: 14 font_color: "#CDDBE4" font_family: "SpiegelSans, Arial, sans-serif" hover_color: "#162033" banding_color: "#0D1829" grid_color: "#463714" border_color: "#1E2328" border_width: 1 } sub_title { font_size: 13 font_color: "#C8AA6E" font_weight: "bold" } sub_header { bg_color: "#1E2328" font_size: 13 font_color: "#C8AA6E" font_weight: "semibold" } } } } ```
The theme is paired with custom CSS, which lives beside it rather than inside it. See [Custom CSS](/docs/admin/dashboard-themes/custom-css) for where it goes.
Custom CSS ```css /* ========================================== FONT LOADING ========================================== */ @font-face { font-family: "Beaufort for LOL"; src: url("https://db.onlinewebfonts.com/t/389c2da2e5f3636fea648e3849996604.woff2") format("woff2"), url("https://db.onlinewebfonts.com/t/389c2da2e5f3636fea648e3849996604.woff") format("woff"); font-weight: normal; font-style: normal; font-display: swap; } @font-face { font-family: "Beaufort for LOL"; src: url("https://db.onlinewebfonts.com/t/12420e8c141ca7c3dff41de2d59df13e.woff2") format("woff2"), url("https://db.onlinewebfonts.com/t/12420e8c141ca7c3dff41de2d59df13e.woff") format("woff"); font-weight: bold; font-style: normal; font-display: swap; } @font-face { font-family: "SpiegelSans"; src: url("https://db.onlinewebfonts.com/t/3bd637b3a86a512a2bc2ac1d8b77d56e.woff2") format("woff2"), url("https://db.onlinewebfonts.com/t/3bd637b3a86a512a2bc2ac1d8b77d56e.woff") format("woff"); font-weight: normal; font-style: normal; font-display: swap; } /* ========================================== SEMANTIC CLASSES (stable Holistics API) ========================================== */ .h-kpi-metric-kpi { color: #F0E6D2 !important; font-family: "Beaufort for LOL", serif !important; font-size: 40px !important; } .h-kpi-metric-label { color: #C8AA6E !important; font-family: "SpiegelSans", Arial, sans-serif !important; text-transform: uppercase; letter-spacing: 1.5px; font-size: 13px !important; margin-top: 6px !important; } .h-kpi-metric-diff { font-family: "SpiegelSans", Arial, sans-serif !important; color: #0AC8B9 !important; } .dac-viz-block-label { color: #C8AA6E !important; font-family: "Beaufort for LOL", serif !important; font-size: 16px !important; text-transform: uppercase; letter-spacing: 1px; } /* Filters: transparent block, no outer border */ .dac-ic-block { background: transparent !important; border: none !important; border-radius: 0 !important; box-shadow: none !important; } .dac-ic-block-label { color: #C8AA6E !important; font-family: "SpiegelSans", Arial, sans-serif !important; text-transform: uppercase; letter-spacing: 0.5px; font-size: 13px !important; } .dac-text-block { color: #A8B2C0 !important; font-family: "SpiegelSans", Arial, sans-serif !important; } /* ========================================== ANIMATIONS ========================================== */ @keyframes hex-shimmer { 0% { background-position: -200% center; } 100% { background-position: 200% center; } } @keyframes hex-glow-pulse { 0%, 100% { opacity: 0.4; } 50% { opacity: 1; } } @keyframes hex-teal-sweep { 0% { background-position: -100% 0; } 100% { background-position: 200% 0; } } @keyframes hex-float { 0%, 100% { transform: translateY(0px); } 50% { transform: translateY(-4px); } } @keyframes hex-rotate { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } @keyframes hex-breathe { 0%, 100% { filter: drop-shadow(0 0 3px rgba(10, 200, 185, 0.3)); } 50% { filter: drop-shadow(0 0 10px rgba(10, 200, 185, 0.7)); } } @keyframes hex-border-shift { 0% { border-color: #463714; } 33% { border-color: #0A7A72; } 66% { border-color: #785A28; } 100% { border-color: #463714; } } @keyframes hex-scan { 0% { left: -20%; opacity: 0; } 10% { opacity: 1; } 90% { opacity: 1; } 100% { left: 120%; opacity: 0; } } /* ========================================== CUSTOM CLASSES FOR TEXTBLOCK HTML ========================================== */ /* -- Hero: gold gradient text with shimmer -- */ .hex-hero { font-family: "Beaufort for LOL", serif; font-size: 42px; font-weight: bold; text-transform: uppercase; letter-spacing: 4px; background: linear-gradient(90deg, #785A28, #C8AA6E, #F0E6D2, #C8AA6E, #785A28); background-size: 200% auto; -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; animation: hex-shimmer 6s linear infinite; line-height: 1.3; } /* -- Section title with teal left bar -- */ .hex-section { font-family: "Beaufort for LOL", serif; font-size: 22px; font-weight: bold; color: #F0E6D2; text-transform: uppercase; letter-spacing: 2px; padding-left: 16px; border-left: 3px solid #0AC8B9; } .hex-subtitle { font-family: "SpiegelSans", Arial, sans-serif; color: #C8AA6E; font-size: 14px; text-transform: uppercase; letter-spacing: 1px; } .hex-body { font-family: "SpiegelSans", Arial, sans-serif; color: #A8B2C0; font-size: 14px; line-height: 1.6; } /* -- Dividers with teal/gold gradient -- */ .hex-divider { border: none; height: 1px; background: linear-gradient(90deg, transparent, #0AC8B9, #C8AA6E, #0AC8B9, transparent); margin: 12px 0; } .hex-border-top { height: 2px; background: linear-gradient(90deg, #0A7A72, #0AC8B9, #C8AA6E, #F0E6D2, #C8AA6E, #0AC8B9, #0A7A72); background-size: 200% auto; animation: hex-teal-sweep 8s linear infinite; } /* -- Animated teal line (decorative separator) -- */ .hex-teal-line { height: 1px; background: linear-gradient(90deg, transparent 0%, #0AC8B9 50%, transparent 100%); background-size: 200% auto; animation: hex-teal-sweep 4s linear infinite; } /* -- Diamond accent -- */ .hex-diamond { display: inline-block; width: 8px; height: 8px; background: #0AC8B9; transform: rotate(45deg); margin: 0 10px; vertical-align: middle; box-shadow: 0 0 6px rgba(10, 200, 185, 0.5); } /* -- Navigation link buttons -- */ .hex-nav { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 8px; } .hex-nav a { display: inline-block; font-family: "Beaufort for LOL", serif; font-size: 13px; font-weight: bold; color: #C8AA6E; text-transform: uppercase; letter-spacing: 1.5px; text-decoration: none; padding: 8px 20px; border: 1px solid #463714; background: linear-gradient(180deg, rgba(10, 200, 185, 0.05) 0%, rgba(10, 20, 40, 0.8) 100%); transition: all 0.3s ease; } .hex-nav a:hover { color: #F0E6D2; border-color: #0AC8B9; background: linear-gradient(180deg, rgba(10, 200, 185, 0.15) 0%, rgba(10, 20, 40, 0.9) 100%); box-shadow: 0 0 8px rgba(10, 200, 185, 0.3); } /* -- Teal accent text -- */ .hex-magic { color: #0AC8B9; font-weight: bold; } .hex-gold { color: #C8AA6E; } /* -- Badge (teal pill) -- */ .hex-badge { display: inline-block; font-family: "SpiegelSans", Arial, sans-serif; font-size: 12px; color: #0AC8B9; background: rgba(10, 200, 185, 0.08); border: 1px solid #0A7A72; border-radius: 2px; padding: 4px 12px; text-transform: uppercase; letter-spacing: 1px; } /* -- Glowing teal card -- */ .hex-card-teal { background: linear-gradient(180deg, rgba(10, 200, 185, 0.05) 0%, #0A1428 100%); border: 1px solid #0A7A72; border-top: 2px solid #0AC8B9; padding: 20px; box-shadow: 0 0 12px rgba(10, 200, 185, 0.1); } /* -- Gold card -- */ .hex-card { background: linear-gradient(180deg, #111E2B 0%, #0A1428 100%); border: 1px solid #463714; border-top: 2px solid #C8AA6E; padding: 20px; } /* -- Stat boxes -- */ .hex-stat-box { display: inline-block; background: linear-gradient(180deg, #1E2328 0%, #111E2B 100%); border: 1px solid #463714; border-radius: 2px; padding: 14px 24px; text-align: center; } .hex-stat-value { font-family: "Beaufort for LOL", serif; color: #F0E6D2; font-size: 32px; font-weight: bold; display: block; } .hex-stat-label { font-family: "SpiegelSans", Arial, sans-serif; color: #785A28; font-size: 11px; text-transform: uppercase; letter-spacing: 1.5px; display: block; margin-top: 6px; } /* -- Shimmer text -- */ .hex-shimmer { background: linear-gradient(90deg, #C8AA6E 0%, #F0E6D2 25%, #0AC8B9 50%, #F0E6D2 75%, #C8AA6E 100%); background-size: 200% auto; -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; animation: hex-shimmer 4s linear infinite; } /* -- Floating decoration -- */ .hex-float { animation: hex-float 3s ease-in-out infinite; } /* -- Teal glow border -- */ .hex-glow { box-shadow: 0 0 8px rgba(10, 200, 185, 0.3); border: 1px solid #0A7A72; } /* ========================================== ANIMATED VIZ BLOCK BORDERS ========================================== */ .dac-viz-block { animation: hex-border-shift 8s ease-in-out infinite; } /* ========================================== SVG HEXAGON DECORATIONS ========================================== */ /* -- Inline hexagon icon (small, next to text) -- */ .hex-icon { display: inline-block; vertical-align: middle; margin: 0 8px; } .hex-icon svg { width: 16px; height: 18px; } /* -- Floating hexagon cluster (decorative) -- */ .hex-cluster { position: relative; display: inline-block; height: 40px; width: 100%; } .hex-cluster svg { position: absolute; animation: hex-breathe 3s ease-in-out infinite; } .hex-cluster .hc-1 { left: 0; top: 4px; width: 24px; height: 28px; animation-delay: 0s; } .hex-cluster .hc-2 { left: 30px; top: 0; width: 18px; height: 20px; animation-delay: 0.8s; opacity: 0.6; } .hex-cluster .hc-3 { left: 52px; top: 8px; width: 14px; height: 16px; animation-delay: 1.6s; opacity: 0.4; } .hex-cluster .hc-4 { right: 0; top: 4px; width: 24px; height: 28px; animation-delay: 0.4s; } .hex-cluster .hc-5 { right: 30px; top: 0; width: 18px; height: 20px; animation-delay: 1.2s; opacity: 0.6; } .hex-cluster .hc-6 { right: 52px; top: 8px; width: 14px; height: 16px; animation-delay: 2.0s; opacity: 0.4; } /* -- Large spinning hexagon (background deco) -- */ .hex-spin-deco { display: inline-block; animation: hex-rotate 20s linear infinite; } .hex-spin-deco svg { width: 60px; height: 60px; } /* -- Hextech crystal (glowing gem shape) -- */ .hex-crystal { display: inline-block; animation: hex-float 4s ease-in-out infinite, hex-breathe 3s ease-in-out infinite; } .hex-crystal svg { width: 32px; height: 36px; } /* -- Scan line overlay (subtle horizontal sweep) -- */ .hex-scanline { position: relative; overflow: hidden; } .hex-scanline::after { content: ""; position: absolute; top: 0; left: -20%; width: 20%; height: 100%; background: linear-gradient(90deg, transparent, rgba(10, 200, 185, 0.08), transparent); animation: hex-scan 6s linear infinite; pointer-events: none; } /* -- Section header with animated hex accent -- */ .hex-section-row { display: flex; align-items: center; gap: 12px; } /* -- Pulsing dot (status indicator) -- */ .hex-pulse-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #0AC8B9; animation: hex-glow-pulse 2s ease-in-out infinite; box-shadow: 0 0 6px rgba(10, 200, 185, 0.5); vertical-align: middle; margin: 0 8px; } ```