diff --git a/src/components/schedule/break.astro b/src/components/schedule/break.astro
index 33fa3920b..b5ec0d0a6 100644
--- a/src/components/schedule/break.astro
+++ b/src/components/schedule/break.astro
@@ -7,12 +7,12 @@ export interface Props {
}
const { time, title, style, className }: Props = Astro.props;
+const label = [time, title].filter(Boolean).join(" ");
---
-
- {time}{" "}
+
+ {time && `${time} `}
{title}
- {time} {title}
@@ -442,8 +498,17 @@ const dateText = format(date, "eeee - do MMMM");
.schedule-wrapper
{
width: 100%;
+ margin-top: 0.75rem;
}
+ .day {
+ margin-block: 2rem 3rem;
+ }
+
+ .day:first-child {
+ margin-top: 0;
+ }
+
:global(.day-end) {
display: flex;
@@ -496,7 +561,6 @@ const dateText = format(date, "eeee - do MMMM");
:global(.session),
.time,
:global(.break),
- .room-change,
header,
header > div > div {
/*outline: 2px solid var(--color-primary);*/
@@ -506,6 +570,29 @@ const dateText = format(date, "eeee - do MMMM");
padding:2px 0;
}
+ :global(.room-change) {
+ align-items: center;
+ background-color: #FCFBFA;
+ border-radius: 10px;
+ box-sizing: border-box;
+ color: var(--color-text);
+ display: flex;
+ font-weight: 400;
+ justify-content: center;
+ line-height: 1.2;
+ margin: 2px;
+ min-height: 0;
+ overflow: hidden;
+ padding: 0 8px;
+ white-space: nowrap;
+ }
+
+ :global(.break:not(.room-change)) {
+ background-color: #FFFCF7;
+ font-weight: 600;
+ letter-spacing: 0;
+ }
+
.posters {
text-align: center;
display: none;
@@ -542,6 +629,11 @@ const dateText = format(date, "eeee - do MMMM");
.schedule-container.header {
padding-bottom: 0;
+ margin-top: 0.5rem;
+ }
+
+ .schedule-container:not(.header) {
+ margin-top: 0.75rem;
}
.time,
@@ -553,7 +645,7 @@ const dateText = format(date, "eeee - do MMMM");
position: sticky;
top: 0;
background: var(--color-body-background);
- z-index: 20;inherit
+ z-index: 20;
> div > div {
padding: 8px;
@@ -562,25 +654,23 @@ const dateText = format(date, "eeee - do MMMM");
}
.schedule {
- --room-change: calc(var(--minute) * 8);
- --5min: calc(var(--minute) * 5);
+ --break: 14px;
+ --room-change: 52px;
display: grid;
gap: 2px;
padding: 0;
- padding-top:100px;
}
:global(.session),
.time,
.posters,
- .room-change,
+ :global(.room-change),
:global(.break) {
grid-row: var(--start) / var(--end);
grid-column: var(--col-start) / var(--col-end);
}
-
:global(.day-end){
font-size: 1.2rem;
margin: 2px;
diff --git a/src/content/config.ts b/src/content/config.ts
index 6f2e46a9f..5bba56bde 100644
--- a/src/content/config.ts
+++ b/src/content/config.ts
@@ -166,11 +166,9 @@ interface ScheduleData {
const days = defineCollection({
loader: async (): Promise
=> {
- // TODO: Re-enable when the API is available
- // const schedule = (await loadData(
- // import.meta.env.EP_SCHEDULE_API
- // )) as ScheduleData;
- const schedule = null as ScheduleData | null;
+ const schedule = (await loadData(
+ import.meta.env.EP_SCHEDULE_API
+ )) as ScheduleData;
if (!schedule || Object.keys(schedule).length === 0) {
return [];
diff --git a/src/data/links.json b/src/data/links.json
index c33f28ddb..fdff993e2 100644
--- a/src/data/links.json
+++ b/src/data/links.json
@@ -3,6 +3,10 @@
{
"name": "Programme",
"items": [
+ {
+ "name": "Schedule",
+ "path": "/schedule"
+ },
{
"name": "List of Sessions",
"path": "/sessions"
@@ -132,10 +136,26 @@
{
"name": "Programme",
"items": [
+ {
+ "name": "Schedule",
+ "path": "/schedule"
+ },
+ {
+ "name": "List of Sessions",
+ "path": "/sessions"
+ },
+ {
+ "name": "List of Speakers",
+ "path": "/speakers"
+ },
{
"name": "Tracks",
"path": "/tracks"
},
+ {
+ "name": "Speaker Guidelines",
+ "path": "/guidelines"
+ },
{
"name": "Speaker Mentorship",
"path": "/mentorship"
diff --git a/src/pages/schedule/talks.astro b/src/pages/schedule/talks.astro
index 78d725874..48d29be07 100644
--- a/src/pages/schedule/talks.astro
+++ b/src/pages/schedule/talks.astro
@@ -20,16 +20,14 @@ export const getStaticPaths = async () => {
};
const days = await getCollection("days");
+const talkDays = new Set(["2026-07-15", "2026-07-16", "2026-07-17"]);
---
{
days
- .filter((day) => {
- const dayOfWeek = new Date(day.id).getDay();
- return dayOfWeek !== 1 && dayOfWeek !== 2;
- })
+ .filter((day) => talkDays.has(day.id))
.map((day) => (
))
diff --git a/src/pages/schedule/tutorials.astro b/src/pages/schedule/tutorials.astro
index 0be5d947d..3fbaaef40 100644
--- a/src/pages/schedule/tutorials.astro
+++ b/src/pages/schedule/tutorials.astro
@@ -20,16 +20,14 @@ export const getStaticPaths = async () => {
};
const days = await getCollection("days");
+const tutorialDays = new Set(["2026-07-13", "2026-07-14"]);
---
{
days
- .filter((day) => {
- const dayOfWeek = new Date(day.id).getDay();
- return dayOfWeek == 1 || dayOfWeek == 2;
- })
+ .filter((day) => tutorialDays.has(day.id))
.map((day) => (
))