Skip to content

Commit 287b381

Browse files
authored
Package page reflow (#1844)
Makes package page a bit more vertically compact Fixes #1817
1 parent f7fca39 commit 287b381

2 files changed

Lines changed: 348 additions & 288 deletions

File tree

css/app.scss

Lines changed: 84 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1196,6 +1196,14 @@ input:focus:invalid:focus, textarea:focus:invalid:focus, select:focus:invalid:fo
11961196
margin-bottom: -1px !important;
11971197
position: relative;
11981198
}
1199+
#view-package-page .package-header {
1200+
border-bottom: 1px solid var(--color-brand-orange);
1201+
margin-bottom: 15px;
1202+
}
1203+
#view-package-page h2.title {
1204+
border-bottom: 0;
1205+
margin-bottom: 0 !important;
1206+
}
11991207
.package .force-update-trigger {
12001208
cursor: pointer;
12011209
}
@@ -1212,13 +1220,6 @@ input:focus:invalid:focus, textarea:focus:invalid:focus, select:focus:invalid:fo
12121220
background-repeat: no-repeat;
12131221
padding-left: 35px;
12141222
}
1215-
// the row mixes inline-block <form>s with a bare <button>, whose inline baselines don't match, so
1216-
// lay it out with flex - which also keeps the wrapping that .btn-group's nowrap took away
1217-
.package .package-actions {
1218-
display: flex;
1219-
flex-wrap: wrap;
1220-
align-items: flex-start;
1221-
}
12221223
.package .action {
12231224
margin-right: 5px;
12241225
margin-bottom: 15px;
@@ -1249,19 +1250,69 @@ input:focus:invalid:focus, textarea:focus:invalid:focus, select:focus:invalid:fo
12491250
.package .details p, .package .facts p {
12501251
margin: 0;
12511252
}
1252-
.package .details .maintainers {
1253-
padding-bottom: 6px;
1253+
// the tiny font-size collapses the whitespace between the inline <a>s so the avatars pack tightly
1254+
.package .package-maintainers {
1255+
text-align: right;
1256+
}
1257+
.package .package-maintainers .maintainers {
1258+
// the negative top margin lets bigger avatars grow into the title's line box
1259+
// rather than making the header row taller
1260+
margin: -8px 0 15px;
12541261
font-size: 0.0001px;
12551262
}
1256-
.package .details .maintainers img {
1257-
margin-bottom: 4px;
1258-
margin-right: 4px;
1263+
.package .package-maintainers .maintainers img {
1264+
margin-left: 4px;
1265+
border-radius: 2px;
12591266
}
1260-
.package .details .maintainer-actions {
1261-
a {
1262-
font-size: 34px;
1263-
cursor: pointer;
1264-
}
1267+
.package .package-maintainers .more-maintainers {
1268+
margin-left: 6px;
1269+
font-size: 14px;
1270+
color: var(--color-muted);
1271+
vertical-align: top;
1272+
}
1273+
@media (max-width: 767px) {
1274+
.package .package-maintainers {
1275+
text-align: left;
1276+
}
1277+
.package .package-maintainers .maintainers img {
1278+
margin-left: 0;
1279+
margin-right: 4px;
1280+
}
1281+
}
1282+
1283+
// maintainer/admin-only controls: two menus in the column beside the description, with the
1284+
// forms they toggle in their own block below the row
1285+
.package-admin-bar {
1286+
.package-admin-buttons {
1287+
display: flex;
1288+
flex-wrap: wrap;
1289+
align-items: flex-start;
1290+
gap: 5px;
1291+
margin-bottom: 15px;
1292+
}
1293+
1294+
// the action forms keep their class for the submit spinner, but .package .action's
1295+
// inline-block margins would space the menu items apart
1296+
.dropdown-menu .action {
1297+
display: block;
1298+
margin: 0;
1299+
}
1300+
1301+
// caps the width once the column goes full-width below lg
1302+
.package-admin-form {
1303+
max-width: 420px;
1304+
margin-bottom: 15px;
1305+
}
1306+
1307+
// .package i forces the dark brand colour, which vanishes on the dark fill, and 12px
1308+
// glyphs get lost there anyway; line-height keeps them out of the button's line box
1309+
.package-admin-buttons .btn i {
1310+
color: inherit;
1311+
font-size: 15px;
1312+
line-height: 0;
1313+
vertical-align: -2px;
1314+
margin-right: 2px;
1315+
}
12651316
}
12661317
.package .details .canonical,
12671318
.package .details .purl,
@@ -1272,12 +1323,15 @@ input:focus:invalid:focus, textarea:focus:invalid:focus, select:focus:invalid:fo
12721323
white-space: nowrap;
12731324
}
12741325

1275-
.package .facts span {
1326+
// label column for "Installs: 123" / "Language: C" rows. .purl is excluded because its span
1327+
// is the whole value, not a label - a fixed width would move where its ellipsis lands.
1328+
.package .facts span,
1329+
.package .details p:not(.purl) > span {
12761330
display: inline-block;
12771331
width: 100px;
12781332
}
12791333

1280-
.package .facts .package-downloads-chart {
1334+
.package .package-downloads-chart {
12811335
height: 110px;
12821336
width: 100%;
12831337
margin-bottom: 10px;
@@ -1371,18 +1425,11 @@ input:focus:invalid:focus, textarea:focus:invalid:focus, select:focus:invalid:fo
13711425

13721426
margin: 10px 0 0;
13731427
padding: 0;
1374-
1375-
&:first-child {
1376-
margin-top: 0;
1377-
}
13781428
}
13791429
.package .package-aside.versions-wrapper {
13801430
margin-left: 15px;
13811431
margin-right: 15px;
13821432
}
1383-
.package-aside .details {
1384-
padding-left: 0;
1385-
}
13861433
.package .package-aside i {
13871434
color: var(--color-secondary);
13881435
}
@@ -1505,16 +1552,21 @@ input:focus:invalid:focus, textarea:focus:invalid:focus, select:focus:invalid:fo
15051552
margin-left: auto;
15061553
}
15071554

1508-
.package-aside .details {
1509-
padding-left: 15px;
1510-
}
15111555
.package .package-aside {
15121556
background: #fff;
15131557
border-radius: 2px;
15141558
border-top: 0;
1515-
padding: 0 0 10px 0;
1516-
margin-left: -15px;
1517-
margin-right: -15px;
1559+
margin: 0;
1560+
padding: 10px 15px;
1561+
}
1562+
// equal-height cards across the band, whatever each one contains
1563+
#view-package-page .package-facts .package-aside {
1564+
height: 100%;
1565+
}
1566+
// long unbreakable strings (purl, repo URL) would otherwise set a min-content
1567+
// floor and push one card past its share of the row
1568+
#view-package-page .package-facts > [class*="col-"] {
1569+
min-width: 0;
15181570
}
15191571
.package .package-aside.versions-wrapper {
15201572
margin-left: 0;
@@ -1529,9 +1581,6 @@ input:focus:invalid:focus, textarea:focus:invalid:focus, select:focus:invalid:fo
15291581
}
15301582
}
15311583
@media (max-width: 767px) {
1532-
.package-aside .facts {
1533-
padding-left: 0;
1534-
}
15351584
.wrapper-footer {
15361585
font-size: 12px;
15371586
}

0 commit comments

Comments
 (0)