diff --git a/templates/conference_list.html b/templates/conference_list.html
index 6aef0f0..11828ba 100644
--- a/templates/conference_list.html
+++ b/templates/conference_list.html
@@ -57,6 +57,16 @@
text-decoration: none;
}
+/* Bidirectional hover highlight */
+.conf-tl-bar.conf-hl {
+ filter: brightness(1.25);
+ box-shadow: inset 0 0 0 2px rgba(255,255,255,0.8);
+ z-index: 15;
+}
+tr.conf-hl > td {
+ background-color: rgba(255, 193, 7, 0.25) !important;
+}
+
/* Conference table */
.conf-month-row td {
background: #e9ecef !important;
@@ -99,7 +109,8 @@
{% set top_px = conf.lane * row_h + header_h %}
+ title="{{ conf.label }}"
+ data-conf-key="{{ conf.key }}">
{% if conf.url %}
{{ conf.name }}
{% else %}
{{ conf.name }}{% endif %}
@@ -143,7 +154,7 @@
{{ month_label }} |
{% endif %}
-
+
|
{%- if item.start_date == item.end_date -%}
{{ item.start_date.strftime("%-d %b %Y") }}
@@ -213,4 +224,32 @@
{{ conf_table("Past", past|reverse|list, "went") }}
+
+
{% endblock %}
diff --git a/web_view.py b/web_view.py
index acdf4d2..8ba8b25 100755
--- a/web_view.py
+++ b/web_view.py
@@ -482,6 +482,7 @@ def build_conference_timeline(
"lane": lane,
"left_pct": left_pct,
"width_pct": width_pct,
+ "key": f"{conf['start_date'].isoformat()}|{conf['name']}",
"label": (
f"{conf['name']}"
f" ({conf['start_date'].strftime('%-d %b')}–"
|