diff options
| -rw-r--r-- | software.sxml | 13 | ||||
| -rw-r--r-- | static/css/main.css | 38 |
2 files changed, 49 insertions, 2 deletions
diff --git a/software.sxml b/software.sxml index 96efa2d..929742f 100644 --- a/software.sxml +++ b/software.sxml | |||
| @@ -233,10 +233,19 @@ | |||
| 233 | (ul (@ (class "projects")) | 233 | (ul (@ (class "projects")) |
| 234 | ,@(hash-table-fold %projects | 234 | ,@(hash-table-fold %projects |
| 235 | (lambda (key project acc) | 235 | (lambda (key project acc) |
| 236 | (cons `(li (span | 236 | (cons `(li (@ (class "card")) |
| 237 | (div | ||
| 238 | (@ (class "card-header")) | ||
| 239 | (a (@ (href ,(project-url project))) | ||
| 240 | (img (@ (class "project-logo") | ||
| 241 | (src ,(project-logo project)) | ||
| 242 | (alt ,(string-append "logo for " | ||
| 243 | (project-name project)))))) | ||
| 237 | (a (@ (class "project-url") | 244 | (a (@ (class "project-url") |
| 238 | (href ,(project-url project))) | 245 | (href ,(project-url project))) |
| 239 | ,(project-name project)) | 246 | ,(project-name project))) |
| 247 | (div | ||
| 248 | (@ (class "card-body")) | ||
| 240 | ,(let ((members (project-members project))) | 249 | ,(let ((members (project-members project))) |
| 241 | `(details | 250 | `(details |
| 242 | (summary ,(format #false "members (~a)" | 251 | (summary ,(format #false "members (~a)" |
diff --git a/static/css/main.css b/static/css/main.css index c026bda..b2f4fe6 100644 --- a/static/css/main.css +++ b/static/css/main.css | |||
| @@ -356,15 +356,53 @@ article ul li::before { | |||
| 356 | 356 | ||
| 357 | article ul.projects { | 357 | article ul.projects { |
| 358 | position: relative; | 358 | position: relative; |
| 359 | display: flex; | ||
| 360 | flex-direction: row; | ||
| 361 | flex-wrap: wrap; | ||
| 359 | } | 362 | } |
| 363 | |||
| 360 | article ul.projects details ul.members li { | 364 | article ul.projects details ul.members li { |
| 361 | display: inline-block; | 365 | display: inline-block; |
| 362 | list-style-type: none; | 366 | list-style-type: none; |
| 363 | } | 367 | } |
| 368 | |||
| 369 | li.card::before, | ||
| 364 | li.person::before { | 370 | li.person::before { |
| 365 | content: ''; | 371 | content: ''; |
| 366 | } | 372 | } |
| 367 | 373 | ||
| 374 | li.card { | ||
| 375 | width: 300px; | ||
| 376 | display: block; | ||
| 377 | border: 1px solid #aaa; | ||
| 378 | border-radius: 5px; | ||
| 379 | margin: 1em 1em 0 0; | ||
| 380 | flex-grow: 1; | ||
| 381 | flex-shrink: 1; | ||
| 382 | background: #fefefe; | ||
| 383 | } | ||
| 384 | |||
| 385 | li.card .card-header { | ||
| 386 | border-bottom: 1px dotted #aaa; | ||
| 387 | display: inline-flex; | ||
| 388 | width: 100%; | ||
| 389 | align-items: center; | ||
| 390 | } | ||
| 391 | li.card .card-header a { | ||
| 392 | border: none; | ||
| 393 | } | ||
| 394 | |||
| 395 | li.card .card-header img.project-logo { | ||
| 396 | max-height: 64px; | ||
| 397 | max-width: 64px; | ||
| 398 | margin-right: 0.5em; | ||
| 399 | border-radius: 5px; | ||
| 400 | margin: 10px; | ||
| 401 | } | ||
| 402 | li.card .card-body { | ||
| 403 | padding: 1em; | ||
| 404 | } | ||
| 405 | |||
| 368 | details summary { | 406 | details summary { |
| 369 | cursor: pointer; | 407 | cursor: pointer; |
| 370 | color: #4D4D4D; | 408 | color: #4D4D4D; |