@canopy-iiif/app 0.10.5 → 0.10.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.
@@ -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";
@@ -302,13 +302,77 @@
302
302
  content: " [highlight end] ";
303
303
  }
304
304
 
305
+ .canopy-layout {
306
+ --canopy-layout-sidebar-width: 13rem;
307
+ --canopy-layout-content-nav-width: 14rem;
308
+ --canopy-layout-row-gap: clamp(1.25rem, 3vw, 3rem);
309
+ --canopy-layout-column-gap: clamp(1.25rem, 3vw, 3rem);
310
+ display: grid;
311
+ width: 100%;
312
+ padding: clamp(1rem, 2vw, 2.5rem);
313
+ row-gap: var(--canopy-layout-row-gap);
314
+ column-gap: var(--canopy-layout-column-gap);
315
+ grid-template-columns: minmax(0, 1fr);
316
+ align-items: start;
317
+ }
318
+
319
+ .canopy-layout--fixed {
320
+ margin-left: auto;
321
+ margin-right: auto;
322
+ max-width: 1280px;
323
+ }
324
+
325
+ .canopy-layout--fluid {
326
+ max-width: none;
327
+ }
328
+
329
+ .canopy-layout__content {
330
+ min-width: 0;
331
+ }
332
+
333
+ .canopy-layout__sidebar,
334
+ .canopy-layout__content-nav {
335
+ position: relative;
336
+ }
337
+
338
+ .canopy-layout__content-nav {
339
+ display: flex;
340
+ flex-direction: column;
341
+ gap: 0.75rem;
342
+ align-items: stretch;
343
+ }
344
+
345
+ .canopy-layout--content-nav-collapsed {
346
+ --canopy-layout-content-nav-width: 0;
347
+ }
348
+
349
+ .canopy-layout__content-nav.is-collapsed {
350
+ align-items: flex-end;
351
+ width: 0;
352
+ padding: 0;
353
+ margin: 0;
354
+ overflow: visible;
355
+ margin-left: calc(-1 * var(--canopy-layout-column-gap));
356
+ }
357
+
358
+ @media (min-width: 70rem) {
359
+ .canopy-layout--with-sidebar {
360
+ grid-template-columns: var(--canopy-layout-sidebar-width) minmax(0, 1fr);
361
+ }
362
+ .canopy-layout--with-content-nav:not(.canopy-layout--with-sidebar) {
363
+ grid-template-columns: minmax(0, 1fr) var(--canopy-layout-content-nav-width);
364
+ }
365
+ .canopy-layout--with-sidebar.canopy-layout--with-content-nav {
366
+ grid-template-columns: var(--canopy-layout-sidebar-width) minmax(0, 1fr) var(--canopy-layout-content-nav-width);
367
+ }
368
+ }
305
369
  @layer components {
306
370
  .canopy-header {
307
371
  position: relative;
308
372
  display: flex;
309
373
  align-items: center;
310
- gap: 0.75rem;
311
- padding: 0.75rem 1rem;
374
+ gap: 1.618rem;
375
+ padding: 1rem 1.618rem;
312
376
  background: trabsparent;
313
377
  z-index: 1;
314
378
  }
@@ -362,6 +426,9 @@
362
426
  margin-left: auto;
363
427
  flex: 0 0 auto;
364
428
  }
429
+ .canopy-header__actions:empty {
430
+ display: none;
431
+ }
365
432
  .canopy-header__icon-button {
366
433
  display: inline-flex;
367
434
  align-items: center;
@@ -414,9 +481,6 @@
414
481
  padding: 0.25rem 0;
415
482
  }
416
483
  @media (min-width: 48rem) {
417
- .canopy-header {
418
- gap: 1.25rem;
419
- }
420
484
  .canopy-header__menu {
421
485
  display: none;
422
486
  }
@@ -425,11 +489,9 @@
425
489
  }
426
490
  .canopy-header__desktop-nav {
427
491
  display: flex;
428
- margin-left: 1.5rem;
429
492
  }
430
493
  .canopy-header__actions {
431
- margin-left: auto;
432
- gap: 0.75rem;
494
+ display: none;
433
495
  }
434
496
  .canopy-header__search-trigger {
435
497
  display: none;
@@ -523,9 +585,8 @@
523
585
  }
524
586
  @layer components {
525
587
  .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);
588
+ border-top: 1px solid var(--color-gray-200);
589
+ color: var(--color-gray-500);
529
590
  }
530
591
  .canopy-footer__inner {
531
592
  margin: 0 auto;
@@ -1481,7 +1542,7 @@
1481
1542
 
1482
1543
  .canopy-sub-navigation__heading {
1483
1544
  font-weight: 600;
1484
- margin-bottom: 0.5rem;
1545
+ margin-bottom: 0.618rem;
1485
1546
  }
1486
1547
 
1487
1548
  .canopy-sub-navigation__list {
@@ -1498,8 +1559,8 @@
1498
1559
 
1499
1560
  .canopy-sub-navigation__link {
1500
1561
  display: block;
1501
- padding: 0.35rem 0.5rem;
1502
- border-radius: 0.375rem;
1562
+ padding: 0.382rem 0.618;
1563
+ border-radius: 0.382rem;
1503
1564
  color: inherit;
1504
1565
  text-decoration: none;
1505
1566
  cursor: pointer;
@@ -1512,40 +1573,79 @@
1512
1573
 
1513
1574
  .canopy-sub-navigation__link.is-label {
1514
1575
  cursor: default;
1515
- color: var(--color-gray-600, #52525b);
1576
+ color: var(--color-gray-600);
1516
1577
  }
1517
1578
 
1518
1579
  .canopy-sub-navigation__link.is-active {
1519
- color: var(--color-gray-900, #1d4ed8);
1580
+ color: var(--color-gray-900);
1520
1581
  font-weight: 600;
1521
1582
  }
1522
1583
 
1523
1584
  .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);
1585
+ margin: 0.382rem 0 0.382rem 0.618rem;
1586
+ padding-left: 0.618rem;
1587
+ border-left: 1px solid var(--color-gray-200);
1527
1588
  }
1528
1589
 
1529
1590
  .canopy-sub-navigation__link.depth-0 {
1530
- padding-left: 0.25rem;
1591
+ padding-left: 0.382rem;
1531
1592
  }
1532
1593
 
1533
- .canopy-sub-navigation__link.depth-1 {
1534
- padding-left: 0.25rem;
1594
+ .canopy-sub-navigation__link.depth-1,
1595
+ .canopy-sub-navigation__link.depth-2 {
1596
+ padding-left: 0.382rem;
1597
+ font-size: 0.9222rem;
1535
1598
  }
1536
1599
 
1537
- .canopy-sub-navigation__link.depth-2 {
1538
- padding-left: 0.5rem;
1600
+ .canopy-content-navigation {
1601
+ position: sticky;
1602
+ top: 1.5rem;
1603
+ }
1604
+
1605
+ .canopy-content-navigation__toggle {
1606
+ align-self: flex-end;
1607
+ display: inline-flex;
1608
+ align-items: center;
1609
+ justify-content: center;
1610
+ gap: 0.25rem;
1611
+ padding: 0.25rem 0.75rem;
1612
+ border-radius: 9999px;
1613
+ border: 1px solid var(--color-gray-200, #e4e4e7);
1614
+ background-color: rgba(255, 255, 255, 0.9);
1615
+ color: inherit;
1616
+ font-size: 0.75rem;
1617
+ font-weight: 600;
1618
+ cursor: pointer;
1619
+ transition: background-color 120ms ease, color 120ms ease, border-color 120ms ease, box-shadow 120ms ease;
1539
1620
  }
1540
1621
 
1541
- .canopy-sub-navigation__link.depth-3 {
1542
- padding-left: 0.75rem;
1622
+ .canopy-content-navigation__toggle:hover,
1623
+ .canopy-content-navigation__toggle:focus-visible {
1624
+ background-color: rgb(255, 255, 255);
1625
+ border-color: var(--color-gray-300, #d4d4d8);
1626
+ outline: none;
1627
+ box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-brand-200, #c7d2fe) 60%, transparent);
1543
1628
  }
1544
1629
 
1545
- .canopy-sub-navigation__link.depth-4 {
1546
- padding-left: 1rem;
1630
+ .canopy-layout__content-nav.is-collapsed .canopy-content-navigation {
1631
+ padding: 0;
1632
+ margin: 0;
1633
+ width: auto;
1634
+ }
1635
+
1636
+ .canopy-layout__content-nav.is-collapsed .canopy-content-navigation__toggle {
1637
+ position: sticky;
1638
+ top: 1.5rem;
1639
+ transform: translateX(40%);
1547
1640
  }
1548
1641
 
1549
- .canopy-sub-navigation__link.depth-5 {
1550
- padding-left: 1.25rem;
1642
+ .canopy-content-navigation--collapsed .canopy-content-navigation__toggle {
1643
+ padding: 0.5rem 0.5rem;
1644
+ writing-mode: vertical-rl;
1645
+ text-orientation: mixed;
1646
+ letter-spacing: 0.05em;
1647
+ }
1648
+
1649
+ .canopy-content-navigation--collapsed .canopy-sub-navigation__list {
1650
+ display: none;
1551
1651
  }