From 8c9d988201bad0807f7d7328d9e04eb03f1bbf98 Mon Sep 17 00:00:00 2001 From: Shawn Polson Date: Thu, 22 Oct 2026 18:24:16 +0000 Subject: [PATCH 01/11] Redesign the 2027 Winter School page Add a dedicated responsive layout and stylesheet inspired by the event artwork. Preserve the original content and live embeds, apply the requested content refinements, and use Font Awesome with the original SVG icons available as a fallback. --- _includes/winter-school-icon-svg.html | 29 + _includes/winter-school-icon.html | 25 + _layouts/winter-school.html | 115 ++++ .../meetings/winter_schools/winter_school.md | 27 +- css/winter-school.css | 508 ++++++++++++++++++ 5 files changed, 691 insertions(+), 13 deletions(-) create mode 100644 _includes/winter-school-icon-svg.html create mode 100644 _includes/winter-school-icon.html create mode 100644 _layouts/winter-school.html create mode 100644 css/winter-school.css diff --git a/_includes/winter-school-icon-svg.html b/_includes/winter-school-icon-svg.html new file mode 100644 index 00000000..97a9c73c --- /dev/null +++ b/_includes/winter-school-icon-svg.html @@ -0,0 +1,29 @@ +{%- capture icon_paths -%} + {%- case include.name -%} + {%- when 'dates' -%} + + {%- when 'location' -%} + + {%- when 'registration' -%} + + {%- when 'travel-support' -%} + + {%- when 'hotel' -%} + + {%- when 'agenda' -%} + + {%- when 'zoom' -%} + + {%- when 'transportation' -%} + + {%- when 'python-resources' -%} + + {%- when 'winter-school-materials' -%} + + {%- when 'winter-school-code-of-conduct' -%} + + {%- endcase -%} +{%- endcapture -%} +{%- if icon_paths != empty -%} + +{%- endif -%} diff --git a/_includes/winter-school-icon.html b/_includes/winter-school-icon.html new file mode 100644 index 00000000..eca12c34 --- /dev/null +++ b/_includes/winter-school-icon.html @@ -0,0 +1,25 @@ +{%- comment -%} + Set winter_school_icons: svg in the page front matter to restore the original icons. + Font Awesome uses the same pinned 5.5.0 stylesheet as the rest of the PyHC site. +{%- endcomment -%} +{%- if page.winter_school_icons == 'svg' -%} + {%- include winter-school-icon-svg.html name=include.name -%} +{%- else -%} + {%- assign icon_class = '' -%} + {%- case include.name -%} + {%- when 'dates' -%}{%- assign icon_class = 'fa-calendar-alt' -%} + {%- when 'location' -%}{%- assign icon_class = 'fa-map-marker-alt' -%} + {%- when 'registration' -%}{%- assign icon_class = 'fa-users' -%} + {%- when 'travel-support' -%}{%- assign icon_class = 'fa-plane' -%} + {%- when 'hotel' -%}{%- assign icon_class = 'fa-bed' -%} + {%- when 'agenda' -%}{%- assign icon_class = 'fa-file-alt' -%} + {%- when 'zoom' -%}{%- assign icon_class = 'fa-video' -%} + {%- when 'transportation' -%}{%- assign icon_class = 'fa-bus' -%} + {%- when 'python-resources' -%}{%- assign icon_class = 'fa-book-open' -%} + {%- when 'winter-school-materials' -%}{%- assign icon_class = 'fa-folder-open' -%} + {%- when 'winter-school-code-of-conduct' -%}{%- assign icon_class = 'fa-shield-alt' -%} + {%- endcase -%} + {%- if icon_class != empty -%} + + {%- endif -%} +{%- endif -%} diff --git a/_layouts/winter-school.html b/_layouts/winter-school.html new file mode 100644 index 00000000..7ad0c8ba --- /dev/null +++ b/_layouts/winter-school.html @@ -0,0 +1,115 @@ + + + + + + + + {{ page.title | escape }} | PyHC + + + {% unless page.winter_school_icons == 'svg' %} + + {% endunless %} + + {% seo %} + + + + +
+
+ PyHC schools   /   Winter 2027 + Registration is open +
+ {% comment %} + Wrap the rendered Markdown sections for presentation and add decorative icons. + Remove only the old spacing-only paragraphs; the Markdown owns the content. + {% endcomment %} + {% assign school_sections = content | replace: '


', '' | split: '' | first | append: '

' %} +
{{ banner }}
+
+
+ {% include winter-school-icon.html name='dates' %} +
WhenJanuary 5–8, 2027Tuesday through Friday
+
+
+ {% include winter-school-icon.html name='location' %} +
WhereUniversity of ArizonaTucson, AZ · and online
+
+
+ {% include winter-school-icon.html name='registration' %} +
RegistrationFree for everyoneIn person & virtual
+
+
+ Register now + Register by December 18, 2026 +
+
+ +
+
+
+

{{ page.title }}

+ {{ school_sections.first | remove_first: banner }} +
+
+ + Winter School 2027 poster, January 5–8 at the University of Arizona + +
View & share the event poster
+
+
+
+ {% for section in school_sections offset: 1 %} + {% assign heading_attributes = section | split: '>' | first %} + {% assign section_id = heading_attributes | split: 'id="' | last | split: '"' | first %} + {% assign heading_html = section | split: '' | first | prepend: '' %} + {% assign section_body = section | prepend: '{% include winter-school-icon.html name='zoom' %}{% endcapture %} + {% capture transportation_heading %}

{% include winter-school-icon.html name='transportation' %}{% endcapture %} + {% assign section_body = section_body | replace: '

', zoom_heading | replace: '

', transportation_heading %} +
+

{% include winter-school-icon.html name=section_id %}{{ heading_html | strip_html }}

+ {% if section_id == 'location' %} + {{ section_body | replace: '
@@ -58,10 +63,6 @@ The agenda for the PyHC 2027 Winter School is a living document, and is subject the "public" tab. Note this is presentational only, not an access control. --> -
-#### Zoom Meeting Information -We will use Zoom for remote participation. **Connection details will be sent via email to registered attendees.** -
#### Transportation @@ -84,7 +85,7 @@ Looking for notebooks or slides presented at the Winter School? They will be sto
### Winter School Code of Conduct -We will follow the PyHC Code of Conduct for the PyHC 2027 Winter School ([see here](https://heliopython.org/docs/code_of_conduct/)). Those who violate the code of conduct are subject to removal from the remainder of Winter School activities. +We will follow the [PyHC Code of Conduct](https://heliopython.org/docs/code_of_conduct/) for the PyHC 2027 Winter School. Those who violate the code of conduct are subject to removal from the remainder of Winter School activities.
### Additional Info @@ -97,4 +98,4 @@ Please email: pyhc-confiden NASA's Goddard Space Flight Center logo

-This summer school is funded by NASA award numbers 80NSSC22K0326 and 80NSSC26K1134 +This Winter School is funded by NASA award numbers 80NSSC22K0326 and 80NSSC26K1134 diff --git a/css/winter-school.css b/css/winter-school.css new file mode 100644 index 00000000..470c9a64 --- /dev/null +++ b/css/winter-school.css @@ -0,0 +1,508 @@ +/* Winter School only: the rest of the site's layouts and styles are unchanged. */ +:root { + color-scheme:light; + --ink:#17354b; + --muted:#526b7e; + --line:#d3e0e9; + --ice:#edf4f8; + --blue:#245578; + --paper:#f7fafc; +} + +* { + box-sizing:border-box; +} + +html { + scroll-behavior:smooth; + scroll-padding-top:24px; +} + +body.winter-school { + margin:0; + background:var(--paper); + color:var(--ink); + font-family:Inter,"Segoe UI",Arial,sans-serif; + font-size:16px; + line-height:1.75; + -webkit-font-smoothing:antialiased; +} + +a { + color:var(--blue); + text-underline-offset:4px; +} + +a:hover { + color:#09283f; +} + +a:focus-visible,summary:focus-visible { + outline:3px solid #287db5; + outline-offset:5px; +} + +img { + max-width:100%; + height:auto; +} + +p { + margin:0 0 1.2em; +} + +h1,h2,h3,h4 { + line-height:1.2; + letter-spacing:-.035em; + margin:0 0 20px; + font-weight:650; +} + +h2 { + font-size:clamp(30px,3vw,40px); +} + +h3 { + font-size:24px; +} + +h4 { + font-size:19px; +} + +strong { + font-weight:650; +} + +.wrap { + width:min(1160px,calc(100% - 64px)); + margin-inline:auto; +} + +.eyebrow { + text-transform:uppercase; + letter-spacing:.18em; + font-size:11px; + font-weight:700; + color:var(--muted); + margin-bottom:16px; +} + +.visually-hidden { + position:absolute; + width:1px; + height:1px; + padding:0; + margin:-1px; + overflow:hidden; + clip:rect(0,0,0,0); + white-space:nowrap; + border:0; +} + +.skip-link { + position:absolute; + left:15px; + top:-100px; + background:white; + padding:12px; + z-index:10; +} + +.skip-link:focus { + top:10px; +} + +.site-header { + background:#fff; + border-bottom:1px solid var(--line); +} + +.site-header-inner { + width:min(1280px,calc(100% - 64px)); + margin:auto; + min-height:96px; + display:flex; + align-items:center; + justify-content:space-between; + gap:36px; +} + +.brand { + display:flex; + align-items:center; + gap:12px; + text-decoration:none; + color:var(--ink); + flex-shrink:0; +} + +.brand>span { + font-family:Orbitron,"Segoe UI",sans-serif; + font-size:25px; + font-weight:700; + letter-spacing:-.04em; + line-height:1.25; +} + +.brand small { + display:block; + font-family:Inter,"Segoe UI",Arial,sans-serif; + font-size:10px; + font-weight:500; + letter-spacing:.03em; + color:var(--muted); + margin-top:5px; +} + +.brand img { + width:52px; + height:52px; +} + +.site-nav { + display:flex; + justify-content:flex-end; + gap:23px; + flex-wrap:wrap; +} + +.site-nav a { + text-decoration:none; + color:#425a6e; + font-size:12px; + font-weight:600; +} + +.site-nav a:hover { + text-decoration:underline; +} + +.event-topline { + display:flex; + justify-content:space-between; + align-items:center; + padding-block:24px 20px; + font-size:11px; + letter-spacing:.12em; + text-transform:uppercase; + color:var(--muted); +} + +.event-topline a { + text-decoration:none; +} + +.event-topline span { + display:flex; + align-items:center; + gap:9px; +} + +.status-dot { + width:8px; + height:8px; + flex-shrink:0; + background:linear-gradient(145deg,#49df70,#20d359 65%,#1ccb52); + border-radius:50%; + display:inline-block; + box-shadow:0 0 0 3px #24d45c12,0 0 8px #1dd65880,0 0 15px #1dd65830; +} + +.hero { + width:100%; + margin:auto; + position:relative; +} + +.hero img { + display:block; + width:100%; + aspect-ratio:2/1; + object-fit:cover; + border-radius:16px; + box-shadow:0 18px 55px #183b5620; +} + +.event-bar { + position:relative; + display:grid; + grid-template-columns:1fr 1.15fr .85fr auto; + gap:26px; + align-items:center; + margin-top:20px; + padding:25px 30px; + border:1px solid #fff; + border-radius:12px; + background:linear-gradient(120deg,#ffffffed,#f3f8fbee); + box-shadow:0 12px 35px #183b5614; + backdrop-filter:blur(18px); +} + +.event-fact { + display:flex; + align-items:center; + gap:14px; + border-right:1px solid var(--line); + padding-right:12px; +} + +.ws-icon { + display:inline-block; + flex-shrink:0; + width:24px; + height:24px; + color:var(--ink); + vertical-align:-.1em; +} + +.ws-icon.ws-icon-fa { + font-size:22px; + line-height:24px; + text-align:center; +} + +.event-fact > .ws-icon { + width:26px; + height:26px; +} + +.event-fact > .ws-icon-fa { + font-size:23px; + line-height:26px; +} + +.event-fact small { + display:block; + color:var(--muted); + font-size:10px; + text-transform:uppercase; + letter-spacing:.13em; + margin-bottom:4px; +} + +.event-fact strong { + font-size:16px; + letter-spacing:-.02em; +} + +.event-fact span { + font-size:12px; + color:var(--muted); + display:block; +} + +.button { + display:inline-flex; + align-items:center; + justify-content:space-between; + gap:28px; + padding:14px 22px; + background:var(--ink); + color:#fff; + border:1px solid var(--ink); + border-radius:6px; + text-decoration:none; + font-size:13px; + font-weight:600; + line-height:1.5; + transition:background .15s; +} + +.button:hover { + background:#285c7c; + color:white; +} + +.button.light { + background:white; + color:var(--ink); + border-color:var(--line); +} + +.button.light:hover { + background:var(--ice); +} + +.register-cta { + text-align:center; +} + +.register-cta small { + display:block; + font-size:10px; + color:var(--muted); + margin-top:5px; +} + +.section-nav { + display:flex; + align-items:center; + justify-content:center; + gap:35px; + border-bottom:1px solid var(--line); + padding:27px 0; + font-size:12px; +} + +.section-nav a { + color:var(--muted); + text-decoration:none; +} + +.section-nav a:hover { + text-decoration:underline; + color:var(--ink); +} + + +.hero p { margin: 0; } +.intro { + display: grid; + grid-template-columns: minmax(0, 1fr) 290px; + gap: 85px; + align-items: center; + padding-block: 76px; +} +.intro h1 { + font-size: clamp(34px, 3.4vw, 47px); + line-height: 1.12; + margin-bottom: 28px; + max-width: 700px; + text-wrap: balance; +} +.intro p { color: var(--muted); font-size: 15px; line-height: 1.85; } +.intro p:first-of-type { color: #3c576c; font-size: 18px; line-height: 1.7; } +.intro p:last-child { margin-bottom: 0; } +.poster { margin: 0; width: 290px; justify-self: end; transform: rotate(2deg); } +.poster img { display: block; border: 7px solid #fff; border-radius: 5px; box-shadow: 0 18px 40px #1d3d5c26; } +.poster figcaption { margin-top: 16px; text-align: center; font-size: 10px; letter-spacing: .07em; text-transform: uppercase; } +.poster a { text-decoration: none; } +.poster figcaption a:hover { text-decoration: underline; } +.poster .external-arrow { width: 8px; height: 8px; margin-left: 4px; } +.poster .external-arrow::after { width: 10px; top: 3px; right: -1px; } +.sections-grid { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); column-gap: 28px; } +.content-section { grid-column: 1 / -1; min-width: 0; padding-block: 54px; border-bottom: 1px solid var(--line); } +.content-section > h3 { font-size: 32px; margin-bottom: 25px; } +.content-section h3:has(.ws-icon), .content-section h4:has(.ws-icon) { display: flex; align-items: flex-start; gap: 13px; } +.content-section h3 > .ws-icon { margin-top: .17em; } +.content-section h4 > .ws-icon { width: 21px; height: 21px; margin-top: .1em; } +.content-section h4 > .ws-icon-fa { font-size: 19px; line-height: 21px; } +.content-section p { font-size: 15px; line-height: 1.85; color: var(--muted); } +.content-section > p:last-child { margin-bottom: 0; } +.content-section strong { color: #365266; } +.section-dates, .section-registration { + align-self: stretch; + padding: 32px; + background: linear-gradient(120deg, #e5eff6, #f5f9fc); + border: 1px solid #cbdde9; + border-radius: 12px; + margin-bottom: 8px; +} +.section-dates { grid-column: span 3; } +.section-registration { grid-column: span 9; } +.section-dates > h3, .section-registration > h3 { font-size: 26px; margin-bottom: 20px; } +.section-dates p { margin-bottom: 0; text-wrap: balance; font-size: 22px; line-height: 1.6; color: var(--ink); font-weight: 500; } +.section-dates p + p { margin-top: 4px; font-size: 14px; font-weight: 400; color: var(--muted); } +.section-registration p { margin: 0; font-size: 14px; } +.section-travel-support, .section-hotel { display: grid; grid-template-columns: 245px minmax(0, 1fr); column-gap: 48px; } +.section-travel-support > h3, .section-hotel > h3 { grid-column: 1; grid-row: 1; } +.section-travel-support > p, .section-hotel > p { grid-column: 2; } +.section-location { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); column-gap: 36px; align-items: start; } +.section-location > h3, .section-location > h4, .section-location > p { grid-column: 1; } +.section-location > h3 { margin-bottom: 18px; } +.section-location > p:first-of-type { margin-left: 37px; margin-bottom: 26px; } +.section-location > h4 { font-size: 21px; letter-spacing: -.025em; border-top: 1px solid var(--line); padding-top: 25px; margin-bottom: 14px; } +.section-location > h4 + p { margin-left: 34px; margin-bottom: 0; } +iframe { display: block; width: 100%; max-width: 100%; border: 0; background: white; border-radius: 8px; box-shadow: 0 3px 18px #183b560c; } +.section-location iframe { grid-column: 2; grid-row: 1 / span 4; height: 450px; } +.section-agenda > h3 { margin-bottom: 14px; } +.section-agenda iframe { height: 560px; margin-block: 26px 36px; } +.section-agenda h4 { font-size: 23px; margin-top: 30px; } +.section-agenda h4:not(:first-of-type) { border-top: 1px solid var(--line); padding-top: 26px; } +.section-official-language { display: grid; grid-template-columns: 245px minmax(0, 1fr); gap: 48px; padding-block: 40px; } +.section-official-language h3 { font-size: 25px; margin: 0; } +.section-python-resources, .section-winter-school-materials, .section-winter-school-code-of-conduct { grid-column: span 4; padding: 38px 0; border-bottom: none; } +.section-python-resources h3, .section-winter-school-materials h3, .section-winter-school-code-of-conduct h3 { font-size: 23px; border-top: 2px solid #a6bfce; padding-top: 23px; } +.section-python-resources p, .section-winter-school-materials p, .section-winter-school-code-of-conduct p { font-size: 14px; } +.section-additional-info { display: flex; justify-content: space-between; align-items: center; gap: 30px; padding: 25px 30px; background: #edf3f7; border: 0; border-radius: 8px; } +.section-additional-info h3 { font-size: 23px; margin: 0; } +.section-additional-info p { margin: 0; font-size: 14px; } +.section-additional-info a { overflow-wrap: anywhere; } +.section-acknowledgements { display: grid; grid-template-columns: 70px minmax(0,1fr); column-gap: 25px; align-items: center; padding-block: 45px; border: 0; } +.section-acknowledgements h3 { grid-column: 2; font-size: 18px; margin-bottom: 6px; } +.section-acknowledgements p[float] { grid-column: 1; grid-row: 1 / span 2; margin: 0; } +.section-acknowledgements img { display: block; width: 70px; height: 70px; border-radius: 50%; object-fit: contain; } +.section-acknowledgements p:last-child { grid-column: 2; font-size: 12px; } +.site-footer { padding-block: 28px 35px; border-top: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 30px; } +.footer-brand { font-family: Orbitron,"Segoe UI",sans-serif; font-size: 21px; font-weight: 700; letter-spacing: -.04em; text-decoration: none; } +.footer-brand span { display: block; font-family: Inter,"Segoe UI",Arial,sans-serif; font-size: 9px; font-weight: 400; letter-spacing: normal; color: var(--muted); } +.site-footer p { font-size: 10px; color: var(--muted); margin: 0; } +.external-arrow { display: inline-block; position: relative; width: 10px; height: 10px; flex-shrink: 0; border-top: 1.5px solid currentColor; border-right: 1.5px solid currentColor; } +.external-arrow::after { content: ''; position: absolute; height: 1.5px; width: 13px; background: currentColor; top: 4px; right: -2px; transform: rotate(-45deg); } +@media (max-width:1100px) { + .site-header-inner { gap: 20px; } + .site-nav { gap: 13px; } + .brand small { display: none; } + .event-bar { gap: 17px; padding: 24px; } + .event-fact { gap: 10px; } + .event-fact > .ws-icon { width: 22px; height: 22px; } + .event-fact > .ws-icon-fa { font-size: 20px; line-height: 22px; } + .event-fact strong { font-size: 14px; } + .intro { grid-template-columns: minmax(0, 1fr) 240px; gap: 45px; } + .poster { width: 240px; } + .section-dates { grid-column: span 4; } + .section-registration { grid-column: span 8; } + .section-travel-support, .section-hotel, .section-official-language { grid-template-columns: 180px minmax(0,1fr); column-gap: 25px; } +} +@media (max-width:760px) { + .wrap { width: calc(100% - 40px); } + .site-header-inner { width: calc(100% - 40px); padding-block: 16px; display: block; } + .brand { justify-content: center; } + .brand small { display: block; } + .brand img { width: 42px; height: 42px; } + .site-nav { justify-content: center; gap: 7px 17px; margin-top: 15px; } + .site-nav a { font-size: 10px; } + .event-topline { font-size: 8px; padding-block: 19px; letter-spacing: .08em; } + .hero img { border-radius: 9px; } + .event-bar { margin-top: 15px; grid-template-columns: minmax(0,1fr) minmax(0,1fr); padding: 22px; gap: 20px 16px; } + .event-fact { display: block; padding-right: 8px; } + .event-fact > .ws-icon { display: block; margin-bottom: 10px; } + .event-fact:nth-child(2) { border: 0; } + .event-fact strong { font-size: 13px; } + .event-fact span { font-size: 11px; } + .register-cta .button { padding: 12px 14px; gap: 14px; font-size: 12px; } + .register-cta small { font-size: 9px; } + .section-nav { justify-content: flex-start; gap: 23px; overflow-x: auto; white-space: nowrap; font-size: 11px; padding-block: 21px; } + .intro { padding-block: 45px; grid-template-columns: minmax(0,1fr); gap: 32px; } + .intro h1 { font-size: 35px; } + .intro p { font-size: 14px; } + .intro p:first-of-type { font-size: 17px; } + .poster { justify-self: center; width: min(230px, 100%); } + .sections-grid { display: block; } + .content-section { padding-block: 36px; } + .content-section h3 { font-size: 27px; } + .content-section p { font-size: 14px; } + .section-dates, .section-registration { padding: 25px; margin-bottom: 18px; } + .section-dates p { font-size: 20px; } + .section-travel-support, .section-hotel, .section-official-language { display: block; } + .section-official-language h3 { margin-bottom: 20px; } + .section-location { display: block; } + .section-location > p:first-of-type, .section-location > h4 + p { margin-left: 0; } + .section-location iframe { height: 350px; margin-top: 26px; } + .section-agenda iframe { height: 500px; } + .section-python-resources, .section-winter-school-materials, .section-winter-school-code-of-conduct { padding-block: 20px; } + .section-python-resources h3, .section-winter-school-materials h3, .section-winter-school-code-of-conduct h3 { font-size: 23px; } + .section-additional-info { display: block; padding: 23px; margin-top: 16px; } + .section-additional-info h3 { margin-bottom: 12px; font-size: 23px; } + .section-acknowledgements { grid-template-columns: 55px minmax(0,1fr); column-gap: 18px; } + .section-acknowledgements img { width: 55px; height: 55px; } + .section-acknowledgements h3 { font-size: 17px; } + .section-acknowledgements p:last-child { font-size: 11px; } + .site-footer { display: block; } + .site-footer p { margin-top: 15px; } +} +@media (prefers-reduced-motion:reduce) { + html { scroll-behavior: auto; } + .button { transition: none; } +} From b39f94342948d970dcbf670dbcf485575ab72aac Mon Sep 17 00:00:00 2001 From: sapols Date: Thu, 22 Oct 2026 12:54:38 -0600 Subject: [PATCH 02/11] Remove redundant Winter School breadcrumb link --- _layouts/winter-school.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_layouts/winter-school.html b/_layouts/winter-school.html index 7ad0c8ba..6277d86c 100644 --- a/_layouts/winter-school.html +++ b/_layouts/winter-school.html @@ -34,7 +34,7 @@
- PyHC schools   /   Winter 2027 +
PyHC schools   /   Winter 2027
Registration is open
{% comment %} From a3438c4bca50eb18be66fdae352a6743658a4e5b Mon Sep 17 00:00:00 2001 From: sapols Date: Thu, 22 Oct 2026 12:57:16 -0600 Subject: [PATCH 03/11] Remove unused Winter School SVG icon fallback --- _includes/winter-school-icon-svg.html | 29 -------------- _includes/winter-school-icon.html | 38 ++++++++----------- _layouts/winter-school.html | 2 - .../meetings/winter_schools/winter_school.md | 1 - 4 files changed, 15 insertions(+), 55 deletions(-) delete mode 100644 _includes/winter-school-icon-svg.html diff --git a/_includes/winter-school-icon-svg.html b/_includes/winter-school-icon-svg.html deleted file mode 100644 index 97a9c73c..00000000 --- a/_includes/winter-school-icon-svg.html +++ /dev/null @@ -1,29 +0,0 @@ -{%- capture icon_paths -%} - {%- case include.name -%} - {%- when 'dates' -%} - - {%- when 'location' -%} - - {%- when 'registration' -%} - - {%- when 'travel-support' -%} - - {%- when 'hotel' -%} - - {%- when 'agenda' -%} - - {%- when 'zoom' -%} - - {%- when 'transportation' -%} - - {%- when 'python-resources' -%} - - {%- when 'winter-school-materials' -%} - - {%- when 'winter-school-code-of-conduct' -%} - - {%- endcase -%} -{%- endcapture -%} -{%- if icon_paths != empty -%} - -{%- endif -%} diff --git a/_includes/winter-school-icon.html b/_includes/winter-school-icon.html index eca12c34..c1e51905 100644 --- a/_includes/winter-school-icon.html +++ b/_includes/winter-school-icon.html @@ -1,25 +1,17 @@ -{%- comment -%} - Set winter_school_icons: svg in the page front matter to restore the original icons. - Font Awesome uses the same pinned 5.5.0 stylesheet as the rest of the PyHC site. -{%- endcomment -%} -{%- if page.winter_school_icons == 'svg' -%} - {%- include winter-school-icon-svg.html name=include.name -%} -{%- else -%} - {%- assign icon_class = '' -%} - {%- case include.name -%} - {%- when 'dates' -%}{%- assign icon_class = 'fa-calendar-alt' -%} - {%- when 'location' -%}{%- assign icon_class = 'fa-map-marker-alt' -%} - {%- when 'registration' -%}{%- assign icon_class = 'fa-users' -%} - {%- when 'travel-support' -%}{%- assign icon_class = 'fa-plane' -%} - {%- when 'hotel' -%}{%- assign icon_class = 'fa-bed' -%} - {%- when 'agenda' -%}{%- assign icon_class = 'fa-file-alt' -%} - {%- when 'zoom' -%}{%- assign icon_class = 'fa-video' -%} - {%- when 'transportation' -%}{%- assign icon_class = 'fa-bus' -%} - {%- when 'python-resources' -%}{%- assign icon_class = 'fa-book-open' -%} - {%- when 'winter-school-materials' -%}{%- assign icon_class = 'fa-folder-open' -%} - {%- when 'winter-school-code-of-conduct' -%}{%- assign icon_class = 'fa-shield-alt' -%} - {%- endcase -%} - {%- if icon_class != empty -%} +{%- assign icon_class = '' -%} +{%- case include.name -%} + {%- when 'dates' -%}{%- assign icon_class = 'fa-calendar-alt' -%} + {%- when 'location' -%}{%- assign icon_class = 'fa-map-marker-alt' -%} + {%- when 'registration' -%}{%- assign icon_class = 'fa-users' -%} + {%- when 'travel-support' -%}{%- assign icon_class = 'fa-plane' -%} + {%- when 'hotel' -%}{%- assign icon_class = 'fa-bed' -%} + {%- when 'agenda' -%}{%- assign icon_class = 'fa-file-alt' -%} + {%- when 'zoom' -%}{%- assign icon_class = 'fa-video' -%} + {%- when 'transportation' -%}{%- assign icon_class = 'fa-bus' -%} + {%- when 'python-resources' -%}{%- assign icon_class = 'fa-book-open' -%} + {%- when 'winter-school-materials' -%}{%- assign icon_class = 'fa-folder-open' -%} + {%- when 'winter-school-code-of-conduct' -%}{%- assign icon_class = 'fa-shield-alt' -%} +{%- endcase -%} +{%- if icon_class != empty -%} - {%- endif -%} {%- endif -%} diff --git a/_layouts/winter-school.html b/_layouts/winter-school.html index 6277d86c..48a85f32 100644 --- a/_layouts/winter-school.html +++ b/_layouts/winter-school.html @@ -8,9 +8,7 @@ {{ page.title | escape }} | PyHC - {% unless page.winter_school_icons == 'svg' %} - {% endunless %} {% seo %} diff --git a/_pages/meetings/winter_schools/winter_school.md b/_pages/meetings/winter_schools/winter_school.md index b2a91e3f..6ccea3ea 100644 --- a/_pages/meetings/winter_schools/winter_school.md +++ b/_pages/meetings/winter_schools/winter_school.md @@ -1,6 +1,5 @@ --- layout: winter-school -winter_school_icons: font-awesome title: Python in Heliophysics Winter School 2027 summary: The web page for the 2027 PyHC Winter School permalink: /winter-school From 6943198df942963194ca6e8ca6d89c3bc255d888 Mon Sep 17 00:00:00 2001 From: sapols Date: Thu, 22 Oct 2026 13:00:06 -0600 Subject: [PATCH 04/11] Add a gentle hover enlargement to the Winter School poster --- css/winter-school.css | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/css/winter-school.css b/css/winter-school.css index 470c9a64..2dcfb1f9 100644 --- a/css/winter-school.css +++ b/css/winter-school.css @@ -374,7 +374,10 @@ strong { .intro p { color: var(--muted); font-size: 15px; line-height: 1.85; } .intro p:first-of-type { color: #3c576c; font-size: 18px; line-height: 1.7; } .intro p:last-child { margin-bottom: 0; } -.poster { margin: 0; width: 290px; justify-self: end; transform: rotate(2deg); } +.poster { margin: 0; width: 290px; justify-self: end; transform: rotate(2deg); transition: transform .22s ease-out; } +@media (hover:hover) and (pointer:fine) { + .poster:hover { transform: rotate(2deg) scale(1.04); } +} .poster img { display: block; border: 7px solid #fff; border-radius: 5px; box-shadow: 0 18px 40px #1d3d5c26; } .poster figcaption { margin-top: 16px; text-align: center; font-size: 10px; letter-spacing: .07em; text-transform: uppercase; } .poster a { text-decoration: none; } @@ -504,5 +507,5 @@ iframe { display: block; width: 100%; max-width: 100%; border: 0; background: wh } @media (prefers-reduced-motion:reduce) { html { scroll-behavior: auto; } - .button { transition: none; } + .button, .poster { transition: none; } } From bc258a850ceb80040fa3b27de91b517498e2973f Mon Sep 17 00:00:00 2001 From: sapols Date: Thu, 22 Oct 2026 13:01:58 -0600 Subject: [PATCH 05/11] Limit poster hover enlargement to the image --- css/winter-school.css | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/css/winter-school.css b/css/winter-school.css index 2dcfb1f9..0b2cba20 100644 --- a/css/winter-school.css +++ b/css/winter-school.css @@ -374,11 +374,11 @@ strong { .intro p { color: var(--muted); font-size: 15px; line-height: 1.85; } .intro p:first-of-type { color: #3c576c; font-size: 18px; line-height: 1.7; } .intro p:last-child { margin-bottom: 0; } -.poster { margin: 0; width: 290px; justify-self: end; transform: rotate(2deg); transition: transform .22s ease-out; } +.poster { margin: 0; width: 290px; justify-self: end; transform: rotate(2deg); } +.poster img { display: block; border: 7px solid #fff; border-radius: 5px; box-shadow: 0 18px 40px #1d3d5c26; transition: transform .22s ease-out; } @media (hover:hover) and (pointer:fine) { - .poster:hover { transform: rotate(2deg) scale(1.04); } + .poster img:hover { transform: scale(1.04); } } -.poster img { display: block; border: 7px solid #fff; border-radius: 5px; box-shadow: 0 18px 40px #1d3d5c26; } .poster figcaption { margin-top: 16px; text-align: center; font-size: 10px; letter-spacing: .07em; text-transform: uppercase; } .poster a { text-decoration: none; } .poster figcaption a:hover { text-decoration: underline; } @@ -507,5 +507,5 @@ iframe { display: block; width: 100%; max-width: 100%; border: 0; background: wh } @media (prefers-reduced-motion:reduce) { html { scroll-behavior: auto; } - .button, .poster { transition: none; } + .button, .poster img { transition: none; } } From 037f5e1dd4f2e5abd284964828727c986fb25f62 Mon Sep 17 00:00:00 2001 From: sapols Date: Thu, 22 Oct 2026 13:03:04 -0600 Subject: [PATCH 06/11] Remove hyphen from knowledge sharing --- _pages/meetings/winter_schools/winter_school.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_pages/meetings/winter_schools/winter_school.md b/_pages/meetings/winter_schools/winter_school.md index 6ccea3ea..59c3380b 100644 --- a/_pages/meetings/winter_schools/winter_school.md +++ b/_pages/meetings/winter_schools/winter_school.md @@ -11,7 +11,7 @@ The Python in Heliophysics Community (PyHC) is excited to announce its 2027 Wint This Winter School builds on the success of PyHC's [2022]({{ site.baseurl }}/summer-school) and [2024]({{ site.baseurl }}/summer-school-24) Summer Schools, offering another deep dive into the rich ecosystem of Heliophysics Python packages, just in the winter this time! Open to undergraduate and graduate students, early career scientists, and anyone eager to deepen their understanding of Python in the Heliophysics and Space Weather disciplines, this program promises a mix of in-depth tutorials, engaging demos, and hands-on sessions, delivered by some of the field's leading experts. -Remote options will be available for those unable to make the trip to Tucson, and the presentations will be recorded and streamed to [PyHC's YouTube channel](https://www.youtube.com/@pythoninheliophysicscommun3732). Further, in keeping with PyHC's commitment to knowledge-sharing, **this event is FREE for all attendees**. +Remote options will be available for those unable to make the trip to Tucson, and the presentations will be recorded and streamed to [PyHC's YouTube channel](https://www.youtube.com/@pythoninheliophysicscommun3732). Further, in keeping with PyHC's commitment to knowledge sharing, **this event is FREE for all attendees**.
From 216c26bac9ada5dac972280465ba7528069006f0 Mon Sep 17 00:00:00 2001 From: sapols Date: Thu, 22 Oct 2026 13:04:59 -0600 Subject: [PATCH 07/11] Keep the Registration card visible when navigating to it --- css/winter-school.css | 1 + 1 file changed, 1 insertion(+) diff --git a/css/winter-school.css b/css/winter-school.css index 0b2cba20..e7edf8ce 100644 --- a/css/winter-school.css +++ b/css/winter-school.css @@ -404,6 +404,7 @@ strong { } .section-dates { grid-column: span 3; } .section-registration { grid-column: span 9; } +.section-registration > h3 { scroll-margin-top: 32px; } .section-dates > h3, .section-registration > h3 { font-size: 26px; margin-bottom: 20px; } .section-dates p { margin-bottom: 0; text-wrap: balance; font-size: 22px; line-height: 1.6; color: var(--ink); font-weight: 500; } .section-dates p + p { margin-top: 4px; font-size: 14px; font-weight: 400; color: var(--muted); } From 7d75a2cb36eae17660bde0aed85c6f176a2cb6be Mon Sep 17 00:00:00 2001 From: sapols Date: Thu, 22 Oct 2026 13:34:32 -0600 Subject: [PATCH 08/11] Add automatic dark mode to the Winter School page --- _layouts/winter-school.html | 3 ++- css/winter-school.css | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/_layouts/winter-school.html b/_layouts/winter-school.html index 48a85f32..dfcffa94 100644 --- a/_layouts/winter-school.html +++ b/_layouts/winter-school.html @@ -4,7 +4,8 @@ - + + {{ page.title | escape }} | PyHC diff --git a/css/winter-school.css b/css/winter-school.css index e7edf8ce..1f1bf0ea 100644 --- a/css/winter-school.css +++ b/css/winter-school.css @@ -444,6 +444,43 @@ iframe { display: block; width: 100%; max-width: 100%; border: 0; background: wh .site-footer p { font-size: 10px; color: var(--muted); margin: 0; } .external-arrow { display: inline-block; position: relative; width: 10px; height: 10px; flex-shrink: 0; border-top: 1.5px solid currentColor; border-right: 1.5px solid currentColor; } .external-arrow::after { content: ''; position: absolute; height: 1.5px; width: 13px; background: currentColor; top: 4px; right: -2px; transform: rotate(-45deg); } +@media (prefers-color-scheme:dark) { + :root { + color-scheme:dark; + --ink:#e2edf5; + --muted:#adc0cf; + --line:#304758; + --ice:#1c3243; + --blue:#91c8ef; + --paper:#101e2a; + } + + a:hover { color:#d8edfc; } + a:focus-visible,summary:focus-visible { outline-color:#91c8ef; } + .skip-link, .site-header { background:#142431; } + .site-nav a { color:#c5d7e5; } + .hero img { box-shadow:0 18px 55px #0000004d; } + .event-bar { + background:linear-gradient(120deg,#1e3445,#172a39); + border-color:#3a5264; + box-shadow:0 12px 35px #00000033; + } + .button { background:#a8d5f4; border-color:#a8d5f4; color:#102537; } + .button:hover { background:#c5e5fa; border-color:#c5e5fa; color:#102537; } + .button.light { background:var(--ice); border-color:var(--line); color:var(--ink); } + .button.light:hover { background:#29465b; } + .intro p:first-of-type { color:#c5d7e5; } + .poster img { box-shadow:0 18px 40px #0000004d; } + .content-section strong { color:#d4e4f0; } + .section-dates, .section-registration { + background:linear-gradient(120deg,#1d3446,#182b3a); + border-color:#38566c; + } + .section-python-resources h3, .section-winter-school-materials h3, .section-winter-school-code-of-conduct h3 { border-top-color:#4d6d84; } + .section-additional-info { background:#1a3041; } + /* Keep the live third-party embeds in their original, readable color schemes. */ + iframe { color-scheme:light; } +} @media (max-width:1100px) { .site-header-inner { gap: 20px; } .site-nav { gap: 13px; } From 3b62c2a6e63b6e35508731d5efcf10c1446b4384 Mon Sep 17 00:00:00 2001 From: sapols Date: Thu, 22 Oct 2026 14:17:19 -0600 Subject: [PATCH 09/11] Increase nav text size, remove second Dates box, tilt poster more --- .../meetings/winter_schools/winter_school.md | 7 ------ css/winter-school.css | 22 +++++++------------ 2 files changed, 8 insertions(+), 21 deletions(-) diff --git a/_pages/meetings/winter_schools/winter_school.md b/_pages/meetings/winter_schools/winter_school.md index 59c3380b..69b32c0c 100644 --- a/_pages/meetings/winter_schools/winter_school.md +++ b/_pages/meetings/winter_schools/winter_school.md @@ -13,13 +13,6 @@ This Winter School builds on the success of PyHC's [2022]({{ site.baseurl }}/sum Remote options will be available for those unable to make the trip to Tucson, and the presentations will be recorded and streamed to [PyHC's YouTube channel](https://www.youtube.com/@pythoninheliophysicscommun3732). Further, in keeping with PyHC's commitment to knowledge sharing, **this event is FREE for all attendees**. -
- -### Dates -January 5–8, 2027 - -Tuesday through Friday -
### Registration Registration for the PyHC 2027 Winter School is officially open! Registration is FREE for all attendees, for both in-person and virtual participation. In-person participation is limited to the room capacity. **[Register here](https://forms.gle/co64H4iEN4KFazQt9) by Friday, December 18th, 2026 at 11:59 PM MT for both in-person and virtual attendance.** diff --git a/css/winter-school.css b/css/winter-school.css index 1f1bf0ea..6c39a8d8 100644 --- a/css/winter-school.css +++ b/css/winter-school.css @@ -342,7 +342,7 @@ strong { gap:35px; border-bottom:1px solid var(--line); padding:27px 0; - font-size:12px; + font-size:14px; } .section-nav a { @@ -374,7 +374,7 @@ strong { .intro p { color: var(--muted); font-size: 15px; line-height: 1.85; } .intro p:first-of-type { color: #3c576c; font-size: 18px; line-height: 1.7; } .intro p:last-child { margin-bottom: 0; } -.poster { margin: 0; width: 290px; justify-self: end; transform: rotate(2deg); } +.poster { margin: 0; width: 290px; justify-self: end; transform: rotate(6deg); } .poster img { display: block; border: 7px solid #fff; border-radius: 5px; box-shadow: 0 18px 40px #1d3d5c26; transition: transform .22s ease-out; } @media (hover:hover) and (pointer:fine) { .poster img:hover { transform: scale(1.04); } @@ -394,7 +394,7 @@ strong { .content-section p { font-size: 15px; line-height: 1.85; color: var(--muted); } .content-section > p:last-child { margin-bottom: 0; } .content-section strong { color: #365266; } -.section-dates, .section-registration { +.section-registration { align-self: stretch; padding: 32px; background: linear-gradient(120deg, #e5eff6, #f5f9fc); @@ -402,12 +402,9 @@ strong { border-radius: 12px; margin-bottom: 8px; } -.section-dates { grid-column: span 3; } -.section-registration { grid-column: span 9; } +.section-registration { grid-column: 1 / -1; } .section-registration > h3 { scroll-margin-top: 32px; } -.section-dates > h3, .section-registration > h3 { font-size: 26px; margin-bottom: 20px; } -.section-dates p { margin-bottom: 0; text-wrap: balance; font-size: 22px; line-height: 1.6; color: var(--ink); font-weight: 500; } -.section-dates p + p { margin-top: 4px; font-size: 14px; font-weight: 400; color: var(--muted); } +.section-registration > h3 { font-size: 26px; margin-bottom: 20px; } .section-registration p { margin: 0; font-size: 14px; } .section-travel-support, .section-hotel { display: grid; grid-template-columns: 245px minmax(0, 1fr); column-gap: 48px; } .section-travel-support > h3, .section-hotel > h3 { grid-column: 1; grid-row: 1; } @@ -472,7 +469,7 @@ iframe { display: block; width: 100%; max-width: 100%; border: 0; background: wh .intro p:first-of-type { color:#c5d7e5; } .poster img { box-shadow:0 18px 40px #0000004d; } .content-section strong { color:#d4e4f0; } - .section-dates, .section-registration { + .section-registration { background:linear-gradient(120deg,#1d3446,#182b3a); border-color:#38566c; } @@ -492,8 +489,6 @@ iframe { display: block; width: 100%; max-width: 100%; border: 0; background: wh .event-fact strong { font-size: 14px; } .intro { grid-template-columns: minmax(0, 1fr) 240px; gap: 45px; } .poster { width: 240px; } - .section-dates { grid-column: span 4; } - .section-registration { grid-column: span 8; } .section-travel-support, .section-hotel, .section-official-language { grid-template-columns: 180px minmax(0,1fr); column-gap: 25px; } } @media (max-width:760px) { @@ -514,7 +509,7 @@ iframe { display: block; width: 100%; max-width: 100%; border: 0; background: wh .event-fact span { font-size: 11px; } .register-cta .button { padding: 12px 14px; gap: 14px; font-size: 12px; } .register-cta small { font-size: 9px; } - .section-nav { justify-content: flex-start; gap: 23px; overflow-x: auto; white-space: nowrap; font-size: 11px; padding-block: 21px; } + .section-nav { justify-content: flex-start; gap: 23px; overflow-x: auto; white-space: nowrap; font-size: 13px; padding-block: 21px; } .intro { padding-block: 45px; grid-template-columns: minmax(0,1fr); gap: 32px; } .intro h1 { font-size: 35px; } .intro p { font-size: 14px; } @@ -524,8 +519,7 @@ iframe { display: block; width: 100%; max-width: 100%; border: 0; background: wh .content-section { padding-block: 36px; } .content-section h3 { font-size: 27px; } .content-section p { font-size: 14px; } - .section-dates, .section-registration { padding: 25px; margin-bottom: 18px; } - .section-dates p { font-size: 20px; } + .section-registration { padding: 25px; margin-bottom: 18px; } .section-travel-support, .section-hotel, .section-official-language { display: block; } .section-official-language h3 { margin-bottom: 20px; } .section-location { display: block; } From 4e2575a63840aa236d44f8e15be5ce45ddd10f23 Mon Sep 17 00:00:00 2001 From: sapols Date: Thu, 22 Oct 2026 14:30:51 -0600 Subject: [PATCH 10/11] Tighten the Winter School label column Travel Support, Hotel, and Official Language now use a single 190px heading column with a 40px gap at all desktop widths. The old 245px column lined the text up with the Registration card when the Dates card sat beside it; with that card gone the offset no longer aligns with anything, and the 1100px override made the text jump as the window narrowed. Co-Authored-By: Claude Opus 5.5 --- css/winter-school.css | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/css/winter-school.css b/css/winter-school.css index 6c39a8d8..8b40f75c 100644 --- a/css/winter-school.css +++ b/css/winter-school.css @@ -406,7 +406,7 @@ strong { .section-registration > h3 { scroll-margin-top: 32px; } .section-registration > h3 { font-size: 26px; margin-bottom: 20px; } .section-registration p { margin: 0; font-size: 14px; } -.section-travel-support, .section-hotel { display: grid; grid-template-columns: 245px minmax(0, 1fr); column-gap: 48px; } +.section-travel-support, .section-hotel { display: grid; grid-template-columns: 190px minmax(0, 1fr); column-gap: 40px; } .section-travel-support > h3, .section-hotel > h3 { grid-column: 1; grid-row: 1; } .section-travel-support > p, .section-hotel > p { grid-column: 2; } .section-location { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); column-gap: 36px; align-items: start; } @@ -421,7 +421,7 @@ iframe { display: block; width: 100%; max-width: 100%; border: 0; background: wh .section-agenda iframe { height: 560px; margin-block: 26px 36px; } .section-agenda h4 { font-size: 23px; margin-top: 30px; } .section-agenda h4:not(:first-of-type) { border-top: 1px solid var(--line); padding-top: 26px; } -.section-official-language { display: grid; grid-template-columns: 245px minmax(0, 1fr); gap: 48px; padding-block: 40px; } +.section-official-language { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 40px; padding-block: 40px; } .section-official-language h3 { font-size: 25px; margin: 0; } .section-python-resources, .section-winter-school-materials, .section-winter-school-code-of-conduct { grid-column: span 4; padding: 38px 0; border-bottom: none; } .section-python-resources h3, .section-winter-school-materials h3, .section-winter-school-code-of-conduct h3 { font-size: 23px; border-top: 2px solid #a6bfce; padding-top: 23px; } @@ -489,7 +489,6 @@ iframe { display: block; width: 100%; max-width: 100%; border: 0; background: wh .event-fact strong { font-size: 14px; } .intro { grid-template-columns: minmax(0, 1fr) 240px; gap: 45px; } .poster { width: 240px; } - .section-travel-support, .section-hotel, .section-official-language { grid-template-columns: 180px minmax(0,1fr); column-gap: 25px; } } @media (max-width:760px) { .wrap { width: calc(100% - 40px); } From fec4935e1405e096bebf7d779b5878fad8c38ee4 Mon Sep 17 00:00:00 2001 From: sapols Date: Thu, 22 Oct 2026 14:40:11 -0600 Subject: [PATCH 11/11] Close Winter School registration automatically after the deadline A small inline script compares the visitor's clock to 11:59 PM MT on December 18, 2026. Once that passes, the topline badge turns red and reads "Registration is closed", and the Register now button becomes an inactive "Registration closed" label. GitHub Pages only rebuilds on push, so this has to happen in the browser rather than in Liquid. Co-Authored-By: Claude Opus 5.5 --- _layouts/winter-school.html | 13 ++++++++++++- css/winter-school.css | 15 ++++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/_layouts/winter-school.html b/_layouts/winter-school.html index dfcffa94..8855190e 100644 --- a/_layouts/winter-school.html +++ b/_layouts/winter-school.html @@ -34,7 +34,7 @@
PyHC schools   /   Winter 2027
- Registration is open + Registration is open
{% comment %} Wrap the rendered Markdown sections for presentation and add decorative icons. @@ -61,6 +61,17 @@ Register by December 18, 2026

+