Skip to content

Commit 515625c

Browse files
author
Copilot
committed
Useful CSAPI Links: redesign as themed cards with gradient headers, per-link FontAwesome icons, and Spec/OpenAPI/Guide/Repo/Site/Forum tag chips; 2-column grid at desktop, stacked on mobile
1 parent fa0bcbf commit 515625c

3 files changed

Lines changed: 127 additions & 37 deletions

File tree

events/builder-days-2026.json

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,22 +28,24 @@
2828
"usefulLinks": [
2929
{
3030
"category": "CSAPI Standard",
31+
"icon": "fa-book",
3132
"links": [
32-
{ "name": "OGC API – Connected Systems – Part 1: Feature Resources (OGC 23-001)", "url": "https://docs.ogc.org/is/23-001/23-001.html", "note": "Approved Implementation Standard — Systems, Deployments, Procedures, Sampling Features, Properties." },
33-
{ "name": "OGC API – Connected Systems – Part 2: Dynamic Data (OGC 23-002)", "url": "https://docs.ogc.org/is/23-002/23-002.html", "note": "Approved Implementation Standard — DataStreams, Observations, Control Streams, Commands." },
34-
{ "name": "Part 1 OpenAPI bundle (YAML, OAS 3.1)", "url": "https://github.com/OS4CSAPI/ogc-client-CSAPI_2/blob/main/docs/research/standards/ogcapi-connectedsystems-1.bundled.oas31.yaml", "note": "Machine-readable Part 1 endpoint and schema definitions (all $refs resolved)." },
35-
{ "name": "Part 2 OpenAPI bundle (YAML, OAS 3.1)", "url": "https://github.com/OS4CSAPI/ogc-client-CSAPI_2/blob/main/docs/research/standards/ogcapi-connectedsystems-2.bundled.oas31.yaml", "note": "Machine-readable Part 2 endpoint and schema definitions (all $refs resolved)." },
36-
{ "name": "OGC API – Connected Systems Reviewer's Guide (OGC 23-053r1)", "url": "https://docs.ogc.org/guides/23-053r1/pdf", "note": "Official OGC reviewer's guide (PDF)." },
37-
{ "name": "OGC API – Connected Systems – v1.0 publication announcement", "url": "https://www.ogc.org/announcement/ogc-announces-publication-of-ogc-api-connected-systems-and-updates-to-supporting-standards/", "note": "Announcement of v1.0 and supporting-standard updates." },
38-
{ "name": "CSAPI standard repo (opengeospatial/ogcapi-connected-systems)", "url": "https://github.com/opengeospatial/ogcapi-connected-systems", "note": "Public repository for the Connected Systems SWG." },
39-
{ "name": "OS4CSAPI CSAPI developer page", "url": "https://os4csapi.github.io/ogc-csapi-website/", "note": "CSAPI developer page — overview of CSAPI and the open-source ecosystem." }
33+
{ "name": "OGC API – Connected Systems – Part 1: Feature Resources (OGC 23-001)", "url": "https://docs.ogc.org/is/23-001/23-001.html", "note": "Approved Implementation Standard — Systems, Deployments, Procedures, Sampling Features, Properties.", "tag": "Spec", "icon": "fa-file-alt" },
34+
{ "name": "OGC API – Connected Systems – Part 2: Dynamic Data (OGC 23-002)", "url": "https://docs.ogc.org/is/23-002/23-002.html", "note": "Approved Implementation Standard — DataStreams, Observations, Control Streams, Commands.", "tag": "Spec", "icon": "fa-file-alt" },
35+
{ "name": "Part 1 OpenAPI bundle (YAML, OAS 3.1)", "url": "https://github.com/OS4CSAPI/ogc-client-CSAPI_2/blob/main/docs/research/standards/ogcapi-connectedsystems-1.bundled.oas31.yaml", "note": "Machine-readable Part 1 endpoint and schema definitions (all $refs resolved).", "tag": "OpenAPI", "icon": "fa-code" },
36+
{ "name": "Part 2 OpenAPI bundle (YAML, OAS 3.1)", "url": "https://github.com/OS4CSAPI/ogc-client-CSAPI_2/blob/main/docs/research/standards/ogcapi-connectedsystems-2.bundled.oas31.yaml", "note": "Machine-readable Part 2 endpoint and schema definitions (all $refs resolved).", "tag": "OpenAPI", "icon": "fa-code" },
37+
{ "name": "OGC API – Connected Systems Reviewer's Guide (OGC 23-053r1)", "url": "https://docs.ogc.org/guides/23-053r1/pdf", "note": "Official OGC reviewer's guide (PDF).", "tag": "Guide", "icon": "fa-file-pdf" },
38+
{ "name": "OGC API – Connected Systems – v1.0 publication announcement", "url": "https://www.ogc.org/announcement/ogc-announces-publication-of-ogc-api-connected-systems-and-updates-to-supporting-standards/", "note": "Announcement of v1.0 and supporting-standard updates.", "tag": "News", "icon": "fa-bullhorn" },
39+
{ "name": "CSAPI standard repo (opengeospatial/ogcapi-connected-systems)", "url": "https://github.com/opengeospatial/ogcapi-connected-systems", "note": "Public repository for the Connected Systems SWG.", "tag": "Repo", "icon": "fa-github", "iconStyle": "fab" },
40+
{ "name": "OS4CSAPI CSAPI developer page", "url": "https://os4csapi.github.io/ogc-csapi-website/", "note": "CSAPI developer page — overview of CSAPI and the open-source ecosystem.", "tag": "Site", "icon": "fa-globe" }
4041
]
4142
},
4243
{
4344
"category": "OGC Connected Systems SWG (Agora)",
45+
"icon": "fa-comments",
4446
"links": [
45-
{ "name": "Connected Systems SWG — General", "url": "https://agora.ogc.org/c/overview-716694/", "note": "SWG space on OGC Agora." },
46-
{ "name": "Connected Systems SWG — Events", "url": "https://agora.ogc.org/c/events-connected-systems-swg/", "note": "SWG events feed on OGC Agora." }
47+
{ "name": "Connected Systems SWG — General", "url": "https://agora.ogc.org/c/overview-716694/", "note": "SWG space on OGC Agora.", "tag": "Forum", "icon": "fa-users" },
48+
{ "name": "Connected Systems SWG — Events", "url": "https://agora.ogc.org/c/events-connected-systems-swg/", "note": "SWG events feed on OGC Agora.", "tag": "Forum", "icon": "fa-calendar-alt" }
4749
]
4850
}
4951
],

src/pug/builder-days-2026/index.pug

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -345,16 +345,28 @@ html(lang='en')
345345
.text-center
346346
h2.section-heading.text-uppercase Useful CSAPI Links
347347
h3.section-subheading.text-muted Specs and reference material for getting up to speed on CSAPI.
348-
.row.justify-content-center
349-
.col-lg-10
350-
each group in event.usefulLinks
351-
h4.useful-links-category.text-uppercase.mt-4.mb-2= group.category
352-
ul.useful-links-list
353-
each link in group.links
354-
li
355-
a(href=link.url, target='_blank', rel='noopener')= link.name
356-
if link.note
357-
span.useful-link-note= link.note
348+
.row.g-4.justify-content-center
349+
each group in event.usefulLinks
350+
.col-lg-6
351+
.card.h-100.shadow-sm.useful-links-card
352+
.card-header.useful-links-card__header
353+
if group.icon
354+
i.fas.me-2(class=group.icon)
355+
span.useful-links-card__title= group.category
356+
.card-body.p-0
357+
ul.useful-links-list.mb-0
358+
each link in group.links
359+
li
360+
a.useful-link(href=link.url, target='_blank', rel='noopener')
361+
if link.icon
362+
- var iconStyle = link.iconStyle || 'fas';
363+
i.useful-link__icon(class=iconStyle + ' ' + link.icon)
364+
span.useful-link__body
365+
span.useful-link__name= link.name
366+
if link.note
367+
span.useful-link-note= link.note
368+
if link.tag
369+
span.useful-link__tag= link.tag
358370

359371
//- About OS4CSAPI / Why this page
360372
section.page-section#about

src/scss/sections/_talks.scss

Lines changed: 93 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -164,41 +164,117 @@
164164
}
165165
}
166166

167-
.useful-links-category {
168-
color: $primary;
169-
font-size: 0.95rem;
170-
letter-spacing: 0.06em;
171-
border-bottom: 2px solid rgba($primary, 0.2);
172-
padding-bottom: 0.35rem;
167+
.useful-links-card {
168+
border: 0;
169+
border-radius: 14px;
170+
overflow: hidden;
171+
transition: transform 0.2s ease, box-shadow 0.2s ease;
172+
173+
&:hover {
174+
transform: translateY(-2px);
175+
box-shadow: 0 14px 32px rgba(0, 0, 0, 0.1) !important;
176+
}
177+
178+
&__header {
179+
background: linear-gradient(135deg, $primary, darken($primary, 12%));
180+
color: $white;
181+
border: 0;
182+
padding: 0.85rem 1.25rem;
183+
font-family: $headings-font-family;
184+
text-transform: uppercase;
185+
letter-spacing: 0.06em;
186+
font-size: 0.95rem;
187+
font-weight: 700;
188+
189+
.fas, .fab {
190+
opacity: 0.9;
191+
}
192+
}
173193

174-
&:first-child {
175-
margin-top: 0 !important;
194+
&__title {
195+
vertical-align: middle;
176196
}
177197
}
178198

179199
.useful-links-list {
180200
list-style: none;
181201
padding-left: 0;
202+
margin: 0;
182203

183204
li {
184-
padding: 0.6rem 0;
185205
border-bottom: 1px solid $border-color;
186206

187207
&:last-child {
188208
border-bottom: none;
189209
}
210+
}
211+
}
190212

191-
a {
192-
font-weight: 600;
193-
}
213+
.useful-link {
214+
display: flex;
215+
align-items: flex-start;
216+
gap: 0.75rem;
217+
padding: 0.85rem 1.25rem;
218+
color: $secondary;
219+
text-decoration: none;
220+
transition: background 0.15s ease;
221+
222+
&:hover,
223+
&:focus {
224+
background: rgba($primary, 0.06);
225+
color: $secondary;
194226

195-
.useful-link-note {
196-
display: block;
197-
color: $text-muted;
198-
font-size: 0.9rem;
199-
margin-top: 0.15rem;
227+
.useful-link__name {
228+
color: $primary;
229+
text-decoration: underline;
200230
}
201231
}
232+
233+
&__icon {
234+
flex: 0 0 auto;
235+
width: 1.25rem;
236+
text-align: center;
237+
color: $primary;
238+
font-size: 0.95rem;
239+
margin-top: 0.2rem;
240+
}
241+
242+
&__body {
243+
flex: 1 1 auto;
244+
min-width: 0;
245+
display: block;
246+
}
247+
248+
&__name {
249+
display: block;
250+
font-weight: 600;
251+
color: $secondary;
252+
font-size: 0.95rem;
253+
line-height: 1.35;
254+
}
255+
256+
&__tag {
257+
flex: 0 0 auto;
258+
align-self: flex-start;
259+
font-size: 0.7rem;
260+
font-weight: 700;
261+
letter-spacing: 0.05em;
262+
text-transform: uppercase;
263+
color: $primary;
264+
background: rgba($primary, 0.1);
265+
border-radius: 999px;
266+
padding: 0.15rem 0.6rem;
267+
margin-top: 0.15rem;
268+
white-space: nowrap;
269+
}
270+
}
271+
272+
.useful-link-note {
273+
display: block;
274+
color: $text-muted;
275+
font-size: 0.85rem;
276+
margin-top: 0.25rem;
277+
line-height: 1.4;
202278
}
203279

204280
.goals-list {

0 commit comments

Comments
 (0)