pandorga 1.3.5 → 1.3.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +20 -0
- data/DESIGN.md +14 -5
- data/_includes/content-runtime/43-blocks.html +104 -16
- data/_includes/content-runtime/90-bootstrap.html +1 -0
- data/_includes/home/band-listing.html +1 -1
- data/_layouts/home.html +28 -23
- data/assets/css/ledger/home.css +217 -164
- data/lib/pandorga/commands/new.rb +1 -1
- data/lib/pandorga/version.rb +1 -1
- data/scripts/test/render-parity/blocks/project-inventory-row-icon.json +29 -0
- data/scripts/test/render-parity/blocks/project-inventory-row.json +46 -0
- data/scripts/test/render-parity/blocks/project-specimen-glyph.json +32 -0
- data/scripts/test/render-parity/blocks/project-specimen-initial-badge.json +31 -0
- data/scripts/test/render-parity/blocks/project-specimen-initial.json +32 -0
- data/scripts/test/render-parity/blocks/project-specimen.json +69 -0
- data/scripts/test/render-parity/run-absent-field-checks.mjs +40 -0
- data/scripts/test/test-ledger-blocks.rb +32 -0
- data/scripts/validate.sh +1 -0
- data/templates/portfolio/README.md +36 -0
- metadata +8 -1
data/assets/css/ledger/home.css
CHANGED
|
@@ -943,12 +943,15 @@ html[data-theme="light"] .home-hero-plate {
|
|
|
943
943
|
}
|
|
944
944
|
}
|
|
945
945
|
|
|
946
|
-
/* ── Engineering artifacts: specimen
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
946
|
+
/* ── Engineering artifacts: specimen bench ──
|
|
947
|
+
A specimen card beside a filing rack of project cards. The specimen has a
|
|
948
|
+
fixed height, so swapping projects never resizes the band. Every plate is
|
|
949
|
+
16:9, the ratio the thumbnails are drawn at, with the title below it; the
|
|
950
|
+
tagline takes the height left. From 900px the specimen is half the band and the rack a
|
|
951
|
+
narrower column beside it, the rest left blank. Below 900px the rack is
|
|
952
|
+
an icon strip above the specimen, one column per project. */
|
|
950
953
|
.home-projects-bench {
|
|
951
|
-
--home-specimen-height:
|
|
954
|
+
--home-specimen-height: 32rem;
|
|
952
955
|
--home-icon-btn-size: 2.75rem;
|
|
953
956
|
--home-project-icon-count: 6;
|
|
954
957
|
display: flex;
|
|
@@ -957,54 +960,115 @@ html[data-theme="light"] .home-hero-plate {
|
|
|
957
960
|
gap: var(--space-md);
|
|
958
961
|
}
|
|
959
962
|
|
|
963
|
+
.home-project-inventory {
|
|
964
|
+
order: -1;
|
|
965
|
+
}
|
|
966
|
+
|
|
960
967
|
.home-project-specimen {
|
|
961
|
-
position: relative;
|
|
962
|
-
display: flex;
|
|
963
|
-
flex-direction: column;
|
|
964
|
-
gap: var(--space-sm);
|
|
965
|
-
padding: var(--space-md);
|
|
966
|
-
max-width: none;
|
|
967
|
-
width: 100%;
|
|
968
968
|
height: var(--home-specimen-height);
|
|
969
969
|
overflow: hidden;
|
|
970
|
-
|
|
971
|
-
|
|
970
|
+
gap: var(--space-sm);
|
|
971
|
+
padding: var(--space-md);
|
|
972
972
|
box-sizing: border-box;
|
|
973
973
|
}
|
|
974
974
|
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
975
|
+
/* The triad top rule (`.ledger-card--edge-primary`), restated at a weight
|
|
976
|
+
that beats the light-paper hairline reset on `.ledger-system-card`. */
|
|
977
|
+
:root .home-projects-bench .home-project-specimen,
|
|
978
|
+
:root .home-projects-bench .home-project-specimen:hover {
|
|
979
|
+
border-top: 2px solid var(--color-primary);
|
|
980
|
+
}
|
|
981
|
+
|
|
982
|
+
.home-band--contrast .home-project-specimen {
|
|
983
|
+
background: var(--color-surface-card-contrast);
|
|
984
|
+
}
|
|
985
|
+
|
|
986
|
+
.home-band--contrast .home-project-specimen:hover {
|
|
987
|
+
background: var(--color-surface-high-contrast);
|
|
979
988
|
}
|
|
980
989
|
|
|
981
|
-
.home-
|
|
982
|
-
.home-project-
|
|
990
|
+
.home-specimen-strip,
|
|
991
|
+
.home-project-inventory-code {
|
|
992
|
+
display: flex;
|
|
983
993
|
flex: 0 0 auto;
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
994
|
+
align-items: center;
|
|
995
|
+
justify-content: space-between;
|
|
996
|
+
gap: var(--space-sm);
|
|
997
|
+
min-width: 0;
|
|
998
|
+
}
|
|
999
|
+
|
|
1000
|
+
.home-specimen-strip .ledger-meta,
|
|
1001
|
+
.home-project-inventory-code .ledger-meta {
|
|
1002
|
+
min-width: 0;
|
|
1003
|
+
flex-wrap: nowrap;
|
|
989
1004
|
overflow: hidden;
|
|
1005
|
+
white-space: nowrap;
|
|
990
1006
|
}
|
|
991
1007
|
|
|
992
|
-
.home-
|
|
993
|
-
.home-project-
|
|
1008
|
+
.home-specimen-folio,
|
|
1009
|
+
.home-project-inventory-index {
|
|
1010
|
+
color: var(--color-primary);
|
|
1011
|
+
}
|
|
1012
|
+
|
|
1013
|
+
.home-specimen-strip>.ledger-status,
|
|
1014
|
+
.home-project-inventory-code>.ledger-status {
|
|
1015
|
+
flex: 0 0 auto;
|
|
1016
|
+
font-family: var(--font-label);
|
|
1017
|
+
font-size: var(--type-micro);
|
|
1018
|
+
letter-spacing: 0.06em;
|
|
1019
|
+
text-transform: uppercase;
|
|
1020
|
+
line-height: 1.4;
|
|
1021
|
+
padding: 0.1rem 0.45rem;
|
|
1022
|
+
background: color-mix(in srgb, var(--color-secondary) 14%, transparent);
|
|
1023
|
+
}
|
|
1024
|
+
|
|
1025
|
+
/* The figure holds the plate and, always below it, the title. The badge
|
|
1026
|
+
shares the poster's grid cell; when the image fails, renderPosterMedia
|
|
1027
|
+
removes it and the badge hides with it. */
|
|
1028
|
+
.home-specimen-figure {
|
|
1029
|
+
flex: 0 0 auto;
|
|
1030
|
+
display: grid;
|
|
1031
|
+
gap: var(--space-md);
|
|
1032
|
+
}
|
|
1033
|
+
|
|
1034
|
+
.home-specimen-figure>.ledger-poster,
|
|
1035
|
+
.home-specimen-figure>.projects-plate {
|
|
1036
|
+
grid-area: 1 / 1;
|
|
994
1037
|
width: 100%;
|
|
995
|
-
|
|
996
|
-
|
|
1038
|
+
aspect-ratio: 16 / 9;
|
|
1039
|
+
}
|
|
1040
|
+
|
|
1041
|
+
.home-specimen-figure>.projects-plate {
|
|
1042
|
+
position: relative;
|
|
1043
|
+
display: flex;
|
|
1044
|
+
align-items: center;
|
|
1045
|
+
justify-content: center;
|
|
1046
|
+
background: var(--color-surface-high);
|
|
1047
|
+
color: var(--color-primary);
|
|
1048
|
+
}
|
|
1049
|
+
|
|
1050
|
+
.home-specimen-figure .projects-plate-glyph {
|
|
1051
|
+
font-size: 3rem;
|
|
1052
|
+
}
|
|
1053
|
+
|
|
1054
|
+
.home-specimen-figure .is-initial {
|
|
1055
|
+
font-family: var(--font-content-title);
|
|
1056
|
+
font-weight: var(--weight-title);
|
|
1057
|
+
line-height: 1;
|
|
1058
|
+
}
|
|
1059
|
+
|
|
1060
|
+
.home-specimen-figure:has(> .ledger-poster)>.home-specimen-badge.is-initial {
|
|
1061
|
+
font-size: var(--type-subtitle);
|
|
997
1062
|
}
|
|
998
1063
|
|
|
999
1064
|
/* Glyph plates have no .ledger-poster::after — mirror the image corners. */
|
|
1000
|
-
.home-
|
|
1065
|
+
.home-specimen-figure>.projects-plate::after {
|
|
1001
1066
|
content: "";
|
|
1002
1067
|
--frame-corner-size: 0.7rem;
|
|
1003
1068
|
--frame-corner-thickness: 1px;
|
|
1004
1069
|
position: absolute;
|
|
1005
1070
|
inset: 0.3rem;
|
|
1006
1071
|
pointer-events: none;
|
|
1007
|
-
z-index: 2;
|
|
1008
1072
|
background:
|
|
1009
1073
|
linear-gradient(var(--color-primary), var(--color-primary)) top left / var(--frame-corner-size) var(--frame-corner-thickness) no-repeat,
|
|
1010
1074
|
linear-gradient(var(--color-primary), var(--color-primary)) top left / var(--frame-corner-thickness) var(--frame-corner-size) no-repeat,
|
|
@@ -1016,81 +1080,111 @@ html[data-theme="light"] .home-project-specimen,
|
|
|
1016
1080
|
linear-gradient(var(--color-primary), var(--color-primary)) bottom right / var(--frame-corner-thickness) var(--frame-corner-size) no-repeat;
|
|
1017
1081
|
}
|
|
1018
1082
|
|
|
1019
|
-
.home-
|
|
1020
|
-
display:
|
|
1083
|
+
.home-specimen-figure>.home-specimen-badge {
|
|
1084
|
+
display: none;
|
|
1085
|
+
}
|
|
1086
|
+
|
|
1087
|
+
.home-specimen-figure:has(> .ledger-poster)>.home-specimen-badge {
|
|
1088
|
+
grid-area: 1 / 1;
|
|
1089
|
+
justify-self: end;
|
|
1090
|
+
align-self: start;
|
|
1091
|
+
z-index: 3;
|
|
1092
|
+
display: inline-flex;
|
|
1021
1093
|
align-items: center;
|
|
1022
1094
|
justify-content: center;
|
|
1023
|
-
|
|
1095
|
+
width: 2.25rem;
|
|
1096
|
+
height: 2.25rem;
|
|
1097
|
+
margin: var(--space-sm);
|
|
1098
|
+
font-size: 1.25rem;
|
|
1099
|
+
background: var(--color-surface-card);
|
|
1024
1100
|
color: var(--color-primary);
|
|
1025
1101
|
}
|
|
1026
1102
|
|
|
1027
|
-
.home-project-specimen .
|
|
1028
|
-
|
|
1029
|
-
}
|
|
1030
|
-
|
|
1031
|
-
.home-project-specimen .ledger-meta {
|
|
1032
|
-
display: none;
|
|
1033
|
-
}
|
|
1034
|
-
|
|
1035
|
-
.home-project-specimen .ledger-card-title,
|
|
1036
|
-
.home-project-specimen .ledger-card-title a {
|
|
1037
|
-
flex: 0 0 auto;
|
|
1038
|
-
font-family: var(--font-content-title);
|
|
1103
|
+
.home-project-specimen .home-specimen-title {
|
|
1104
|
+
margin: 0;
|
|
1039
1105
|
font-size: var(--type-card-lg);
|
|
1040
|
-
font-weight: var(--weight-title);
|
|
1041
|
-
font-synthesis: none;
|
|
1042
1106
|
line-height: 1.2;
|
|
1043
|
-
color: var(--color-on-surface);
|
|
1044
|
-
min-height: calc(1.2em * 1);
|
|
1045
|
-
margin: 0;
|
|
1046
1107
|
overflow: hidden;
|
|
1047
1108
|
text-overflow: ellipsis;
|
|
1048
1109
|
white-space: nowrap;
|
|
1049
1110
|
}
|
|
1050
1111
|
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
color: var(--color-primary);
|
|
1054
|
-
}
|
|
1055
|
-
|
|
1112
|
+
/* The tagline takes whatever height the plate leaves, clipped at a whole
|
|
1113
|
+
line by the clamp; the chips and the foot keep to the bottom edge. */
|
|
1056
1114
|
.home-project-specimen .ledger-card-copy {
|
|
1057
|
-
flex: 0
|
|
1058
|
-
|
|
1115
|
+
flex: 0 1 auto;
|
|
1116
|
+
min-height: 0;
|
|
1059
1117
|
font-size: var(--type-body);
|
|
1060
|
-
font-weight: var(--weight-body);
|
|
1061
1118
|
line-height: var(--leading-body);
|
|
1062
1119
|
color: var(--color-on-surface-variant);
|
|
1063
1120
|
display: -webkit-box;
|
|
1064
1121
|
-webkit-box-orient: vertical;
|
|
1065
|
-
-webkit-line-clamp:
|
|
1066
|
-
line-clamp:
|
|
1122
|
+
-webkit-line-clamp: var(--home-specimen-copy-lines, 4);
|
|
1123
|
+
line-clamp: var(--home-specimen-copy-lines, 4);
|
|
1067
1124
|
overflow: hidden;
|
|
1068
|
-
min-height: calc(var(--type-body) * var(--leading-body) * 3);
|
|
1069
|
-
margin: 0;
|
|
1070
1125
|
}
|
|
1071
1126
|
|
|
1072
1127
|
.home-project-specimen .ledger-chip-row {
|
|
1073
|
-
|
|
1074
|
-
flex-wrap:
|
|
1128
|
+
flex: 0 0 auto;
|
|
1129
|
+
flex-wrap: nowrap;
|
|
1130
|
+
overflow: hidden;
|
|
1075
1131
|
gap: var(--space-xs);
|
|
1076
|
-
margin: 0;
|
|
1132
|
+
margin: auto 0 0;
|
|
1133
|
+
}
|
|
1134
|
+
|
|
1135
|
+
.home-specimen-foot {
|
|
1136
|
+
flex: 0 0 auto;
|
|
1137
|
+
flex-wrap: nowrap;
|
|
1138
|
+
gap: var(--space-md);
|
|
1077
1139
|
margin-top: auto;
|
|
1078
|
-
|
|
1079
|
-
overflow: hidden;
|
|
1140
|
+
padding-top: var(--space-md);
|
|
1080
1141
|
}
|
|
1081
1142
|
|
|
1082
|
-
.home-project-specimen .ledger-
|
|
1083
|
-
|
|
1143
|
+
.home-project-specimen .ledger-chip-row~.home-specimen-foot {
|
|
1144
|
+
margin-top: var(--space-xs);
|
|
1145
|
+
}
|
|
1146
|
+
|
|
1147
|
+
.home-specimen-foot .ledger-card-links {
|
|
1148
|
+
position: relative;
|
|
1149
|
+
z-index: 1;
|
|
1150
|
+
min-width: 0;
|
|
1151
|
+
display: flex;
|
|
1152
|
+
align-items: center;
|
|
1153
|
+
flex-wrap: wrap;
|
|
1154
|
+
gap: var(--space-sm) var(--space-lg);
|
|
1155
|
+
padding-top: 0;
|
|
1156
|
+
border-top: 0;
|
|
1157
|
+
}
|
|
1158
|
+
|
|
1159
|
+
.home-specimen-open {
|
|
1160
|
+
margin-left: auto;
|
|
1161
|
+
flex: 0 0 auto;
|
|
1162
|
+
}
|
|
1163
|
+
|
|
1164
|
+
.home-project-specimen:hover .home-specimen-open {
|
|
1165
|
+
color: var(--color-on-primary, var(--color-surface));
|
|
1166
|
+
border-color: var(--color-link-hover);
|
|
1167
|
+
background: var(--color-primary);
|
|
1084
1168
|
}
|
|
1085
1169
|
|
|
1086
|
-
|
|
1170
|
+
.home-project-specimen:hover .home-specimen-open .ledger-cta-arrow {
|
|
1171
|
+
transform: translateX(4px);
|
|
1172
|
+
}
|
|
1173
|
+
|
|
1174
|
+
@media (prefers-reduced-motion: reduce) {
|
|
1175
|
+
.home-project-specimen:hover .home-specimen-open .ledger-cta-arrow {
|
|
1176
|
+
transform: none;
|
|
1177
|
+
}
|
|
1178
|
+
}
|
|
1179
|
+
|
|
1180
|
+
/* Mobile: one equal column per project (the script sets the count, up to
|
|
1181
|
+
six), so the strip spans the band; fixed button height. */
|
|
1087
1182
|
.home-project-inventory {
|
|
1088
1183
|
display: grid;
|
|
1089
1184
|
grid-template-columns: repeat(var(--home-project-icon-count, 6), minmax(0, 1fr));
|
|
1090
1185
|
gap: var(--space-xs);
|
|
1091
1186
|
min-width: 0;
|
|
1092
1187
|
min-height: 0;
|
|
1093
|
-
height: auto !important;
|
|
1094
1188
|
overflow: visible;
|
|
1095
1189
|
background: transparent;
|
|
1096
1190
|
border: 0;
|
|
@@ -1102,22 +1196,16 @@ html[data-theme="light"] .home-project-specimen,
|
|
|
1102
1196
|
display: flex;
|
|
1103
1197
|
align-items: center;
|
|
1104
1198
|
justify-content: center;
|
|
1105
|
-
flex: none;
|
|
1106
|
-
width: auto;
|
|
1107
1199
|
min-width: 0;
|
|
1108
1200
|
height: var(--home-icon-btn-size);
|
|
1109
|
-
aspect-ratio: auto;
|
|
1110
|
-
gap: 0;
|
|
1111
1201
|
padding: 0;
|
|
1112
1202
|
border: 1px solid var(--border-gentle-divider);
|
|
1113
1203
|
background: var(--color-panel-contrast);
|
|
1114
1204
|
cursor: pointer;
|
|
1115
|
-
box-shadow: none;
|
|
1116
1205
|
transition: background-color var(--motion-duration-fast) var(--motion-ease-default),
|
|
1117
1206
|
border-color var(--motion-duration-fast) var(--motion-ease-default);
|
|
1118
1207
|
}
|
|
1119
1208
|
|
|
1120
|
-
.home-project-inventory-index,
|
|
1121
1209
|
.home-project-inventory-media,
|
|
1122
1210
|
.home-project-inventory-body {
|
|
1123
1211
|
display: none;
|
|
@@ -1127,9 +1215,6 @@ html[data-theme="light"] .home-project-specimen,
|
|
|
1127
1215
|
display: inline-flex;
|
|
1128
1216
|
align-items: center;
|
|
1129
1217
|
justify-content: center;
|
|
1130
|
-
width: auto;
|
|
1131
|
-
height: auto;
|
|
1132
|
-
margin: 0;
|
|
1133
1218
|
font-size: 1.25rem;
|
|
1134
1219
|
line-height: 1;
|
|
1135
1220
|
color: var(--color-on-surface-variant);
|
|
@@ -1152,7 +1237,6 @@ html[data-theme="light"] .home-project-specimen,
|
|
|
1152
1237
|
outline: 1px solid var(--color-primary);
|
|
1153
1238
|
outline-offset: -1px;
|
|
1154
1239
|
background: var(--color-surface-high);
|
|
1155
|
-
box-shadow: none;
|
|
1156
1240
|
}
|
|
1157
1241
|
|
|
1158
1242
|
.home-project-inventory-row.is-selected .home-project-inventory-glyph,
|
|
@@ -1167,93 +1251,68 @@ html[data-theme="light"] .home-project-specimen,
|
|
|
1167
1251
|
background: var(--color-surface-high-contrast);
|
|
1168
1252
|
}
|
|
1169
1253
|
|
|
1170
|
-
.home-project-inventory-row .ledger-meta {
|
|
1171
|
-
display: none;
|
|
1172
|
-
}
|
|
1173
|
-
|
|
1174
1254
|
@media (min-width: 900px) {
|
|
1255
|
+
|
|
1256
|
+
/* The rack panel stretches to the specimen's fixed height. */
|
|
1175
1257
|
.home-projects-bench {
|
|
1176
|
-
--home-specimen-height:
|
|
1258
|
+
--home-specimen-height: 36rem;
|
|
1177
1259
|
display: grid;
|
|
1178
|
-
grid-template-columns: minmax(0,
|
|
1179
|
-
gap: var(--space-xl);
|
|
1260
|
+
grid-template-columns: minmax(0, 50%) minmax(18rem, 34%);
|
|
1261
|
+
column-gap: var(--space-xl);
|
|
1180
1262
|
align-items: stretch;
|
|
1181
1263
|
}
|
|
1182
1264
|
|
|
1183
|
-
.home-project-specimen {
|
|
1184
|
-
height: var(--home-specimen-height);
|
|
1185
|
-
}
|
|
1186
|
-
|
|
1187
|
-
/* Panel container over the tiled band — not bare rows on the grid. */
|
|
1188
1265
|
.home-project-inventory {
|
|
1266
|
+
order: 0;
|
|
1189
1267
|
display: flex;
|
|
1190
1268
|
flex-direction: column;
|
|
1191
|
-
|
|
1269
|
+
gap: var(--space-sm);
|
|
1270
|
+
min-height: 0;
|
|
1192
1271
|
overflow: hidden;
|
|
1193
|
-
|
|
1194
|
-
padding: 0;
|
|
1272
|
+
padding: var(--space-md);
|
|
1195
1273
|
background: var(--color-panel-contrast);
|
|
1196
|
-
|
|
1274
|
+
}
|
|
1275
|
+
|
|
1276
|
+
.home-project-specimen .home-specimen-title {
|
|
1277
|
+
font-size: var(--type-title);
|
|
1197
1278
|
}
|
|
1198
1279
|
|
|
1199
1280
|
.home-project-inventory-row {
|
|
1200
|
-
display: flex;
|
|
1201
|
-
flex-direction: row;
|
|
1202
|
-
align-items: center;
|
|
1203
|
-
justify-content: flex-start;
|
|
1204
1281
|
flex: 1 1 0;
|
|
1205
|
-
|
|
1282
|
+
justify-content: flex-start;
|
|
1283
|
+
gap: var(--space-md);
|
|
1206
1284
|
height: auto;
|
|
1207
1285
|
min-height: 0;
|
|
1208
|
-
aspect-ratio: auto;
|
|
1209
|
-
gap: var(--space-md);
|
|
1210
1286
|
padding: var(--space-sm) var(--space-md);
|
|
1211
|
-
border:
|
|
1212
|
-
|
|
1213
|
-
background: transparent;
|
|
1287
|
+
border: 1px solid var(--border-gentle-divider);
|
|
1288
|
+
background: var(--color-surface-card);
|
|
1214
1289
|
outline: none;
|
|
1215
1290
|
}
|
|
1216
1291
|
|
|
1217
|
-
.home-project-inventory-row
|
|
1218
|
-
|
|
1292
|
+
.home-band--contrast .home-project-inventory-row {
|
|
1293
|
+
background: var(--color-surface-card-contrast);
|
|
1219
1294
|
}
|
|
1220
1295
|
|
|
1221
|
-
.home-project-inventory-row.is-selected
|
|
1296
|
+
.home-project-inventory-row.is-selected,
|
|
1297
|
+
.home-band--contrast .home-project-inventory-row.is-selected {
|
|
1222
1298
|
background: var(--color-surface-high);
|
|
1223
|
-
border-color:
|
|
1299
|
+
border-color: var(--border-gentle-divider);
|
|
1224
1300
|
outline: none;
|
|
1225
1301
|
box-shadow: inset 3px 0 0 var(--color-primary);
|
|
1226
1302
|
}
|
|
1227
1303
|
|
|
1228
|
-
.home-project-inventory-index {
|
|
1229
|
-
display: block;
|
|
1230
|
-
flex: 0 0 1.75rem;
|
|
1231
|
-
font-family: var(--font-mono);
|
|
1232
|
-
font-size: var(--type-caption);
|
|
1233
|
-
letter-spacing: 0.04em;
|
|
1234
|
-
color: var(--color-on-surface-variant);
|
|
1235
|
-
line-height: 1;
|
|
1236
|
-
text-align: right;
|
|
1237
|
-
}
|
|
1238
|
-
|
|
1239
|
-
.home-project-inventory-row.is-selected .home-project-inventory-index,
|
|
1240
|
-
.home-project-inventory-row:hover .home-project-inventory-index,
|
|
1241
|
-
.home-project-inventory-row:focus-visible .home-project-inventory-index {
|
|
1242
|
-
color: var(--color-primary);
|
|
1243
|
-
}
|
|
1244
|
-
|
|
1245
1304
|
.home-project-inventory-media {
|
|
1246
1305
|
display: block;
|
|
1247
1306
|
flex: 0 0 auto;
|
|
1248
1307
|
width: 5.5rem;
|
|
1249
|
-
align-self: center;
|
|
1250
|
-
height: auto;
|
|
1251
|
-
min-width: 0;
|
|
1252
|
-
min-height: 0;
|
|
1253
1308
|
aspect-ratio: 16 / 9;
|
|
1254
1309
|
overflow: hidden;
|
|
1255
1310
|
background: var(--color-surface-high);
|
|
1256
|
-
|
|
1311
|
+
}
|
|
1312
|
+
|
|
1313
|
+
.home-project-inventory-row.is-selected .home-project-inventory-media {
|
|
1314
|
+
outline: 1px solid var(--color-primary);
|
|
1315
|
+
outline-offset: 2px;
|
|
1257
1316
|
}
|
|
1258
1317
|
|
|
1259
1318
|
.home-project-inventory-media .ledger-poster,
|
|
@@ -1261,7 +1320,6 @@ html[data-theme="light"] .home-project-specimen,
|
|
|
1261
1320
|
width: 100%;
|
|
1262
1321
|
height: 100%;
|
|
1263
1322
|
aspect-ratio: auto;
|
|
1264
|
-
border: 0;
|
|
1265
1323
|
overflow: hidden;
|
|
1266
1324
|
background: var(--color-surface-high);
|
|
1267
1325
|
}
|
|
@@ -1270,13 +1328,6 @@ html[data-theme="light"] .home-project-specimen,
|
|
|
1270
1328
|
display: none;
|
|
1271
1329
|
}
|
|
1272
1330
|
|
|
1273
|
-
.home-project-inventory-media .ledger-poster img {
|
|
1274
|
-
width: 100%;
|
|
1275
|
-
height: 100%;
|
|
1276
|
-
object-fit: cover;
|
|
1277
|
-
display: block;
|
|
1278
|
-
}
|
|
1279
|
-
|
|
1280
1331
|
.home-project-inventory-mark {
|
|
1281
1332
|
display: flex;
|
|
1282
1333
|
align-items: center;
|
|
@@ -1284,6 +1335,10 @@ html[data-theme="light"] .home-project-specimen,
|
|
|
1284
1335
|
color: var(--color-primary);
|
|
1285
1336
|
}
|
|
1286
1337
|
|
|
1338
|
+
.home-project-inventory-mark .material-symbols-outlined {
|
|
1339
|
+
font-size: 1.5rem;
|
|
1340
|
+
}
|
|
1341
|
+
|
|
1287
1342
|
.home-project-inventory-mark--initial {
|
|
1288
1343
|
font-family: var(--font-content-title);
|
|
1289
1344
|
font-size: var(--type-card);
|
|
@@ -1292,33 +1347,23 @@ html[data-theme="light"] .home-project-specimen,
|
|
|
1292
1347
|
color: var(--color-on-surface);
|
|
1293
1348
|
}
|
|
1294
1349
|
|
|
1295
|
-
.home-project-inventory-mark .material-symbols-outlined {
|
|
1296
|
-
font-size: 1.25rem;
|
|
1297
|
-
}
|
|
1298
|
-
|
|
1299
1350
|
.home-project-inventory-body {
|
|
1300
1351
|
display: flex;
|
|
1301
1352
|
flex-direction: column;
|
|
1302
1353
|
justify-content: center;
|
|
1303
|
-
gap: 0;
|
|
1354
|
+
gap: 0.1rem;
|
|
1304
1355
|
flex: 1 1 0;
|
|
1305
1356
|
min-width: 0;
|
|
1306
|
-
padding: 0;
|
|
1307
1357
|
}
|
|
1308
1358
|
|
|
1309
1359
|
.home-project-inventory-title {
|
|
1310
1360
|
margin: 0;
|
|
1311
|
-
font-
|
|
1312
|
-
font-size: var(--type-card);
|
|
1313
|
-
font-weight: var(--weight-title);
|
|
1314
|
-
font-synthesis: none;
|
|
1361
|
+
font-size: var(--type-label-lg);
|
|
1315
1362
|
line-height: 1.25;
|
|
1316
1363
|
color: var(--color-on-surface);
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
color: inherit;
|
|
1321
|
-
text-decoration: none;
|
|
1364
|
+
overflow: hidden;
|
|
1365
|
+
text-overflow: ellipsis;
|
|
1366
|
+
white-space: nowrap;
|
|
1322
1367
|
}
|
|
1323
1368
|
|
|
1324
1369
|
.home-project-inventory-row:hover .home-project-inventory-title,
|
|
@@ -1327,15 +1372,23 @@ html[data-theme="light"] .home-project-specimen,
|
|
|
1327
1372
|
color: var(--color-primary);
|
|
1328
1373
|
}
|
|
1329
1374
|
|
|
1330
|
-
.home-project-inventory-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1375
|
+
.home-project-inventory-copy {
|
|
1376
|
+
margin: 0;
|
|
1377
|
+
font-size: var(--type-meta);
|
|
1378
|
+
font-weight: var(--weight-body);
|
|
1379
|
+
line-height: 1.4;
|
|
1380
|
+
color: var(--color-on-surface-variant);
|
|
1381
|
+
overflow: hidden;
|
|
1382
|
+
text-overflow: ellipsis;
|
|
1383
|
+
white-space: nowrap;
|
|
1336
1384
|
}
|
|
1337
|
-
}
|
|
1338
1385
|
|
|
1386
|
+
/* Two classes: the glyph also carries .material-symbols-outlined, whose
|
|
1387
|
+
font stylesheet loads after this one and sets display. */
|
|
1388
|
+
.home-project-inventory-row .home-project-inventory-glyph {
|
|
1389
|
+
display: none;
|
|
1390
|
+
}
|
|
1391
|
+
}
|
|
1339
1392
|
|
|
1340
1393
|
@media (min-width: 768px) {}
|
|
1341
1394
|
|
|
@@ -24,7 +24,7 @@ module Pandorga
|
|
|
24
24
|
|
|
25
25
|
gem "pandorga", "~> 1.3"
|
|
26
26
|
# Local checkout: gem "pandorga", path: "../pandorga"
|
|
27
|
-
# GitHub tag: gem "pandorga", github: "alexandrelheinen/pandorga", tag: "v1.3.
|
|
27
|
+
# GitHub tag: gem "pandorga", github: "alexandrelheinen/pandorga", tag: "v1.3.7"
|
|
28
28
|
gem "csv"
|
|
29
29
|
gem "base64"
|
|
30
30
|
RUBY
|
data/lib/pandorga/version.rb
CHANGED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "project-inventory-row/icon mark without a thumbnail (PLT-AC-15)",
|
|
3
|
+
"block": "renderProjectInventoryRow",
|
|
4
|
+
"args": [
|
|
5
|
+
{
|
|
6
|
+
"slug": "bossa",
|
|
7
|
+
"front_matter": {
|
|
8
|
+
"project": "Bossa",
|
|
9
|
+
"icon": "music_note"
|
|
10
|
+
}
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"selectable": true,
|
|
14
|
+
"selected": true
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"selectors": [
|
|
18
|
+
"div.home-project-inventory-mark",
|
|
19
|
+
"h3.home-project-inventory-title"
|
|
20
|
+
],
|
|
21
|
+
"forbidden": [
|
|
22
|
+
"ledger-poster",
|
|
23
|
+
"home-project-inventory-mark--initial"
|
|
24
|
+
],
|
|
25
|
+
"contains": [
|
|
26
|
+
"aria-pressed=\"true\"",
|
|
27
|
+
"is-selected"
|
|
28
|
+
]
|
|
29
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "project-inventory-row/rack card (PLT-AC-15)",
|
|
3
|
+
"block": "renderProjectInventoryRow",
|
|
4
|
+
"args": [
|
|
5
|
+
{
|
|
6
|
+
"slug": "arco",
|
|
7
|
+
"front_matter": {
|
|
8
|
+
"project": "ARCO",
|
|
9
|
+
"thumbnail": "/media/projects/arco.png",
|
|
10
|
+
"icon": "route",
|
|
11
|
+
"label": "Simulation",
|
|
12
|
+
"status": "Ongoing",
|
|
13
|
+
"tagline": "A city-scale race replayed from telemetry."
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"selectable": true,
|
|
18
|
+
"selected": false,
|
|
19
|
+
"index": 2
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
"selectors": [
|
|
23
|
+
"article.home-project-inventory-row",
|
|
24
|
+
"div.home-project-inventory-media",
|
|
25
|
+
"div.ledger-poster",
|
|
26
|
+
"div.home-project-inventory-code",
|
|
27
|
+
"span.home-project-inventory-index",
|
|
28
|
+
"span.ledger-status",
|
|
29
|
+
"h3.home-project-inventory-title",
|
|
30
|
+
"p.home-project-inventory-copy",
|
|
31
|
+
"span.home-project-inventory-glyph"
|
|
32
|
+
],
|
|
33
|
+
"forbidden": [
|
|
34
|
+
"ledger-card-stretch"
|
|
35
|
+
],
|
|
36
|
+
"contains": [
|
|
37
|
+
">02<",
|
|
38
|
+
">Simulation<",
|
|
39
|
+
">Ongoing<",
|
|
40
|
+
">ARCO<",
|
|
41
|
+
">A city-scale race replayed from telemetry.<",
|
|
42
|
+
">route<",
|
|
43
|
+
"aria-pressed=\"false\"",
|
|
44
|
+
"data-slug=\"arco\""
|
|
45
|
+
]
|
|
46
|
+
}
|