@canopy-iiif/app 0.10.6 → 0.10.8

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.
@@ -1,8 +1,7 @@
1
1
  @layer components {
2
2
  .canopy-footer {
3
- border-top: 1px solid var(--color-gray-200, #e2e8f0);
4
- background: var(--color-gray-25, #f8fafc);
5
- color: var(--color-gray-600, #475569);
3
+ border-top: 1px solid var(--color-gray-200);
4
+ color: var(--color-gray-500);
6
5
  }
7
6
 
8
7
  .canopy-footer__inner {
@@ -0,0 +1,69 @@
1
+ .canopy-layout {
2
+ --canopy-layout-sidebar-width: 13rem;
3
+ --canopy-layout-content-nav-width: 14rem;
4
+ --canopy-layout-row-gap: clamp(1.25rem, 3vw, 3rem);
5
+ --canopy-layout-column-gap: clamp(1.25rem, 3vw, 3rem);
6
+ display: grid;
7
+ width: 100%;
8
+ padding: clamp(1rem, 2vw, 2.5rem);
9
+ row-gap: var(--canopy-layout-row-gap);
10
+ column-gap: var(--canopy-layout-column-gap);
11
+ grid-template-columns: minmax(0, 1fr);
12
+ align-items: start;
13
+ }
14
+
15
+ .canopy-layout--fixed {
16
+ margin-left: auto;
17
+ margin-right: auto;
18
+ max-width: 1280px;
19
+ }
20
+
21
+ .canopy-layout--fluid {
22
+ max-width: none;
23
+ }
24
+
25
+ .canopy-layout__content {
26
+ min-width: 0;
27
+ }
28
+
29
+ .canopy-layout__sidebar,
30
+ .canopy-layout__content-nav {
31
+ position: relative;
32
+ }
33
+
34
+ .canopy-layout__content-nav {
35
+ display: flex;
36
+ flex-direction: column;
37
+ gap: 0.75rem;
38
+ align-items: stretch;
39
+ }
40
+
41
+ .canopy-layout--content-nav-collapsed {
42
+ --canopy-layout-content-nav-width: 0;
43
+ }
44
+
45
+ .canopy-layout__content-nav.is-collapsed {
46
+ align-items: flex-end;
47
+ width: 0;
48
+ padding: 0;
49
+ margin: 0;
50
+ overflow: visible;
51
+ margin-left: calc(-1 * var(--canopy-layout-column-gap));
52
+ }
53
+
54
+ @media (min-width: 70rem) {
55
+ .canopy-layout--with-sidebar {
56
+ grid-template-columns: var(--canopy-layout-sidebar-width) minmax(0, 1fr);
57
+ }
58
+
59
+ .canopy-layout--with-content-nav:not(.canopy-layout--with-sidebar) {
60
+ grid-template-columns: minmax(0, 1fr) var(--canopy-layout-content-nav-width);
61
+ }
62
+
63
+ .canopy-layout--with-sidebar.canopy-layout--with-content-nav {
64
+ grid-template-columns:
65
+ var(--canopy-layout-sidebar-width)
66
+ minmax(0, 1fr)
67
+ var(--canopy-layout-content-nav-width);
68
+ }
69
+ }
@@ -4,7 +4,7 @@
4
4
 
5
5
  .canopy-sub-navigation__heading {
6
6
  font-weight: 600;
7
- margin-bottom: 0.5rem;
7
+ margin-bottom: 0.618rem;
8
8
  }
9
9
 
10
10
  .canopy-sub-navigation__list {
@@ -21,8 +21,8 @@
21
21
 
22
22
  .canopy-sub-navigation__link {
23
23
  display: block;
24
- padding: 0.35rem 0.5rem;
25
- border-radius: 0.375rem;
24
+ padding: 0.382rem 0.618;
25
+ border-radius: 0.382rem;
26
26
  color: inherit;
27
27
  text-decoration: none;
28
28
  cursor: pointer;
@@ -37,40 +37,83 @@
37
37
 
38
38
  .canopy-sub-navigation__link.is-label {
39
39
  cursor: default;
40
- color: var(--color-gray-600, #52525b);
40
+ color: var(--color-gray-600);
41
41
  }
42
42
 
43
43
  .canopy-sub-navigation__link.is-active {
44
- color: var(--color-gray-900, #1d4ed8);
44
+ color: var(--color-gray-900);
45
45
  font-weight: 600;
46
46
  }
47
47
 
48
48
  .canopy-sub-navigation__list--nested {
49
- margin: 0.35rem 0 0.35rem 0.5rem;
50
- padding-left: 0.5rem;
51
- border-left: 1px solid var(--color-gray-100, #e4e4e7);
49
+ margin: 0.382rem 0 0.382rem 0.618rem;
50
+ padding-left: 0.618rem;
51
+ border-left: 1px solid var(--color-gray-200);
52
52
  }
53
53
 
54
54
  .canopy-sub-navigation__link.depth-0 {
55
- padding-left: 0.25rem;
55
+ padding-left: 0.382rem;
56
56
  }
57
57
 
58
- .canopy-sub-navigation__link.depth-1 {
59
- padding-left: calc(0.25rem);
58
+ .canopy-sub-navigation__link.depth-1,
59
+ .canopy-sub-navigation__link.depth-2 {
60
+ padding-left: calc(0.382rem);
61
+ font-size: 0.9222rem;
60
62
  }
61
63
 
62
- .canopy-sub-navigation__link.depth-2 {
63
- padding-left: calc(0.25rem * 2);
64
+ .canopy-content-navigation {
65
+ position: sticky;
66
+ top: 1.5rem;
67
+ }
68
+
69
+ .canopy-content-navigation__toggle {
70
+ align-self: flex-end;
71
+ display: inline-flex;
72
+ align-items: center;
73
+ justify-content: center;
74
+ gap: 0.25rem;
75
+ padding: 0.25rem 0.75rem;
76
+ border-radius: 9999px;
77
+ border: 1px solid var(--color-gray-200, #e4e4e7);
78
+ background-color: rgba(255, 255, 255, 0.9);
79
+ color: inherit;
80
+ font-size: 0.75rem;
81
+ font-weight: 600;
82
+ cursor: pointer;
83
+ transition:
84
+ background-color 120ms ease,
85
+ color 120ms ease,
86
+ border-color 120ms ease,
87
+ box-shadow 120ms ease;
88
+ }
89
+
90
+ .canopy-content-navigation__toggle:hover,
91
+ .canopy-content-navigation__toggle:focus-visible {
92
+ background-color: rgba(255, 255, 255, 1);
93
+ border-color: var(--color-gray-300, #d4d4d8);
94
+ outline: none;
95
+ box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-brand-200, #c7d2fe) 60%, transparent);
96
+ }
97
+
98
+ .canopy-layout__content-nav.is-collapsed .canopy-content-navigation {
99
+ padding: 0;
100
+ margin: 0;
101
+ width: auto;
64
102
  }
65
103
 
66
- .canopy-sub-navigation__link.depth-3 {
67
- padding-left: calc(0.25rem * 3);
104
+ .canopy-layout__content-nav.is-collapsed .canopy-content-navigation__toggle {
105
+ position: sticky;
106
+ top: 1.5rem;
107
+ transform: translateX(40%);
68
108
  }
69
109
 
70
- .canopy-sub-navigation__link.depth-4 {
71
- padding-left: calc(0.25rem * 4);
110
+ .canopy-content-navigation--collapsed .canopy-content-navigation__toggle {
111
+ padding: 0.5rem 0.5rem;
112
+ writing-mode: vertical-rl;
113
+ text-orientation: mixed;
114
+ letter-spacing: 0.05em;
72
115
  }
73
116
 
74
- .canopy-sub-navigation__link.depth-5 {
75
- padding-left: calc(0.25rem * 5);
117
+ .canopy-content-navigation--collapsed .canopy-sub-navigation__list {
118
+ display: none;
76
119
  }
@@ -3,8 +3,8 @@
3
3
  position: relative;
4
4
  display: flex;
5
5
  align-items: center;
6
- gap: 0.75rem;
7
- padding: 0.75rem 1rem;
6
+ gap: 1.618rem;
7
+ padding: 1rem 1.618rem;
8
8
  background: trabsparent;
9
9
  z-index: 1;
10
10
  }
@@ -70,6 +70,10 @@
70
70
  flex: 0 0 auto;
71
71
  }
72
72
 
73
+ .canopy-header__actions:empty {
74
+ display: none;
75
+ }
76
+
73
77
  .canopy-header__icon-button {
74
78
  display: inline-flex;
75
79
  align-items: center;
@@ -134,10 +138,6 @@
134
138
  }
135
139
 
136
140
  @media (min-width: 48rem) {
137
- .canopy-header {
138
- gap: 1.25rem;
139
- }
140
-
141
141
  .canopy-header__menu {
142
142
  display: none;
143
143
  }
@@ -148,12 +148,10 @@
148
148
 
149
149
  .canopy-header__desktop-nav {
150
150
  display: flex;
151
- margin-left: 1.5rem;
152
151
  }
153
152
 
154
153
  .canopy-header__actions {
155
- margin-left: auto;
156
- gap: 0.75rem;
154
+ display: none;
157
155
  }
158
156
 
159
157
  .canopy-header__search-trigger {
@@ -1,5 +1,6 @@
1
1
  @use "./buttons";
2
2
  @use "./card";
3
+ @use "./layout";
3
4
  @use "./header";
4
5
  @use "./footer";
5
6
  @use "./modal";
@@ -171,6 +171,9 @@
171
171
  color: var(--color-gray-900);
172
172
  }
173
173
 
174
+ @utility max-w-content {
175
+ max-width: 1080px;
176
+ }
174
177
  @layer components {
175
178
  .canopy-button {
176
179
  display: inline-flex;
@@ -302,13 +305,77 @@
302
305
  content: " [highlight end] ";
303
306
  }
304
307
 
308
+ .canopy-layout {
309
+ --canopy-layout-sidebar-width: 13rem;
310
+ --canopy-layout-content-nav-width: 14rem;
311
+ --canopy-layout-row-gap: clamp(1.25rem, 3vw, 3rem);
312
+ --canopy-layout-column-gap: clamp(1.25rem, 3vw, 3rem);
313
+ display: grid;
314
+ width: 100%;
315
+ padding: clamp(1rem, 2vw, 2.5rem);
316
+ row-gap: var(--canopy-layout-row-gap);
317
+ column-gap: var(--canopy-layout-column-gap);
318
+ grid-template-columns: minmax(0, 1fr);
319
+ align-items: start;
320
+ }
321
+
322
+ .canopy-layout--fixed {
323
+ margin-left: auto;
324
+ margin-right: auto;
325
+ max-width: 1280px;
326
+ }
327
+
328
+ .canopy-layout--fluid {
329
+ max-width: none;
330
+ }
331
+
332
+ .canopy-layout__content {
333
+ min-width: 0;
334
+ }
335
+
336
+ .canopy-layout__sidebar,
337
+ .canopy-layout__content-nav {
338
+ position: relative;
339
+ }
340
+
341
+ .canopy-layout__content-nav {
342
+ display: flex;
343
+ flex-direction: column;
344
+ gap: 0.75rem;
345
+ align-items: stretch;
346
+ }
347
+
348
+ .canopy-layout--content-nav-collapsed {
349
+ --canopy-layout-content-nav-width: 0;
350
+ }
351
+
352
+ .canopy-layout__content-nav.is-collapsed {
353
+ align-items: flex-end;
354
+ width: 0;
355
+ padding: 0;
356
+ margin: 0;
357
+ overflow: visible;
358
+ margin-left: calc(-1 * var(--canopy-layout-column-gap));
359
+ }
360
+
361
+ @media (min-width: 70rem) {
362
+ .canopy-layout--with-sidebar {
363
+ grid-template-columns: var(--canopy-layout-sidebar-width) minmax(0, 1fr);
364
+ }
365
+ .canopy-layout--with-content-nav:not(.canopy-layout--with-sidebar) {
366
+ grid-template-columns: minmax(0, 1fr) var(--canopy-layout-content-nav-width);
367
+ }
368
+ .canopy-layout--with-sidebar.canopy-layout--with-content-nav {
369
+ grid-template-columns: var(--canopy-layout-sidebar-width) minmax(0, 1fr) var(--canopy-layout-content-nav-width);
370
+ }
371
+ }
305
372
  @layer components {
306
373
  .canopy-header {
307
374
  position: relative;
308
375
  display: flex;
309
376
  align-items: center;
310
- gap: 0.75rem;
311
- padding: 0.75rem 1rem;
377
+ gap: 1.618rem;
378
+ padding: 1rem 1.618rem;
312
379
  background: trabsparent;
313
380
  z-index: 1;
314
381
  }
@@ -362,6 +429,9 @@
362
429
  margin-left: auto;
363
430
  flex: 0 0 auto;
364
431
  }
432
+ .canopy-header__actions:empty {
433
+ display: none;
434
+ }
365
435
  .canopy-header__icon-button {
366
436
  display: inline-flex;
367
437
  align-items: center;
@@ -414,9 +484,6 @@
414
484
  padding: 0.25rem 0;
415
485
  }
416
486
  @media (min-width: 48rem) {
417
- .canopy-header {
418
- gap: 1.25rem;
419
- }
420
487
  .canopy-header__menu {
421
488
  display: none;
422
489
  }
@@ -425,11 +492,9 @@
425
492
  }
426
493
  .canopy-header__desktop-nav {
427
494
  display: flex;
428
- margin-left: 1.5rem;
429
495
  }
430
496
  .canopy-header__actions {
431
- margin-left: auto;
432
- gap: 0.75rem;
497
+ display: none;
433
498
  }
434
499
  .canopy-header__search-trigger {
435
500
  display: none;
@@ -523,9 +588,8 @@
523
588
  }
524
589
  @layer components {
525
590
  .canopy-footer {
526
- border-top: 1px solid var(--color-gray-200, #e2e8f0);
527
- background: var(--color-gray-25, #f8fafc);
528
- color: var(--color-gray-600, #475569);
591
+ border-top: 1px solid var(--color-gray-200);
592
+ color: var(--color-gray-500);
529
593
  }
530
594
  .canopy-footer__inner {
531
595
  margin: 0 auto;
@@ -1481,7 +1545,7 @@
1481
1545
 
1482
1546
  .canopy-sub-navigation__heading {
1483
1547
  font-weight: 600;
1484
- margin-bottom: 0.5rem;
1548
+ margin-bottom: 0.618rem;
1485
1549
  }
1486
1550
 
1487
1551
  .canopy-sub-navigation__list {
@@ -1498,8 +1562,8 @@
1498
1562
 
1499
1563
  .canopy-sub-navigation__link {
1500
1564
  display: block;
1501
- padding: 0.35rem 0.5rem;
1502
- border-radius: 0.375rem;
1565
+ padding: 0.382rem 0.618;
1566
+ border-radius: 0.382rem;
1503
1567
  color: inherit;
1504
1568
  text-decoration: none;
1505
1569
  cursor: pointer;
@@ -1512,40 +1576,79 @@
1512
1576
 
1513
1577
  .canopy-sub-navigation__link.is-label {
1514
1578
  cursor: default;
1515
- color: var(--color-gray-600, #52525b);
1579
+ color: var(--color-gray-600);
1516
1580
  }
1517
1581
 
1518
1582
  .canopy-sub-navigation__link.is-active {
1519
- color: var(--color-gray-900, #1d4ed8);
1583
+ color: var(--color-gray-900);
1520
1584
  font-weight: 600;
1521
1585
  }
1522
1586
 
1523
1587
  .canopy-sub-navigation__list--nested {
1524
- margin: 0.35rem 0 0.35rem 0.5rem;
1525
- padding-left: 0.5rem;
1526
- border-left: 1px solid var(--color-gray-100, #e4e4e7);
1588
+ margin: 0.382rem 0 0.382rem 0.618rem;
1589
+ padding-left: 0.618rem;
1590
+ border-left: 1px solid var(--color-gray-200);
1527
1591
  }
1528
1592
 
1529
1593
  .canopy-sub-navigation__link.depth-0 {
1530
- padding-left: 0.25rem;
1594
+ padding-left: 0.382rem;
1531
1595
  }
1532
1596
 
1533
- .canopy-sub-navigation__link.depth-1 {
1534
- padding-left: 0.25rem;
1597
+ .canopy-sub-navigation__link.depth-1,
1598
+ .canopy-sub-navigation__link.depth-2 {
1599
+ padding-left: 0.382rem;
1600
+ font-size: 0.9222rem;
1535
1601
  }
1536
1602
 
1537
- .canopy-sub-navigation__link.depth-2 {
1538
- padding-left: 0.5rem;
1603
+ .canopy-content-navigation {
1604
+ position: sticky;
1605
+ top: 1.5rem;
1606
+ }
1607
+
1608
+ .canopy-content-navigation__toggle {
1609
+ align-self: flex-end;
1610
+ display: inline-flex;
1611
+ align-items: center;
1612
+ justify-content: center;
1613
+ gap: 0.25rem;
1614
+ padding: 0.25rem 0.75rem;
1615
+ border-radius: 9999px;
1616
+ border: 1px solid var(--color-gray-200, #e4e4e7);
1617
+ background-color: rgba(255, 255, 255, 0.9);
1618
+ color: inherit;
1619
+ font-size: 0.75rem;
1620
+ font-weight: 600;
1621
+ cursor: pointer;
1622
+ transition: background-color 120ms ease, color 120ms ease, border-color 120ms ease, box-shadow 120ms ease;
1539
1623
  }
1540
1624
 
1541
- .canopy-sub-navigation__link.depth-3 {
1542
- padding-left: 0.75rem;
1625
+ .canopy-content-navigation__toggle:hover,
1626
+ .canopy-content-navigation__toggle:focus-visible {
1627
+ background-color: rgb(255, 255, 255);
1628
+ border-color: var(--color-gray-300, #d4d4d8);
1629
+ outline: none;
1630
+ box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-brand-200, #c7d2fe) 60%, transparent);
1543
1631
  }
1544
1632
 
1545
- .canopy-sub-navigation__link.depth-4 {
1546
- padding-left: 1rem;
1633
+ .canopy-layout__content-nav.is-collapsed .canopy-content-navigation {
1634
+ padding: 0;
1635
+ margin: 0;
1636
+ width: auto;
1637
+ }
1638
+
1639
+ .canopy-layout__content-nav.is-collapsed .canopy-content-navigation__toggle {
1640
+ position: sticky;
1641
+ top: 1.5rem;
1642
+ transform: translateX(40%);
1547
1643
  }
1548
1644
 
1549
- .canopy-sub-navigation__link.depth-5 {
1550
- padding-left: 1.25rem;
1645
+ .canopy-content-navigation--collapsed .canopy-content-navigation__toggle {
1646
+ padding: 0.5rem 0.5rem;
1647
+ writing-mode: vertical-rl;
1648
+ text-orientation: mixed;
1649
+ letter-spacing: 0.05em;
1650
+ }
1651
+
1652
+ .canopy-content-navigation--collapsed .canopy-sub-navigation__list {
1653
+ display: none;
1551
1654
  }