123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519 |
- <!DOCTYPE html><!-- This is a valid HTML5 document. -->
- <!-- Screen readers, SEO, extensions and so on. -->
- <html lang="fr">
- <!-- Has to be within the first 1024 bytes, hence before the `title` element
- See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset -->
- <meta charset="utf-8">
- <!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 -->
- <!-- The viewport meta is quite crowded and we are responsible for that.
- See: https://codepen.io/tigt/post/meta-viewport-for-2015 -->
- <meta name="viewport" content="width=device-width,initial-scale=1">
- <!-- Required to make a valid HTML5 document. -->
- <title>
- Étiquette #photographie
- — David Larlet</title>
- <script>
- function toggleTheme(themeName) {
- document.documentElement.classList.toggle(
- 'forced-dark',
- themeName === 'dark'
- )
- document.documentElement.classList.toggle(
- 'forced-light',
- themeName === 'light'
- )
- }
- const selectedTheme = localStorage.getItem('theme')
- if (selectedTheme !== 'undefined') {
- toggleTheme(selectedTheme)
- }
- </script>
- <!-- Documented, feel free to shoot an email. -->
- <link rel="stylesheet" href="/static/david/css/style_2024-03-09.css">
- <!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. -->
- <link rel="preload"
- href="/static/david/css/fonts/century_supra_ot_a_regular.woff2"
- as="font"
- type="font/woff2"
- media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)"
- crossorigin>
- <link rel="preload"
- href="/static/david/css/fonts/century_supra_ot_a_bold.woff2"
- as="font"
- type="font/woff2"
- media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)"
- crossorigin>
- <link rel="preload"
- href="/static/david/css/fonts/century_supra_ot_a_italic.woff2"
- as="font"
- type="font/woff2"
- media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)"
- crossorigin>
- <link rel="preload"
- href="/static/david/css/fonts/century_supra_ot_b_regular.woff2"
- as="font"
- type="font/woff2"
- media="(prefers-color-scheme: dark)"
- crossorigin>
- <link rel="preload"
- href="/static/david/css/fonts/century_supra_ot_b_bold.woff2"
- as="font"
- type="font/woff2"
- media="(prefers-color-scheme: dark)"
- crossorigin>
- <link rel="preload"
- href="/static/david/css/fonts/century_supra_ot_b_italic.woff2"
- as="font"
- type="font/woff2"
- media="(prefers-color-scheme: dark)"
- crossorigin>
- <meta name="description" content="Publications relatives au tag #photographie">
- <!-- That good ol' feed, subscribe :). -->
- <link rel="alternate"
- type="application/atom+xml"
- title="Feed"
- href="/david/log/">
- <!-- Generated from https://realfavicongenerator.net/ such a mess. -->
- <link rel="apple-touch-icon"
- sizes="180x180"
- href="/static/david/icons2/apple-touch-icon.png">
- <link rel="icon"
- type="image/png"
- sizes="32x32"
- href="/static/david/icons2/favicon-32x32.png">
- <link rel="icon"
- type="image/png"
- sizes="16x16"
- href="/static/david/icons2/favicon-16x16.png">
- <link rel="manifest" href="/static/david/icons2/site.webmanifest">
- <link rel="mask-icon"
- href="/static/david/icons2/safari-pinned-tab.svg"
- color="#07486c">
- <link rel="shortcut icon" href="/static/david/icons2/favicon.ico">
- <meta name="msapplication-TileColor" content="#f7f7f7">
- <meta name="msapplication-config"
- content="/static/david/icons2/browserconfig.xml">
- <meta name="theme-color"
- content="#f7f7f7"
- media="(prefers-color-scheme: light)">
- <meta name="theme-color"
- content="#272727"
- media="(prefers-color-scheme: dark)">
- <!-- Is that even respected? Retrospectively? What a shAItshow…
- https://neil-clarke.com/block-the-bots-that-feed-ai-models-by-scraping-your-website/ -->
- <meta name="robots" content="noai, noimageai">
-
- <style type="text/css">
- details[open] summary {
- display: none;
- }
- </style>
-
- <body data-instant-intensity="viewport-all">
- <article>
-
- <header>
- <hgroup>
- <h1>#photographie</h1>
- <p>Publications relatives à cette étiquette</p>
- </hgroup>
- </header>
- <nav>
- <p>
- <a href="/david/" title="Aller à l’accueil">
- Accueil</a>
- •
- <a rel="tags"
- href="/david/2024/#tags"
- title="Liste de toutes les étiquettes">
- Étiquettes</a>
- •
- <a href="/david/recherche/" title="Aller à la page de recherche" rel="search" data-no-instant>Recherche</a>
- •
- <a href="/david/log/" title="Accès au flux RSS">Suivre</a>
- </p>
- </nav>
-
- <h2>
- <a href="/david/2024/04/08/" title="Lien permanent vers cet article">Éclipse</a> <time datetime="2024-04-08">8 avril 2024</time>
- </h2>
-
- <p>Il y a l’éclipse et puis il y a toute l’ambiance autour. Je crois que c’est ce qui m’a le plus marqué, cet émerveillement doublé d’un enthousiasme collectif. Lorsque tout le monde retire les lunettes ou même un peu avant lorsque la lumière change et que l’on voit un coucher (??) de soleil en version accéléré qui s’avance vers nous en pleine après-midi.</p>
- <p>L’éclipse totale était censée être de 1 min 45 sec à ma position mais alors en ressenti derrière l’objectif c’était du 20 secondes ! À peine le temps de réduire au maximum l’exposition et de déclencher. J’avais fait une mise au point sur un avion au préalable et j’étais passé en manuel mais c’était stupide et ça a rendu floues toutes les photos… jusqu’aux deux dernières. Coup de bol d’avoir pris le temps de tester l’autofocus en sentant venir la fin.</p>
- <figure>
- <a href="/static/david/2024/2024-04-08-eclipse-1.jpg"
- title="Cliquer pour une version haute résolution">
- <img
- src="/static/david/2024/2024-04-08-eclipse-1.jpg"
- width="2000" height="2000"
- srcset="/static/david/2024/2024-04-08-eclipse-1.jpg 2000w, /static/david/2024/2024-04-08-eclipse-1_660x440.jpg 660w, /static/david/2024/2024-04-08-eclipse-1_990x660.jpg 990w, /static/david/2024/2024-04-08-eclipse-1_1320x880.jpg 1320w"
- sizes="min(100vw, calc(100vh * 2000 / 2000))"
- loading="lazy"
- decoding="async"
- alt="Le moment de l’éclipse où la lune passe totalement devant le soleil.">
- </a>
- <figcaption>J’étais tellement content de découvrir des éruptions solaires au développement !</figcaption>
- </figure>
- <p>En étant sur la fin, cela permet d’être vraiment à la limite de la couronne solaire et de photographier un phénomène que je ne pensait pas possible avec mon matériel.</p>
- <p>Et puis, il y a ce moment où l’hystérie collective redevient sérieuse car il faut remettre les lunettes et prendre le temps de se demander ce qu’il vient de se passer.</p>
- <figure>
- <a href="/static/david/2024/2024-04-08-eclipse-2.jpg"
- title="Cliquer pour une version haute résolution">
- <img
- src="/static/david/2024/2024-04-08-eclipse-2.jpg"
- width="3840" height="2560"
- srcset="/static/david/2024/2024-04-08-eclipse-2.jpg 3840w, /static/david/2024/2024-04-08-eclipse-2_660x440.jpg 660w, /static/david/2024/2024-04-08-eclipse-2_990x660.jpg 990w, /static/david/2024/2024-04-08-eclipse-2_1320x880.jpg 1320w"
- sizes="min(100vw, calc(100vh * 3840 / 2560))"
- loading="lazy"
- decoding="async"
- alt="Le moment de l’éclipse où la lune va découvrir le soleil.">
- </a>
- <figcaption>En mode halo au développement car c’est quand même sympa.</figcaption>
- </figure>
- <p>Fait étonnant, quelques petites minutes après l’apogée, on voyait un avion et surtout son ombre projetée de manière inhabituelle. J’ai l’intuition qu’il était dans une zone qui n’arrive jamais en temps normal car cet angle lumineux n’est pas possible. J’aurais dû prendre une photo pour pouvoir faire des calculs à ce sujet.</p>
- <a href="#hr-145" title="Lien vers cette section de la page"><hr id="hr-145" /></a>
- <p>Aussi, je suis en train de regarder <a data-link-domain="en.wikipedia.org" href="https://en.wikipedia.org/wiki/3_Body_Problem_(TV_series">3 Body Problem</a>).</p>
-
-
- <nav>
- <p>
-
- <a href="/david/2024/enthousiasme/"
- title="Liste de tous les articles 2024 associés à cette étiquette"
- rel="tag">#enthousiasme</a>
-
- <a href="/david/2024/experience/"
- title="Liste de tous les articles 2024 associés à cette étiquette"
- rel="tag">#expérience</a>
-
- <a href="/david/2024/photographie/"
- title="Liste de tous les articles 2024 associés à cette étiquette"
- rel="tag">#photographie</a>
-
- <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
- </p>
- </nav>
-
-
- <h2>
- <a href="/david/2024/02/12/" title="Lien permanent vers cet article">Renards</a> <time datetime="2024-02-12">12 février 2024</time>
- </h2>
-
- <p>Entre chien et loup, le renard pointe le bout de son nez pointu. Après avoir attendu patiemment attendu que mon appareil photo arrive à ses limites, le voilà avançant vers moi d’un pas décidé.</p>
- <figure>
- <a href="/static/david/2024/2024-02-12-renards-1.jpg"
- title="Cliquer pour une version haute résolution">
- <img
- src="/static/david/2024/2024-02-12-renards-1.jpg"
- width="3456" height="2304"
- srcset="/static/david/2024/2024-02-12-renards-1.jpg 3456w, /static/david/2024/2024-02-12-renards-1_660x440.jpg 660w, /static/david/2024/2024-02-12-renards-1_990x660.jpg 990w, /static/david/2024/2024-02-12-renards-1_1320x880.jpg 1320w"
- sizes="min(100vw, calc(100vh * 3456 / 2304))"
- loading="lazy"
- decoding="async"
- alt="Un renard trottinant sur la rivière gelée.">
- </a>
- <figcaption>Un renard trottinant sur la rivière gelée.</figcaption>
- </figure>
- <p>Même en poussant les réglages au maximum lors du développement, je me rends bien compte que je suis dans la nuit bientôt noire. Alors je tente d’utiliser l’éclairage de la ville, la pollution lumineuse se reflétant sur la neige m’offre de précieux <em>stops</em> photographiques.</p>
- <figure>
- <a href="/static/david/2024/2024-02-12-renards-2.jpg"
- title="Cliquer pour une version haute résolution">
- <img
- src="/static/david/2024/2024-02-12-renards-2.jpg"
- width="2560" height="3840"
- srcset="/static/david/2024/2024-02-12-renards-2.jpg 2560w, /static/david/2024/2024-02-12-renards-2_660x440.jpg 660w, /static/david/2024/2024-02-12-renards-2_990x660.jpg 990w, /static/david/2024/2024-02-12-renards-2_1320x880.jpg 1320w"
- sizes="min(100vw, calc(100vh * 2560 / 3840))"
- loading="lazy"
- decoding="async"
- alt="Un renard sur la rivière gelée avec un pont en fond.">
- </a>
- <figcaption>Un renard sur la rivière gelée avec un pont en fond.</figcaption>
- </figure>
- <p>L’équivalent 800mm que je tiens à bout de bras n’aide pas à faire baisser les ISO, tant pis, je compte trop sur ma mobilité pour être capable de tenter une approche. La neige est bien trop gelée et bruyante pour que j’ai la moindre chance. Un skieur nocturne détourne leur attention.</p>
- <figure>
- <a href="/static/david/2024/2024-02-12-renards-3.jpg"
- title="Cliquer pour une version haute résolution">
- <img
- src="/static/david/2024/2024-02-12-renards-3.jpg"
- width="3840" height="2560"
- srcset="/static/david/2024/2024-02-12-renards-3.jpg 3840w, /static/david/2024/2024-02-12-renards-3_660x440.jpg 660w, /static/david/2024/2024-02-12-renards-3_990x660.jpg 990w, /static/david/2024/2024-02-12-renards-3_1320x880.jpg 1320w"
- sizes="min(100vw, calc(100vh * 3840 / 2560))"
- loading="lazy"
- decoding="async"
- alt="Deux renards : l’un sur la rivière, l’autre sur un ponton abandonné.">
- </a>
- <figcaption>Deux renards : l’un sur la rivière, l’autre sur un ponton abandonné.</figcaption>
- </figure>
- <p>La luminosité est telle que je vois la lumière de mon autofocus qui se reflète, bien rouge, au fond de ses yeux à une cinquantaine de mètres. Iel m’attend. Je ne saurais jamais jusqu’à quelle distance est-ce que l’on se seraient acceptés car une coureuse met fin à ce tête-à-tête nocturne. Si nous sommes tous le deux routiniers, nous aurons certainement d’autres occasions de nous croiser.</p>
- <figure>
- <a href="/static/david/2024/2024-02-12-renards-4.jpg"
- title="Cliquer pour une version haute résolution">
- <img
- src="/static/david/2024/2024-02-12-renards-4.jpg"
- width="3840" height="2560"
- srcset="/static/david/2024/2024-02-12-renards-4.jpg 3840w, /static/david/2024/2024-02-12-renards-4_660x440.jpg 660w, /static/david/2024/2024-02-12-renards-4_990x660.jpg 990w, /static/david/2024/2024-02-12-renards-4_1320x880.jpg 1320w"
- sizes="min(100vw, calc(100vh * 3840 / 2560))"
- loading="lazy"
- decoding="async"
- alt="Un renard qui me regarde depuis le chemin.">
- </a>
- <figcaption>Un renard qui me regarde depuis le chemin.</figcaption>
- </figure>
- <p>Photographiquement parlant, je crois que je préfère la prise floue de la veille. Une forme d’acceptation qu’il puisse encore y avoir des animaux libres d’une capture trop nette.</p>
- <figure>
- <a href="/static/david/2024/2024-02-12-renards-5.jpg"
- title="Cliquer pour une version haute résolution">
- <img
- src="/static/david/2024/2024-02-12-renards-5.jpg"
- width="3840" height="2560"
- srcset="/static/david/2024/2024-02-12-renards-5.jpg 3840w, /static/david/2024/2024-02-12-renards-5_660x440.jpg 660w, /static/david/2024/2024-02-12-renards-5_990x660.jpg 990w, /static/david/2024/2024-02-12-renards-5_1320x880.jpg 1320w"
- sizes="min(100vw, calc(100vh * 3840 / 2560))"
- loading="lazy"
- decoding="async"
- alt="Un renard flou qui se reflète dans l’eau de la rivière qui fond.">
- </a>
- <figcaption>Vais-je passer à travers ? Je ne suis pas le seul à me poser ces questions…</figcaption>
- </figure>
- <p>Merci au parent devant l’école qui m’a dit qu’il n’y avait pas de renards dans le parc cette année. Mon esprit de con·tradiction a fait le reste.</p>
- <a href="#hr-71" title="Lien vers cette section de la page"><hr id="hr-71" /></a>
-
- <blockquote>
- <p>Les carnets Web servent également à faire rêver les autres de façon inattendue et la plupart du temps silencieusement. N’hésitez pas à publier. Vous toucherez le cœur et l’imagination d’une personne quelque part dans le monde.</p>
- <p><cite><em><a data-link-domain="la-grange.net" href="https://www.la-grange.net/2024/02/04/enfant" hreflang="fr"
- title="Consultation de l’article">D’un enfant à l’autre</a>
- <a href="/david/cache/2024/40a1a0f90d7ac25a6150e6e27ac310d4/" hreflang="fr"
- data-tippy data-description=""
- data-source="https://www.la-grange.net/2024/02/04/enfant"
- data-date="2024-02-12"
- data-favicon="https://www.la-grange.net/favicon.ico"
- data-domain="la-grange.net"
- ><svg xmlns="http://www.w3.org/2000/svg"
- width="24" height="24" viewBox="0 0 24 24" fill="none"
- stroke="currentColor" stroke-width="2" stroke-linecap="square"
- stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
- <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
- <line x1="12" y1="17" x2="12.01" y2="17"></line>
- </svg>
- <span class="sr-only">[archive]</span></a></em></cite></p>
- </blockquote>
- <p>🧡</p>
-
-
- <nav>
- <p>
-
- <a href="/david/2024/apprentissage/"
- title="Liste de tous les articles 2024 associés à cette étiquette"
- rel="tag">#apprentissage</a>
-
- <a href="/david/2024/echanges/"
- title="Liste de tous les articles 2024 associés à cette étiquette"
- rel="tag">#échanges</a>
-
- <a href="/david/2024/photographie/"
- title="Liste de tous les articles 2024 associés à cette étiquette"
- rel="tag">#photographie</a>
-
- <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
- </p>
- </nav>
-
-
- <h2>
- <a href="/david/2024/02/07/" title="Lien permanent vers cet article">Écureuil</a> <time datetime="2024-02-07">7 février 2024</time>
- </h2>
-
- <p>De bon matin, en me brossant les dents, l’écureuil dans un micro-sommeil après une nuit fraîche. Je le regarde avec un peu d’envie, je referme la fenêtre délicatement. Une minute plus tard, alors qu’il commençait à piquer dangereusement du nez, le voilà déjà reparti.</p>
- <figure>
- <a href="/static/david/2024/2024-02-05-ecureuil-soleil.jpg"
- title="Cliquer pour une version haute résolution">
- <img
- src="/static/david/2024/2024-02-05-ecureuil-soleil.jpg"
- width="3456" height="2304"
- srcset="/static/david/2024/2024-02-05-ecureuil-soleil.jpg 3456w, /static/david/2024/2024-02-05-ecureuil-soleil_660x440.jpg 660w, /static/david/2024/2024-02-05-ecureuil-soleil_990x660.jpg 990w, /static/david/2024/2024-02-05-ecureuil-soleil_1320x880.jpg 1320w"
- sizes="min(100vw, calc(100vh * 3456 / 2304))"
- loading="lazy"
- decoding="async"
- alt="Un écureuil endormi sur une branche.">
- </a>
- <figcaption>Un écureuil endormi sur une branche.</figcaption>
- </figure>
- <a href="#hr-69" title="Lien vers cette section de la page"><hr id="hr-69" /></a>
- <p>Une motivation importante de l’année est de réussir à économiser. C’est une chose que je n’ai jamais vraiment envisagé de faire jusqu’à présent. Si j’ai bien compris le principe actuel, chaque dollar accumulé est un dollar que je n’aurai pas à payer une <em>seconde</em> fois à la banque.</p>
- <p>C’est stupide. Mais ça motive. Mais c’est stupide.</p>
- <a href="#hr-70" title="Lien vers cette section de la page"><hr id="hr-70" /></a>
- <figure>
- <a href="/static/david/2024/2024-02-05-ecureuil-superhero.jpg"
- title="Cliquer pour une version haute résolution">
- <img
- src="/static/david/2024/2024-02-05-ecureuil-superhero.jpg"
- width="3840" height="2560"
- srcset="/static/david/2024/2024-02-05-ecureuil-superhero.jpg 3840w, /static/david/2024/2024-02-05-ecureuil-superhero_660x440.jpg 660w, /static/david/2024/2024-02-05-ecureuil-superhero_990x660.jpg 990w, /static/david/2024/2024-02-05-ecureuil-superhero_1320x880.jpg 1320w"
- sizes="min(100vw, calc(100vh * 3840 / 2560))"
- loading="lazy"
- decoding="async"
- alt="Un écureuil en posture de super-héros·ïne.">
- </a>
- <figcaption>Un écureuil en posture de super-héros·ïne. (Iel a juste froid aux pattes.)</figcaption>
- </figure>
-
-
- <nav>
- <p>
-
- <a href="/david/2024/decision/"
- title="Liste de tous les articles 2024 associés à cette étiquette"
- rel="tag">#décision</a>
-
- <a href="/david/2024/foret/"
- title="Liste de tous les articles 2024 associés à cette étiquette"
- rel="tag">#forêt</a>
-
- <a href="/david/2024/photographie/"
- title="Liste de tous les articles 2024 associés à cette étiquette"
- rel="tag">#photographie</a>
-
- <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
- </p>
- </nav>
-
-
-
-
- <form action="/david/recherche/" method="get">
- <fieldset>
- <legend>Recherche</legend>
- <label for="input-search">Termes de votre recherche :</label>
- <input id="input-search" type="search" name="s" aria-describedby="indexation-infos" required>
- <input type="submit" value="Chercher">
- <p id="indexation-infos">
- <small>
- Seuls les contenus de ces 8 dernières années sont indexés.
- </small>
- </p>
- </fieldset>
- </form>
-
- <aside>
- <theme-toggle></theme-toggle>
- </aside>
- </article>
- <hr>
- <footer>
- <p>
- <a href="/david/" title="Aller à l’accueil">Accueil</a>
- •
- <a href="/david/log/" title="Accès au flux RSS">Suivre</a>
- •
- <a href="http://larlet.com"
- title="Go to my English profile"
- data-instant>Pro</a>
- •
- <a href="mailto:david%40larlet.fr" title="Envoyer un courriel">Email</a>
- •
- <abbr title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340">Légal</abbr>
- </p>
- <template id="theme-selector">
- <form>
- <style type="text/css">
- fieldset div {
- text-align: center;
- }
- </style>
- <fieldset>
- <legend>Thème</legend>
- <div>
- <label>
- <input type="radio" value="auto" name="chosen-color-scheme" checked>
- Auto
- </label>
- <label>
- <input type="radio" value="dark" name="chosen-color-scheme">
- Foncé
- </label>
- <label>
- <input type="radio" value="light" name="chosen-color-scheme">
- Clair
- </label>
- </div>
- </fieldset>
- </form>
- </template>
- </footer>
- <script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script>
- <script>
- class ThemeToggle extends HTMLElement {
- constructor() {
- super()
- const themeSelectorTemplate = document.querySelector('#theme-selector')
- const form = themeSelectorTemplate.content.firstElementChild
- this.attachShadow({ mode: 'open' })
- this.shadowRoot.appendChild(form.cloneNode(true))
- }
-
- connectedCallback() {
- const form = this.shadowRoot.querySelector('form')
- form.addEventListener('change', (e) => {
- const chosenColorScheme = e.target.value
- localStorage.setItem('theme', chosenColorScheme)
- toggleTheme(chosenColorScheme)
- })
-
- const selectedTheme = localStorage.getItem('theme')
- if (selectedTheme && selectedTheme !== 'undefined') {
- form.querySelector(`[value="${selectedTheme}"]`).checked = true
- }
- }
- }
-
- const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
- window.addEventListener('load', () => {
- let colorsLayer = undefined
- let hasDarkRules = false
- for (const styleSheet of Array.from(document.styleSheets)) {
- let mediaRules = []
- for (const layerRule of styleSheet.cssRules) {
- if (!(layerRule instanceof CSSLayerBlockRule)) {
- continue
- }
- if (layerRule.name === 'colors') {
- colorsLayer = layerRule
- }
- for (const cssRule of layerRule.cssRules) {
- if (cssRule.type !== CSSRule.MEDIA_RULE) {
- continue
- }
- // WARNING: Safari does not have/supports `conditionText`.
- if (cssRule.conditionText) {
- if (cssRule.conditionText !== prefersColorSchemeDark) {
- continue
- }
- } else {
- if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
- continue
- }
- }
- mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
- }
- }
-
- // WARNING: do not try to insert a Rule to a styleSheet you are
- // currently iterating on, otherwise the browser will be stuck
- // in a infinite loop…
- for (const mediaRule of mediaRules) {
- // Safari requires the `0` second parameter (even if default).
- colorsLayer.insertRule(mediaRule.cssText, 0)
- hasDarkRules = true
- }
- }
-
- if (hasDarkRules) {
- if ('customElements' in window && !customElements.get('theme-toggle')) {
- customElements.define('theme-toggle', ThemeToggle)
- }
- }
- })
- </script>
-
- </body>
- </html>
|