A place to cache linked articles (think custom and personal wayback machine)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

index.html 42KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529
  1. <!doctype html><!-- This is a valid HTML5 document. -->
  2. <!-- Screen readers, SEO, extensions and so on. -->
  3. <html lang=fr>
  4. <!-- Has to be within the first 1024 bytes, hence before the <title>
  5. See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset -->
  6. <meta charset=utf-8>
  7. <!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 -->
  8. <!-- The viewport meta is quite crowded and we are responsible for that.
  9. See: https://codepen.io/tigt/post/meta-viewport-for-2015 -->
  10. <meta name=viewport content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no">
  11. <!-- Required to make a valid HTML5 document. -->
  12. <title>The billionaire’s typewriter (archive) — David Larlet</title>
  13. <!-- Generated from https://realfavicongenerator.net/ such a mess. -->
  14. <link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons/apple-touch-icon.png">
  15. <link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons/favicon-32x32.png">
  16. <link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons/favicon-16x16.png">
  17. <link rel="manifest" href="/manifest.json">
  18. <link rel="mask-icon" href="/static/david/icons/safari-pinned-tab.svg" color="#5bbad5">
  19. <link rel="shortcut icon" href="/static/david/icons/favicon.ico">
  20. <meta name="apple-mobile-web-app-title" content="David Larlet">
  21. <meta name="application-name" content="David Larlet">
  22. <meta name="msapplication-TileColor" content="#da532c">
  23. <meta name="msapplication-config" content="/static/david/icons/browserconfig.xml">
  24. <meta name="theme-color" content="#f0f0ea">
  25. <!-- That good ol' feed, subscribe :p. -->
  26. <link rel=alternate type="application/atom+xml" title=Feed href="/david/log/">
  27. <meta name="robots" content="noindex, nofollow">
  28. <meta content="origin-when-cross-origin" name="referrer">
  29. <!-- Canonical URL for SEO purposes -->
  30. <link rel="canonical" href="http://practicaltypography.com/billionaires-typewriter.html">
  31. <style>
  32. /* http://meyerweb.com/eric/tools/css/reset/ */
  33. html, body, div, span,
  34. h1, h2, h3, h4, h5, h6, p, blockquote, pre,
  35. a, abbr, address, big, cite, code,
  36. del, dfn, em, img, ins,
  37. small, strike, strong, tt, var,
  38. dl, dt, dd, ol, ul, li,
  39. fieldset, form, label, legend,
  40. table, caption, tbody, tfoot, thead, tr, th, td,
  41. article, aside, canvas, details, embed,
  42. figure, figcaption, footer, header, hgroup,
  43. menu, nav, output, ruby, section, summary,
  44. time, mark, audio, video {
  45. margin: 0;
  46. padding: 0;
  47. border: 0;
  48. font-size: 100%;
  49. font: inherit;
  50. vertical-align: baseline;
  51. }
  52. /* HTML5 display-role reset for older browsers */
  53. article, aside, details, figcaption, figure,
  54. footer, header, hgroup, menu, nav, section { display: block; }
  55. body { line-height: 1; }
  56. blockquote, q { quotes: none; }
  57. blockquote:before, blockquote:after,
  58. q:before, q:after {
  59. content: '';
  60. content: none;
  61. }
  62. table {
  63. border-collapse: collapse;
  64. border-spacing: 0;
  65. }
  66. /* http://practicaltypography.com/equity.html */
  67. /* https://calendar.perfplanet.com/2016/no-font-face-bulletproof-syntax/ */
  68. /* https://www.filamentgroup.com/lab/js-web-fonts.html */
  69. @font-face {
  70. font-family: 'EquityTextB';
  71. src: url('/static/david/css/fonts/Equity-Text-B-Regular-webfont.woff2') format('woff2'),
  72. url('/static/david/css/fonts/Equity-Text-B-Regular-webfont.woff') format('woff');
  73. font-weight: 300;
  74. font-style: normal;
  75. font-display: swap;
  76. }
  77. @font-face {
  78. font-family: 'EquityTextB';
  79. src: url('/static/david/css/fonts/Equity-Text-B-Italic-webfont.woff2') format('woff2'),
  80. url('/static/david/css/fonts/Equity-Text-B-Italic-webfont.woff') format('woff');
  81. font-weight: 300;
  82. font-style: italic;
  83. font-display: swap;
  84. }
  85. @font-face {
  86. font-family: 'EquityTextB';
  87. src: url('/static/david/css/fonts/Equity-Text-B-Bold-webfont.woff2') format('woff2'),
  88. url('/static/david/css/fonts/Equity-Text-B-Bold-webfont.woff') format('woff');
  89. font-weight: 700;
  90. font-style: normal;
  91. font-display: swap;
  92. }
  93. @font-face {
  94. font-family: 'ConcourseT3';
  95. src: url('/static/david/css/fonts/concourse_t3_regular-webfont-20190806.woff2') format('woff2'),
  96. url('/static/david/css/fonts/concourse_t3_regular-webfont-20190806.woff') format('woff');
  97. font-weight: 300;
  98. font-style: normal;
  99. font-display: swap;
  100. }
  101. /* http://practice.typekit.com/lesson/caring-about-opentype-features/ */
  102. body {
  103. /* http://www.cssfontstack.com/ Palatino 99% Win 86% Mac */
  104. font-family: "EquityTextB", Palatino, serif;
  105. background-color: #f0f0ea;
  106. color: #07486c;
  107. font-kerning: normal;
  108. -moz-osx-font-smoothing: grayscale;
  109. -webkit-font-smoothing: subpixel-antialiased;
  110. text-rendering: optimizeLegibility;
  111. font-variant-ligatures: common-ligatures contextual;
  112. font-feature-settings: "kern", "liga", "clig", "calt";
  113. }
  114. pre, code, kbd, samp, var, tt {
  115. font-family: 'TriplicateT4c', monospace;
  116. }
  117. em {
  118. font-style: italic;
  119. color: #323a45;
  120. }
  121. strong {
  122. font-weight: bold;
  123. color: black;
  124. }
  125. nav {
  126. background-color: #323a45;
  127. color: #f0f0ea;
  128. display: flex;
  129. justify-content: space-around;
  130. padding: 1rem .5rem;
  131. }
  132. nav:last-child {
  133. border-bottom: 1vh solid #2d7474;
  134. }
  135. nav a {
  136. color: #f0f0ea;
  137. }
  138. nav abbr {
  139. border-bottom: 1px dotted white;
  140. }
  141. h1 {
  142. border-top: 1vh solid #2d7474;
  143. border-bottom: .2vh dotted #2d7474;
  144. background-color: #e3e1e1;
  145. color: #323a45;
  146. text-align: center;
  147. padding: 5rem 0 4rem 0;
  148. width: 100%;
  149. font-family: 'ConcourseT3';
  150. display: flex;
  151. flex-direction: column;
  152. }
  153. h1.single {
  154. padding-bottom: 10rem;
  155. }
  156. h1 span {
  157. position: absolute;
  158. top: 1vh;
  159. left: 20%;
  160. line-height: 0;
  161. }
  162. h1 span a {
  163. line-height: 1.7;
  164. padding: 1rem 1.2rem .6rem 1.2rem;
  165. border-radius: 0 0 6% 6%;
  166. background: #2d7474;
  167. font-size: 1.3rem;
  168. color: white;
  169. text-decoration: none;
  170. }
  171. h2 {
  172. margin: 4rem 0 1rem;
  173. border-top: .2vh solid #2d7474;
  174. padding-top: 1vh;
  175. }
  176. h3 {
  177. text-align: center;
  178. margin: 3rem 0 .75em;
  179. }
  180. hr {
  181. height: .4rem;
  182. width: .4rem;
  183. border-radius: .4rem;
  184. background: #07486c;
  185. margin: 2.5rem auto;
  186. }
  187. time {
  188. display: bloc;
  189. margin-left: 0 !important;
  190. }
  191. ul, ol {
  192. margin: 2rem;
  193. }
  194. ul {
  195. list-style-type: square;
  196. }
  197. a {
  198. text-decoration-skip-ink: auto;
  199. text-decoration-thickness: 0.05em;
  200. text-underline-offset: 0.09em;
  201. }
  202. article {
  203. max-width: 50rem;
  204. display: flex;
  205. flex-direction: column;
  206. margin: 2rem auto;
  207. }
  208. article.single {
  209. border-top: .2vh dotted #2d7474;
  210. margin: -6rem auto 1rem auto;
  211. background: #f0f0ea;
  212. padding: 2rem;
  213. }
  214. article p:last-child {
  215. margin-bottom: 1rem;
  216. }
  217. p {
  218. padding: 0 .5rem;
  219. margin-left: 3rem;
  220. }
  221. p + p,
  222. figure + p {
  223. margin-top: 2rem;
  224. }
  225. blockquote {
  226. background-color: #e3e1e1;
  227. border-left: .5vw solid #2d7474;
  228. display: flex;
  229. flex-direction: column;
  230. align-items: center;
  231. padding: 1rem;
  232. margin: 1.5rem;
  233. }
  234. blockquote cite {
  235. font-style: italic;
  236. }
  237. blockquote p {
  238. margin-left: 0;
  239. }
  240. figure {
  241. border-top: .2vh solid #2d7474;
  242. background-color: #e3e1e1;
  243. text-align: center;
  244. padding: 1.5rem 0;
  245. margin: 1rem 0 0;
  246. font-size: 1.5rem;
  247. width: 100%;
  248. }
  249. figure img {
  250. max-width: 250px;
  251. max-height: 250px;
  252. border: .5vw solid #323a45;
  253. padding: 1px;
  254. }
  255. figcaption {
  256. padding: 1rem;
  257. line-height: 1.4;
  258. }
  259. aside {
  260. display: flex;
  261. flex-direction: column;
  262. background-color: #e3e1e1;
  263. padding: 1rem 0;
  264. border-bottom: .2vh solid #07486c;
  265. }
  266. aside p {
  267. max-width: 50rem;
  268. margin: 0 auto;
  269. }
  270. /* https://fvsch.com/code/css-locks/ */
  271. p, li, pre, code, kbd, samp, var, tt, time, details, figcaption {
  272. font-size: 1rem;
  273. line-height: calc( 1.5em + 0.2 * 1rem );
  274. }
  275. h1 {
  276. font-size: 1.9rem;
  277. line-height: calc( 1.2em + 0.2 * 1rem );
  278. }
  279. h2 {
  280. font-size: 1.6rem;
  281. line-height: calc( 1.3em + 0.2 * 1rem );
  282. }
  283. h3 {
  284. font-size: 1.35rem;
  285. line-height: calc( 1.4em + 0.2 * 1rem );
  286. }
  287. @media (min-width: 20em) {
  288. /* The (100vw - 20rem) / (50 - 20) part
  289. resolves to 0-1rem, depending on the
  290. viewport width (between 20em and 50em). */
  291. p, li, pre, code, kbd, samp, var, tt, time, details, figcaption {
  292. font-size: calc( 1rem + .6 * (100vw - 20rem) / (50 - 20) );
  293. line-height: calc( 1.5em + 0.2 * (100vw - 50rem) / (20 - 50) );
  294. margin-left: 0;
  295. }
  296. h1 {
  297. font-size: calc( 1.9rem + 1.5 * (100vw - 20rem) / (50 - 20) );
  298. line-height: calc( 1.2em + 0.2 * (100vw - 50rem) / (20 - 50) );
  299. }
  300. h2 {
  301. font-size: calc( 1.5rem + 1.5 * (100vw - 20rem) / (50 - 20) );
  302. line-height: calc( 1.3em + 0.2 * (100vw - 50rem) / (20 - 50) );
  303. }
  304. h3 {
  305. font-size: calc( 1.35rem + 1.5 * (100vw - 20rem) / (50 - 20) );
  306. line-height: calc( 1.4em + 0.2 * (100vw - 50rem) / (20 - 50) );
  307. }
  308. }
  309. @media (min-width: 50em) {
  310. /* The right part of the addition *must* be a
  311. rem value. In this example we *could* change
  312. the whole declaration to font-size:2.5rem,
  313. but if our baseline value was not expressed
  314. in rem we would have to use calc. */
  315. p, li, pre, code, kbd, samp, var, tt, time, details, figcaption {
  316. font-size: calc( 1rem + .6 * 1rem );
  317. line-height: 1.5em;
  318. }
  319. p, li, pre, details {
  320. margin-left: 3rem;
  321. }
  322. h1 {
  323. font-size: calc( 1.9rem + 1.5 * 1rem );
  324. line-height: 1.2em;
  325. }
  326. h2 {
  327. font-size: calc( 1.5rem + 1.5 * 1rem );
  328. line-height: 1.3em;
  329. }
  330. h3 {
  331. font-size: calc( 1.35rem + 1.5 * 1rem );
  332. line-height: 1.4em;
  333. }
  334. figure img {
  335. max-width: 500px;
  336. max-height: 500px;
  337. }
  338. }
  339. figure.unsquared {
  340. margin-bottom: 1.5rem;
  341. }
  342. figure.unsquared img {
  343. height: inherit;
  344. }
  345. @media print {
  346. body { font-size: 100%; }
  347. a:after { content: " (" attr(href) ")"; }
  348. a, a:link, a:visited, a:after {
  349. text-decoration: underline;
  350. text-shadow: none !important;
  351. background-image: none !important;
  352. background: white;
  353. color: black;
  354. }
  355. abbr[title] { border-bottom: 0; }
  356. abbr[title]:after { content: " (" attr(title) ")"; }
  357. img { page-break-inside: avoid; }
  358. @page { margin: 2cm .5cm; }
  359. h1, h2, h3 { page-break-after: avoid; }
  360. p3 { orphans: 3; widows: 3; }
  361. img {
  362. max-width: 250px !important;
  363. max-height: 250px !important;
  364. }
  365. nav, aside { display: none; }
  366. }
  367. ul.with_columns {
  368. column-count: 1;
  369. }
  370. @media (min-width: 20em) {
  371. ul.with_columns {
  372. column-count: 2;
  373. }
  374. }
  375. @media (min-width: 50em) {
  376. ul.with_columns {
  377. column-count: 3;
  378. }
  379. }
  380. ul.with_two_columns {
  381. column-count: 1;
  382. }
  383. @media (min-width: 20em) {
  384. ul.with_two_columns {
  385. column-count: 1;
  386. }
  387. }
  388. @media (min-width: 50em) {
  389. ul.with_two_columns {
  390. column-count: 2;
  391. }
  392. }
  393. .gallery {
  394. display: flex;
  395. flex-wrap: wrap;
  396. justify-content: space-around;
  397. }
  398. .gallery figure img {
  399. margin-left: 1rem;
  400. margin-right: 1rem;
  401. }
  402. .gallery figure figcaption {
  403. font-family: 'ConcourseT3'
  404. }
  405. footer {
  406. font-family: 'ConcourseT3';
  407. display: flex;
  408. flex-direction: column;
  409. border-top: 3px solid white;
  410. padding: 4rem 0;
  411. background-color: #07486c;
  412. color: white;
  413. }
  414. footer > * {
  415. max-width: 50rem;
  416. margin: 0 auto;
  417. }
  418. footer a {
  419. color: #f1c40f;
  420. }
  421. footer .avatar {
  422. width: 200px;
  423. height: 200px;
  424. border-radius: 50%;
  425. float: left;
  426. -webkit-shape-outside: circle();
  427. shape-outside: circle();
  428. margin-right: 2rem;
  429. padding: 2px 5px 5px 2px;
  430. background: white;
  431. border-left: 1px solid #f1c40f;
  432. border-top: 1px solid #f1c40f;
  433. border-right: 5px solid #f1c40f;
  434. border-bottom: 5px solid #f1c40f;
  435. }
  436. </style>
  437. <h1>
  438. <span><a id="jumper" href="#jumpto" title="Un peu perdu ?">?</a></span>
  439. The billionaire’s typewriter (archive)
  440. <time>Pour la pérennité des contenus liés. Non-indexé, retrait sur simple email.</time>
  441. </h1>
  442. <section>
  443. <article>
  444. <h3><a href="http://practicaltypography.com/billionaires-typewriter.html">Source originale du contenu</a></h3>
  445. <div id="doc"><p>A friend pointed me to a story on Medium called <a href="https://medium.com/designing-medium/death-to-typewriters-9b7712847639">“Death to Type­writ­ers,”</a> by Medium de­signer <a href="https://medium.com/@mwichary">Marcin Wichary.</a> The story is about the in­flu­ence of the type­writer on dig­i­tal type­set­ting. It ref­er­ences my “ex­cel­lent list” of <a href="typewriter-habits.html" class="xref">type­writer habits</a>.</p><p>Thank you for the com­pli­ment, Mr. Wichary. I can’t quib­ble with the de­tails of your piece. It’s true that Medium and I are op­posed to cer­tain ty­po­graphic short­cuts im­ported from the <span class="no-hyphens">typewriter.</span></p><p>But by the end, I re­al­ized I dis­agree deeply with Medium about the ethics of de­sign. And by ethics, I mean some­thing sim­ple: though Medium and I are both mak­ing tools for writ­ers, what I want for writ­ers and what Medium wants couldn’t be more dif­fer­ent. Medium may be avoid­ing what made the type­writer bad, but it’s also avoid­ing what made it good. Writ­ers who are tempted to use Medium—or sim­i­lar pub­lish­ing tools—should be con­scious of these <span class="no-hyphens">tradeoffs.</span></p><p>So, a few words about <span class="no-hyphens">that.</span></p><div style="height:1em"></div><p>For those who don’t in­ces­santly fol­low In­ter­net star­tups, <a href="http://medium.com">Medium</a> is a blog­ging ser­vice run by one of the founders of Twit­ter, multi­bil­lion­aire <a href="https://medium.com/@ev">Evan Williams.</a> Though it owes much to blog­ging ser­vices of the past (in­clud­ing <a href="http://en.wikipedia.org/wiki/Blogger_%28service%29">Blog­ger,</a> also founded by Mr. Williams), Medium is ori­ented to­ward longer, less di­aris­tic <span class="no-hyphens">stories.</span></p><p>Medium also dif­fers from ear­lier blog­ging ser­vices in a sig­nif­i­cant, con­trar­ian way: it of­fers you, the writer, nearly zero op­tions for the pre­sen­ta­tion of your sto­ries. No mat­ter what kind of story you write, or who your read­ers are, it gets pack­aged into a sin­gle, non-ne­go­tiable <span class="no-hyphens">template.</span></p><p>Medium isn’t the only blog­ging ser­vice rid­ing this wave, though so far it seems to have the biggest surf­board. Oth­ers in­clude <a href="http://svbtle.com">Svb­tle,</a> <a href="http://postagon.com">Posta­gon,</a> and <a href="http://silvrback.com">Sil­vr­back.</a> They all pro­mote a sim­i­larly con­strained ap­proach to de­sign, which is some­times called <a href="https://www.postagon.com">min­i­mal­ist.</a></p><div class="subhead">Minimalist vs. homogeneous design</div><p>As a fan of min­i­mal­ism, how­ever, I think that term is mis­ap­plied here. Min­i­mal­ism doesn’t fore­close ei­ther ex­pres­sive breadth or con­cep­tual depth. On the con­trary, the min­i­mal­ist pro­gram—as it ini­tially emerged in fine art of the 20th cen­tury—has been about di­vert­ing the viewer’s at­ten­tion from overt signs of au­thor­ship to the deeper pu­rity of the <span class="no-hyphens">ingredients.</span></p><aside>Ad Rein­hardt with some of his amaz­ing <a href="http://www.guggenheim.org/new-york/collections/collection-online/artwork/3698">black paint­ings.</a> (Spoiler alert: they’re not en­tirely <span class="no-hyphens">monochromatic.)</span></aside><p><img src="http://practicaltypography.com/images/reinhardt.jpeg" /></p><aside>Bryan Gar­ner notes that <em>ho­mo­ge­neous</em> is fre­quently mis­spelled <em>ho­moge­nous</em>, and has five syl­la­bles that are fre­quently mis­pro­nounced as four. (<a href="http://www.amazon.com/Garners-Modern-American-Usage-Garner/dp/0195382757">GMAU 3rd ed.</a> at <span class="no-hyphens">425.)</span></aside><p>If that’s the case, we can’t say that Medium et al. are of­fer­ing min­i­mal­ist de­sign. Only the ve­neer is min­i­mal­ist. What they’re re­ally of­fer­ing is a shift from de­sign as a choice to de­sign as a con­stant. In­stead of min­i­mal­ist de­sign, a bet­ter term might be <em>ho­mo­ge­neous</em> <span class="no-hyphens">design.</span></p><p>On the one hand, Medium’s ho­mo­ge­neous de­sign works and reads well. Mem­bers of Medium’s de­sign team have <a href="https://medium.com/designing-medium">cat­a­logued the many ty­po­graphic de­tails</a> they’ve im­ple­mented. Good for them. If they <a href="https://medium.com/@verbagetruck/dustin-senos-typesets-the-future-86fd91e9b6ee">some­times act</a> as if they dis­cov­ered ty­pog­ra­phy like it was the Higgs bo­son, we can for­give their ex­cess of en­thu­si­asm. Bring­ing these de­tails to a wider au­di­ence, and rais­ing stan­dards for ty­pog­ra­phy on the web gen­er­ally, is a wor­thy <span class="no-hyphens">project.</span></p><p>On the other hand, a nec­es­sary side ef­fect of Medium’s ho­mo­ge­neous de­sign is that every story looks the same. If you agree that the role of ty­pog­ra­phy is to en­hance the text for the ben­e­fit of the reader (as I con­tend in <a href="who-is-typography-for.html" class="xref">who is ty­pog­ra­phy for?</a>), then it stands to rea­son that dif­fer­ent texts de­mand dis­tinct ty­pog­ra­phy. As I say in <a href="what-is-good-typography.html" class="xref">What is Good Ty­pog­ra­phy?</a>, one size never fits all. Ty­pog­ra­phy wants to be <span class="no-hyphens">heterogeneous.</span></p><div class="subhead">Delicious but not nutritious</div><p>Still, I wouldn’t say that Medium’s ho­mo­ge­neous de­sign is bad <em>ex ante</em>. Among web-pub­lish­ing tools, I see Medium as the equiv­a­lent of a frozen pizza: not as whole­some as a meal you could make your­self, but for those with­out the time or mo­ti­va­tion to cook, a po­ten­tially bet­ter op­tion than just eat­ing peanut but­ter straight from the <span class="no-hyphens">jar.</span></p><aside><dquo>“You don’t need to see our for­mat­ting </dquo><span class="no-hyphens">options.”</span></aside><p><img src="http://practicaltypography.com/images/obi-wan.jpg" /></p><p>The prob­lem, how­ever, is that Medium holds out its ho­mo­ge­neous de­sign as more than a frozen pizza. It has be­come, by the Jedi mind trick­ery fa­vored by to­day’s tech com­pa­nies, a Bel­la­gio buf­fet of de­li­cious <span class="no-hyphens">nonsense:</span></p><ol><li><p>Evan Williams <a href="https://medium.com/about/what-were-trying-to-do-with-medium-e2f5bfcf0434">frames Medium</a> as a “place for ideas” with an “ethos” of “open­ness and democ­racy—like the In­ter­net it­self.” Fine, but ide­al­is­tic plat­i­tudes ex­plain noth­ing. How, specif­i­cally, does Medium im­prove the <span class="no-hyphens">Internet?</span></p></li><li><p>Mr. Williams <a href="https://medium.com/about/writing-in-medium-df8eac9f4a5e">claims</a> that Medium is “the best writ­ing tool on the web.” Okay, that’s at least con­crete. But we’ve got a lot of good web-based writ­ing tools al­ready. Medium does more than <span class="no-hyphens">those?</span></p></li><li><p>Ac­tu­ally, no—Mr. Williams <a href="https://medium.com/about/writing-in-medium-df8eac9f4a5e">con­cedes</a> that Medium has “stripped out a lot of the power that other ed­i­tors give you.” So how is it pos­si­ble to be “the best” while of­fer­ing <span class="no-hyphens">less?</span></p></li><li><p>Here, Mr. Williams <a href="https://medium.com/about/writing-in-medium-df8eac9f4a5e">par­ries</a>—he claims that think­ing about the pre­sen­ta­tion of your work is “a ter­ri­ble dis­trac­tion and a waste of time.” <span class="no-hyphens">Why?</span></p></li><li><p>Ap­par­ently <a href="https://medium.com/about/writing-in-medium-df8eac9f4a5e">be­cause he’s</a> “one of those peo­ple who will open up Word and spend half [his] time defin­ing styles and ad­just­ing the spac­ing be­tween para­graphs.” Hmm, not every­one has that prob­lem with <span class="no-hyphens">Word.</span></p></li><li><p>Now comes the hand-wav­ing, as Mr. Williams as­sures us that Medium’s ho­mo­ge­neous de­sign isn’t a lim­i­ta­tion—it’s <a href="https://medium.com/about/writing-in-medium-df8eac9f4a5e">in fact es­sen­tial</a> to let your “bril­liance and cre­ativ­ity flow smoothly onto the <span class="no-hyphens">screen.”</span></p></li><li><p>More­over, any­one who dis­agrees <a href="https://medium.com/about/writing-in-medium-df8eac9f4a5e">is a Lud­dite</a>—be­cause “every­thing [other than Medium] feels like step­ping back in <span class="no-hyphens">time.”</span></p></li></ol><p>Like all non­sense, it’s in­tended to be easy to swal­low. But Mr. Williams’s ar­gu­ment is flawed in at least three <span class="no-hyphens">ways:</span></p><ol><li><p><strong>It makes no sense in the con­text of to­day’s web</strong>. If Medium had launched 10 years ago, it would’ve been as­ton­ish­ing. But it didn’t. To­day, the costs of web pub­lish­ing—in­clud­ing de­sign—have de­clined to al­most zero. Rel­a­tive to to­day’s web, Medium is not cre­at­ing new pos­si­bil­i­ties, but in­stead clos­ing them off. To pre­vail, Medium needs to per­suade you that you don’t care about the broader ex­pres­sive pos­si­bil­i­ties of web <span class="no-hyphens">publishing.</span></p></li><li><p><strong>It sets up a false di­chotomy about writ­ing tools</strong>. Mr. Williams de­picts the writer’s choice as Medium vs. com­pli­cated tools like Word. Not ac­cu­rate. First, dif­fer­ent tools ex­ist for dif­fer­ent needs. It would be silly to use Word to make a web page, but equally silly to use Medium to pre­pare a print-on-de­mand pa­per­back. Sec­ond, any­one who’s used cur­rent blog­ging tools ap­pre­ci­ates that web pub­lish­ing has be­come heav­ily au­to­mated. Much of the for­mat­ting can be han­dled au­to­mat­i­cally (e.g., via <a href="https://wordpress.org/themes/">Word­Press themes</a>) or man­u­ally, as you <span class="no-hyphens">prefer.</span></p></li><li><p><strong>You’re giv­ing up far more than de­sign choice</strong>. Mr. Williams <a href="https://medium.com/about/writing-in-medium-df8eac9f4a5e">de­scribes</a> Medium’s key ben­e­fit as res­cu­ing writ­ers from the “ter­ri­ble dis­trac­tion” of for­mat­ting chores. But con­sider the cost. Though he’s bait­ing the hook with de­sign, he’s also ask­ing you, the writer, to let him con­trol how you of­fer your work to read­ers. Mean­ing, to get the full ben­e­fit of Medium’s de­sign, you have to let your story live on Medium, send all your read­ers to Medium, have your work per­ma­nently en­tan­gled with other sto­ries on Medium, and so on—a sig­nif­i­cant <span class="no-hyphens">concession.</span></p></li></ol><p>As for that en­tan­gle­ment among sto­ries, Mr. Williams <a href="https://medium.com/@ev/sarah-lacys-latest-medium-me-critique-makes-no-sense-1917c67405ca">has con­ceded</a> that it’s “con­fus­ing.” But this am­bi­gu­ity isn’t a bug. It’s an es­sen­tial fea­ture of the busi­ness plan. The goal is to cre­ate the il­lu­sion that every­thing on Medium be­longs to one ed­i­to­r­ial ecosys­tem, as if it were the New York <em>Times</em>.</p><aside>No word yet on how Medium’s <a href="https://medium.com/policy/medium-privacy-policy-f03bf92035c9">sur­veil­lance poli­cies</a> square with all that open­ness and <span class="no-hyphens">democracy.</span></aside><p>But un­like the <em>Times</em>, Medium pays for <a href="https://medium.com/@ev/what-is-now-the-matter-at-medium-105a334f2ea">only a small frac­tion</a> of its sto­ries. The rest are sub­mit­ted—for free—by writ­ers like you. Af­ter a long time <a href="http://www.theatlantic.com/technology/archive/2013/08/what-is-medium/278965/">be­ing elu­sive</a> about its busi­ness model, Medium re­vealed that it plans to make money by—sur­prise!—<a href="http://adage.com/article/digital/bmw-runs-ads-medium-twitter-founders-platform/294321/">sell­ing ad­ver­tis­ing.</a> This means dis­play­ing ads, but also col­lect­ing and sell­ing data about read­ers and writ­ers. So Medium will ex­tract rev­enue from every story, whether it paid for that story or not. (By the way, will that rev­enue be shared with writ­ers? <a href="https://medium.com/inside/there-will-be-money-d80f7d0178a9">Um, no.</a>)</p><p>And com­ing full cir­cle—what’s the in­dis­pens­able tool for cre­at­ing this il­lu­sion of an ed­i­to­r­ial ecosys­tem? The ho­mo­ge­neous de­sign. The but­ter­fly bal­lot of 2000 (de­picted in <a href="why-typography-matters.html" class="xref">Why ty­pog­ra­phy mat­ters</a>) proved that er­rors of ty­pog­ra­phy can have his­toric con­se­quences. Medium proves that ty­pog­ra­phy can be used as a tool of eco­nomic lever­age and <span class="no-hyphens">control.</span></p><p>In truth, Medium’s main prod­uct is not a pub­lish­ing plat­form, but the pro­mo­tion of a pub­lish­ing plat­form. This pro­mo­tion brings read­ers and writ­ers onto the site. This, in turn, gen­er­ates the us­age data that’s valu­able to ad­ver­tis­ers. Boiled down, Medium is sim­ply mar­ket­ing in the ser­vice of more mar­ket­ing. It is not a “place for ideas.” It is a place for ad­ver­tis­ers. It is, there­fore, ut­terly <span class="no-hyphens">superfluous.</span></p><p><dquo>“But what about all the writ­ing on Medium?” The mea­sure of su­per­fluity is not the writ­ing on Medium. Rather, it’s what Medium </dquo><em>adds</em> to the writ­ing. Re­call the ques­tion from above: how does Medium im­prove the In­ter­net? I haven’t seen a sin­gle story on Medium that couldn’t ex­ist equally well else­where. Nor ev­i­dence that Medium’s edit­ing and pub­lish­ing tools are a man­i­fest im­prove­ment over what you can do with other <span class="no-hyphens">tools.</span></p><p>In sum—still <span class="no-hyphens">superfluous.</span></p><div class="subhead">What we can learn from typewriters</div><aside><img src="http://practicaltypography.com/images/olivetti.jpeg" /> Olivetti was fa­mous for its <a href="https://www.flickr.com/photos/19855494@N00/sets/72157603713300507/">graphic and ad­ver­tis­ing de­sign</a> as well as its <span class="no-hyphens">typewriters.</span></aside><p>Let’s re­mem­ber two points that get lost among the torches and pitch­forks car­ried by <a href="https://medium.com/designing-medium/death-to-typewriters-9b7712847639">“Death to <span class="no-hyphens">Typewriters.”</span></a></p><p>First, al­though the type­writer did im­pose ho­mo­ge­neous (and ugly) ty­pog­ra­phy, it had ex­cel­lent ethics. The type­writer made it pos­si­ble to write more quickly, leg­i­bly, and ac­cu­rately than ever be­fore, with low cost and high porta­bil­ity. In short, it of­fered free­dom. For that, ho­mo­ge­neous de­sign was a small price to <span class="no-hyphens">pay.</span></p><p>Sec­ond, though type­writer ty­pog­ra­phy was ter­ri­ble, it wasn’t a choice made by type­writer man­u­fac­tur­ers out of lazi­ness or ig­no­rance. These com­pro­mises were ne­ces­si­tated by the me­chan­i­cal lim­i­ta­tions of the type­writer. Type­writ­ers were never ideal, but as cer­tain lim­i­ta­tions were over­come, they got <span class="no-hyphens">better.</span></p><aside>IBM in­vented the “type ball” tech­nol­ogy that made it pos­si­ble to use dif­fer­ent fonts in a type­writer. I stud­ied this one as part of my re­search for <a href="triplicate.html" class="xref">Trip­li­cate</a>.</aside><p><img src="http://practicaltypography.com/images/selectric-ball.jpeg" /></p><p>With to­day’s net­worked com­put­ers, we’re get­ting closer to the ideal. We en­joy the ben­e­fits of the type­writer with­out any of its lim­i­ta­tions. We get more ef­fi­ciency, speed, stor­age, de­sign op­tions, and free­dom. The com­puter is the most re­mark­able de­vice in the 500-year his­tory of print­ing (which al­ready in­cludes a lot of re­mark­able <span class="no-hyphens">devices).</span></p><p>This leads back to why those <a href="typewriter-habits.html" class="xref">type­writer habits</a> are so aw­ful in the dig­i­tal age. Com­put­ers have none of the me­chan­i­cal lim­i­ta­tions of type­writ­ers. So the ty­po­graphic short­cuts that were a nec­es­sary evil with type­writ­ers are like­wise ob­so­lete. Why per­pet­u­ate <span class="no-hyphens">them?</span></p><aside>For more on this, see <a href="http://typo.la/rtde">“Re­vers­ing the Tide of De­clin­ing <span class="no-hyphens">Expectations.”</span></a></aside><p>I rely on a broader ver­sion of this prin­ci­ple in my own work. Tech­nol­ogy keeps im­prov­ing, thereby ex­pand­ing pos­si­bil­i­ties for us. So we have a choice. We can ei­ther ig­nore those pos­si­bil­i­ties, and merely ac­cept what tech­nol­ogy of­fers, which will ul­ti­mately make us lazy. Or we can ex­plore those new pos­si­bil­i­ties. But to do that, we need to ex­pect more of <span class="no-hyphens">ourselves.</span></p><p>We also need bet­ter tools. I’d char­ac­ter­ize most of my work as tool­smithing—whether the project is <a href="http://concoursefont.com">de­sign­ing a font,</a> <a href="http://practicaltypography.com">writ­ing a book,</a> or <a href="http://pollenpub.com">cre­at­ing pub­lish­ing soft­ware.</a> I don’t con­trol how oth­ers use these tools. I don’t want to, ei­ther. For me, it’s far more in­ter­est­ing to share these tools and then be sur­prised by how oth­ers use <span class="no-hyphens">them.</span></p><p>To that end, I de­lib­er­ately avoid cre­at­ing tools that do too much. Some as­sem­bly is al­ways re­quired. For in­stance, I’ll tell you the qual­i­ties of good <a href="websites.html" class="xref">web­site</a> ty­pog­ra­phy, but I’m not go­ing to sell you a tem­plate. I want the cus­tomers for my tools to be re­spon­si­ble for some of the heavy lift­ing. That way, they dis­cover that what they get out of the tool has a con­nec­tion to what they put <span class="no-hyphens">in.</span></p><p>So even though I op­pose the <a href="typewriter-habits.html" class="xref">type­writer habits</a>, I still ap­pre­ci­ate that core ethic of the type­writer—re­mov­ing lim­i­ta­tions when you can, do­ing your best with them when you can’t. That’s a great idea. Yes, let’s ex­plore all the pos­si­bil­i­ties of the tech­nol­ogy avail­able to us. Let’s hack the hell out of every­thing and see what hap­pens. In the type­writer era, the tech­no­log­i­cal lim­i­ta­tions were mostly hard­ware. To­day, mostly soft­ware. But if we treat these lim­i­ta­tions as some­thing to obey—not over­come—we’ll just be­come in­den­tured to who­ever con­trols that <span class="no-hyphens">technology.</span></p><div class="subhead">What we can learn from Medium</div><p>In <a href="https://medium.com/designing-medium/death-to-typewriters-9b7712847639">“Death to Type­writ­ers,”</a> Medium in­sists that the type­writer is its “sworn en­emy.” In cer­tain ty­po­graphic de­tails, maybe so. But as a de­vice that im­poses ho­mo­ge­neous de­sign, Medium still has a lot in com­mon with the <span class="no-hyphens">typewriter.</span></p><p>In fact, its ethics are ac­tu­ally <em>worse</em> than the tra­di­tional type­writer. Why? Be­cause Medium’s ho­mo­ge­neous de­sign has noth­ing to do with lim­i­ta­tions of the un­der­ly­ing tech­nol­ogy (in this case, the web). As dis­cussed above, it’s a de­lib­er­ate choice that lets Medium ex­tract value from the tal­ent and la­bor of <span class="no-hyphens">others.</span></p><p>Medium is a new kind of type­writer—the bil­lion­aire’s type­writer. It’s not the only bil­lion­aire’s type­writer. So is the Kin­dle. So is iBooks. So is Twit­ter. What dis­tin­guishes these new type­writ­ers is not the pos­si­bil­i­ties they make avail­able to writ­ers, but what they take <span class="no-hyphens">away.</span></p><p><strong>Whereas the tra­di­tional type­writer of­fered free­dom at the cost of de­sign, the bil­lion­aire’s type­writer of­fers con­ve­nience at the cost of <span class="no-hyphens">freedom.</span></strong></p><p>As a writer and tool­smith, I’ve found the rush to em­brace these sys­tems per­plex­ing. Not be­cause I’m cur­mud­geonly. Not be­cause I fail to un­der­stand that peo­ple, in­clud­ing writ­ers, en­joy things that are free and <span class="no-hyphens">convenient.</span></p><p>Rather, be­cause gen­tle scrutiny re­veals that these sys­tems are pow­ered by a form of hu­man frack­ing. To get his frack­ing per­mit on your ter­ri­tory, Mr. Williams (the multi­bil­lion­aire) needs to per­suade you (the writer) that a key con­sid­er­a­tion in your work (namely, how &amp; where you of­fer it to read­ers) is a “waste of <span class="no-hyphens">time.”</span></p><p>If you re­ally be­lieve that, then by all means, keep us­ing the bil­lion­aire’s <span class="no-hyphens">typewriter.</span></p><div style="height:1em"></div><p>But if you have doubts, here’s a <span class="no-hyphens">counterproposal.</span></p><p>As a writer, the biggest po­ten­tial waste of your time is not ty­pog­ra­phy chores, but Medium it­self. Be­cause in re­turn for that snazzy de­sign, Medium needs you to re­lin­quish con­trol of how your work gets to <span class="no-hyphens">readers.</span></p><p>Tempt­ing per­haps. But where does it lead? I fear that writ­ers who limit them­selves to pro­vid­ing “con­tent” for some­one else’s “branded plat­form” are go­ing to end up with as much lever­age as cows on a dairy farm. (A prob­lem at the core of the re­cent <a href="http://www.vanityfair.com/news/business/2014/12/amazon-hachette-ebook-publishing">Ha­chette–Ama­zon dis­pute.</a>)</p><p>If you want to be part of some­thing open and de­mo­c­ra­tic, use open-source soft­ware. If you want to have your writ­ing look great, learn some­thing about ty­pog­ra­phy (or hire a de­signer). If you need a plat­form for writ­ing, try <a href="http://pollenpub.com">Pollen</a> (the sys­tem I made for this site), or <a href="http://wordpress.org">Word­Press,</a> or a sub­scrip­tion ser­vice like <a href="http://svbtle.com">Svb­tle.</a> I pre­fer web pub­lish­ing de­spite <a href="economics-year-one.html">its short­com­ings,</a> but if you don’t, then make an e-book or PDF and dis­trib­ute it <span class="no-hyphens">yourself.</span></p><p>As writ­ers, we don’t need com­pa­nies like Medium to tell us how to use the web. Or de­fine open­ness and democ­racy. Or tell us what’s a “waste of [our] time” and what’s not. Or de­ter­mine how and where read­ers ex­pe­ri­ence our work. We need to de­cide those things for <span class="no-hyphens">ourselves.</span></p><p><sig>—Matthew But­t­er­ick<br />17 Feb <span class="no-hyphens">2015</span></sig></p><div class="btw"><div class="btw-title">by the way</div><ul><li><p>Though I’ve been pok­ing holes in its rhetoric, I don’t have an­tipa­thy to­ward Medium any more than I do <a href="http://typographyforlawyers.com/why-google-web-fonts-arent-really-open-source.html">Google Fonts.</a> I get it—it’s a com­pany set up to make money. It’s not a lit­er­ary foun­da­tion. I’m sure the peo­ple in­volved with it are tal­ented and sin­cere. And they cer­tainly don’t care what I <span class="no-hyphens">think.</span></p></li><li><p>A cou­ple read­ers have pointed out that Medium doesn’t re­quire ex­clu­siv­ity—you own your sto­ries, and you can pub­lish them else­where. Fair enough. But this doesn’t change the core ar­gu­ment. Medium is def­i­nitely <a href="https://medium.com/@Medium/medium-connects-the-people-stories-and-ideas-that-matter-to-you-495655fb8459">pitch­ing it­self to writ­ers</a> as an all-in­clu­sive plat­form (“Build your pub­li­ca­tion, blog, or writ­ing port­fo­lio”). As for those writ­ers who are us­ing it as a sec­ondary out­let, Medium is still ex­tract­ing rev­enue from their sto­ries that isn’t <span class="no-hyphens">shared.</span></p></li><li><p>I’m not the first to raise these is­sues. See also <a href="http://www.elezea.com/2013/08/medium-is-eating-all-the-content/">Rian van der Merwe</a> (“Medium seems to be more about Medium than about au­thors … The bar­rier to set­ting up your own site has never been lower”), <a href="http://www.marco.org/2013/08/05/be-your-own-platform">Marco Ar­ment</a> (“con­sider whether it’s wise to in­vest your time and writ­ing in some­one else’s plat­form for free”), and <a href="http://www.theatlantic.com/technology/archive/2013/08/what-is-medium/278965/">Alexis Madri­gal</a> (“me­dia pro­duc­ers … have to de­cide whether Medium is a friend or a <span class="no-hyphens">foe”).</span></p></li><li><p>Con­fi­den­tial to graphic de­sign­ers <a href="https://medium.com/vvvvvv-studio/albers-in-command-b3184edd7746">who are pub­lish­ing sto­ries</a> on Medium: if you wouldn’t set your <a href="business-cards.html" class="xref">busi­ness cards</a> in <a href="times-new-roman.html" class="xref">Times New Ro­man</a>, then why would you … ah, for­get <span class="no-hyphens">it.</span></p></li></ul></div></div>
  446. <p><a id="links"></a><div style="height:1em"></div><ul class="children"></ul></p>
  447. </article>
  448. </section>
  449. <nav id="jumpto">
  450. <p>
  451. <a href="/david/blog/">Accueil du blog</a> |
  452. <a href="http://practicaltypography.com/billionaires-typewriter.html">Source originale</a> |
  453. <a href="/david/stream/2019/">Accueil du flux</a>
  454. </p>
  455. </nav>
  456. <footer>
  457. <div>
  458. <img src="/static/david/david-larlet-avatar.jpg" loading="lazy" class="avatar" width="200" height="200">
  459. <p>
  460. Bonjour/Hi!
  461. Je suis <a href="/david/" title="Profil public">David&nbsp;Larlet</a>, je vis actuellement à Montréal et j’alimente cet espace depuis 15 ans. <br>
  462. Si tu as apprécié cette lecture, n’hésite pas à poursuivre ton exploration. Par exemple via les <a href="/david/blog/" title="Expériences bienveillantes">réflexions bimestrielles</a>, la <a href="/david/stream/2019/" title="Pensées (dés)articulées">veille hebdomadaire</a> ou en t’abonnant au <a href="/david/log/" title="S’abonner aux publications via RSS">flux RSS</a> (<a href="/david/blog/2019/flux-rss/" title="Tiens c’est quoi un flux RSS ?">so 2005</a>).
  463. </p>
  464. <p>
  465. Je m’intéresse à la place que je peux avoir dans ce monde. En tant qu’humain, en tant que membre d’une famille et en tant qu’associé d’une coopérative. De temps en temps, je fais aussi des <a href="https://github.com/davidbgk" title="Principalement sur Github mais aussi ailleurs">trucs techniques</a>. Et encore plus rarement, <a href="/david/talks/" title="En ce moment je laisse plutôt la place aux autres">j’en parle</a>.
  466. </p>
  467. <p>
  468. Voici quelques articles choisis :
  469. <a href="/david/blog/2019/faire-equipe/" title="Accéder à l’article complet">Faire équipe</a>,
  470. <a href="/david/blog/2018/bivouac-automnal/" title="Accéder à l’article complet">Bivouac automnal</a>,
  471. <a href="/david/blog/2018/commodite-effondrement/" title="Accéder à l’article complet">Commodité et effondrement</a>,
  472. <a href="/david/blog/2017/donnees-communs/" title="Accéder à l’article complet">Des données aux communs</a>,
  473. <a href="/david/blog/2016/accompagner-enfant/" title="Accéder à l’article complet">Accompagner un enfant</a>,
  474. <a href="/david/blog/2016/senior-developer/" title="Accéder à l’article complet">Senior developer</a>,
  475. <a href="/david/blog/2016/illusion-sociale/" title="Accéder à l’article complet">L’illusion sociale</a>,
  476. <a href="/david/blog/2016/instantane-scopyleft/" title="Accéder à l’article complet">Instantané Scopyleft</a>,
  477. <a href="/david/blog/2016/enseigner-web/" title="Accéder à l’article complet">Enseigner le Web</a>,
  478. <a href="/david/blog/2016/simplicite-defaut/" title="Accéder à l’article complet">Simplicité par défaut</a>,
  479. <a href="/david/blog/2016/minimalisme-esthetique/" title="Accéder à l’article complet">Minimalisme et esthétique</a>,
  480. <a href="/david/blog/2014/un-web-omni-present/" title="Accéder à l’article complet">Un web omni-présent</a>,
  481. <a href="/david/blog/2014/manifeste-developpeur/" title="Accéder à l’article complet">Manifeste de développeur</a>,
  482. <a href="/david/blog/2013/confort-convivialite/" title="Accéder à l’article complet">Confort et convivialité</a>,
  483. <a href="/david/blog/2013/testament-numerique/" title="Accéder à l’article complet">Testament numérique</a>,
  484. et <a href="/david/blog/" title="Accéder aux archives">bien d’autres…</a>
  485. </p>
  486. <p>
  487. On peut <a href="mailto:david%40larlet.fr" title="Envoyer un courriel">échanger par courriel</a>. Si éventuellement tu souhaites que l’on travaille ensemble, tu devrais commencer par consulter le <a href="http://larlet.com">profil dédié à mon activité professionnelle</a> et/ou contacter directement <a href="http://scopyleft.fr/">scopyleft</a>, la <abbr title="Société coopérative et participative">SCOP</abbr> dont je fais partie depuis six ans. Je recommande au préalable de lire <a href="/david/blog/2018/cout-site/" title="Attention ce qui va suivre peut vous choquer">combien coûte un site</a> et pourquoi je suis plutôt favorable à une <a href="/david/pro/devis/" title="Discutons-en !">non-demande de devis</a>.
  488. </p>
  489. <p>
  490. Je ne traque pas ta navigation mais mon
  491. <abbr title="Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33.184162340">hébergeur</abbr>
  492. conserve des logs d’accès.
  493. </p>
  494. </div>
  495. </footer>
  496. <script type="text/javascript">
  497. ;(_ => {
  498. const jumper = document.getElementById('jumper')
  499. jumper.addEventListener('click', e => {
  500. e.preventDefault()
  501. const anchor = e.target.getAttribute('href')
  502. const targetEl = document.getElementById(anchor.substring(1))
  503. targetEl.scrollIntoView({behavior: 'smooth'})
  504. })
  505. })()
  506. </script>