mapshaper 0.7.0 → 0.7.2

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.
Files changed (89) hide show
  1. package/README.md +5 -3
  2. package/mapshaper.js +363 -62
  3. package/package.json +6 -2
  4. package/www/.nojekyll +0 -0
  5. package/www/assets/jetbrains-mono-regular.woff2 +0 -0
  6. package/www/assets/static-page.css +179 -0
  7. package/www/docs/_assets/cmd-search.js +213 -0
  8. package/www/docs/_assets/docs.css +722 -0
  9. package/www/docs/_assets/docs.js +75 -0
  10. package/www/docs/_assets/highlight.css +10 -0
  11. package/www/docs/essentials/command-line.html +127 -0
  12. package/www/docs/essentials/command-line.html.md +112 -0
  13. package/www/docs/essentials/web-app.html +138 -0
  14. package/www/docs/essentials/web-app.html.md +106 -0
  15. package/www/docs/examples/basics.html +275 -0
  16. package/www/docs/examples/basics.html.md +370 -0
  17. package/www/docs/examples/data/Makefile +31 -0
  18. package/www/docs/examples/data/globe.msx +0 -0
  19. package/www/docs/examples/data/globe.svg +616 -0
  20. package/www/docs/examples/data/globe.txt +21 -0
  21. package/www/docs/examples/data/globe.zip +0 -0
  22. package/www/docs/examples/data/ne_50m_admin_0_countries.geojson +1 -0
  23. package/www/docs/examples/data/ne_50m_admin_1_states_provinces_lakes.geojson +1 -0
  24. package/www/docs/examples/data/us-states.msx +0 -0
  25. package/www/docs/examples/data/us-states.svg +56 -0
  26. package/www/docs/examples/data/us-states.txt +6 -0
  27. package/www/docs/examples/data/us-states.zip +0 -0
  28. package/www/docs/examples/globe.html +108 -0
  29. package/www/docs/examples/globe.html.md +64 -0
  30. package/www/docs/examples/us-states.html +88 -0
  31. package/www/docs/examples/us-states.html.md +44 -0
  32. package/www/docs/formats/csv.html +127 -0
  33. package/www/docs/formats/csv.html.md +97 -0
  34. package/www/docs/formats/dbf.html +87 -0
  35. package/www/docs/formats/dbf.html.md +39 -0
  36. package/www/docs/formats/flatgeobuf.html +85 -0
  37. package/www/docs/formats/flatgeobuf.html.md +41 -0
  38. package/www/docs/formats/geojson.html +107 -0
  39. package/www/docs/formats/geojson.html.md +65 -0
  40. package/www/docs/formats/geopackage.html +87 -0
  41. package/www/docs/formats/geopackage.html.md +42 -0
  42. package/www/docs/formats/json.html +83 -0
  43. package/www/docs/formats/json.html.md +35 -0
  44. package/www/docs/formats/kml.html +82 -0
  45. package/www/docs/formats/kml.html.md +39 -0
  46. package/www/docs/formats/overview.html +191 -0
  47. package/www/docs/formats/overview.html.md +34 -0
  48. package/www/docs/formats/shapefile.html +123 -0
  49. package/www/docs/formats/shapefile.html.md +84 -0
  50. package/www/docs/formats/snapshot.html +87 -0
  51. package/www/docs/formats/snapshot.html.md +39 -0
  52. package/www/docs/formats/svg.html +99 -0
  53. package/www/docs/formats/svg.html.md +51 -0
  54. package/www/docs/formats/topojson.html +102 -0
  55. package/www/docs/formats/topojson.html.md +54 -0
  56. package/www/docs/gallery/index.html +80 -0
  57. package/www/docs/gallery/index.html.md +29 -0
  58. package/www/docs/guides/combining-layers.html +109 -0
  59. package/www/docs/guides/combining-layers.html.md +89 -0
  60. package/www/docs/guides/expressions.html +600 -0
  61. package/www/docs/guides/expressions.html.md +376 -0
  62. package/www/docs/guides/programmatic.html +117 -0
  63. package/www/docs/guides/programmatic.html.md +91 -0
  64. package/www/docs/guides/projections.html +158 -0
  65. package/www/docs/guides/projections.html.md +118 -0
  66. package/www/docs/guides/simplification.html +110 -0
  67. package/www/docs/guides/simplification.html.md +96 -0
  68. package/www/docs/guides/topology.html +90 -0
  69. package/www/docs/guides/topology.html.md +63 -0
  70. package/www/docs/images/cal-counties.png +0 -0
  71. package/www/docs/images/simplification-detail.png +0 -0
  72. package/www/docs/images/simplification-dp.png +0 -0
  73. package/www/docs/images/simplification-mod2.png +0 -0
  74. package/www/docs/images/tiger-counties.png +0 -0
  75. package/www/docs/index.html +101 -0
  76. package/www/docs/index.html.md +59 -0
  77. package/www/docs/reference.html +1302 -0
  78. package/www/docs/reference.html.md +1817 -0
  79. package/www/docs/whats-new.html +77 -0
  80. package/www/docs/whats-new.html.md +59 -0
  81. package/www/index.html +47 -4
  82. package/www/llms-full.txt +4053 -0
  83. package/www/llms.txt +55 -0
  84. package/www/mapshaper-gui.js +299 -5
  85. package/www/mapshaper.js +363 -62
  86. package/www/page.css +189 -11
  87. package/www/privacy.html +1 -112
  88. package/www/sponsor.html +4 -164
  89. package/www/terms.html +1 -112
package/www/page.css CHANGED
@@ -143,7 +143,7 @@ body.map-view {
143
143
  left: 0;
144
144
  z-index: 40;
145
145
  width: 100%;
146
- height: 29px;
146
+ height: 30px;
147
147
  }
148
148
 
149
149
  .mapshaper-logo {
@@ -170,7 +170,7 @@ body.map-view {
170
170
  position: absolute;
171
171
  top: 0px;
172
172
  right: 0px;
173
- margin: 0 6px 3px 0;
173
+ margin: 0 3px 3px 0;
174
174
  }
175
175
 
176
176
  .btn.header-btn {
@@ -207,6 +207,63 @@ body.map-view {
207
207
  vertical-align: -1px;
208
208
  }
209
209
 
210
+ /* --- Hamburger menu (post-edit overflow links) --- */
211
+
212
+ #header-menu-btn {
213
+ cursor: pointer;
214
+ padding: 8px 7px 4px 7px;
215
+ user-select: none;
216
+ /* All header buttons are 29px tall, so top-align the hamburger to keep its
217
+ row baseline-neutral. Without this, the SVG-only button (no text) makes
218
+ its inline-block baseline = bottom edge, which drags the surrounding
219
+ text-containing buttons down to match. */
220
+ vertical-align: top;
221
+ }
222
+
223
+ #header-menu-btn svg {
224
+ display: block;
225
+ fill: currentColor;
226
+ }
227
+
228
+ #header-menu-dropdown {
229
+ position: absolute;
230
+ top: 30px;
231
+ right: 0;
232
+ min-width: 180px;
233
+ background-color: #fff;
234
+ color: #333;
235
+ border: 1px solid #ccc;
236
+ border-radius: 3px;
237
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
238
+ padding: 4px 0;
239
+ z-index: 50;
240
+ }
241
+
242
+ .header-menu-item {
243
+ display: block;
244
+ padding: 4px 14px;
245
+ color: #333;
246
+ font-size: 14px;
247
+ line-height: 1.3;
248
+ text-decoration: none;
249
+ white-space: nowrap;
250
+ }
251
+
252
+ .header-menu-item:hover,
253
+ .header-menu-item:focus {
254
+ background-color: #e6f7ff;
255
+ color: #1A6A96;
256
+ outline: none;
257
+ }
258
+
259
+ .header-menu-item.header-menu-sponsor svg {
260
+ width: 12px;
261
+ height: 12px;
262
+ fill: #d63384;
263
+ vertical-align: -1px;
264
+ margin-right: 6px;
265
+ }
266
+
210
267
  .separator {
211
268
  border-left: 1px solid white;
212
269
  height: 10px;
@@ -427,6 +484,14 @@ div.alert-box {
427
484
  margin: 0 0 5px 0;
428
485
  }
429
486
 
487
+ input[type=text]:focus,
488
+ input[type=number]:focus,
489
+ textarea:focus {
490
+ outline: none;
491
+ border-color: #d3aa00;
492
+ box-shadow: 0 0 0 2px rgba(212, 168, 0, 0.4);
493
+ }
494
+
430
495
  ::placeholder {
431
496
  color: #aaa;
432
497
  opacity: 1;
@@ -495,13 +560,6 @@ div.alert-box {
495
560
  padding-left: 12px;
496
561
  }
497
562
 
498
- .info-box,.popup {
499
- border-radius: 9px;
500
- border: 1px solid #d5d5d5;
501
- box-shadow: 0 1px 7px rgba(0,0,0,0.18);
502
- background-color: #fff;
503
- }
504
-
505
563
  .contextmenu {
506
564
  position: absolute;
507
565
  border-radius: 6px;
@@ -518,6 +576,12 @@ div.alert-box {
518
576
  padding: 6px;
519
577
  }
520
578
 
579
+ .info-box,.popup {
580
+ border-radius: 11px;
581
+ border: 1px solid #d5d5d5;
582
+ box-shadow: 0 1px 7px rgba(0,0,0,0.18);
583
+ background-color: #fff;
584
+ }
521
585
 
522
586
  .info-box {
523
587
  min-width: 230px;
@@ -525,7 +589,8 @@ div.alert-box {
525
589
  text-align: left;
526
590
  margin-top: 12px;
527
591
  margin-right: 20px;
528
- padding: 12px 16px 12px 18px;
592
+ /* padding: 12px 16px 12px 18px; */
593
+ padding: 15px 17px 13px 19px;
529
594
  vertical-align: top;
530
595
  display: inline-block;
531
596
  /* border: 1px solid #aaa; */
@@ -575,7 +640,7 @@ div.alert-box {
575
640
  .info-box p {
576
641
  white-space: pre-line;
577
642
  margin: 0 0 6px 0;
578
- line-height: 1.2;
643
+ line-height: 1.25;
579
644
  /* font-size: 90%; */
580
645
  }
581
646
 
@@ -1552,6 +1617,119 @@ body.pan.panning .map-layers:not(.drawing) {
1552
1617
  cursor: default;
1553
1618
  }
1554
1619
 
1620
+ /* --- FLOATING TOOLBAR --- */
1621
+
1622
+ /*
1623
+ * Anchored at bottom-center of the map area. Multiple toolbars stack
1624
+ * vertically (newest on top). Designed to host buttons and other small
1625
+ * controls; the inner content slot leaves room for a future drag handle.
1626
+ */
1627
+
1628
+ .floating-toolbar-stack {
1629
+ position: absolute;
1630
+ z-index: 25;
1631
+ bottom: 24px;
1632
+ left: 50%;
1633
+ transform: translateX(-50%);
1634
+ display: flex;
1635
+ flex-direction: column-reverse;
1636
+ align-items: center;
1637
+ gap: 8px;
1638
+ pointer-events: none;
1639
+ }
1640
+
1641
+ .floating-toolbar {
1642
+ pointer-events: auto;
1643
+ display: flex;
1644
+ align-items: center;
1645
+ background-color: rgba(255, 255, 255, 0.96);
1646
+ border: 1px solid #ddd;
1647
+ border-radius: 8px;
1648
+ box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
1649
+ padding: 4px;
1650
+ opacity: 0;
1651
+ transform: translateY(6px);
1652
+ transition: opacity 150ms ease, transform 150ms ease;
1653
+ }
1654
+
1655
+ .floating-toolbar.visible {
1656
+ opacity: 1;
1657
+ transform: translateY(0);
1658
+ }
1659
+
1660
+ .floating-toolbar-content {
1661
+ display: flex;
1662
+ align-items: center;
1663
+ gap: 0;
1664
+ }
1665
+
1666
+ .floating-toolbar-separator {
1667
+ width: 1px;
1668
+ height: 18px;
1669
+ margin: 0 4px;
1670
+ background-color: #ddd;
1671
+ }
1672
+
1673
+ .floating-toolbar-btn {
1674
+ position: relative;
1675
+ display: flex;
1676
+ align-items: center;
1677
+ justify-content: center;
1678
+ width: 28px;
1679
+ height: 28px;
1680
+ border-radius: 5px;
1681
+ cursor: pointer;
1682
+ user-select: none;
1683
+ }
1684
+
1685
+ .floating-toolbar-btn svg {
1686
+ width: 24px;
1687
+ height: 24px;
1688
+ }
1689
+
1690
+ .floating-toolbar-btn svg * {
1691
+ fill: #1385B7;
1692
+ transition: fill 100ms ease;
1693
+ }
1694
+
1695
+ .floating-toolbar-btn:hover:not(.disabled) {
1696
+ background-color: #e6f7ff;
1697
+ }
1698
+
1699
+ .floating-toolbar-btn:hover:not(.disabled) svg * {
1700
+ fill: #166689;
1701
+ }
1702
+
1703
+ .floating-toolbar-btn:active:not(.disabled) {
1704
+ background-color: #cdebf9;
1705
+ }
1706
+
1707
+ .floating-toolbar-btn.disabled {
1708
+ cursor: default;
1709
+ }
1710
+
1711
+ .floating-toolbar-btn.disabled svg * {
1712
+ fill: #b8c4ca;
1713
+ }
1714
+
1715
+ /* Tooltip shown above the button on hover */
1716
+ .floating-toolbar-btn[data-tooltip]:hover:not(.disabled)::after {
1717
+ content: attr(data-tooltip);
1718
+ position: absolute;
1719
+ bottom: calc(100% + 8px);
1720
+ left: 50%;
1721
+ transform: translateX(-50%);
1722
+ background-color: rgba(40, 40, 40, 0.92);
1723
+ color: #fff;
1724
+ font-size: 11px;
1725
+ line-height: 1;
1726
+ white-space: nowrap;
1727
+ padding: 5px 7px;
1728
+ border-radius: 4px;
1729
+ pointer-events: none;
1730
+ z-index: 1;
1731
+ }
1732
+
1555
1733
  .zoom-box {
1556
1734
  position: absolute;
1557
1735
  border: 1px solid #cc6acc;
package/www/privacy.html CHANGED
@@ -6,118 +6,7 @@
6
6
  <title>Privacy Policy &mdash; mapshaper</title>
7
7
  <meta name="description" content="Privacy policy for mapshaper, free open-source software for editing geographic data.">
8
8
  <link rel="icon" type="image/png" href="images/icon.png">
9
-
10
- <style>
11
- @font-face {
12
- font-family: 'SourceSans3';
13
- src: url('assets/SourceSans3-VariableFont_wght.ttf') format('truetype');
14
- font-display: swap;
15
- }
16
-
17
- html, body {
18
- margin: 0;
19
- padding: 0;
20
- background-color: #f8fdff;
21
- font: 16px/1.55 'SourceSans3', Arial, sans-serif;
22
- color: #333;
23
- }
24
-
25
- a { color: #10699b; }
26
- a:hover { color: #1A6A96; }
27
-
28
- .page-header {
29
- background-color: #1385B7;
30
- color: white;
31
- padding: 0 11px;
32
- height: 29px;
33
- display: flex;
34
- align-items: center;
35
- justify-content: space-between;
36
- }
37
-
38
- .mapshaper-logo,
39
- .mapshaper-logo:hover {
40
- font-weight: 600;
41
- font-size: 17px;
42
- color: white;
43
- text-decoration: none;
44
- }
45
-
46
- .mapshaper-logo .logo-highlight {
47
- color: #ffa;
48
- }
49
-
50
- .header-back {
51
- color: white;
52
- text-decoration: none;
53
- font-size: 14px;
54
- height: 29px;
55
- display: inline-flex;
56
- align-items: center;
57
- padding: 0 10px;
58
- }
59
-
60
- .header-back:hover {
61
- background-color: #1A6A96;
62
- color: white;
63
- }
64
-
65
- main {
66
- max-width: 640px;
67
- margin: 0 auto;
68
- padding: 40px 24px 80px;
69
- }
70
-
71
- h1 {
72
- font-weight: 600;
73
- font-size: 32px;
74
- margin: 0 0 8px;
75
- color: #222;
76
- }
77
-
78
- .updated {
79
- color: #888;
80
- font-size: 14px;
81
- margin: 0 0 28px;
82
- }
83
-
84
- h2 {
85
- font-weight: 600;
86
- font-size: 20px;
87
- margin: 32px 0 10px;
88
- color: #222;
89
- }
90
-
91
- p {
92
- margin: 0 0 14px;
93
- }
94
-
95
- ul {
96
- padding-left: 20px;
97
- margin: 8px 0 16px;
98
- }
99
-
100
- ul li {
101
- margin-bottom: 6px;
102
- }
103
-
104
- .footer-note {
105
- margin-top: 48px;
106
- padding-top: 24px;
107
- border-top: 1px solid #e0e8ec;
108
- font-size: 14px;
109
- color: #777;
110
- }
111
-
112
- .footer-note a {
113
- color: #777;
114
- }
115
-
116
- @media (max-width: 480px) {
117
- main { padding: 24px 18px 60px; }
118
- h1 { font-size: 26px; }
119
- }
120
- </style>
9
+ <link rel="stylesheet" href="assets/static-page.css">
121
10
  </head>
122
11
  <body>
123
12
 
package/www/sponsor.html CHANGED
@@ -6,167 +6,7 @@
6
6
  <title>Support mapshaper</title>
7
7
  <meta name="description" content="Support the development of mapshaper, free open-source software for editing geographic data.">
8
8
  <link rel="icon" type="image/png" href="images/icon.png">
9
-
10
- <style>
11
- @font-face {
12
- font-family: 'SourceSans3';
13
- src: url('assets/SourceSans3-VariableFont_wght.ttf') format('truetype');
14
- font-display: swap;
15
- }
16
-
17
- html, body {
18
- margin: 0;
19
- padding: 0;
20
- background-color: #f8fdff;
21
- font: 16px/1.55 'SourceSans3', Arial, sans-serif;
22
- color: #333;
23
- }
24
-
25
- a { color: #10699b; }
26
- a:hover { color: #1A6A96; }
27
-
28
- .page-header {
29
- background-color: #1385B7;
30
- color: white;
31
- padding: 0 11px;
32
- height: 29px;
33
- display: flex;
34
- align-items: center;
35
- justify-content: space-between;
36
- }
37
-
38
- .mapshaper-logo,
39
- .mapshaper-logo:hover {
40
- font-weight: 600;
41
- font-size: 17px;
42
- color: white;
43
- text-decoration: none;
44
- }
45
-
46
- .mapshaper-logo .logo-highlight {
47
- color: #ffa;
48
- }
49
-
50
- .header-back {
51
- color: white;
52
- text-decoration: none;
53
- font-size: 14px;
54
- height: 29px;
55
- display: inline-flex;
56
- align-items: center;
57
- padding: 0 10px;
58
- }
59
-
60
- .header-back:hover {
61
- background-color: #1A6A96;
62
- color: white;
63
- }
64
-
65
- main {
66
- max-width: 640px;
67
- margin: 0 auto;
68
- padding: 40px 24px 80px;
69
- }
70
-
71
- h1 {
72
- font-weight: 600;
73
- font-size: 32px;
74
- margin: 0 0 12px;
75
- color: #222;
76
- }
77
-
78
- .tagline {
79
- font-size: 17px;
80
- color: #555;
81
- margin: 0 0 32px;
82
- }
83
-
84
- .sponsor-buttons {
85
- display: flex;
86
- gap: 12px;
87
- flex-wrap: wrap;
88
- margin: 24px 0 12px;
89
- }
90
-
91
- .btn {
92
- display: inline-block;
93
- padding: 12px 22px;
94
- background-color: #1385B7;
95
- color: white;
96
- text-decoration: none;
97
- font-weight: 600;
98
- font-size: 16px;
99
- border-radius: 3px;
100
- transition: background-color 0.15s;
101
- }
102
-
103
- .btn:hover {
104
- background-color: #1A6A96;
105
- color: white;
106
- }
107
-
108
- .btn.btn-secondary {
109
- background-color: #444;
110
- }
111
-
112
- .btn.btn-secondary:hover {
113
- background-color: #222;
114
- }
115
-
116
- .sponsor-note {
117
- font-size: 14px;
118
- color: #666;
119
- margin: 0 0 32px;
120
- }
121
-
122
- h2 {
123
- font-weight: 600;
124
- font-size: 20px;
125
- margin: 32px 0 12px;
126
- color: #222;
127
- }
128
-
129
- ul.support-list {
130
- padding-left: 20px;
131
- margin: 8px 0 24px;
132
- }
133
-
134
- ul.support-list li {
135
- margin-bottom: 6px;
136
- }
137
-
138
- .feedback-cta {
139
- background-color: #fff;
140
- border-left: 3px solid #1385B7;
141
- padding: 14px 18px;
142
- margin: 24px 0;
143
- }
144
-
145
- .signature {
146
- margin-top: 32px;
147
- color: #555;
148
- font-style: italic;
149
- }
150
-
151
- .footer-note {
152
- margin-top: 48px;
153
- padding-top: 24px;
154
- border-top: 1px solid #e0e8ec;
155
- font-size: 14px;
156
- color: #777;
157
- }
158
-
159
- .footer-note a {
160
- color: #777;
161
- }
162
-
163
- @media (max-width: 480px) {
164
- main { padding: 24px 18px 60px; }
165
- h1 { font-size: 26px; }
166
- .sponsor-buttons { flex-direction: column; align-items: stretch; }
167
- .btn { text-align: center; }
168
- }
169
- </style>
9
+ <link rel="stylesheet" href="assets/static-page.css">
170
10
  </head>
171
11
  <body>
172
12
 
@@ -179,14 +19,14 @@
179
19
 
180
20
  <h1>Support mapshaper</h1>
181
21
 
182
- <p class="tagline">Mapshaper is free, open-source software for editing geographic data &mdash; used worldwide for everything from classroom exercises to professional map work.</p>
22
+ <p class="tagline">Mapshaper is free, open-source software for editing geographic data &mdash; used worldwide for everything from student projects to professional map work.</p>
183
23
 
184
24
  <div class="sponsor-buttons">
185
- <a href="https://ko-fi.com/mapshaper" class="btn">Support via Ko-fi</a>
186
25
  <a href="https://github.com/sponsors/mbloch" class="btn btn-secondary">Sponsor on GitHub</a>
26
+ <a href="https://ko-fi.com/mapshaper" class="btn">Tip the developer</a>
187
27
  </div>
188
28
 
189
- <p class="sponsor-note">Ko-fi accepts one-time or recurring contributions &mdash; no account required. GitHub Sponsors offers recurring sponsorship.</p>
29
+ <!-- <p class="sponsor-note">Ko-fi accepts one-time or recurring contributions &mdash; no account required. GitHub Sponsors offers recurring sponsorship.</p> -->
190
30
 
191
31
  <h2>What your contribution supports</h2>
192
32
  <ul class="support-list">
package/www/terms.html CHANGED
@@ -6,118 +6,7 @@
6
6
  <title>Terms of Service &mdash; mapshaper</title>
7
7
  <meta name="description" content="Terms of service for mapshaper, free open-source software for editing geographic data.">
8
8
  <link rel="icon" type="image/png" href="images/icon.png">
9
-
10
- <style>
11
- @font-face {
12
- font-family: 'SourceSans3';
13
- src: url('assets/SourceSans3-VariableFont_wght.ttf') format('truetype');
14
- font-display: swap;
15
- }
16
-
17
- html, body {
18
- margin: 0;
19
- padding: 0;
20
- background-color: #f8fdff;
21
- font: 16px/1.55 'SourceSans3', Arial, sans-serif;
22
- color: #333;
23
- }
24
-
25
- a { color: #10699b; }
26
- a:hover { color: #1A6A96; }
27
-
28
- .page-header {
29
- background-color: #1385B7;
30
- color: white;
31
- padding: 0 11px;
32
- height: 29px;
33
- display: flex;
34
- align-items: center;
35
- justify-content: space-between;
36
- }
37
-
38
- .mapshaper-logo,
39
- .mapshaper-logo:hover {
40
- font-weight: 600;
41
- font-size: 17px;
42
- color: white;
43
- text-decoration: none;
44
- }
45
-
46
- .mapshaper-logo .logo-highlight {
47
- color: #ffa;
48
- }
49
-
50
- .header-back {
51
- color: white;
52
- text-decoration: none;
53
- font-size: 14px;
54
- height: 29px;
55
- display: inline-flex;
56
- align-items: center;
57
- padding: 0 10px;
58
- }
59
-
60
- .header-back:hover {
61
- background-color: #1A6A96;
62
- color: white;
63
- }
64
-
65
- main {
66
- max-width: 640px;
67
- margin: 0 auto;
68
- padding: 40px 24px 80px;
69
- }
70
-
71
- h1 {
72
- font-weight: 600;
73
- font-size: 32px;
74
- margin: 0 0 8px;
75
- color: #222;
76
- }
77
-
78
- .updated {
79
- color: #888;
80
- font-size: 14px;
81
- margin: 0 0 28px;
82
- }
83
-
84
- h2 {
85
- font-weight: 600;
86
- font-size: 20px;
87
- margin: 32px 0 10px;
88
- color: #222;
89
- }
90
-
91
- p {
92
- margin: 0 0 14px;
93
- }
94
-
95
- ul {
96
- padding-left: 20px;
97
- margin: 8px 0 16px;
98
- }
99
-
100
- ul li {
101
- margin-bottom: 6px;
102
- }
103
-
104
- .footer-note {
105
- margin-top: 48px;
106
- padding-top: 24px;
107
- border-top: 1px solid #e0e8ec;
108
- font-size: 14px;
109
- color: #777;
110
- }
111
-
112
- .footer-note a {
113
- color: #777;
114
- }
115
-
116
- @media (max-width: 480px) {
117
- main { padding: 24px 18px 60px; }
118
- h1 { font-size: 26px; }
119
- }
120
- </style>
9
+ <link rel="stylesheet" href="assets/static-page.css">
121
10
  </head>
122
11
  <body>
123
12